work on d_a_npc_the and d_a_npc (#2120)

This commit is contained in:
Caroline Madsen
2024-04-04 19:05:50 -04:00
committed by GitHub
parent 0c7b46b79f
commit 3eb62c4489
37 changed files with 2169 additions and 1855 deletions
@@ -9,7 +9,7 @@ typedef struct _GXColorS10 GXColorS10;
class J3DMatColorAnm {
public:
/* 8003B2B8 */ ~J3DMatColorAnm() {};
/* 8003B2F4 */ J3DMatColorAnm() {};
/* 8003B2F4 */ J3DMatColorAnm() : field_0x0(0), mAnmFlag(1), mAnmColor(NULL) {};
J3DMatColorAnm(u16 param_1, J3DAnmColor* param_2) {
field_0x0 = param_1;
mAnmFlag = 1;
@@ -35,7 +35,7 @@ private:
class J3DTexNoAnm {
public:
/* 8003B1F8 */ ~J3DTexNoAnm() {};
/* 8003B240 */ J3DTexNoAnm() {};
/* 8003B240 */ J3DTexNoAnm() : field_0x4(0), mAnmFlag(1), mAnmTexPattern(NULL) {};
J3DTexNoAnm(u16 param_1, J3DAnmTexPattern* param_2) {
field_0x4 = param_1;
mAnmFlag = 1;
@@ -62,7 +62,7 @@ private:
class J3DTexMtxAnm {
public:
/* 8003B264 */ ~J3DTexMtxAnm() {};
/* 8003B2A0 */ J3DTexMtxAnm() {};
/* 8003B2A0 */ J3DTexMtxAnm() : field_0x0(0), mAnmFlag(1), mAnmTransform(NULL) {};
J3DTexMtxAnm(u16 param_1, J3DAnmTextureSRTKey* param_2) {
field_0x0 = param_1;
mAnmFlag = 1;
@@ -90,7 +90,7 @@ private:
class J3DTevKColorAnm {
public:
/* 8003B150 */ ~J3DTevKColorAnm() {}
/* 8003B18C */ J3DTevKColorAnm() {}
/* 8003B18C */ J3DTevKColorAnm() : field_0x0(0), mAnmFlag(1), mAnmTevReg(NULL) {}
J3DTevKColorAnm(u16 param_1, J3DAnmTevRegKey* param_2) {
field_0x0 = param_1;
mAnmFlag = 1;
@@ -116,7 +116,7 @@ private:
class J3DTevColorAnm {
public:
/* 8003B1A4 */ ~J3DTevColorAnm() {}
/* 8003B1E0 */ J3DTevColorAnm() {}
/* 8003B1E0 */ J3DTevColorAnm() : field_0x0(0), mAnmFlag(1), mAnmTevReg(NULL) {}
J3DTevColorAnm(u16 param_1, J3DAnmTevRegKey* param_2) {
field_0x0 = param_1;
mAnmFlag = 1;
+20 -19
View File
@@ -12,38 +12,39 @@ struct TAngleConstant_<f32> {
static inline f32 RADIAN_DEG360() { return 6.2831855f; }
};
template<int N, typename T>
struct TSinCosTable {
std::pair<f32, f32> table[0x2000];
std::pair<T, T> table[1 << N];
f32 sinShort(s16 v) const { return table[(u16)v >> 3U].first; }
f32 cosShort(s16 v) const { return table[(u16)v >> 3U].second; }
T sinShort(s16 v) const { return table[(u16)v >> (16U - N)].first; }
T cosShort(s16 v) const { return table[(u16)v >> (16U - N)].second; }
inline f32 sinLap(f32 v) {
if (v < 0.0f) {
return -table[(u16)(-8192.0f * v) & 0x1fff].first;
inline T sinLap(T v) {
if (v < (T)0.0) {
return -table[(u16)(-(T)(1 << N) * v) & ((1 << N) - 1)].first;
}
return table[(u16)(8192.0f * v) & 0x1fff].first;
return table[(u16)((T)(1 << N) * v) & ((1 << N) - 1)].first;
}
inline f32 sinDegree(f32 degree) {
if (degree < 0.0f) {
return -table[(u16)(-22.755556106567383f * degree) & 0x1fffU].first;
inline T sinDegree(T degree) {
if (degree < (T)0.0) {
return -table[(u16)(((T)(1 << N) / 360.0) * degree) & ((1 << N) - 1)].first;
}
return table[(u16)(22.755556106567383f * degree) & 0x1fffU].first;
return table[(u16)(((T)(1 << N) / 360.0) * degree) & ((1 << N) - 1)].first;
}
inline f32 cosDegree(f32 degree) {
if (degree < 0.0f) {
inline T cosDegree(T degree) {
if (degree < (T)0.0) {
degree = -degree;
}
return table[(u16)(22.755556106567383f * degree) & 0x1fffU].second;
return table[(u16)(((T)(1 << N) / 360.0) * degree) & ((1 << N) - 1)].second;
}
inline f32 sinRadian(f32 radian) {
if (radian < 0.0f) {
return -table[(u16)(-8192.0f / TAngleConstant_<f32>::RADIAN_DEG360() * radian) & 0x1fffU].first;
inline T sinRadian(T radian) {
if (radian < (T)0.0) {
return -table[(u16)(-(T)(1 << N) / TAngleConstant_<T>::RADIAN_DEG360() * radian) & ((1 << N) - 1)].first;
}
return table[(u16)(8192.0f / TAngleConstant_<f32>::RADIAN_DEG360() * radian) & 0x1fffU].first;
return table[(u16)((T)(1 << N) / TAngleConstant_<T>::RADIAN_DEG360() * radian) & ((1 << N) - 1)].first;
}
};
@@ -58,7 +59,7 @@ struct TAsinAcosTable {
};
namespace JMath {
extern TSinCosTable sincosTable_;
extern TSinCosTable<13, f32> sincosTable_;
extern TAtanTable atanTable_;
extern TAsinAcosTable asinAcosTable_;
}; // namespace JMath
+1 -1
View File
@@ -95,7 +95,7 @@ struct cXyz : Vec {
f32 getYDiff(const Vec* other) const { return y - other->y; }
f32 getZDiff(const Vec* other) const { return z - other->z; }
void setAll(f32 f) { set(f, f, f); }
void setall(f32 f) { set(f, f, f); }
void setMin(const cXyz& other) {
if (x > other.x) {
+34 -39
View File
@@ -10,22 +10,15 @@
#include "d/particle/d_particle_copoly.h"
#include "global.h"
struct bckGetParam {
/* 0x00 */ int bckIdx;
/* 0x04 */ int bckAttr;
/* 0x08 */ int arcIdx;
struct daNpc_GetParam1 { // name unknown
/* 0x0 */ int fileIdx;
/* 0x4 */ int arcIdx;
};
struct btpGetParam {
/* 0x00 */ int btpIdx;
/* 0x04 */ int btpAttr;
/* 0x08 */ int arcIdx;
};
struct btkGetParam {
/* 0x00 */ int btkIdx;
/* 0x04 */ int btkAttr;
/* 0x08 */ int arcIdx;
struct daNpc_GetParam2 { // name unknown
/* 0x0 */ int fileIdx;
/* 0x4 */ int attr;
/* 0x8 */ int arcIdx;
};
struct dPnt {};
@@ -216,7 +209,7 @@ public:
/* 0x56C */ daNpcT_motionAnmData_c* field_0x56c;
/* 0x570 */ daNpcT_evtData_c* field_0x570;
/* 0x574 */ char** field_0x574;
/* 0x578 */ mDoExt_McaMorfSO* mMcaMorfAnm[2];
/* 0x578 */ mDoExt_McaMorfSO* mpMorf[2];
/* 0x580 */ Z2Creature field_0x580;
/* 0x610 */ mDoExt_bckAnm mBckAnm;
/* 0x62C */ mDoExt_btpAnm mBtpAnm;
@@ -449,16 +442,16 @@ public:
class daNpcF_c : public fopAc_ac_c {
protected:
/* 0x568 */ mDoExt_McaMorfSO* mMcaMorf;
/* 0x568 */ mDoExt_McaMorfSO* mpMorf;
/* 0x56C */ mDoExt_bckAnm mBckAnm;
/* 0x588 */ mDoExt_btpAnm mBtpAnm;
/* 0x5A0 */ mDoExt_btkAnm mBtkAnm;
/* 0x5B8 */ mDoExt_brkAnm mBrkAnm;
/* 0x5D0 */ dBgS_ObjAcch mAcch;
/* 0x7A8 */ dCcD_Stts mStts;
/* 0x7A8 */ dCcD_Stts mCcStts;
/* 0x7E4 */ dBgS_AcchCir mAcchCir;
/* 0x824 */ daNpcF_ActorMngr_c field_0x824;
/* 0x82C */ daNpcF_ActorMngr_c field_0x82c[5];
/* 0x82C */ daNpcF_ActorMngr_c mAttnActor[5];
/* 0x854 */ cXyz mLookatPos[3];
/* 0x878 */ cXyz mLookPos;
/* 0x884 */ cXyz field_0x884;
@@ -472,17 +465,17 @@ protected:
/* 0x8E4 */ cXyz mHeadPos;
/* 0x8F0 */ csXyz field_0x8f0;
/* 0x8F6 */ csXyz field_0x8f6;
/* 0x8FC */ csXyz field_0x8fc;
/* 0x902 */ csXyz field_0x902;
/* 0x8FC */ csXyz mEyeAngle;
/* 0x902 */ csXyz mHeadAngle;
/* 0x908 */ csXyz field_0x908[3];
/* 0x91A */ csXyz field_0x91a[3];
/* 0x92C */ int mCutIndex;
/* 0x930 */ u32 field_0x930;
/* 0x934 */ int field_0x934; // index in 0x93c to not decrement timer (if 0x938 is nonzero)
/* 0x938 */ int field_0x938; // controls whether to use field 0x934
/* 0x93C */ int field_0x93c[5]; // timers for removing actors from 0x82c
/* 0x934 */ int mAttnIdx;
/* 0x938 */ int mAttnChangeTimer;
/* 0x93C */ int mAttnActorTimer[5];
/* 0x950 */ int field_0x950;
/* 0x954 */ int field_0x954; // a timer
/* 0x954 */ int field_0x954;
/* 0x958 */ int field_0x958;
/* 0x95C */ int field_0x95c;
/* 0x960 */ int field_0x960;
@@ -502,15 +495,15 @@ protected:
/* 0x998 */ u16 field_0x998;
/* 0x99C */ u32 mAnmFlags;
/* 0x9A0 */ u32 field_0x9a0;
/* 0x9A4 */ profile_method_class* field_0x9a4;
/* 0x9A8 */ int field_0x9a8[2];
/* 0x9A4 */ u32 field_0x9a4;
/* 0x9A8 */ u32 mHitodamaParticleKey[2];
/* 0x9B0 */ u32 field_0x9b0;
/* 0x9B4 */ int mFlowNodeNo;
/* 0x9B8 */ cXyz field_0x9b8;
/* 0x9C4 */ cXyz field_0x9c4;
/* 0x9D0 */ s16 field_0x9d0;
/* 0x9D2 */ s16 field_0x9d2;
/* 0x9D4 */ s16 field_0x9d4;
/* 0x9D4 */ s16 mEventIdx;
/* 0x9D6 */ s16 mExpressionPhase;
/* 0x9D8 */ s16 mExpressionPrevPhase;
/* 0x9DA */ s16 mMotionPhase;
@@ -523,16 +516,16 @@ protected:
/* 0x9E8 */ s8 field_0x9e8;
/* 0x9E9 */ u8 field_0x9e9;
/* 0x9EA */ u8 field_0x9ea;
/* 0x9EB */ u8 field_0x9eb;
/* 0x9EB */ bool field_0x9eb;
/* 0x9EC */ u8 field_0x9ec;
/* 0x9ED */ u8 field_0x9ed;
/* 0x9EE */ u8 field_0x9ee;
/* 0x9ED */ bool field_0x9ed;
/* 0x9EE */ bool field_0x9ee;
/* 0x9EF */ u8 field_0x9ef;
/* 0x9F0 */ u8 field_0x9f0;
/* 0x9F1 */ u8 field_0x9f1;
/* 0x9F2 */ bool mHide;
/* 0x9f3 */ u8 field_0x9f3;
/* 0x9F4 */ bool field_0x9f4; // controls whether setHitodamaPrtcl is called
/* 0x9F4 */ bool mTwilight;
/* 0x9F5 */ u8 field_0x9f5;
/* 0x9F6 */ u8 field_0x9f6;
/* 0x9F8 */ dMsgFlow_c mFlow;
@@ -572,8 +565,8 @@ public:
/* 80152014 */ BOOL execute();
/* 801522AC */ BOOL draw(int, int, f32, _GXColorS10*, int);
/* 80152614 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80152654 */ void srchAttnActor1(void*, void*);
/* 801526E8 */ void* srchActor(void*, void*);
/* 80152654 */ static void* srchAttnActor1(void*, void*);
/* 801526E8 */ static void* srchActor(void*, void*);
/* 801528C8 */ void initialize();
/* 80152B2C */ J3DAnmTransformKey* getTrnsfrmKeyAnmP(char*, int);
@@ -607,19 +600,19 @@ public:
/* 80153A78 */ BOOL chkActorInArea(fopAc_ac_c*, cXyz, cXyz, s16);
/* 80153BDC */ BOOL chkActorInAttnArea(fopAc_ac_c*, fopAc_ac_c*, int);
/* 80153D1C */ int initTalk(int, fopAc_ac_c**);
/* 80153D84 */ BOOL talkProc(int*, int, fopAc_ac_c**);
/* 80153D84 */ BOOL talkProc(int*, BOOL, fopAc_ac_c**);
/* 80153EF4 */ BOOL turn(s16, f32, int);
/* 801540A4 */ void step(s16, int, int, int);
/* 801540A4 */ BOOL step(s16, int, int, int);
/* 80154250 */ void setAngle(s16);
/* 80154278 */ u8 getDistTableIdx(int, int);
/* 801542A0 */ fopAc_ac_c* getEvtAreaTagP(int, int);
/* 8015436C */ fopAc_ac_c* getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16,
/* 8015436C */ fopAc_ac_c* getAttnActorP(int, fpcLyIt_JudgeFunc, f32, f32, f32, f32, s16,
int, int);
/* 80154730 */ BOOL chkActorInSight2(fopAc_ac_c*, f32, s16);
/* 80154834 */ BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
/* 801548F4 */ BOOL chkPointInArea(cXyz, cXyz, cXyz, s16);
/* 8015496C */ cXyz getAttentionPos(fopAc_ac_c*);
/* 801549E0 */ void chkFindPlayer2(int, s16);
/* 801549E0 */ BOOL chkFindPlayer2(int, s16);
/* 80154BD8 */ void setHitodamaPrtcl();
/* 80155BF4 */ virtual ~daNpcF_c();
@@ -651,7 +644,7 @@ public:
BOOL chkPlayerInTalkArea(fopAc_ac_c* i_actor) {
return chkActorInTalkArea(daPy_getPlayerActorClass(), i_actor);
}
BOOL checkHide() { return mHide || (field_0x9f4 && !dComIfGs_wolfeye_effect_check()); }
BOOL checkHide() { return mHide || (mTwilight && !dComIfGs_wolfeye_effect_check()); }
void setIntDemander(fopAc_ac_c* i_actor) { field_0x824.entry(i_actor); }
void setIntFlowNodeNo(int i_flowNodeNo) { mFlowNodeNo = i_flowNodeNo; }
void onInterrupt(u8 param_0) { field_0x9ef = param_0; }
@@ -744,7 +737,7 @@ private:
/* 0x568 */ void* vtable;
/* 0x56C */ dBgS_Acch field_0x56c;
/* 0x744 */ u8 field_0x744[16];
/* 0x754 */ mDoExt_McaMorfSO* mMcaMorfAnm[2];
/* 0x754 */ mDoExt_McaMorfSO* mpMorf[2];
/* 0x758 */ Z2Creature mCreature;
/* 0x7EC */ mDoExt_bckAnm mBckAnm;
/* 0x808 */ mDoExt_btpAnm mBtpAnm;
@@ -855,6 +848,7 @@ public:
void setNowOffsetX(float i_nowOffsetX) { mNowOffsetX = i_nowOffsetX; }
void setNowOffsetY(float i_nowOffsetY) { mNowOffsetY = i_nowOffsetY; }
void onEyeMoveFlag() { mEyeMoveFlag = 1; }
void offEyeMoveFlag() { mEyeMoveFlag = 0; }
};
class daNpcF_SPCurve_c {
@@ -934,6 +928,7 @@ public:
/* 80151B68 */ void calcMoveDisAngle(int, cXyz*, csXyz*, cXyz, int, int);
/* 80151F54 */ void setRotAngle();
/* 80151FE0 */ void clrRotAngle();
daNpcF_Lookat_c() { initialize(); }
virtual ~daNpcF_Lookat_c() {}
cXyz* getAttnPos() { return mAttnPos; }
void setAttnPos(cXyz* i_attnPos) { mAttnPos = i_attnPos; }
+1
View File
@@ -162,6 +162,7 @@ public:
int getSelectNum() { return query005(NULL, NULL, 0); }
s16 getChoiceNo() { return mChoiceNo; }
void setMsg(u32 msg) { mMsg = msg; }
bool checkEndFlow() { return field_0x26 == 1; }
static queryFunc mQueryList[53];
static eventFunc mEventList[43];
+3 -5
View File
@@ -112,11 +112,9 @@ public:
/* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*);
/* 8023800C */ static void readMessageGroup(mDoDvdThd_mountXArchive_c**);
/* 8023803C */ static void changeFlowGroup(s32);
/* 8023806C */ void demoMessageGroup();
/* 8023806C */ static void demoMessageGroup();
/* 80238098 */ static void endFlowGroup();
/* 802380C4 */ static void changeGroup(s16);
/* 8023806C */ static void demoMessageGroup();
/* 80238098 */ void endFlowGroup();
/* 802380F4 */ static bool getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
char*, char*, char*, s16*);
/* 80238174 */ static u8* getMsgDtPtr();
@@ -129,8 +127,8 @@ public:
/* 8023822C */ static u16 getStatus();
/* 80238258 */ static dMsgScrnBase_c* getScrnDrawPtr();
/* 8023826C */ static void setTalkActor(fopAc_ac_c*);
/* 8023829C */ void onMsgSendControl();
/* 802382C8 */ void offMsgSendControl();
/* 8023829C */ static void onMsgSendControl();
/* 802382C8 */ static void offMsgSendControl();
/* 802382F4 */ static int isMsgSendControl();
/* 80238320 */ static void onMsgSend();
/* 8023834C */ void offMsgSend();
@@ -94,7 +94,7 @@ public:
/* 0x04 */ f32 mGravity;
/* 0x08 */ f32 m08;
/* 0x0C */ f32 mShadow;
/* 0x10 */ f32 mSttsWeight;
/* 0x10 */ f32 mCcSttsWeight;
/* 0x14 */ f32 m14;
/* 0x18 */ f32 m18;
/* 0x1C */ f32 m1C;
+181 -1
View File
@@ -1,6 +1,186 @@
#ifndef D_A_NPC_THE_H
#define D_A_NPC_THE_H
#include "dolphin/types.h"
#include "d/a/d_a_npc.h"
#include "f_op/f_op_actor_mng.h"
// #define NONMATCHING
class daNpcThe_c : public daNpcF_c {
public:
typedef BOOL (daNpcThe_c::*ActionFn)(void*);
typedef BOOL (daNpcThe_c::*EventFn)(int);
/* 80AF76CC */ daNpcThe_c();
/* 80AF78E0 */ ~daNpcThe_c();
/* inline */ inline BOOL CreateHeap();
/* 80AF7AE0 */ BOOL ctrlJoint(J3DJoint*, J3DModel*);
/* 80AF7CB0 */ static BOOL createHeapCallBack(fopAc_ac_c*);
/* 80AF8114 */ static BOOL ctrlJointCallBack(J3DJoint*, int);
/* 80AF8160 */ bool setExpressionAnm(int, bool);
/* 80AF841C */ bool setExpressionBtp(int);
/* 80AF8564 */ void setMotionAnm(int, f32);
/* 80AF8744 */ BOOL wait(void*);
/* 80AF8B0C */ void setMotion(int, f32, int);
/* 80AF8B50 */ void setExpression(int, f32);
/* 80AF8B7C */ BOOL waitTW(void*);
/* 80AF8CC4 */ BOOL talk(void*);
/* 80AF912C */ BOOL test(void*);
/* 80AF923C */ BOOL EvCut_TwResistance(int);
/* 80AF9244 */ BOOL EvCut_Introduction(int);
/* 80AF9358 */ cPhs__Step create();
/* 80AF9748 */ void reset();
/* inline */ inline int Draw();
/* 80AF99F4 */ void setParam();
/* 80AF9CF0 */ BOOL main();
/* 80AF9F94 */ void playMotion();
/* 80AFA338 */ void playExpression();
/* inline */ inline void setExpressionTalkAfter();
/* 80AFA6CC */ BOOL doEvent();
/* 80AFADEC */ BOOL ctrlBtk();
/* 80AFAEC8 */ void setAttnPos();
/* 80AFB1C4 */ void lookat();
/* 80AFB488 */ BOOL drawDbgInfo();
/* 80AFBD9C */ void adjustShapeAngle();
u8 getTypeFromParam() {
switch (fopAcM_GetParam(this) & 0xff) {
case 0:
return 0;
case 1:
return 1;
case 2:
return 2;
default:
return 0;
}
}
bool isDelete() {
if (mType == 0 || mType == 1 || mType == 2) {
return false;
} else {
return true;
}
}
void setLookMode(int i_lookMode) {
if (i_lookMode >= 0 && i_lookMode < 6 && i_lookMode != mLookMode) {
mLookMode = i_lookMode;
}
}
bool isSneaking() {
if (!strcmp(dComIfGp_getStartStageName(), "R_SP116") && dComIfGp_getStartStageRoomNo() == 5
&& dComIfG_play_c::getLayerNo(0) == 2) {
return true;
}
return false;
}
bool chkAction(ActionFn action) {
return mpActionFn == action;
}
BOOL setAction(ActionFn action) {
if (mpActionFn != NULL) {
mState = 3;
(this->*mpActionFn)(NULL);
}
if (action != NULL) {
mpActionFn = action;
mState = 0;
(this->*mpActionFn)(NULL);
}
return true;
}
void doNormalAction() {
mOrderEvtNo = 0;
if (mpNextActionFn != NULL) {
if (mpNextActionFn == mpActionFn) {
(this->*mpActionFn)(NULL);
} else {
ActionFn action = mpNextActionFn;
setAction(action);
}
}
}
/* 0xB48 */ Z2Creature mSound;
/* 0xBD8 */ daNpcF_MatAnm_c* mpMatAnm;
/* 0xBDC */ daNpcF_Lookat_c mLookat;
/* 0xC78 */ daNpcF_ActorMngr_c mActorMngr[3];
/* 0xC90 */ u8 field_0xc90[4];
/* 0xC94 */ dCcD_Cyl mColCyl;
/* 0xDD0 */ ActionFn mpNextActionFn;
/* 0xDDC */ ActionFn mpActionFn;
/* 0xDE8 */ request_of_phase_process_class mPhase[2];
/* 0xDF8 */ u8 field_0xdf8[8];
/* 0xE00 */ u32 mItemID;
/* 0xE04 */ u32 field_0xe04;
/* 0xE08 */ u32 field_0xe08;
/* 0xE0C */ u32 field_0xe0c;
/* 0xE10 */ u32 field_0xe10;
/* 0xE14 */ int mFlowID;
/* 0xE18 */ s16 mLookMode;
/* 0xE1A */ u16 mState;
/* 0xE1C */ bool field_0xe1c;
/* 0xE1D */ bool field_0xe1d;
/* 0xE1E */ u8 mType;
static char* mEvtCutNameList[4];
#ifdef NONMATCHING
static EventFn mEvtCutList[4];
#else
static u8 mEvtCutList[48];
#endif
};
STATIC_ASSERT(sizeof(daNpcThe_c) == 0xE20);
class daNpcThe_Param_c {
public:
struct param {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 mGravity;
/* 0x08 */ f32 mScale;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 mCylH;
/* 0x18 */ f32 mWallH;
/* 0x1C */ f32 mWallR;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ f32 mLookatScl;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 field_0x62;
/* 0x64 */ s16 mTestExpression;
/* 0x66 */ s16 mTestMotion;
/* 0x68 */ s16 mTestLookMode;
/* 0x6A */ bool mTest;
};
/* 80AFBDA0 */ virtual ~daNpcThe_Param_c();
static daNpcThe_Param_c::param const m;
};
STATIC_ASSERT(sizeof(daNpcThe_Param_c::param) == 0x6C);
#endif /* D_A_NPC_THE_H */
@@ -18,7 +18,16 @@ public:
}
/* 8048CD68 */ virtual ~daTag_EvtArea_c() {}
inline s32 getType();
inline s32 getType() {
u8 type = (u8)shape_angle.z;
return type == 0xff ? 0 : type;
}
inline s32 getNo() {
u16 no = (shape_angle.z & 0xff00) >> 8;
return no == 0xff ? 0 : no;
}
inline u32 getOnEvtBit();
inline u32 getOffEvtBit();
inline u8 getBitSW();