diff --git a/include/d/actor/d_a_formation_mng.h b/include/d/actor/d_a_formation_mng.h index 648ee4ffd82..0758f046078 100644 --- a/include/d/actor/d_a_formation_mng.h +++ b/include/d/actor/d_a_formation_mng.h @@ -13,7 +13,7 @@ struct daFmtMng_Path_c { bool isPathClose() { return dPath_ChkClose(mPath); } s8 getArg0() { return mPath->m_points[field_0x4].mArg0; } - s8 getArg1() { return mPath->m_points[field_0x4].field_0x0; } + s8 getArg1() { return mPath->m_points[field_0x4].mArg1; } void chgDir() { int dir; diff --git a/include/d/actor/d_a_npc_cd2.h b/include/d/actor/d_a_npc_cd2.h index 58dd227d9fe..116e6b72c62 100644 --- a/include/d/actor/d_a_npc_cd2.h +++ b/include/d/actor/d_a_npc_cd2.h @@ -2,6 +2,7 @@ #define A_NPC_D_A_NPC_CD2_H #include "Z2AudioLib/Z2Creature.h" +#include "d/actor/d_a_tag_escape.h" #include "d/d_npc_lib.h" #include "d/d_path.h" #include "dolphin/types.h" @@ -13,9 +14,319 @@ enum { JntW_NUM_e = 0x15, }; + +enum AnmNum { + CD2_ANM_0 = 0, + CD2_ANM_14 = 14, +}; + +struct daNpcCd2_HIO_Jnt_c +#ifdef DEBUG +: public JORReflexible +#endif +{ + /* 8015A6E8 */ virtual ~daNpcCd2_HIO_Jnt_c() {} + /* 8015A788 */ daNpcCd2_HIO_Jnt_c(); + + void genMessage(JORMContext*); + + /* 0x04 */ f32 field_0x04[3]; + /* 0x10 */ s16 field_0x10[3]; +}; + +struct daNpcCd2_HIO_MChild_c { + /* 8015A798 */ virtual ~daNpcCd2_HIO_MChild_c() {} + /* 8015A808 */ daNpcCd2_HIO_MChild_c(); + + /* 0x004 */ daNpcCd2_HIO_Jnt_c field_0x004[19]; + /* 0x1CE */ s16 mMaxLmtY_BACKBONE; + /* 0x1CA */ s16 mMaxLmtX_BACKBONE; + /* 0x1CC */ s16 mMinLmtY_BACKBONE; + /* 0x1CE */ s16 mMinLmtX_BACKBONE; + /* 0x1D0 */ s16 mMaxLmtY_NECK; + /* 0x1D2 */ s16 mMaxLmtX_NECK; + /* 0x1D4 */ s16 mMinLmtY_NECK; + /* 0x1D6 */ s16 mMinLmtX_NECK; + /* 0x1D0 */ s16 mMaxLmtY_HEAD; + /* 0x1D2 */ s16 mMaxLmtX_HEAD; + /* 0x1D4 */ s16 mMinLmtY_HEAD; + /* 0x1D6 */ s16 mMinLmtX_HEAD; + /* 0x1E0 */ f32 mScale; + /* 0x1E4 */ s16 mAttn; + /* 0x1E8 */ f32 mAnmPlaySpeed; + /* 0x1EC */ f32 mWalkAnmPlaySpeed; + /* 0x1F0 */ f32 mMaxSpeed; + /* 0x1F4 */ f32 mWalkMaxSpeed; + /* 0x1F8 */ f32 mCylH; + /* 0x1FC */ f32 mCylR; + /* 0x200 */ f32 mChkWallH; + /* 0x204 */ f32 mChkWallR; +}; + +struct daNpcCd2_HIO_WChild_c { + /* 8015A678 */ virtual ~daNpcCd2_HIO_WChild_c() {} + /* 8015A730 */ daNpcCd2_HIO_WChild_c(); + + /* 0x004 */ daNpcCd2_HIO_Jnt_c field_0x004[21]; + /* 0x1FE */ s16 mMaxLmtY_BACKBONE; + /* 0x1FA */ s16 mMaxLmtX_BACKBONE; + /* 0x1FC */ s16 mMinLmtY_BACKBONE; + /* 0x1FE */ s16 mMinLmtX_BACKBONE; + /* 0x200 */ s16 mMaxLmtY_NECK; + /* 0x202 */ s16 mMaxLmtX_NECK; + /* 0x204 */ s16 mMinLmtY_NECK; + /* 0x206 */ s16 mMinLmtX_NECK; + /* 0x200 */ s16 mMaxLmtY_HEAD; + /* 0x202 */ s16 mMaxLmtX_HEAD; + /* 0x204 */ s16 mMinLmtY_HEAD; + /* 0x206 */ s16 mMinLmtX_HEAD; + /* 0x218 */ f32 mScale; + /* 0x21C */ s16 mAttn; + /* 0x220 */ f32 mAnmPlaySpeed; + /* 0x224 */ f32 mWalkAnmPlaySpeed; + /* 0x228 */ f32 mMaxSpeed; + /* 0x22C */ f32 mWalkMaxSpeed; + /* 0x230 */ f32 mCylH; + /* 0x234 */ f32 mCylR; + /* 0x238 */ f32 mChkWallH; + /* 0x23C */ f32 mChkWallR; +}; + +struct daNpcCd2_HIO_c : public fOpAcm_HIO_entry_c { + /* 8015A4D8 */ daNpcCd2_HIO_c(); + /* 8015A860 */ virtual ~daNpcCd2_HIO_c() {} + + void genMessage(JORMContext*); + + /* 0x0004 */ daNpcCd2_HIO_MChild_c field_0x0004[16]; + /* 0x20C4 */ daNpcCd2_HIO_WChild_c field_0x20c4[14]; +}; + +extern daNpcCd2_HIO_c l_Cd2_HIO; + +inline s16 Cd2_HIO_atnOfs(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mAttn; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mAttn; + } + return rv; +} + +inline f32 Cd2_HIO_objScale(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mScale; + } else { + return l_Cd2_HIO.field_0x20c4[param_1 - 16].mScale; + } + return rv; +} + +inline f32 Cd2_HIO_walkMaxSpeed(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mWalkMaxSpeed; + } else { + return l_Cd2_HIO.field_0x20c4[param_1 - 16].mWalkMaxSpeed; + } + return rv; +} + +inline f32 Cd2_HIO_walkAnmPlaySpeed(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mWalkAnmPlaySpeed; + } else { + return l_Cd2_HIO.field_0x20c4[param_1 - 16].mWalkAnmPlaySpeed; + } + return rv; +} + +inline f32 Cd2_HIO_maxSpeed(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMaxSpeed; + } else { + return l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxSpeed; + } + return rv; +} + +inline f32 Cd2_HIO_anmPlaySpeed(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mAnmPlaySpeed; + } else { + return l_Cd2_HIO.field_0x20c4[param_1 - 16].mAnmPlaySpeed; + } + return rv; +} + +inline f32 Cd2_HIO_chkWallH(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mChkWallH; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mChkWallH; + } + return rv; +} + +inline f32 Cd2_HIO_chkWallR(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mChkWallR; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mChkWallR; + } + return rv; +} + +inline f32 Cd2_HIO_cylR(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mCylR; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mCylR; + } + return rv; +} + +inline f32 Cd2_HIO_cylH(int param_1) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mCylH; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mCylH; + } + return rv; +} + +inline int Cd2_HIO_maxLmtX_BACKBONE(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_BACKBONE; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_BACKBONE; + } + return rv; +} + +inline int Cd2_HIO_maxLmtY_BACKBONE(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_BACKBONE; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_BACKBONE; + } + return rv; +} + +inline int Cd2_HIO_maxLmtX_NECK(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_NECK; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_NECK; + } + return rv; +} + +inline int Cd2_HIO_maxLmtY_NECK(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_NECK; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_NECK; + } + return rv; +} + +inline int Cd2_HIO_maxLmtX_HEAD(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_HEAD; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_HEAD; + } + return rv; +} + +inline int Cd2_HIO_maxLmtY_HEAD(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_HEAD; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_HEAD; + } + return rv; +} + +inline int Cd2_HIO_minLmtX_BACKBONE(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_BACKBONE; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_BACKBONE; + } + return rv; +} + +inline int Cd2_HIO_minLmtY_BACKBONE(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_BACKBONE; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_BACKBONE; + } + return rv; +} + +inline int Cd2_HIO_minLmtX_NECK(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_NECK; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_NECK; + } + return rv; +} + +inline int Cd2_HIO_minLmtY_NECK(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_NECK; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_NECK; + } + return rv; +} + +inline int Cd2_HIO_minLmtX_HEAD(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_HEAD; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_HEAD; + } + return rv; +} + +inline int Cd2_HIO_minLmtY_HEAD(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_HEAD; + } else { + rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_HEAD; + } + return rv; +} + class PathTrace_c { public: - /* 80159A38 */ BOOL setPath(int, int, int, cXyz*, bool); + /* 80159A38 */ bool setPath(int, int, int, cXyz*, bool); /* 80159C14 */ bool checkPoint(cXyz, f32); /* 80159DC0 */ bool checkPathEnd(cXyz, f32); /* 80159E54 */ void getTargetPoint(Vec*); @@ -29,6 +340,20 @@ public: void getAvoidPoint(Vec* avoidPoint) { *avoidPoint = mAvoidPoint; } BOOL isClose() { return dPath_ChkClose(mPath); } + bool isPath() { return mPath != NULL; } + s8 getArg0() { return mPath->m_points[field_0x20].mArg0; } + s8 getArg1() { return mPath->m_points[field_0x20].mArg1; } + Vec getPoint(int index) { return mPath->m_points[index].m_position; } + void setLastPointNum() { field_0x20 = mPath->m_num - 1; } + u16 getLastPointNum() { + u32 rv; + if (field_0x24 == 1) { + rv = mPath->m_num - 1; + } else { + return 0; + } + return rv; + } /* 0x00 */ fopAc_ac_c* mMyself; /* 0x04 */ fopAc_ac_c* mObstacle; @@ -46,7 +371,7 @@ public: /* 80157F28 */ J3DModel* ObjCreate(int); /* 80157F68 */ J3DModel* ChairCreate(f32); /* 801580A8 */ bool isM_(); - /* 801580F0 */ void* getAnmP(int, int); + /* 801580F0 */ J3DAnmTransform* getAnmP(int, int); /* 80158420 */ int setAttention(int); /* 80158BB8 */ int loadResrc(int, int); /* 80158CBC */ int removeResrc(int, int); @@ -59,14 +384,14 @@ public: /* 801590FC */ int drawNpc(); /* 80159258 */ int jntNodeCB(J3DJoint*, J3DModel*); /* 80159550 */ void setHitodamaParticle(); - /* 801597C0 */ void* getEscapeTag(); + /* 801597C0 */ daTagEscape_c* getEscapeTag(); /* 80159818 */ bool checkFearSituation(); /* 801598E8 */ J3DModelData* getNpcMdlDataP(int); /* 8015994C */ J3DModelData* getObjMdlDataP(int); /* 801599C4 */ J3DAnmTexPattern* getTexAnmP(int); - /* 8097F030 */ virtual ~daNpcCd2_c(); + /* 8097F030 */ virtual ~daNpcCd2_c() {} - static u8 const m_cylDat[68]; + static dCcD_SrcCyl const m_cylDat; /* 0x56C */ request_of_phase_process_class mPhase1; /* 0x574 */ request_of_phase_process_class mPhase2; @@ -75,24 +400,24 @@ public: /* 0x58C */ mDoExt_McaMorfSO* mpMorf; /* 0x590 */ mDoExt_btpAnm* mpBtpAnm; /* 0x594 */ Z2CreatureCitizen mCitizen; - /* 0x638 */ dBgS_Acch mAcch; + /* 0x638 */ dBgS_ObjAcch mAcch; /* 0x810 */ dBgS_AcchCir mAcchCir; /* 0x850 */ dCcD_Stts mStts; /* 0x88C */ dCcD_Cyl mCyl; /* 0x9C8 */ dNpcLib_lookat_c mLookat; /* 0xA98 */ int m_type; - /* 0xA9C */ u8 field_0xa9c[0xAA0 - 0xA9C]; + /* 0xA9C */ int field_0xa9c; /* 0xAA4 */ int field_0xaa0; /* 0xAA4 */ int field_0xaa4; /* 0xAA8 */ int mHitodamaEmitters[2]; - /* 0xAB0 */ int field_0xab0; + /* 0xAB0 */ daTagEscape_c* mEscapeTag; /* 0xAB4 */ f32 field_0xab4; /* 0xAB8 */ f32 field_0xab8; /* 0xABC */ f32 field_0xabc; /* 0xAC0 */ s16 field_0xac0; /* 0xAC2 */ s16 field_0xac2; /* 0xAC4 */ s16 field_0xac4; - /* 0xAC6 */ bool field_0xac6; + /* 0xAC6 */ bool mIsDarkWorld; }; #endif /* A_NPC_D_A_NPC_CD2_H */ diff --git a/include/d/actor/d_a_npc_cdn3.h b/include/d/actor/d_a_npc_cdn3.h index e2c24200e3e..d263de516be 100644 --- a/include/d/actor/d_a_npc_cdn3.h +++ b/include/d/actor/d_a_npc_cdn3.h @@ -1,6 +1,7 @@ #ifndef D_A_NPC_CDN3_H #define D_A_NPC_CDN3_H +#include "d/actor/d_a_npc.h" #include "d/actor/d_a_npc_cd2.h" #include "d/actor/d_a_tag_schedule.h" @@ -15,8 +16,19 @@ class daNpcCdn3_c : public daNpcCd2_c { public: typedef void (daNpcCdn3_c::*actionFunc)(); + typedef int (daNpcCdn3_c::*seqFunc)(void*); - struct Mode_e {}; + enum Mode_e { + MODE_WAIT, + MODE_PATH, + MODE_TALK, + MODE_ESCAPSE, + MODE_FEAR, + MODE_FEAR2, + MODE_FIGHT, + MODE_RELIEF, + MODE_MAX_e, + }; /* 80978DD4 */ void setAction(daNpcCdn3_c::Mode_e); /* 80978E18 */ void callInit(); @@ -39,103 +51,354 @@ public: /* 8097A9E4 */ void executeRelief(); /* 8097ABDC */ void setAngle(); /* 8097ABE8 */ void pathMoveF(); - /* 8097AF14 */ void ctrlMsgAnm(); - /* 8097B04C */ void searchNextScheduleTagSub(fopAc_ac_c*); - /* 8097B194 */ void searchFirstScheduleTagSub(fopAc_ac_c*); + /* 8097AF14 */ int ctrlMsgAnm(); + /* 8097B04C */ bool searchNextScheduleTagSub(fopAc_ac_c*); + /* 8097B194 */ bool searchFirstScheduleTagSub(fopAc_ac_c*); /* 8097B288 */ void checkSchedule(); /* 8097B38C */ void setSchedule(daTagSchedule_c*); - /* 8097B5A8 */ void isInShop(); - /* 8097B60C */ void isChairStyle(); - /* 8097B684 */ void isNoTurnTalk(); - /* 8097B6D0 */ void waita(void*); - /* 8097B754 */ void talka(void*); - /* 8097B7D8 */ void waitwall(void*); - /* 8097B85C */ void talkwall(void*); - /* 8097B8E0 */ void talkbwall(void*); - /* 8097B964 */ void talkb(void*); - /* 8097B9E8 */ void talkc(void*); - /* 8097BA6C */ void waitb(void*); - /* 8097BAF0 */ void sitwaita(void*); - /* 8097BB74 */ void sittalka(void*); - /* 8097BBF8 */ void sittalkab(void*); - /* 8097BC7C */ void sitwaitb(void*); - /* 8097BD00 */ void sittalkb(void*); - /* 8097BD84 */ void sittalkbb(void*); - /* 8097BE08 */ void looka(void*); - /* 8097BE8C */ void lookb(void*); - /* 8097BF10 */ void playm(void*); - /* 8097C070 */ void turnr(void*); - /* 8097C12C */ void turnl(void*); - /* 8097C1E8 */ void walka(void*); - /* 8097C250 */ void walkb(void*); - /* 8097C2B8 */ void runa(void*); - /* 8097C320 */ void runb(void*); - /* 8097C388 */ void browsea(void*); - /* 8097C40C */ void browseb(void*); - /* 8097C490 */ void dance(void*); - /* 8097C5B0 */ void ladytalka(void*); - /* 8097C634 */ void ladytalkb(void*); - /* 8097C6B8 */ void normtalka(void*); - /* 8097C73C */ void normtalkb(void*); - /* 8097C7C0 */ void sellme(void*); - /* 8097C844 */ void sing(void*); - /* 8097C910 */ void create(); + /* 8097B5A8 */ inline bool isInShop(); + /* 8097B60C */ bool isChairStyle(); + /* 8097B684 */ bool isNoTurnTalk(); + /* 8097B6D0 */ int waita(void*); + /* 8097B754 */ int talka(void*); + /* 8097B7D8 */ int waitwall(void*); + /* 8097B85C */ int talkwall(void*); + /* 8097B8E0 */ int talkbwall(void*); + /* 8097B964 */ int talkb(void*); + /* 8097B9E8 */ int talkc(void*); + /* 8097BA6C */ int waitb(void*); + /* 8097BAF0 */ int sitwaita(void*); + /* 8097BB74 */ int sittalka(void*); + /* 8097BBF8 */ int sittalkab(void*); + /* 8097BC7C */ int sitwaitb(void*); + /* 8097BD00 */ int sittalkb(void*); + /* 8097BD84 */ int sittalkbb(void*); + /* 8097BE08 */ int looka(void*); + /* 8097BE8C */ int lookb(void*); + /* 8097BF10 */ int playm(void*); + /* 8097C070 */ int turnr(void*); + /* 8097C12C */ int turnl(void*); + /* 8097C1E8 */ int walka(void*); + /* 8097C250 */ int walkb(void*); + /* 8097C2B8 */ int runa(void*); + /* 8097C320 */ int runb(void*); + /* 8097C388 */ int browsea(void*); + /* 8097C40C */ int browseb(void*); + /* 8097C490 */ int dance(void*); + /* 8097C5B0 */ int ladytalka(void*); + /* 8097C634 */ int ladytalkb(void*); + /* 8097C6B8 */ int normtalka(void*); + /* 8097C73C */ int normtalkb(void*); + /* 8097C7C0 */ int sellme(void*); + /* 8097C844 */ int sing(void*); + /* 8097C910 */ int create(); /* 8097CC58 */ void create_init(); /* 8097D078 */ void setMtx(); /* 8097D120 */ void lookat(); - /* 8097D684 */ ~daNpcCdn3_c(); - /* 8097D748 */ void execute(); + /* 8097D684 */ virtual ~daNpcCdn3_c(); + /* 8097D748 */ int execute(); /* 8097DABC */ void checkTimeSchedule(); - static actionFunc ActionTable[16]; - static void* m_funcTbl[44]; - static u8 m_seq00_funcTbl[24]; - static u8 m_seq01_funcTbl[24]; - static u8 m_seq02_funcTbl[24]; - static u8 m_seq03_funcTbl[24]; - static u8 m_seq04_funcTbl[24]; - static u8 m_seq05_funcTbl[48]; - static u8 m_seq06_funcTbl[48]; - static u8 m_seq07_funcTbl[24]; - static u8 m_seq08_funcTbl[84]; - static u8 m_seq09_funcTbl[24]; - static u8 m_seq10_funcTbl[24]; - static u8 m_seq11_funcTbl[72]; - static u8 m_seq12_funcTbl[24]; - static u8 m_seq13_funcTbl[72]; - static u8 m_seq14_funcTbl[24]; - static u8 m_seq15_funcTbl[24]; - static u8 m_seq16_funcTbl[84]; - static u8 m_seq17_funcTbl[24]; - static u8 m_seq18_funcTbl[24]; - static u8 m_seq19_funcTbl[84]; - static u8 m_seq20_funcTbl[24]; - static u8 m_seq21_funcTbl[24]; - static u8 m_seq22_funcTbl[48]; - static u8 m_seq23_funcTbl[84]; - static u8 m_seq24_funcTbl[60]; - static u8 m_seq25_funcTbl[84]; - static u8 m_seq26_funcTbl[36]; - static u8 m_seq27_funcTbl[24]; - static u8 m_seq28_funcTbl[36]; - static u8 m_seq29_funcTbl[36]; - static u8 m_seq30_funcTbl[72]; - static u8 m_seq31_funcTbl[72]; - static u8 m_seq32_funcTbl[84]; - static u8 m_seq33_funcTbl[84]; - static u8 m_seq34_funcTbl[108]; - static u8 m_seq35_funcTbl[24]; - static u8 m_seq36_funcTbl[48]; - static u8 m_seq37_funcTbl[24]; - static u8 m_seq38_funcTbl[24]; - static u8 m_seq39_funcTbl[24]; - static u8 m_seq40_funcTbl[36]; - static u8 m_seq41_funcTbl[24]; - static u8 m_seq42_funcTbl[24]; - static u8 m_seq43_funcTbl[36]; + inline int draw(); -private: - /* 0x568 */ u8 field_0x568[0xb9c - 0xAC8]; + int getTimeHour() { + if (mIsDarkWorld) { + return dKy_getDarktime_hour(); + } + return dKy_getdaytime_hour(); + } + + int getTimeMinute() { + if (mIsDarkWorld) { + return dKy_getDarktime_minute(); + } + return dKy_getdaytime_minute(); + } + + int getTime() { + return getTimeHour() * 60 + getTimeMinute(); + } + + int getDayOfWeek() { + if (mIsDarkWorld) { + return dKy_getDarktime_week(); + } else { + return dKy_get_dayofweek(); + } + } + + void setSpeed(f32* param_1, f32 param_2, f32 param_3, int param_4) { + f32 target = field_0xb5c * (param_3 * field_0xb5c); + f32 step = field_0xb5c * (param_2 * field_0xb5c); + if (param_3 < target) { + target = param_3; + } + cLib_chaseF(param_1, target, step); + } + + int getGroupID() { return fopAcM_GetParam(this) & 0xff; } + u8 getPathID() { return fopAcM_GetParam(this) >> 24; } + int isStop() { return TRUE; } + int getType() { return subtype & 0x7f; } + int getSeqNum() { return shape_angle.x & 0x3f; } + int getFlowNodeNum() { return shape_angle.z; } + u16 getStartTime() { return (fopAcM_GetParam(this) >> 8) & 0xff; } + u16 getEndTime() { return (fopAcM_GetParam(this) >> 16) & 0xff; } + + void initParamTime() { + u16 startTime = getStartTime(); + u16 endTime = getEndTime(); + if (startTime != 0xff && endTime != 0xff) { + u32 x = (u16)(startTime / 10); + u32 y = startTime % 10; + field_0xb8e = ((u16)(y * 10) + (x * 60)); + u32 x2 = (u16)(endTime / 10); + u32 y2 = endTime % 10; + field_0xb8e = ((u16)(y2 * 10) + (x2 * 60)); + field_0xb96 = 0; + } else { + field_0xb96 = 1; + } + field_0xb90 = 30; + } + + void initTimeSchedule() { + if (getGroupID() == 0xff) { + initParamTime(); + if (field_0xb96 == 0) { + int iVar1 = getTime(); + if (field_0xb8c > iVar1 || field_0xb8e <= iVar1) + { + field_0xb95 = 1; + } + } + } else { + mTagSched = NULL; + field_0xb88 = NULL; + } + } + + int getObjNum() { + u8 uVar3 = (shape_angle.x >> 6) & 0xf; + int rv; + if (isM_()) { + switch (uVar3) { + case 0: + rv = 0; + break; + case 1: + rv = 1; + break; + case 2: + rv = 2; + break; + case 3: + rv = 4; + break; + case 4: + rv = 6; + break; + case 5: + rv = 0; + break; + case 6: + rv = 0; + break; + case 7: + rv = 9; + break; + default: + rv = 0; + break; + } + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && rv == 9) { + rv = 0xb; + } + } else { + switch (uVar3) { + case 0: + rv = 0; + break; + case 1: + rv = 8; + break; + case 2: + rv = 3; + break; + case 3: + rv = 5; + break; + case 4: + rv = 7; + break; + case 5: + rv = 0; + break; + case 6: + rv = 0; + break; + case 7: + rv = 10; + break; + default: + rv = 0; + break; + } + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && rv == 10) { + rv = 12; + } + } + return rv; + } + + void initCollision() { + mStts.Init(0xd9, 0xff, this); + mStts.SetRoomId(fopAcM_GetRoomNo(this)); + mCyl.SetStts(&mStts); + mCyl.Set(m_cylDat); + mCyl.SetR(Cd2_HIO_cylR(m_type)); + mCyl.SetH(Cd2_HIO_cylH(m_type)); + } + + void setCollision() { + #ifdef DEBUG + mCyl.SetR(Cd2_HIO_cylR(m_type)); + mCyl.SetH(Cd2_HIO_cylH(m_type)); + #endif + mCyl.SetC(current.pos); + if (!fopAcM_CheckCondition(this, 4)) { + dComIfG_Ccsp()->Set(&mCyl); + } + } + + bool isOrchestra() { + if (strcmp(dComIfGp_getStartStageName(), "F_SP116") != 0) { + return 0; + } else { + if (mSeqNum == 17 && + (getType() == 4 || getType() == 5 || getType() == 6 || getType() == 16)) + { + return 1; + } else if (mSeqNum == 37 && getType() == 7) { + return 1; + } else { + return 0; + } + } + } + + int chkEvent() { + attention_info.flags = 0; + if (mFlowNodeNum > 0) { + attention_info.flags = 0xa; + } + if (mIsDarkWorld) { + if (daPy_py_c::checkNowWolfEyeUp()) { + attention_info.flags |= 0xc00000; + } else { + attention_info.flags = 0; + } + } + if (dComIfGp_event_runCheck()) { + if (eventInfo.checkCommandDemoAccrpt()) { + return 1; + } + if (eventInfo.checkCommandTalk() && mMode != MODE_TALK) { + setAction(MODE_TALK); + return 1; + } + } + return 0; + } + + int orderEvent() { + if ((!mIsDarkWorld || daPy_py_c::checkNowWolfEyeUp()) && mFlowNodeNum > 0 && ((attention_info.flags & 8) || (attention_info.flags & 2))) { + eventInfo.onCondition(dEvtCnd_CANTALK_e); + } + return 1; + } + + inline bool searchFirstScheduleTag(fopAc_ac_c* param_1); + inline bool searchNextScheduleTag(); + + static actionFunc ActionTable[8][2]; + static seqFunc* m_funcTbl[44]; + static seqFunc m_seq00_funcTbl[2]; + static seqFunc m_seq01_funcTbl[2]; + static seqFunc m_seq02_funcTbl[2]; + static seqFunc m_seq03_funcTbl[2]; + static seqFunc m_seq04_funcTbl[2]; + static seqFunc m_seq05_funcTbl[4]; + static seqFunc m_seq06_funcTbl[4]; + static seqFunc m_seq07_funcTbl[2]; + static seqFunc m_seq08_funcTbl[7]; + static seqFunc m_seq09_funcTbl[2]; + static seqFunc m_seq10_funcTbl[2]; + static seqFunc m_seq11_funcTbl[6]; + static seqFunc m_seq12_funcTbl[2]; + static seqFunc m_seq13_funcTbl[6]; + static seqFunc m_seq14_funcTbl[2]; + static seqFunc m_seq15_funcTbl[2]; + static seqFunc m_seq16_funcTbl[7]; + static seqFunc m_seq17_funcTbl[2]; + static seqFunc m_seq18_funcTbl[2]; + static seqFunc m_seq19_funcTbl[7]; + static seqFunc m_seq20_funcTbl[2]; + static seqFunc m_seq21_funcTbl[2]; + static seqFunc m_seq22_funcTbl[4]; + static seqFunc m_seq23_funcTbl[7]; + static seqFunc m_seq24_funcTbl[5]; + static seqFunc m_seq25_funcTbl[7]; + static seqFunc m_seq26_funcTbl[3]; + static seqFunc m_seq27_funcTbl[2]; + static seqFunc m_seq28_funcTbl[3]; + static seqFunc m_seq29_funcTbl[3]; + static seqFunc m_seq30_funcTbl[6]; + static seqFunc m_seq31_funcTbl[6]; + static seqFunc m_seq32_funcTbl[7]; + static seqFunc m_seq33_funcTbl[7]; + static seqFunc m_seq34_funcTbl[9]; + static seqFunc m_seq35_funcTbl[2]; + static seqFunc m_seq36_funcTbl[4]; + static seqFunc m_seq37_funcTbl[2]; + static seqFunc m_seq38_funcTbl[2]; + static seqFunc m_seq39_funcTbl[2]; + static seqFunc m_seq40_funcTbl[3]; + static seqFunc m_seq41_funcTbl[2]; + static seqFunc m_seq42_funcTbl[2]; + static seqFunc m_seq43_funcTbl[3]; + + /* 0xAC8 */ J3DModel* field_0xac8; + /* 0xACC */ J3DModel* field_0xacc; + /* 0xAD0 */ PathTrace_c m_path; + /* 0xAE8 */ daNpcT_ActorMngr_c m_targetAct; + /* 0xB00 */ dMsgFlow_c mMsgFlow; + /* 0xB4C */ daNpcCdn3_c::actionFunc* mAction; + /* 0xB50 */ Mode_e mMode; + /* 0xB54 */ Mode_e mPrevMode; + /* 0xB58 */ int mObjNum; + /* 0xB5C */ f32 field_0xb5c; + /* 0xB60 */ f32 field_0xb60; + /* 0xB64 */ f32 field_0xb64; + /* 0xB68 */ u32 field_0xb68; + /* 0xB6C */ int mMsgIndex; + /* 0xB70 */ int mFlowNodeNum; + /* 0xB74 */ int field_0xb74; + /* 0xB78 */ int mSeqNum; + /* 0xB7C */ int field_0xb7c; + /* 0xB80 */ J3DAnmTransform* field_0xb80; + /* 0xB84 */ daTagSchedule_c* mTagSched; + /* 0xB88 */ daTagSchedule_c* field_0xb88; + /* 0xB8C */ u16 field_0xb8c; + /* 0xB8C */ u16 field_0xb8e; + /* 0xB90 */ u16 field_0xb90; + /* 0xB92 */ s16 field_0xb92; + /* 0xB94 */ u8 field_0xb94; + /* 0xB95 */ u8 field_0xb95; + /* 0xB96 */ u8 field_0xb96; + /* 0xB97 */ u8 field_0xb97; + /* 0xB98 */ u8 field_0xb98; + /* 0xB99 */ u8 field_0xb99; }; STATIC_ASSERT(sizeof(daNpcCdn3_c) == 0xb9c); diff --git a/include/d/actor/d_a_tag_escape.h b/include/d/actor/d_a_tag_escape.h index 9f2a2ed91c0..e6e1c51d973 100644 --- a/include/d/actor/d_a_tag_escape.h +++ b/include/d/actor/d_a_tag_escape.h @@ -7,6 +7,8 @@ class daTagEscape_c : public fopAc_ac_c { public: daTagEscape_c() {} ~daTagEscape_c() {} + + int getPathID() { return fopAcM_GetParam(this) & 0xff; } }; #endif /* D_A_TAG_ESCAPE_H */ diff --git a/include/d/actor/d_a_tag_schedule.h b/include/d/actor/d_a_tag_schedule.h index 3e106e912a3..7acd08601fd 100644 --- a/include/d/actor/d_a_tag_schedule.h +++ b/include/d/actor/d_a_tag_schedule.h @@ -10,7 +10,16 @@ public: return cPhs_COMPLEATE_e; } - /* 0x568 */ u8 field_0x568[4]; + int getSeqNum() { return (fopAcM_GetParam(this) >> 6) & 0x3f; } + u16 getStartTime() { return (fopAcM_GetParam(this) >> 12) & 0xff; } + u8 getStartEnd() { return (fopAcM_GetParam(this) >> 20) & 0xff; } + int getGroupID() { return fopAcM_GetParam(this) & 0x3f; } + int getWeekNum() { return mWeekNum; } + void setWeekNum(int weekNum) { mWeekNum = weekNum; } + u8 getPathID() { return shape_angle.x & 0xff; } + s16 getFlowNodeNum() { return shape_angle.z; } + + /* 0x568 */ int mWeekNum; }; #endif /* D_A_TAG_SCHEDULE_H */ diff --git a/include/d/d_npc_lib.h b/include/d/d_npc_lib.h index bf5fe5f56e1..bb79f3b182f 100644 --- a/include/d/d_npc_lib.h +++ b/include/d/d_npc_lib.h @@ -12,7 +12,7 @@ public: /* 80251B64 */ void setPrm(); /* 80251EF8 */ void update(); /* 80252018 */ int limitter(s16*, s16, s16, s16); - /* 80252094 */ virtual ~dNpcLib_lookat_c(); + /* 80252094 */ virtual ~dNpcLib_lookat_c() {} /* 0x04 */ cXyz field_0x04[4]; /* 0x34 */ csXyz field_0x34[4]; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 4cac69dfa19..86e06a21b0c 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -289,7 +289,7 @@ public: // PPNT struct dStage_dPnt_c { - /* 0x0 */ u8 field_0x0; + /* 0x0 */ u8 mArg1; /* 0x1 */ u8 field_0x1; /* 0x2 */ u8 field_0x2; /* 0x3 */ u8 mArg0; diff --git a/src/d/actor/d_a_b_bq.cpp b/src/d/actor/d_a_b_bq.cpp index 15cebb952d1..cc954adbe41 100644 --- a/src/d/actor/d_a_b_bq.cpp +++ b/src/d/actor/d_a_b_bq.cpp @@ -1236,7 +1236,7 @@ static void demo_camera(b_bq_class* i_this) { if (!a_this->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0); - a_this->eventInfo.onCondition(2); + a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); return; } @@ -1420,7 +1420,7 @@ static void demo_camera(b_bq_class* i_this) { case 10: if (!a_this->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0); - a_this->eventInfo.onCondition(2); + a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); return; } @@ -1639,7 +1639,7 @@ static void demo_camera(b_bq_class* i_this) { if (!a_this->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0); - a_this->eventInfo.onCondition(2); + a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); return; } @@ -1699,7 +1699,7 @@ static void demo_camera(b_bq_class* i_this) { case 30: if (!monkeybomb->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(monkeybomb, 2, 0xFFFF, 0); - monkeybomb->eventInfo.onCondition(2); + monkeybomb->eventInfo.onCondition(dEvtCnd_CANDEMO_e); return; } @@ -1808,7 +1808,7 @@ static void demo_camera(b_bq_class* i_this) { case 50: if (!a_this->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0); - a_this->eventInfo.onCondition(2); + a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); return; } diff --git a/src/d/actor/d_a_npc_cd2.cpp b/src/d/actor/d_a_npc_cd2.cpp index a3abb649361..b0c89767ef3 100644 --- a/src/d/actor/d_a_npc_cd2.cpp +++ b/src/d/actor/d_a_npc_cd2.cpp @@ -9,47 +9,6 @@ #include "dol2asm.h" #include "f_op/f_op_actor_mng.h" -struct daNpcCd2_HIO_Jnt_c -#ifdef DEBUG -: public JORReflexible -#endif -{ - /* 8015A6E8 */ virtual ~daNpcCd2_HIO_Jnt_c() {} - /* 8015A788 */ daNpcCd2_HIO_Jnt_c(); - - void genMessage(JORMContext*); - - /* 0x04 */ f32 field_0x04[3]; - /* 0x10 */ s16 field_0x10[3]; -}; - -struct daNpcCd2_HIO_MChild_c { - /* 8015A798 */ virtual ~daNpcCd2_HIO_MChild_c() {} - /* 8015A808 */ daNpcCd2_HIO_MChild_c(); - - /* 0x004 */ daNpcCd2_HIO_Jnt_c field_0x004[19]; - /* 0x1C8 */ u8 field_0x1c8[0x1c]; - /* 0x1E8 */ s16 field_0x1ec[0x12]; -}; - -struct daNpcCd2_HIO_WChild_c { - /* 8015A678 */ virtual ~daNpcCd2_HIO_WChild_c() {} - /* 8015A730 */ daNpcCd2_HIO_WChild_c(); - - /* 0x004 */ daNpcCd2_HIO_Jnt_c field_0x004[21]; - /* 0x1F8 */ s16 field_0x1f8[0x20]; -}; - -struct daNpcCd2_HIO_c : public fOpAcm_HIO_entry_c { - /* 8015A4D8 */ daNpcCd2_HIO_c(); - /* 8015A860 */ virtual ~daNpcCd2_HIO_c() {} - - void genMessage(JORMContext*); - - /* 0x0004 */ daNpcCd2_HIO_MChild_c field_0x0004[16]; - /* 0x20C4 */ daNpcCd2_HIO_WChild_c field_0x20c4[14]; -}; - /* 80157CB4-80157D00 1525F4 004C+00 1/1 0/0 0/0 .text jntNodeCallBack__FP8J3DJointi */ static int jntNodeCallBack(J3DJoint* i_jnt, int param_1) { if (param_1 == 0) { @@ -262,14 +221,19 @@ SECTION_RODATA static anmTblPrm const l_bckTbl_W[54] = { COMPILER_STRIP_GATE(0x803937A0, &l_bckTbl_W); /* 80393950-80393994 01FFB0 0044+00 0/0 0/0 4/4 .rodata m_cylDat__10daNpcCd2_c */ -SECTION_RODATA u8 const daNpcCd2_c::m_cylDat[68] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +dCcD_SrcCyl const daNpcCd2_c::m_cylDat = { + { + {0x0, {{0x0, 0x0, 0x0}, {0, 0}, 0x79}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {0.0f, 0.0f, 0.0f}, // mCenter + 0.0f, // mRadius + 0.0f // mHeight + } // mCyl }; -COMPILER_STRIP_GATE(0x80393950, &daNpcCd2_c::m_cylDat); /* 80393994-80393AFC 01FFF4 0168+00 1/1 0/0 0/0 .rodata a_transScaleTbl$3998 */ static Vec const a_transScaleTbl[30] = { @@ -311,7 +275,7 @@ int daNpcCd2_c::NpcCreate(int param_1) { return 0; } mCitizen.init(¤t.pos, &eyePos, 3, 1); - mCitizen.setMdlType(param_1, false, field_0xac6 != 0 ? 1 : 0); + mCitizen.setMdlType(param_1, false, mIsDarkWorld != 0 ? 1 : 0); if (anmTex != NULL) { mpBtpAnm = new mDoExt_btpAnm(); JUT_ASSERT(622, 0 != mpBtpAnm); @@ -345,8 +309,8 @@ J3DModel* daNpcCd2_c::ObjCreate(int param_0) { /* 80157F68-801580A8 1528A8 0140+00 0/0 0/0 1/1 .text ChairCreate__10daNpcCd2_cFf */ J3DModel* daNpcCd2_c::ChairCreate(f32 param_1) { - const char* resName = (field_0xac6) ? "objectTW" : "object"; - int resIndex = isM_() ? ((field_0xac6 != 0) ? 4 : 4) : ((field_0xac6 != 0) ? 5 : 5); + const char* resName = (mIsDarkWorld) ? "objectTW" : "object"; + int resIndex = isM_() ? ((mIsDarkWorld != 0) ? 4 : 4) : ((mIsDarkWorld != 0) ? 5 : 5); J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(resName, resIndex); if (modelData != NULL) { @@ -1325,7 +1289,7 @@ static u8 a_prmTbl_W[896] = { #pragma pop /* 801580F0-80158420 152A30 0330+00 2/0 0/0 93/93 .text getAnmP__10daNpcCd2_cFii */ -void* daNpcCd2_c::getAnmP(int param_1, int param_2) { +J3DAnmTransform* daNpcCd2_c::getAnmP(int param_1, int param_2) { int a_anmNum = param_1; switch (a_anmNum) { case 0: @@ -1569,9 +1533,9 @@ void* daNpcCd2_c::getAnmP(int param_1, int param_2) { index = l_bckTbl_W[a_anmNum].index; } if (index == -1) { - return 0; + return NULL; } - return dComIfG_getObjectRes(name, index); + return (J3DAnmTransform*)dComIfG_getObjectRes(name, index); } /* ############################################################################################## */ @@ -1581,16 +1545,6 @@ void* daNpcCd2_c::getAnmP(int param_1, int param_2) { /* 8042861C-8042C628 05533C 400C+00 2/3 0/0 20/20 .bss l_Cd2_HIO */ daNpcCd2_HIO_c l_Cd2_HIO; -static inline f32 Cd2_HIO_atnOfs(int param_1) { - s16 rv; - if (param_1 < 16) { - rv = l_Cd2_HIO.field_0x0004[param_1].field_0x1ec[0]; - } else { - rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].field_0x1f8[14]; - } - return rv; -} - /* 80158420-80158BB8 152D60 0798+00 0/0 0/0 5/5 .text setAttention__10daNpcCd2_cFi */ int daNpcCd2_c::setAttention(int param_1) { static cXyz a_eyeOfsTbl[30] = { @@ -1629,14 +1583,14 @@ int daNpcCd2_c::setAttention(int param_1) { int anmIdx = isM_() ? 3 : 3; mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(anmIdx)); mDoMtx_stack_c::multVec(&a_eyeOfsTbl[param_1], &eyePos); - attention_info.position.set(current.pos.x, current.pos.y + Cd2_HIO_atnOfs(param_1), current.pos.z); + attention_info.position.set(current.pos.x, Cd2_HIO_atnOfs(param_1) + current.pos.y, current.pos.z); return 1; } /* 80158BB8-80158CBC 1534F8 0104+00 0/0 0/0 4/4 .text loadResrc__10daNpcCd2_cFii */ int daNpcCd2_c::loadResrc(int idx, int param_1) { int result; - if (field_0xac6) { + if (mIsDarkWorld) { result = dComIfG_resLoad(&mPhase1, l_resNameTbl[idx][1]); if (result != cPhs_COMPLEATE_e) { return result; @@ -1668,7 +1622,7 @@ int daNpcCd2_c::loadResrc(int idx, int param_1) { /* 80158CBC-80158D88 1535FC 00CC+00 0/0 0/0 4/4 .text removeResrc__10daNpcCd2_cFii */ int daNpcCd2_c::removeResrc(int idx, int param_1) { - if (field_0xac6) { + if (mIsDarkWorld) { dComIfG_resDelete(&mPhase1, l_resNameTbl[idx][1]); dComIfG_resDelete(&mPhase4, l_resNameTbl[idx][5]); } else { @@ -1720,7 +1674,7 @@ void daNpcCd2_c::setAnm(J3DAnmTransformKey* param_1, f32 param_2, f32 param_3, i /* 80158F6C-80158FF0 1538AC 0084+00 0/0 0/0 4/4 .text drawShadow__10daNpcCd2_cFf */ int daNpcCd2_c::drawShadow(f32 param_0) { - if (field_0xac6 && !daPy_py_c::checkNowWolfEyeUp()) { + if (mIsDarkWorld && !daPy_py_c::checkNowWolfEyeUp()) { return 1; } dComIfGd_setSimpleShadow(¤t.pos, mAcch.GetGroundH(), param_0, mAcch.m_gnd, 0, @@ -1741,7 +1695,7 @@ int daNpcCd2_c::drawObj(int idx, J3DModel* i_model, f32 i_scale) { if (i_model == NULL) { return 0; } - if (field_0xac6 && !daPy_py_c::checkNowWolfEyeUp()) { + if (mIsDarkWorld && !daPy_py_c::checkNowWolfEyeUp()) { return 0; } int x = isM_() ? 0 : 1; @@ -1758,17 +1712,17 @@ int daNpcCd2_c::drawObj(int idx, J3DModel* i_model, f32 i_scale) { /* 801590FC-80159258 153A3C 015C+00 0/0 0/0 4/4 .text drawNpc__10daNpcCd2_cFv */ int daNpcCd2_c::drawNpc() { - if (field_0xac6) { + if (mIsDarkWorld) { g_env_light.settingTevStruct(4, ¤t.pos, &tevStr); } else { g_env_light.settingTevStruct(0, ¤t.pos, &tevStr); } - if (field_0xac6 && !daPy_py_c::checkNowWolfEyeUp()) { + if (mIsDarkWorld && !daPy_py_c::checkNowWolfEyeUp()) { setHitodamaParticle(); return 1; } g_env_light.setLightTevColorType_MAJI(mpMorf->getModel(), &tevStr); - if (field_0xac6) { + if (mIsDarkWorld) { dComIfGd_setListDark(); } if (mpBtpAnm) { @@ -1778,7 +1732,7 @@ int daNpcCd2_c::drawNpc() { } else { mpMorf->entryDL(); } - if (field_0xac6) { + if (mIsDarkWorld) { dComIfGd_setList(); } return 1; @@ -1924,11 +1878,11 @@ static void* s_sub1(void* param_0, void* param_1) { } /* 801597C0-80159818 154100 0058+00 0/0 0/0 2/2 .text getEscapeTag__10daNpcCd2_cFv */ -void* daNpcCd2_c::getEscapeTag() { +daTagEscape_c* daNpcCd2_c::getEscapeTag() { target = NULL; wolfAngle = fopAcM_searchPlayerAngleY(this); fpcM_Search(s_sub1, this); - return target; + return (daTagEscape_c*)target; } /* 80159818-801598E8 154158 00D0+00 0/0 0/0 5/5 .text checkFearSituation__10daNpcCd2_cFv @@ -1940,7 +1894,7 @@ bool daNpcCd2_c::checkFearSituation() { bool rv; bool bVar5; rv = false; - bVar5 = ((!field_0xac6 && daPy_py_c::checkNowWolf()) && dVar10 < 200.0f); + bVar5 = ((!mIsDarkWorld && daPy_py_c::checkNowWolf()) && dVar10 < 200.0f); if (bVar5) { f32 maxDist = pow(500.0f, 2.0f); if (fopAcM_searchPlayerDistanceXZ2(this) < maxDist) { @@ -1953,7 +1907,7 @@ bool daNpcCd2_c::checkFearSituation() { /* 801598E8-8015994C 154228 0064+00 1/1 0/0 0/0 .text getNpcMdlDataP__10daNpcCd2_cFi */ J3DModelData* daNpcCd2_c::getNpcMdlDataP(int param_1) { const anmTblPrm* def; - if (field_0xac6) { + if (mIsDarkWorld) { def = &l_bmdTWTbl[param_1]; } else { def = &l_bmdTbl[param_1]; @@ -1965,7 +1919,7 @@ J3DModelData* daNpcCd2_c::getNpcMdlDataP(int param_1) { J3DModelData* daNpcCd2_c::getObjMdlDataP(int param_1) { J3DModelData* model_data = NULL; const anmTblPrm* def; - if (field_0xac6) { + if (mIsDarkWorld) { def = &l_objTWTbl[param_1]; } else { def = &l_objTbl[param_1]; @@ -1979,7 +1933,7 @@ J3DModelData* daNpcCd2_c::getObjMdlDataP(int param_1) { /* 801599C4-80159A38 154304 0074+00 1/1 0/0 0/0 .text getTexAnmP__10daNpcCd2_cFi */ J3DAnmTexPattern* daNpcCd2_c::getTexAnmP(int param_1) { const anmTblPrm* def; - if (field_0xac6) { + if (mIsDarkWorld) { def = &l_btpTWTbl[param_1]; } else { def = &l_btpTbl[param_1]; @@ -1992,7 +1946,7 @@ J3DAnmTexPattern* daNpcCd2_c::getTexAnmP(int param_1) { /* 80159A38-80159C14 154378 01DC+00 0/0 0/0 9/9 .text setPath__11PathTrace_cFiiiP4cXyzb */ -BOOL PathTrace_c::setPath(int param_1, int param_2, int param_3, cXyz* param_4, bool param_5) { +bool PathTrace_c::setPath(int param_1, int param_2, int param_3, cXyz* param_4, bool param_5) { mPath = NULL; mPath = dPath_GetRoomPath(param_1, param_2); field_0x24 = param_3; @@ -2186,12 +2140,12 @@ daNpcCd2_HIO_c::daNpcCd2_HIO_c() { for (int j = 0; j < 19; j++) { memcpy(&field_0x0004[i].field_0x004[j].field_0x04, a_jntTbl_M[i][j], 20); } - memcpy(&field_0x0004[i].field_0x1c8, a_prmTbl_M + i * 0x40, 0x40); + memcpy(&field_0x0004[i].mMaxLmtY_BACKBONE, a_prmTbl_M + i * 0x40, 0x40); } for (int i = 0; i < 14; i++) { for (int j = 0; j < 21; j++) { memcpy(&field_0x20c4[i].field_0x004[j].field_0x04, a_jntTbl_W[i][j], 20); } - memcpy(&field_0x20c4[i].field_0x1f8, a_prmTbl_W + i * 0x40, 0x40); + memcpy(&field_0x20c4[i].mMaxLmtY_BACKBONE, a_prmTbl_W + i * 0x40, 0x40); } } diff --git a/src/d/actor/d_a_npc_cdn3.cpp b/src/d/actor/d_a_npc_cdn3.cpp index 8e9b341a363..c8f6d768cf3 100644 --- a/src/d/actor/d_a_npc_cdn3.cpp +++ b/src/d/actor/d_a_npc_cdn3.cpp @@ -4,6 +4,7 @@ */ #include "d/actor/d_a_npc_cdn3.h" +#include "d/d_msg_object.h" #include "dol2asm.h" @@ -269,7 +270,6 @@ extern "C" extern void* __vt__12cCcD_CylAttr[25]; extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 l_Cd2_HIO[16396]; extern "C" f32 Zero__4cXyz[3]; // @@ -278,14 +278,39 @@ extern "C" f32 Zero__4cXyz[3]; /* 80978CD8-80978DD4 000078 00FC+00 1/1 0/0 0/0 .text createHeapCallBack__FP10fopAc_ac_c */ -static void createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING +static int createHeapCallBack(fopAc_ac_c* param_0) { + daNpcCdn3_c* i_this = (daNpcCdn3_c*)param_0; + int rv = i_this->NpcCreate(i_this->m_type); + if (rv != 0) { + if (i_this->mObjNum != 0) { + rv = (i_this->field_0xac8 = i_this->ObjCreate(i_this->mObjNum)) != NULL; + if (!rv) { + i_this->mpMorf->stopZelAnime(); + } + } else { + i_this->field_0xac8 = NULL; + } + if (i_this->isChairStyle()) { + f32 scale = Cd2_HIO_objScale(i_this->m_type); + + J3DModel* model = i_this->ChairCreate(scale); + i_this->field_0xacc = model; + rv = model != 0; + if (rv == 0) { + i_this->mpMorf->stopZelAnime(); + } + } else { + i_this->field_0xacc = NULL; + rv = 1; + } + } + return rv; } UNK_REL_DATA /* 8097F788-8097F848 0000E0 00C0+00 1/2 0/0 0/0 .data ActionTable__11daNpcCdn3_c */ -daNpcCdn3_c::actionFunc daNpcCdn3_c::ActionTable[16] = { +daNpcCdn3_c::actionFunc daNpcCdn3_c::ActionTable[8][2] = { &daNpcCdn3_c::initWait, &daNpcCdn3_c::executeWait, &daNpcCdn3_c::initPath, @@ -306,1789 +331,1786 @@ daNpcCdn3_c::actionFunc daNpcCdn3_c::ActionTable[16] = { /* 80978DD4-80978E18 000174 0044+00 9/9 0/0 0/0 .text * setAction__11daNpcCdn3_cFQ211daNpcCdn3_c6Mode_e */ -void daNpcCdn3_c::setAction(daNpcCdn3_c::Mode_e param_0) { - // NONMATCHING +void daNpcCdn3_c::setAction(daNpcCdn3_c::Mode_e i_action) { + JUT_ASSERT(366, i_action < MODE_MAX_e); + mPrevMode = mMode; + mMode = i_action; + mAction = ActionTable[mMode]; + callInit(); } /* 80978E18-80978E40 0001B8 0028+00 1/1 0/0 0/0 .text callInit__11daNpcCdn3_cFv */ void daNpcCdn3_c::callInit() { - // NONMATCHING + JUT_ASSERT(408, mAction != 0); + (this->*(mAction[0]))(); } /* 80978E40-80978E6C 0001E0 002C+00 1/1 0/0 0/0 .text callExecute__11daNpcCdn3_cFv */ void daNpcCdn3_c::callExecute() { - // NONMATCHING + JUT_ASSERT(421, mAction != 0); + (this->*(mAction[1]))(); } -/* ############################################################################################## */ -/* 8097F904-8097F91C 00025C 0018+00 1/1 0/0 0/0 .data m_seq00_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq00_funcTbl__11daNpcCdn3_c[24]; - -/* 8097F928-8097F940 000280 0018+00 1/1 0/0 0/0 .data m_seq01_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq01_funcTbl__11daNpcCdn3_c[24]; - -/* 8097F94C-8097F964 0002A4 0018+00 1/1 0/0 0/0 .data m_seq02_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq02_funcTbl__11daNpcCdn3_c[24]; - -/* 8097F970-8097F988 0002C8 0018+00 1/1 0/0 0/0 .data m_seq03_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq03_funcTbl__11daNpcCdn3_c[24]; - -/* 8097F994-8097F9AC 0002EC 0018+00 1/1 0/0 0/0 .data m_seq04_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq04_funcTbl__11daNpcCdn3_c[24]; - -/* 8097F9D0-8097FA00 000328 0030+00 1/1 0/0 0/0 .data m_seq05_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq05_funcTbl__11daNpcCdn3_c[48]; - -/* 8097FA24-8097FA54 00037C 0030+00 1/1 0/0 0/0 .data m_seq06_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq06_funcTbl__11daNpcCdn3_c[48]; - -/* 8097FA60-8097FA78 0003B8 0018+00 1/1 0/0 0/0 .data m_seq07_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq07_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FAC0-8097FB14 000418 0054+00 1/1 0/0 0/0 .data m_seq08_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq08_funcTbl__11daNpcCdn3_c[84]; - -/* 8097FB20-8097FB38 000478 0018+00 1/1 0/0 0/0 .data m_seq09_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq09_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FB44-8097FB5C 00049C 0018+00 1/1 0/0 0/0 .data m_seq10_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq10_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FB98-8097FBE0 0004F0 0048+00 1/1 0/0 0/0 .data m_seq11_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq11_funcTbl__11daNpcCdn3_c[72]; - -/* 8097FBEC-8097FC04 000544 0018+00 1/1 0/0 0/0 .data m_seq12_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq12_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FC40-8097FC88 000598 0048+00 1/1 0/0 0/0 .data m_seq13_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq13_funcTbl__11daNpcCdn3_c[72]; - -/* 8097FC94-8097FCAC 0005EC 0018+00 1/1 0/0 0/0 .data m_seq14_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq14_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FCB8-8097FCD0 000610 0018+00 1/1 0/0 0/0 .data m_seq15_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq15_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FD18-8097FD6C 000670 0054+00 1/1 0/0 0/0 .data m_seq16_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq16_funcTbl__11daNpcCdn3_c[84]; - -/* 8097FD78-8097FD90 0006D0 0018+00 1/1 0/0 0/0 .data m_seq17_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq17_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FD9C-8097FDB4 0006F4 0018+00 1/1 0/0 0/0 .data m_seq18_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq18_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FDFC-8097FE50 000754 0054+00 1/1 0/0 0/0 .data m_seq19_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq19_funcTbl__11daNpcCdn3_c[84]; - -/* 8097FE5C-8097FE74 0007B4 0018+00 1/1 0/0 0/0 .data m_seq20_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq20_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FE80-8097FE98 0007D8 0018+00 1/1 0/0 0/0 .data m_seq21_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq21_funcTbl__11daNpcCdn3_c[24]; - -/* 8097FEBC-8097FEEC 000814 0030+00 1/1 0/0 0/0 .data m_seq22_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq22_funcTbl__11daNpcCdn3_c[48]; - -/* 8097FF34-8097FF88 00088C 0054+00 1/1 0/0 0/0 .data m_seq23_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq23_funcTbl__11daNpcCdn3_c[84]; - -/* 8097FFB8-8097FFF4 000910 003C+00 1/1 0/0 0/0 .data m_seq24_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq24_funcTbl__11daNpcCdn3_c[60]; - -/* 8098003C-80980090 000994 0054+00 1/1 0/0 0/0 .data m_seq25_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq25_funcTbl__11daNpcCdn3_c[84]; - -/* 809800A8-809800CC 000A00 0024+00 1/1 0/0 0/0 .data m_seq26_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq26_funcTbl__11daNpcCdn3_c[36]; - -/* 809800D8-809800F0 000A30 0018+00 1/1 0/0 0/0 .data m_seq27_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq27_funcTbl__11daNpcCdn3_c[24]; - -/* 80980108-8098012C 000A60 0024+00 1/1 0/0 0/0 .data m_seq28_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq28_funcTbl__11daNpcCdn3_c[36]; - -/* 80980144-80980168 000A9C 0024+00 1/1 0/0 0/0 .data m_seq29_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq29_funcTbl__11daNpcCdn3_c[36]; - -/* 809801A4-809801EC 000AFC 0048+00 1/1 0/0 0/0 .data m_seq30_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq30_funcTbl__11daNpcCdn3_c[72]; - -/* 80980228-80980270 000B80 0048+00 1/1 0/0 0/0 .data m_seq31_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq31_funcTbl__11daNpcCdn3_c[72]; - -/* 809802B8-8098030C 000C10 0054+00 1/1 0/0 0/0 .data m_seq32_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq32_funcTbl__11daNpcCdn3_c[84]; - -/* 80980354-809803A8 000CAC 0054+00 1/1 0/0 0/0 .data m_seq33_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq33_funcTbl__11daNpcCdn3_c[84]; - -/* 80980408-80980474 000D60 006C+00 1/1 0/0 0/0 .data m_seq34_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq34_funcTbl__11daNpcCdn3_c[108]; - -/* 80980480-80980498 000DD8 0018+00 1/1 0/0 0/0 .data m_seq35_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq35_funcTbl__11daNpcCdn3_c[24]; - -/* 809804BC-809804EC 000E14 0030+00 1/1 0/0 0/0 .data m_seq36_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq36_funcTbl__11daNpcCdn3_c[48]; - -/* 809804F8-80980510 000E50 0018+00 1/1 0/0 0/0 .data m_seq37_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq37_funcTbl__11daNpcCdn3_c[24]; - -/* 8098051C-80980534 000E74 0018+00 1/1 0/0 0/0 .data m_seq38_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq38_funcTbl__11daNpcCdn3_c[24]; - -/* 80980540-80980558 000E98 0018+00 1/1 0/0 0/0 .data m_seq39_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq39_funcTbl__11daNpcCdn3_c[24]; - -/* 80980570-80980594 000EC8 0024+00 1/1 0/0 0/0 .data m_seq40_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq40_funcTbl__11daNpcCdn3_c[36]; - -/* 809805A0-809805B8 000EF8 0018+00 1/1 0/0 0/0 .data m_seq41_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq41_funcTbl__11daNpcCdn3_c[24]; - -/* 809805C4-809805DC 000F1C 0018+00 1/1 0/0 0/0 .data m_seq42_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq42_funcTbl__11daNpcCdn3_c[24]; - -/* 809805F4-80980618 000F4C 0024+00 1/1 0/0 0/0 .data m_seq43_funcTbl__11daNpcCdn3_c */ -extern "C" u8 m_seq43_funcTbl__11daNpcCdn3_c[36]; - -/* 8097F540-8097F544 000000 0004+00 13/13 0/0 0/0 .rodata @4037 */ -SECTION_RODATA static u8 const lit_4037[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8097F540, &lit_4037); - /* 8097F848-8097F8F8 -00001 00B0+00 5/5 0/0 0/0 .data m_funcTbl__11daNpcCdn3_c */ -SECTION_DATA void* daNpcCdn3_c::m_funcTbl[44] = { - (void*)&daNpcCdn3_c::m_seq00_funcTbl, (void*)&daNpcCdn3_c::m_seq01_funcTbl, - (void*)&daNpcCdn3_c::m_seq02_funcTbl, (void*)&daNpcCdn3_c::m_seq03_funcTbl, - (void*)&daNpcCdn3_c::m_seq04_funcTbl, (void*)&daNpcCdn3_c::m_seq05_funcTbl, - (void*)&daNpcCdn3_c::m_seq06_funcTbl, (void*)&daNpcCdn3_c::m_seq07_funcTbl, - (void*)&daNpcCdn3_c::m_seq08_funcTbl, (void*)&daNpcCdn3_c::m_seq09_funcTbl, - (void*)&daNpcCdn3_c::m_seq10_funcTbl, (void*)&daNpcCdn3_c::m_seq11_funcTbl, - (void*)&daNpcCdn3_c::m_seq12_funcTbl, (void*)&daNpcCdn3_c::m_seq13_funcTbl, - (void*)&daNpcCdn3_c::m_seq14_funcTbl, (void*)&daNpcCdn3_c::m_seq15_funcTbl, - (void*)&daNpcCdn3_c::m_seq16_funcTbl, (void*)&daNpcCdn3_c::m_seq17_funcTbl, - (void*)&daNpcCdn3_c::m_seq18_funcTbl, (void*)&daNpcCdn3_c::m_seq19_funcTbl, - (void*)&daNpcCdn3_c::m_seq20_funcTbl, (void*)&daNpcCdn3_c::m_seq21_funcTbl, - (void*)&daNpcCdn3_c::m_seq22_funcTbl, (void*)&daNpcCdn3_c::m_seq23_funcTbl, - (void*)&daNpcCdn3_c::m_seq24_funcTbl, (void*)&daNpcCdn3_c::m_seq25_funcTbl, - (void*)&daNpcCdn3_c::m_seq26_funcTbl, (void*)&daNpcCdn3_c::m_seq27_funcTbl, - (void*)&daNpcCdn3_c::m_seq28_funcTbl, (void*)&daNpcCdn3_c::m_seq29_funcTbl, - (void*)&daNpcCdn3_c::m_seq30_funcTbl, (void*)&daNpcCdn3_c::m_seq31_funcTbl, - (void*)&daNpcCdn3_c::m_seq32_funcTbl, (void*)&daNpcCdn3_c::m_seq33_funcTbl, - (void*)&daNpcCdn3_c::m_seq34_funcTbl, (void*)&daNpcCdn3_c::m_seq35_funcTbl, - (void*)&daNpcCdn3_c::m_seq36_funcTbl, (void*)&daNpcCdn3_c::m_seq37_funcTbl, - (void*)&daNpcCdn3_c::m_seq38_funcTbl, (void*)&daNpcCdn3_c::m_seq39_funcTbl, - (void*)&daNpcCdn3_c::m_seq40_funcTbl, (void*)&daNpcCdn3_c::m_seq41_funcTbl, - (void*)&daNpcCdn3_c::m_seq42_funcTbl, (void*)&daNpcCdn3_c::m_seq43_funcTbl, +daNpcCdn3_c::seqFunc* daNpcCdn3_c::m_funcTbl[44] = { + daNpcCdn3_c::m_seq00_funcTbl, daNpcCdn3_c::m_seq01_funcTbl, + daNpcCdn3_c::m_seq02_funcTbl, daNpcCdn3_c::m_seq03_funcTbl, + daNpcCdn3_c::m_seq04_funcTbl, daNpcCdn3_c::m_seq05_funcTbl, + daNpcCdn3_c::m_seq06_funcTbl, daNpcCdn3_c::m_seq07_funcTbl, + daNpcCdn3_c::m_seq08_funcTbl, daNpcCdn3_c::m_seq09_funcTbl, + daNpcCdn3_c::m_seq10_funcTbl, daNpcCdn3_c::m_seq11_funcTbl, + daNpcCdn3_c::m_seq12_funcTbl, daNpcCdn3_c::m_seq13_funcTbl, + daNpcCdn3_c::m_seq14_funcTbl, daNpcCdn3_c::m_seq15_funcTbl, + daNpcCdn3_c::m_seq16_funcTbl, daNpcCdn3_c::m_seq17_funcTbl, + daNpcCdn3_c::m_seq18_funcTbl, daNpcCdn3_c::m_seq19_funcTbl, + daNpcCdn3_c::m_seq20_funcTbl, daNpcCdn3_c::m_seq21_funcTbl, + daNpcCdn3_c::m_seq22_funcTbl, daNpcCdn3_c::m_seq23_funcTbl, + daNpcCdn3_c::m_seq24_funcTbl, daNpcCdn3_c::m_seq25_funcTbl, + daNpcCdn3_c::m_seq26_funcTbl, daNpcCdn3_c::m_seq27_funcTbl, + daNpcCdn3_c::m_seq28_funcTbl, daNpcCdn3_c::m_seq29_funcTbl, + daNpcCdn3_c::m_seq30_funcTbl, daNpcCdn3_c::m_seq31_funcTbl, + daNpcCdn3_c::m_seq32_funcTbl, daNpcCdn3_c::m_seq33_funcTbl, + daNpcCdn3_c::m_seq34_funcTbl, daNpcCdn3_c::m_seq35_funcTbl, + daNpcCdn3_c::m_seq36_funcTbl, daNpcCdn3_c::m_seq37_funcTbl, + daNpcCdn3_c::m_seq38_funcTbl, daNpcCdn3_c::m_seq39_funcTbl, + daNpcCdn3_c::m_seq40_funcTbl, daNpcCdn3_c::m_seq41_funcTbl, + daNpcCdn3_c::m_seq42_funcTbl, daNpcCdn3_c::m_seq43_funcTbl, }; -/* 8097F8F8-8097F904 -00001 000C+00 0/1 0/0 0/0 .data @5102 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5102[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)walka__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 8097F904-8097F91C 00025C 0018+00 1/1 0/0 0/0 .data m_seq00_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq00_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097F91C-8097F928 -00001 000C+00 0/1 0/0 0/0 .data @5103 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5103[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)runa__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq00_funcTbl[2] = {&daNpcCdn3_c::walka, NULL}; /* 8097F928-8097F940 000280 0018+00 1/1 0/0 0/0 .data m_seq01_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq01_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097F940-8097F94C -00001 000C+00 0/1 0/0 0/0 .data @5104 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5104[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq01_funcTbl[2] = {&daNpcCdn3_c::runa, NULL}; /* 8097F94C-8097F964 0002A4 0018+00 1/1 0/0 0/0 .data m_seq02_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq02_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097F964-8097F970 -00001 000C+00 0/1 0/0 0/0 .data @5105 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5105[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq02_funcTbl[2] = {&daNpcCdn3_c::waita, NULL}; /* 8097F970-8097F988 0002C8 0018+00 1/1 0/0 0/0 .data m_seq03_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq03_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097F988-8097F994 -00001 000C+00 0/1 0/0 0/0 .data @5106 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5106[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)runb__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq03_funcTbl[2] = {&daNpcCdn3_c::talka, NULL}; /* 8097F994-8097F9AC 0002EC 0018+00 1/1 0/0 0/0 .data m_seq04_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq04_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097F9AC-8097F9B8 -00001 000C+00 0/1 0/0 0/0 .data @5107 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5107[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turnr__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097F9B8-8097F9C4 -00001 000C+00 0/1 0/0 0/0 .data @5108 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5108[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097F9C4-8097F9D0 -00001 000C+00 0/1 0/0 0/0 .data @5109 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5109[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq04_funcTbl[2] = {&daNpcCdn3_c::runb, NULL}; /* 8097F9D0-8097FA00 000328 0030+00 1/1 0/0 0/0 .data m_seq05_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq05_funcTbl[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FA00-8097FA0C -00001 000C+00 0/1 0/0 0/0 .data @5110 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5110[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turnl__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FA0C-8097FA18 -00001 000C+00 0/1 0/0 0/0 .data @5111 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5111[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FA18-8097FA24 -00001 000C+00 0/1 0/0 0/0 .data @5112 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5112[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq05_funcTbl[4] = {&daNpcCdn3_c::turnr, &daNpcCdn3_c::waita, + &daNpcCdn3_c::talka, NULL}; /* 8097FA24-8097FA54 00037C 0030+00 1/1 0/0 0/0 .data m_seq06_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq06_funcTbl[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FA54-8097FA60 -00001 000C+00 0/1 0/0 0/0 .data @5113 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5113[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitwall__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq06_funcTbl[4] = {&daNpcCdn3_c::turnl, &daNpcCdn3_c::waita, + &daNpcCdn3_c::talka, NULL}; /* 8097FA60-8097FA78 0003B8 0018+00 1/1 0/0 0/0 .data m_seq07_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq07_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FA78-8097FA84 -00001 000C+00 0/1 0/0 0/0 .data @5114 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5114[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkwall__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FA84-8097FA90 -00001 000C+00 0/1 0/0 0/0 .data @5115 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5115[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitwall__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FA90-8097FA9C -00001 000C+00 0/1 0/0 0/0 .data @5116 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5116[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkbwall__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FA9C-8097FAA8 -00001 000C+00 0/1 0/0 0/0 .data @5117 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5117[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitwall__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FAA8-8097FAB4 -00001 000C+00 0/1 0/0 0/0 .data @5118 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5118[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkwall__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FAB4-8097FAC0 -00001 000C+00 0/1 0/0 0/0 .data @5119 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5119[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkbwall__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq07_funcTbl[2] = {&daNpcCdn3_c::waitwall, NULL}; /* 8097FAC0-8097FB14 000418 0054+00 1/1 0/0 0/0 .data m_seq08_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq08_funcTbl[84] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq08_funcTbl[7] = { + &daNpcCdn3_c::talkwall, + &daNpcCdn3_c::waitwall, + &daNpcCdn3_c::talkbwall, + &daNpcCdn3_c::waitwall, + &daNpcCdn3_c::talkwall, + &daNpcCdn3_c::talkbwall, + NULL, }; -/* 8097FB14-8097FB20 -00001 000C+00 0/1 0/0 0/0 .data @5120 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5120[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 8097FB20-8097FB38 000478 0018+00 1/1 0/0 0/0 .data m_seq09_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq09_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FB38-8097FB44 -00001 000C+00 0/1 0/0 0/0 .data @5121 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5121[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkc__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq09_funcTbl[2] = {&daNpcCdn3_c::talkb, NULL}; /* 8097FB44-8097FB5C 00049C 0018+00 1/1 0/0 0/0 .data m_seq10_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq10_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FB5C-8097FB68 -00001 000C+00 0/1 0/0 0/0 .data @5122 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5122[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FB68-8097FB74 -00001 000C+00 0/1 0/0 0/0 .data @5123 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5123[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FB74-8097FB80 -00001 000C+00 0/1 0/0 0/0 .data @5124 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5124[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FB80-8097FB8C -00001 000C+00 0/1 0/0 0/0 .data @5125 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5125[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FB8C-8097FB98 -00001 000C+00 0/1 0/0 0/0 .data @5126 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5126[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkc__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq10_funcTbl[2] = {&daNpcCdn3_c::talkc, NULL}; /* 8097FB98-8097FBE0 0004F0 0048+00 1/1 0/0 0/0 .data m_seq11_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq11_funcTbl[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FBE0-8097FBEC -00001 000C+00 0/1 0/0 0/0 .data @5127 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5127[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitb__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq11_funcTbl[6] = {&daNpcCdn3_c::talka, &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, &daNpcCdn3_c::waitb, + &daNpcCdn3_c::talkc, NULL}; /* 8097FBEC-8097FC04 000544 0018+00 1/1 0/0 0/0 .data m_seq12_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq12_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FC04-8097FC10 -00001 000C+00 0/1 0/0 0/0 .data @5128 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5128[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)browsea__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FC10-8097FC1C -00001 000C+00 0/1 0/0 0/0 .data @5129 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5129[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)browseb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FC1C-8097FC28 -00001 000C+00 0/1 0/0 0/0 .data @5130 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5130[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FC28-8097FC34 -00001 000C+00 0/1 0/0 0/0 .data @5131 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5131[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FC34-8097FC40 -00001 000C+00 0/1 0/0 0/0 .data @5132 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5132[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq12_funcTbl[2] = {&daNpcCdn3_c::waitb, NULL}; /* 8097FC40-8097FC88 000598 0048+00 1/1 0/0 0/0 .data m_seq13_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq13_funcTbl[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FC88-8097FC94 -00001 000C+00 0/1 0/0 0/0 .data @5133 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5133[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)walkb__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq13_funcTbl[6] = { + &daNpcCdn3_c::browsea, &daNpcCdn3_c::browseb, &daNpcCdn3_c::talka, + &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL}; /* 8097FC94-8097FCAC 0005EC 0018+00 1/1 0/0 0/0 .data m_seq14_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq14_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FCAC-8097FCB8 -00001 000C+00 0/1 0/0 0/0 .data @5134 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5134[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sitwaita__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq14_funcTbl[2] = {&daNpcCdn3_c::walkb, NULL}; /* 8097FCB8-8097FCD0 000610 0018+00 1/1 0/0 0/0 .data m_seq15_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq15_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FCD0-8097FCDC -00001 000C+00 0/1 0/0 0/0 .data @5135 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5135[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FCDC-8097FCE8 -00001 000C+00 0/1 0/0 0/0 .data @5136 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5136[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sitwaita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FCE8-8097FCF4 -00001 000C+00 0/1 0/0 0/0 .data @5137 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5137[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkab__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FCF4-8097FD00 -00001 000C+00 0/1 0/0 0/0 .data @5138 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5138[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sitwaita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FD00-8097FD0C -00001 000C+00 0/1 0/0 0/0 .data @5139 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5139[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FD0C-8097FD18 -00001 000C+00 0/1 0/0 0/0 .data @5140 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5140[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkab__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq15_funcTbl[2] = {&daNpcCdn3_c::sitwaita, NULL}; /* 8097FD18-8097FD6C 000670 0054+00 1/1 0/0 0/0 .data m_seq16_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq16_funcTbl[84] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq16_funcTbl[7] = { + &daNpcCdn3_c::sittalka, + &daNpcCdn3_c::sitwaita, + &daNpcCdn3_c::sittalkab, + &daNpcCdn3_c::sitwaita, + &daNpcCdn3_c::sittalka, + &daNpcCdn3_c::sittalkab, + NULL, }; -/* 8097FD6C-8097FD78 -00001 000C+00 0/1 0/0 0/0 .data @5141 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5141[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)playm__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 8097FD78-8097FD90 0006D0 0018+00 1/1 0/0 0/0 .data m_seq17_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq17_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq17_funcTbl[2] = { + &daNpcCdn3_c::playm, + NULL, }; -/* 8097FD90-8097FD9C -00001 000C+00 0/1 0/0 0/0 .data @5142 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5142[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sitwaitb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 8097FD9C-8097FDB4 0006F4 0018+00 1/1 0/0 0/0 .data m_seq18_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq18_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FDB4-8097FDC0 -00001 000C+00 0/1 0/0 0/0 .data @5143 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5143[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FDC0-8097FDCC -00001 000C+00 0/1 0/0 0/0 .data @5144 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5144[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sitwaitb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FDCC-8097FDD8 -00001 000C+00 0/1 0/0 0/0 .data @5145 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5145[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkbb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FDD8-8097FDE4 -00001 000C+00 0/1 0/0 0/0 .data @5146 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5146[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sitwaitb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FDE4-8097FDF0 -00001 000C+00 0/1 0/0 0/0 .data @5147 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5147[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FDF0-8097FDFC -00001 000C+00 0/1 0/0 0/0 .data @5148 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5148[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkbb__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq18_funcTbl[2] = {&daNpcCdn3_c::sitwaitb, NULL}; /* 8097FDFC-8097FE50 000754 0054+00 1/1 0/0 0/0 .data m_seq19_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq19_funcTbl[84] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq19_funcTbl[7] = { + &daNpcCdn3_c::sittalkb, + &daNpcCdn3_c::sitwaitb, + &daNpcCdn3_c::sittalkbb, + &daNpcCdn3_c::sitwaitb, + &daNpcCdn3_c::sittalkb, + &daNpcCdn3_c::sittalkbb, + NULL, }; -/* 8097FE50-8097FE5C -00001 000C+00 0/1 0/0 0/0 .data @5149 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5149[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)looka__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 8097FE5C-8097FE74 0007B4 0018+00 1/1 0/0 0/0 .data m_seq20_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq20_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FE74-8097FE80 -00001 000C+00 0/1 0/0 0/0 .data @5150 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5150[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)lookb__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq20_funcTbl[2] = {&daNpcCdn3_c::looka, NULL}; /* 8097FE80-8097FE98 0007D8 0018+00 1/1 0/0 0/0 .data m_seq21_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq21_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FE98-8097FEA4 -00001 000C+00 0/1 0/0 0/0 .data @5151 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5151[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)looka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FEA4-8097FEB0 -00001 000C+00 0/1 0/0 0/0 .data @5152 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5152[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)lookb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FEB0-8097FEBC -00001 000C+00 0/1 0/0 0/0 .data @5153 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5153[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq21_funcTbl[2] = {&daNpcCdn3_c::lookb, NULL}; /* 8097FEBC-8097FEEC 000814 0030+00 1/1 0/0 0/0 .data m_seq22_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq22_funcTbl[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8097FEEC-8097FEF8 -00001 000C+00 0/1 0/0 0/0 .data @5154 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5154[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FEF8-8097FF04 -00001 000C+00 0/1 0/0 0/0 .data @5155 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5155[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FF04-8097FF10 -00001 000C+00 0/1 0/0 0/0 .data @5156 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5156[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FF10-8097FF1C -00001 000C+00 0/1 0/0 0/0 .data @5157 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5157[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FF1C-8097FF28 -00001 000C+00 0/1 0/0 0/0 .data @5158 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5158[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FF28-8097FF34 -00001 000C+00 0/1 0/0 0/0 .data @5159 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5159[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq22_funcTbl[4] = {&daNpcCdn3_c::looka, &daNpcCdn3_c::lookb, + &daNpcCdn3_c::waita, NULL}; /* 8097FF34-8097FF88 00088C 0054+00 1/1 0/0 0/0 .data m_seq23_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq23_funcTbl[84] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq23_funcTbl[7] = { + &daNpcCdn3_c::talka, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::talka, + &daNpcCdn3_c::talkb, + NULL, }; -/* 8097FF88-8097FF94 -00001 000C+00 0/1 0/0 0/0 .data @5160 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5160[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FF94-8097FFA0 -00001 000C+00 0/1 0/0 0/0 .data @5161 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5161[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FFA0-8097FFAC -00001 000C+00 0/1 0/0 0/0 .data @5162 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5162[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkc__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8097FFAC-8097FFB8 -00001 000C+00 0/1 0/0 0/0 .data @5163 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5163[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 8097FFB8-8097FFF4 000910 003C+00 1/1 0/0 0/0 .data m_seq24_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq24_funcTbl[60] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq24_funcTbl[5] = { + &daNpcCdn3_c::talkb, &daNpcCdn3_c::talka, &daNpcCdn3_c::talkc, &daNpcCdn3_c::waita, NULL, }; -/* 8097FFF4-80980000 -00001 000C+00 0/1 0/0 0/0 .data @5164 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5164[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)browsea__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980000-8098000C -00001 000C+00 0/1 0/0 0/0 .data @5165 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5165[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)browseb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8098000C-80980018 -00001 000C+00 0/1 0/0 0/0 .data @5166 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5166[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980018-80980024 -00001 000C+00 0/1 0/0 0/0 .data @5167 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5167[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980024-80980030 -00001 000C+00 0/1 0/0 0/0 .data @5168 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5168[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkc__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980030-8098003C -00001 000C+00 0/1 0/0 0/0 .data @5169 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5169[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 8098003C-80980090 000994 0054+00 1/1 0/0 0/0 .data m_seq25_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq25_funcTbl[84] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq25_funcTbl[7] = { + &daNpcCdn3_c::browsea, + &daNpcCdn3_c::browseb, + &daNpcCdn3_c::talka, + &daNpcCdn3_c::talkb, + &daNpcCdn3_c::talkc, + &daNpcCdn3_c::waita, + NULL, }; -/* 80980090-8098009C -00001 000C+00 0/1 0/0 0/0 .data @5170 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5170[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)browsea__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8098009C-809800A8 -00001 000C+00 0/1 0/0 0/0 .data @5171 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5171[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)browseb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 809800A8-809800CC 000A00 0024+00 1/1 0/0 0/0 .data m_seq26_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq26_funcTbl[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq26_funcTbl[3] = { + &daNpcCdn3_c::browsea, + &daNpcCdn3_c::browseb, + NULL, }; -/* 809800CC-809800D8 -00001 000C+00 0/1 0/0 0/0 .data @5172 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5172[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)dance__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 809800D8-809800F0 000A30 0018+00 1/1 0/0 0/0 .data m_seq27_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq27_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 809800F0-809800FC -00001 000C+00 0/1 0/0 0/0 .data @5173 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5173[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809800FC-80980108 -00001 000C+00 0/1 0/0 0/0 .data @5174 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5174[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)normtalka__11daNpcCdn3_cFPv, -}; -#pragma pop +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq27_funcTbl[2] = {&daNpcCdn3_c::dance, NULL}; /* 80980108-8098012C 000A60 0024+00 1/1 0/0 0/0 .data m_seq28_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq28_funcTbl[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq28_funcTbl[3] = { + &daNpcCdn3_c::ladytalka, + &daNpcCdn3_c::normtalka, + NULL, }; -/* 8098012C-80980138 -00001 000C+00 0/1 0/0 0/0 .data @5175 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5175[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980138-80980144 -00001 000C+00 0/1 0/0 0/0 .data @5176 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5176[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)normtalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 80980144-80980168 000A9C 0024+00 1/1 0/0 0/0 .data m_seq29_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq29_funcTbl[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq29_funcTbl[3] = { + &daNpcCdn3_c::ladytalkb, + &daNpcCdn3_c::normtalkb, + NULL, }; -/* 80980168-80980174 -00001 000C+00 0/1 0/0 0/0 .data @5177 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5177[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980174-80980180 -00001 000C+00 0/1 0/0 0/0 .data @5178 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5178[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980180-8098018C -00001 000C+00 0/1 0/0 0/0 .data @5179 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5179[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8098018C-80980198 -00001 000C+00 0/1 0/0 0/0 .data @5180 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5180[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980198-809801A4 -00001 000C+00 0/1 0/0 0/0 .data @5181 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5181[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 809801A4-809801EC 000AFC 0048+00 1/1 0/0 0/0 .data m_seq30_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq30_funcTbl[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq30_funcTbl[6] = { + &daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL, }; -/* 809801EC-809801F8 -00001 000C+00 0/1 0/0 0/0 .data @5182 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5182[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809801F8-80980204 -00001 000C+00 0/1 0/0 0/0 .data @5183 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5183[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980204-80980210 -00001 000C+00 0/1 0/0 0/0 .data @5184 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5184[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980210-8098021C -00001 000C+00 0/1 0/0 0/0 .data @5185 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5185[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8098021C-80980228 -00001 000C+00 0/1 0/0 0/0 .data @5186 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5186[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 80980228-80980270 000B80 0048+00 1/1 0/0 0/0 .data m_seq31_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq31_funcTbl[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq31_funcTbl[6] = { + &daNpcCdn3_c::waita, &daNpcCdn3_c::ladytalkb, &daNpcCdn3_c::talka, + &daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, NULL, }; -/* 80980270-8098027C -00001 000C+00 0/1 0/0 0/0 .data @5187 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5187[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8098027C-80980288 -00001 000C+00 0/1 0/0 0/0 .data @5188 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5188[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980288-80980294 -00001 000C+00 0/1 0/0 0/0 .data @5189 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5189[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980294-809802A0 -00001 000C+00 0/1 0/0 0/0 .data @5190 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5190[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809802A0-809802AC -00001 000C+00 0/1 0/0 0/0 .data @5191 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5191[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809802AC-809802B8 -00001 000C+00 0/1 0/0 0/0 .data @5192 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5192[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)normtalka__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 809802B8-8098030C 000C10 0054+00 1/1 0/0 0/0 .data m_seq32_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq32_funcTbl[84] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq32_funcTbl[7] = { + &daNpcCdn3_c::talka, + &daNpcCdn3_c::ladytalka, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::normtalka, + NULL, }; -/* 8098030C-80980318 -00001 000C+00 0/1 0/0 0/0 .data @5193 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5193[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980318-80980324 -00001 000C+00 0/1 0/0 0/0 .data @5194 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5194[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980324-80980330 -00001 000C+00 0/1 0/0 0/0 .data @5195 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5195[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980330-8098033C -00001 000C+00 0/1 0/0 0/0 .data @5196 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5196[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 8098033C-80980348 -00001 000C+00 0/1 0/0 0/0 .data @5197 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5197[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980348-80980354 -00001 000C+00 0/1 0/0 0/0 .data @5198 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5198[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)normtalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 80980354-809803A8 000CAC 0054+00 1/1 0/0 0/0 .data m_seq33_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq33_funcTbl[84] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq33_funcTbl[7] = { + &daNpcCdn3_c::waita, + &daNpcCdn3_c::ladytalkb, + &daNpcCdn3_c::talka, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, + &daNpcCdn3_c::normtalkb, + NULL, }; -/* 809803A8-809803B4 -00001 000C+00 0/1 0/0 0/0 .data @5199 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5199[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809803B4-809803C0 -00001 000C+00 0/1 0/0 0/0 .data @5200 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5200[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809803C0-809803CC -00001 000C+00 0/1 0/0 0/0 .data @5201 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5201[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809803CC-809803D8 -00001 000C+00 0/1 0/0 0/0 .data @5202 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5202[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809803D8-809803E4 -00001 000C+00 0/1 0/0 0/0 .data @5203 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5203[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809803E4-809803F0 -00001 000C+00 0/1 0/0 0/0 .data @5204 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5204[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809803F0-809803FC -00001 000C+00 0/1 0/0 0/0 .data @5205 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5205[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)normtalka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809803FC-80980408 -00001 000C+00 0/1 0/0 0/0 .data @5206 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5206[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)normtalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 80980408-80980474 000D60 006C+00 1/1 0/0 0/0 .data m_seq34_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq34_funcTbl[108] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq34_funcTbl[9] = { + &daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::ladytalkb, + &daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, + &daNpcCdn3_c::normtalka, &daNpcCdn3_c::normtalkb, NULL, }; -/* 80980474-80980480 -00001 000C+00 0/1 0/0 0/0 .data @5207 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5207[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sellme__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 80980480-80980498 000DD8 0018+00 1/1 0/0 0/0 .data m_seq35_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq35_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq35_funcTbl[2] = { + &daNpcCdn3_c::sellme, + NULL, }; -/* 80980498-809804A4 -00001 000C+00 0/1 0/0 0/0 .data @5208 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5208[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ladytalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809804A4-809804B0 -00001 000C+00 0/1 0/0 0/0 .data @5209 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5209[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 809804B0-809804BC -00001 000C+00 0/1 0/0 0/0 .data @5210 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5210[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waita__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 809804BC-809804EC 000E14 0030+00 1/1 0/0 0/0 .data m_seq36_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq36_funcTbl[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq36_funcTbl[4] = { + &daNpcCdn3_c::ladytalkb, + &daNpcCdn3_c::talka, + &daNpcCdn3_c::waita, + NULL, }; -/* 809804EC-809804F8 -00001 000C+00 0/1 0/0 0/0 .data @5211 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5211[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sing__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 809804F8-80980510 000E50 0018+00 1/1 0/0 0/0 .data m_seq37_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq37_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq37_funcTbl[2] = { + &daNpcCdn3_c::sing, NULL, }; -/* 80980510-8098051C -00001 000C+00 0/1 0/0 0/0 .data @5212 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5212[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalka__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 8098051C-80980534 000E74 0018+00 1/1 0/0 0/0 .data m_seq38_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq38_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq38_funcTbl[2] = { + &daNpcCdn3_c::sittalka, NULL, }; -/* 80980534-80980540 -00001 000C+00 0/1 0/0 0/0 .data @5213 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5213[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkab__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 80980540-80980558 000E98 0018+00 1/1 0/0 0/0 .data m_seq39_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq39_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq39_funcTbl[2] = { + &daNpcCdn3_c::sittalkab, NULL, }; -/* 80980558-80980564 -00001 000C+00 0/1 0/0 0/0 .data @5214 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5214[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalka__11daNpcCdn3_cFPv, -}; -#pragma pop - -/* 80980564-80980570 -00001 000C+00 0/1 0/0 0/0 .data @5215 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5215[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkab__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 80980570-80980594 000EC8 0024+00 1/1 0/0 0/0 .data m_seq40_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq40_funcTbl[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq40_funcTbl[3] = { + &daNpcCdn3_c::sittalka, &daNpcCdn3_c::sittalkab, NULL, }; -/* 80980594-809805A0 -00001 000C+00 0/1 0/0 0/0 .data @5216 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5216[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 809805A0-809805B8 000EF8 0018+00 1/1 0/0 0/0 .data m_seq41_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq41_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq41_funcTbl[2] = { + &daNpcCdn3_c::sittalkb, NULL, }; -/* 809805B8-809805C4 -00001 000C+00 0/1 0/0 0/0 .data @5217 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5217[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkbb__11daNpcCdn3_cFPv, -}; -#pragma pop - /* 809805C4-809805DC 000F1C 0018+00 1/1 0/0 0/0 .data m_seq42_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq42_funcTbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq42_funcTbl[2] = { + &daNpcCdn3_c::sittalkbb, NULL, -/* 809805DC-809805E8 -00001 000C+00 0/1 0/0 0/0 .data @5218 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5218[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkb__11daNpcCdn3_cFPv, }; -#pragma pop - -/* 809805E8-809805F4 -00001 000C+00 0/1 0/0 0/0 .data @5219 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5219[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sittalkbb__11daNpcCdn3_cFPv, -}; -#pragma pop /* 809805F4-80980618 000F4C 0024+00 1/1 0/0 0/0 .data m_seq43_funcTbl__11daNpcCdn3_c */ -SECTION_DATA u8 daNpcCdn3_c::m_seq43_funcTbl[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq43_funcTbl[3] = { + &daNpcCdn3_c::sittalkb, &daNpcCdn3_c::sittalkbb, NULL, }; /* 80978E6C-80978ED0 00020C 0064+00 1/0 0/0 0/0 .text initWait__11daNpcCdn3_cFv */ void daNpcCdn3_c::initWait() { - // NONMATCHING + speedF = 0.0f; + field_0xb97 = 0; + field_0xb94 = 1; + (this->*(m_funcTbl[mSeqNum][field_0xb97]))(NULL); } /* 80978ED0-80979080 000270 01B0+00 1/0 0/0 0/0 .text executeWait__11daNpcCdn3_cFv */ void daNpcCdn3_c::executeWait() { - // NONMATCHING + if ((this->*(m_funcTbl[mSeqNum][field_0xb97]))(NULL) != 0) { + int newIndex; + field_0xb97 = (m_funcTbl[mSeqNum][field_0xb97 + 1] == NULL) ? 0 : field_0xb97 + 1; + field_0xb94 = 1; + if (mpMorf->getAnm() == getAnmP(8, mObjNum)) { + mCitizen.playVoice(3); + } else if (mpMorf->getAnm() == getAnmP(49, mObjNum)) { + mCitizen.playVoice(4); + } else if (mpMorf->getAnm() == getAnmP(20, mObjNum) || mpMorf->getAnm() == getAnmP(21, mObjNum)) { + mCitizen.playVoice(5); + } + } + checkSchedule(); + if (checkFearSituation()) { + if (mObjNum == 2 && (m_type == 0 || m_type == 1)) { + setAction(MODE_FIGHT); + } else { + setAction(MODE_FEAR); + } + } } -/* ############################################################################################## */ -/* 8097F544-8097F548 000004 0004+00 36/46 0/0 0/0 .rodata @4091 */ -SECTION_RODATA static f32 const lit_4091 = 1.0f; -COMPILER_STRIP_GATE(0x8097F544, &lit_4091); - -/* 8097F548-8097F550 000008 0004+04 34/42 0/0 0/0 .rodata @4092 */ -SECTION_RODATA static f32 const lit_4092[1 + 1 /* padding */] = { - 12.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x8097F548, &lit_4092); - /* 80979080-80979144 000420 00C4+00 1/0 0/0 0/0 .text initPath__11daNpcCdn3_cFv */ void daNpcCdn3_c::initPath() { - // NONMATCHING + setAnm((J3DAnmTransformKey*) getAnmP(2, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb68 = 2; + field_0xb97 = 0; + field_0xb94 = 1; + field_0xb98 = 0; + if (mTagSched != NULL) { + mSeqNum = mTagSched->getSeqNum(); + if (mSeqNum >= 0 && mSeqNum < 44) { + (this->*(m_funcTbl[mSeqNum][0]))(NULL); + } + } +} + +/* 80979144-809799B0 0004E4 086C+00 1/0 0/0 0/0 .text executePath__11daNpcCdn3_cFv */ +void daNpcCdn3_c::executePath() { + if (m_path.isPath()) { + switch (field_0xb98) { + case 0: + if (m_path.checkPoint(current.pos, speedF)) { + field_0xb74 = -1; + if (m_path.getArg0() != -1) { + field_0xb74 = getTimeMinute() + getTimeHour() * 60 + m_path.getArg0() * 10; + } + mSeqNum = m_path.getArg1(); + if (m_path.checkPathEnd(current.pos, speedF)) { + if (getGroupID() != 0xff) { + if ((int)mTagSched->getStartEnd() == 1) { + setSchedule(field_0xb88); + field_0xb88 = NULL; + field_0xb95 = 1; + } else { + if (m_path.isClose()) { + m_path.setNextPoint(current.pos); + } else { + if (mSeqNum < 0 || mSeqNum >= 44) { + #ifdef DEBUG + JUT_PANIC(517, 0); + #else + OSReport_Error("城下町の町人 パス点引数設定値異常 引数1モーションシーケンス=%dが異常です。\n", mSeqNum); + #endif + } + field_0xb68 = 0; + setAction(MODE_WAIT); + } + } + checkSchedule(); + } else { + if (!m_path.isClose()) { + int time = getTime(); + field_0xb8c = time + field_0xb90; + current.pos.set(m_path.getPoint(0)); + home.pos.set(current.pos); + old.pos.set(current.pos); + current.angle.y = cLib_targetAngleY(m_path.getPoint(0), m_path.getPoint(1)); + shape_angle.y = current.angle.y; + home.angle.y = current.angle.y; + old.angle.y = current.angle.y; + m_path.setPath(getPathID(), fopAcM_GetRoomNo(this), 1, ¤t.pos, + false); + setAction(MODE_PATH); + field_0xb95 = 1; + } + } + } else { + if (mSeqNum >= 0 && mSeqNum < 44) { + field_0xb68 = 0; + field_0xb98 = 1; + } else { + if (mTagSched != NULL) { + mSeqNum = mTagSched->getSeqNum(); + if (mSeqNum >= 0 && mSeqNum < 44) { + (this->*(m_funcTbl[mSeqNum][0]))(NULL); + } + } + m_path.setNextPoint(current.pos); + } + } + } + break; + case 1: + if (field_0xb74 != -1) { + if ((this->*(m_funcTbl[mSeqNum][field_0xb97]))(NULL)) { + field_0xb97 = (m_funcTbl[mSeqNum][field_0xb97 + 1] == NULL) ? 0 : field_0xb97 + 1; + field_0xb94 = 1; + } + int time = getTime(); + if (field_0xb74 <= time) { + if (field_0xb68 == 0) { + setAnm((J3DAnmTransformKey*)getAnmP(2, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb68 = 2; + } + field_0xb97 = 0; + field_0xb94 = 1; + m_path.setNextPoint(current.pos); + field_0xb98 = 0; + } + } else { + if ((this->*(m_funcTbl[mSeqNum][field_0xb97]))(NULL)) { + if (m_funcTbl[mSeqNum][field_0xb97 + 1] == NULL) { + if (field_0xb68 == 0) { + setAnm((J3DAnmTransformKey*)getAnmP(2, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb68 = 2; + } + field_0xb97 = 0; + m_path.setNextPoint(current.pos); + field_0xb98 = 0; + } else { + field_0xb97++; + } + field_0xb94 = 1; + } + } + break; + default: + JUT_PANIC(598, 0); + break; + } + + if (field_0xb68 == 2 || field_0xb68 == 1) { + if (!fopAcM_CheckCondition(this, 4)) { + m_path.checkObstacle(this); + } + cXyz cStack_58; + m_path.getTargetPoint(&cStack_58); + s16 sVar10 = cLib_targetAngleY(¤t.pos, &cStack_58); + cLib_addCalcAngleS2(&shape_angle.y, sVar10, 0xd, 0x600); + if (current.pos.y != old.pos.y) { + s16 sVar10 = 0; + cM3dGPla acStack_4c; + if (dComIfG_Bgsp().GetTriPla(mAcch.m_gnd, &acStack_4c) != 0) { + sVar10 = fopAcM_getPolygonAngle(&acStack_4c, shape_angle.y); + } + if (sVar10 != 0) { + field_0xb64 = current.pos.y; + } + } + if (mAcch.ChkWallHit() && current.pos.abs(old.pos) < 2.0f) { + field_0xb99++; + if (field_0xb99 > 30) { + setAction(MODE_RELIEF); + } + } else { + field_0xb99 = 0; + } + } + setAngle(); + pathMoveF(); + mAcch.CrrPos(dComIfG_Bgsp()); + if (checkFearSituation()) { + if (mObjNum == 2 && (m_type == 0 || m_type == 1)) { + setAction(MODE_FIGHT); + } else { + setAction(MODE_FEAR); + } + } + } +} + +/* 80979A34-80979B2C 000DD4 00F8+00 1/0 0/0 0/0 .text initTalk__11daNpcCdn3_cFv */ +void daNpcCdn3_c::initTalk() { + field_0xb68 = 0; + m_targetAct.entry(dComIfGp_getLinkPlayer()); + field_0xb92 = shape_angle.y; + field_0xb80 = mpMorf->getAnm(); + field_0xb7c = mSeqNum; + JUT_ASSERT(658, 0 != m_targetAct.getActorP()); + if (!isInShop() && !isNoTurnTalk()) { + int uVar2; + if (isChairStyle()) { + uVar2 = 15; + } else { + uVar2 = 2; + } + mSeqNum = uVar2; + field_0xb97 = 0; + AnmNum anmNum; + if (isChairStyle()) { + anmNum = CD2_ANM_14; + } else { + anmNum = CD2_ANM_0; + } + setAnm((J3DAnmTransformKey*)getAnmP(anmNum, mObjNum), 1.0f, 12.0f, 2, 0, -1); + } + field_0xb98 = 0; +} + +/* 80979B2C-80979F08 000ECC 03DC+00 1/0 0/0 0/0 .text executeTalk__11daNpcCdn3_cFv */ +void daNpcCdn3_c::executeTalk() { + if (mpMorf->getAnm() == getAnmP(47,mObjNum)) { + if (m_type == 17) { + mCitizen.startCreatureVoiceLevel(Z2SE_WAD_A_MV_DANCE, -1); + } else if (m_type == 2) { + mCitizen.startCreatureVoiceLevel(Z2SE_MCN_A_V_DANCE, -1); + } else if (m_type == 26) { + mCitizen.startCreatureVoiceLevel(Z2SE_WCN_A_V_DANCE, -1); + } + } + switch (field_0xb98) { + case 0: + if (mIsDarkWorld || isInShop() || isNoTurnTalk()) { + field_0xb98++; + } else { + s16 actorAngle = fopAcM_searchActorAngleY(this, m_targetAct.getActorP()); + if (cLib_addCalcAngleS(&shape_angle.y, actorAngle, 4, 0x800, 0x10) == 0) { + speedF = 0.0f; + field_0xb98++; + } + setAngle(); + } + break; + case 1: + if (dComIfGp_event_chkTalkXY()) { + if (!dComIfGp_evmng_ChkPresentEnd()) { + break; + } + field_0xb98++; + } else { + field_0xb98++; + } + mMsgFlow.init(this, mFlowNodeNum, 0, NULL); + case 2: + if (mMsgFlow.doFlow(this, NULL, 0)) { + dComIfGp_event_reset(); + m_targetAct.remove(); + mSeqNum = field_0xb7c; + if (field_0xb68 != 0) { + setAction(mPrevMode); + } else { + if (!isInShop()) { + int iVar8 = 0; + if (isChairStyle()) { + iVar8 = 14; + } + setAnm((J3DAnmTransformKey*)getAnmP(iVar8, mObjNum), 1.0f, 12.0f, 2, 0, -1); + } + field_0xb98++; + } + } else { + int msgAnm = ctrlMsgAnm(); + if (msgAnm != -1) { + mSeqNum = msgAnm; + field_0xb97 = 0; + field_0xb94 = 1; + } + JUT_ASSERT(726, m_funcTbl[mSeqNum][field_0xb97] != 0); + if ((this->*(m_funcTbl[mSeqNum][field_0xb97]))(NULL) != 0) { + field_0xb97 = (m_funcTbl[mSeqNum][field_0xb97 + 1] == NULL) ? 0 : field_0xb97 + 1; + field_0xb94 = 1; + } + } + break; + case 3: + if (cLib_addCalcAngleS(&shape_angle.y, field_0xb92, 4, 0x800, 0x10) == 0) { + setAnm((J3DAnmTransformKey*)field_0xb80, 1.0f, 12.0f, 2, 0, -1); + setAction(mPrevMode); + } + setAngle(); + return; + default: + JUT_PANIC(741, 0); + } +} + +/* 80979F08-8097A028 0012A8 0120+00 1/0 0/0 0/0 .text initEscape__11daNpcCdn3_cFv */ +void daNpcCdn3_c::initEscape() { + mEscapeTag = getEscapeTag(); + JUT_ASSERT(816, mEscapeTag != 0); + JUT_ASSERT(817, mEscapeTag->getPathID() != 0xff); + m_path.setPath(mEscapeTag->getPathID(), fopAcM_GetRoomNo(this), 1, ¤t.pos, true); + JUT_ASSERT(819, m_path.isPath()); + m_path.setNextPoint(current.pos); + if (mObjNum == 0) { + setAnm((J3DAnmTransformKey*)getAnmP(41, mObjNum), 1.0f, 0.0f, 0, 0, -1); + mCitizen.playVoice(1); + field_0xb68 = 0; + } else { + setAnm((J3DAnmTransformKey*)getAnmP(4, mObjNum), 1.0f, 12.0f, 2, 0, -1); + mCitizen.playVoice(0); + field_0xb68 = 1; + } + mFlowNodeNum = 0; + dComIfGs_onSaveDunSwitch(0x3c); +} + +/* 8097A028-8097A398 0013C8 0370+00 1/0 0/0 0/0 .text executeEscape__11daNpcCdn3_cFv */ +void daNpcCdn3_c::executeEscape() { + if (field_0xb68 == 0) { + if (mpMorf->isStop()) { + setAnm((J3DAnmTransformKey*)getAnmP(4, mObjNum), 1.0f, 12.0f, 2, 0, -1); + mCitizen.playVoice(0); + field_0xb68 = 1; + } + cLib_addCalcAngleS2(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 3, 0x600); + } else if (field_0xb68 == 1) { + if (fopAcM_CheckCondition(this, 4)) { + fopAcM_delete(this); + } + + if (m_path.checkPoint(current.pos, speedF)) { + if (m_path.checkPathEnd(current.pos, speedF)) { + fopAcM_delete(this); + } + m_path.setNextPoint(current.pos); + } + m_path.checkObstacle(this); + cXyz cStack_40; + m_path.getTargetPoint(&cStack_40); + cLib_addCalcAngleS2(&shape_angle.y, cLib_targetAngleY(¤t.pos, &cStack_40), 3, 0x600); + if (current.pos.y != old.pos.y) { + s16 gndAngle = 0; + cM3dGPla plane; + if (dComIfG_Bgsp().GetTriPla(mAcch.m_gnd, &plane)) { + gndAngle = fopAcM_getPolygonAngle(&plane, shape_angle.y); + } + if (gndAngle != 0) { + field_0xb64 = current.pos.y; + } + } + setAngle(); + pathMoveF(); + mAcch.CrrPos(dComIfG_Bgsp()); + if (mAcch.ChkWallHit() && current.pos.abs(old.pos) < 2.0f) { + field_0xb99++; + if (field_0xb99 > 30) { + setAction(MODE_FEAR2); + } + } else { + field_0xb99 = 0; + } + } +} + +/* 8097A398-8097A518 001738 0180+00 1/0 0/0 0/0 .text initFear__11daNpcCdn3_cFv */ +void daNpcCdn3_c::initFear() { + int a_anmNum = 0x26; + if (mpMorf->getAnm() == getAnmP(14, mObjNum) || + mpMorf->getAnm() == getAnmP(15, mObjNum) || + mpMorf->getAnm() == getAnmP(16, mObjNum)) + { + a_anmNum = 0x27; + } else if (mpMorf->getAnm() == getAnmP(17, mObjNum) || + mpMorf->getAnm() == getAnmP(18, mObjNum) || + mpMorf->getAnm() == getAnmP(19, mObjNum)) + { + a_anmNum = 0x28; + } + + mSeqNum = a_anmNum; + setAnm((J3DAnmTransformKey*)getAnmP(0x29, mObjNum), 1.0f, 0.0f, 0, 0, -1); + field_0xb92 = fopAcM_searchPlayerAngleY(this); + mFlowNodeNum = 0; + speedF = 0.0f; + dComIfGs_onSaveDunSwitch(0x3c); + field_0xb68 = 0; +} + +/* 8097A518-8097A60C 0018B8 00F4+00 1/0 0/0 0/0 .text executeFear__11daNpcCdn3_cFv */ +void daNpcCdn3_c::executeFear() { + if (mpMorf->checkFrame(1.0f)) { + mCitizen.playVoice(2); + } + if (mpMorf->isStop()) { + mObjNum = 0; + setAnm((J3DAnmTransformKey*)getAnmP(mSeqNum, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb92 = cLib_targetAngleY(fopAcM_GetPosition_p(daPy_getPlayerActorClass()), ¤t.pos); + } + cLib_addCalcAngleS2(&shape_angle.y, field_0xb92, 3, 0x600); +} + +/* 8097A60C-8097A6AC 0019AC 00A0+00 1/0 0/0 0/0 .text initFear2__11daNpcCdn3_cFv */ +void daNpcCdn3_c::initFear2() { + mObjNum = 0; + setAnm((J3DAnmTransformKey*)getAnmP(38, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb92 = cLib_targetAngleY(fopAcM_GetPosition_p(daPy_getPlayerActorClass()), ¤t.pos); + mFlowNodeNum = 0; + speedF = 0.0f; + field_0xb68 = 2; +} + +/* 8097A6AC-8097A724 001A4C 0078+00 1/0 0/0 0/0 .text executeFear2__11daNpcCdn3_cFv */ +void daNpcCdn3_c::executeFear2() { + if (mpMorf->checkFrame(1.0f)) { + mCitizen.playVoice(2); + } + if (fopAcM_CheckCondition(this, 4)) { + fopAcM_delete(this); + } + cLib_addCalcAngleS2(&shape_angle.y, field_0xb92, 3, 0x600); +} + +/* 8097A724-8097A7E0 001AC4 00BC+00 1/0 0/0 0/0 .text initFight__11daNpcCdn3_cFv */ +void daNpcCdn3_c::initFight() { + setAnm((J3DAnmTransformKey*)getAnmP(41, mObjNum), 1.0f, 0.0f, 0, 0, -1); + mCitizen.playVoice(1); + mFlowNodeNum = 0; + speedF = 0; + fopAcM_setCullSizeBox(this, -40.0f, -10.0f, -80.0f, 40.0f, 190.0f, 200.0f); + dComIfGs_onSaveDunSwitch(0x3c); + field_0xb68 = 0; +} + +/* 8097A7E0-8097A960 001B80 0180+00 1/0 0/0 0/0 .text executeFight__11daNpcCdn3_cFv */ +void daNpcCdn3_c::executeFight() { + if (mpMorf->isStop()) { + setAnm((J3DAnmTransformKey*)getAnmP(42, mObjNum), 1.0f, 12.0f, 2, 0, -1); + } + field_0xb92 = fopAcM_searchPlayerAngleY(this); + if (mpMorf->getAnm() != getAnmP(41, mObjNum)) { + if (mpMorf->checkFrame(1.0f)) { + mCitizen.playVoice(2); + } + if (cLib_distanceAngleS(shape_angle.y, field_0xb92) > 0x600) { + setAnm((J3DAnmTransformKey*)getAnmP(44, mObjNum), 1.0f, 12.0f, 2, 0, -1); + } else { + setAnm((J3DAnmTransformKey*)getAnmP(42, mObjNum), 1.0f, 12.0f, 2, 0, -1); + } + } + cLib_addCalcAngleS2(&shape_angle.y, field_0xb92, 3, 0x600); +} + +/* 8097A960-8097A9E4 001D00 0084+00 1/0 0/0 0/0 .text initRelief__11daNpcCdn3_cFv */ +void daNpcCdn3_c::initRelief() { + setAnm((J3DAnmTransformKey*)getAnmP(0, mObjNum), 1.0f, 12.0f, 2, 0, -1); + speedF = 0.0f; + field_0xb92 = shape_angle.y + 0x8000; + field_0xb68 = 2; +} + +/* 8097A9E4-8097ABDC 001D84 01F8+00 1/0 0/0 0/0 .text executeRelief__11daNpcCdn3_cFv */ +void daNpcCdn3_c::executeRelief() { + if (getGroupID() == 0xff && fopAcM_CheckCondition(this, 4)) { + int time = getTime(); + field_0xb8c = time + field_0xb90; + current.pos.set(m_path.getPoint(0)); + home.pos.set(current.pos); + old.pos.set(current.pos); + current.angle.y = cLib_targetAngleY(m_path.getPoint(0), m_path.getPoint(1)); + shape_angle.y = current.angle.y; + home.angle.y = current.angle.y; + old.angle.y = current.angle.y; + m_path.setPath(getPathID(), fopAcM_GetRoomNo(this), 1, ¤t.pos, false); + setAction(MODE_PATH); + field_0xb95 = 1; + } + if (checkFearSituation()) { + if (mObjNum == 2 && (m_type == 0 || m_type == 1)) { + setAction(MODE_FIGHT); + } else { + setAction(MODE_FEAR); + } + } + cLib_addCalcAngleS2(&shape_angle.y, field_0xb92, 3, 0x600); +} + +/* 8097ABDC-8097ABE8 001F7C 000C+00 3/3 0/0 0/0 .text setAngle__11daNpcCdn3_cFv */ +void daNpcCdn3_c::setAngle() { + current.angle.y = shape_angle.y; +} + +/* 8097ABE8-8097AF14 001F88 032C+00 2/2 0/0 0/0 .text pathMoveF__11daNpcCdn3_cFv */ +void daNpcCdn3_c::pathMoveF() { + f32 walkSpeed = 0.0f; + f32 anmSpeed = 0.0f; + cXyz* movePos = mStts.GetCCMoveP(); + if (field_0xb68 == 2) { + walkSpeed = Cd2_HIO_walkMaxSpeed(m_type); + anmSpeed = Cd2_HIO_walkAnmPlaySpeed(m_type); + + cLib_chaseF(&field_0xb5c, 0.8f, 0.05f); + setSpeed(&field_0xb60, 0.7f, walkSpeed, 0); + setSpeed(&speedF, 0.7f, walkSpeed, 1); + } else if (field_0xb68 == 1) { + walkSpeed = Cd2_HIO_maxSpeed(m_type); + anmSpeed = Cd2_HIO_anmPlaySpeed(m_type); + if (mMode == MODE_ESCAPSE) { + walkSpeed *= 1.5f; + anmSpeed *= 1.5f; + } + cLib_chaseF(&field_0xb5c, 1.0, 0.05f); + setSpeed(&field_0xb60, 0.7f, walkSpeed, 0); + setSpeed(&speedF, 0.7f, walkSpeed, 1); + } else if (field_0xb68 == 0) { + cLib_chaseF(&field_0xb5c, 0.0, 0.05f); + cLib_chaseF(&field_0xb60, 0.0f, 1.5f); + cLib_chaseF(&speedF, 0.0f, 1.5f); + } + cXyz targetPoint; + m_path.getTargetPoint(&targetPoint); + if (cLib_distanceAngleS(shape_angle.y, cLib_targetAngleY(¤t.pos, &targetPoint)) >= 0x2000) { + cLib_chaseF(&field_0xb5c, 0.0f, 0.05f); + cLib_chaseF(&field_0xb60, 0.0f, 1.2f); + cLib_chaseF(&speedF, 0.0f, 1.2f); + } + fopAcM_posMoveF(this, movePos); + if (field_0xb68 != 0) { + walkSpeed = field_0xb60 / walkSpeed; + if (walkSpeed > 1.0f) { + walkSpeed = 1.0f; + } + f32 playSpeed = anmSpeed * walkSpeed; + if (playSpeed < 0.6f) { + playSpeed = 0.6f; + } + mpMorf->setPlaySpeed(playSpeed); + } +} + +/* 8097AF14-8097AFE0 0022B4 00CC+00 1/1 0/0 0/0 .text ctrlMsgAnm__11daNpcCdn3_cFv */ +int daNpcCdn3_c::ctrlMsgAnm() { + int rv = -1; + if (!eventInfo.checkCommandTalk()) { + return -1; + } + if (dComIfGp_event_getTalkPartner() == this) { + msg_class* msg_p = dMsgObject_c::getActor(); + JUT_ASSERT(1524, 0 != msg_p); + if (msg_p->mode == 2 || msg_p->mode == 3) { + mMsgIndex = -1; + } else if (msg_p->mode == 6) { + if (msg_p->msg_idx != mMsgIndex) { + rv = dComIfGp_getMesgAnimeAttrInfo(); + mMsgIndex = msg_p->msg_idx; + } + } else { + mMsgIndex = -1; + } + } else { + mMsgIndex = -1; + } + return rv; +} + +/* 8097AFE0-8097B04C 002380 006C+00 1/1 0/0 0/0 .text s_sub1__FPvPv */ +static void* s_sub1(void* param_1, void* param_2) { + if (fopAcM_IsActor(param_1) && fopAcM_GetName(param_1) == PROC_Tag_Schedule && + static_cast(param_2)->searchNextScheduleTagSub( + static_cast(param_1))) + { + return param_1; + } + return NULL; +} + +/* 8097B04C-8097B128 0023EC 00DC+00 1/1 0/0 0/0 .text + * searchNextScheduleTagSub__11daNpcCdn3_cFP10fopAc_ac_c */ +bool daNpcCdn3_c::searchNextScheduleTagSub(fopAc_ac_c* param_1) { + if (getGroupID() == ((daTagSchedule_c*)param_1)->getGroupID()) { + int uVar3 = mTagSched->getStartTime(); + uVar3 = (u16)((uVar3 / 10) * 60 + (uVar3 % 10) * 10); + int uVar4 = ((daTagSchedule_c*)param_1)->getStartTime(); + int uVar4a = (u16)((uVar4 / 10) * 60 + (uVar4 % 10) * 10); + if (uVar4a <= (int)uVar3) { + uVar4a += 24 * 60; + } + if (uVar4a > uVar3) { + if (field_0xb88 == NULL) { + field_0xb88 = (daTagSchedule_c*)param_1; + } else { + u16 uVar5 = field_0xb88->getStartTime(); + int uVar5a = (u16)((uVar5 / 10) * 60 + (uVar5 % 10) * 10); + if (uVar5a <= uVar3) { + uVar5a += 24 * 60; + } + if (uVar4a < uVar5a) { + field_0xb88 = (daTagSchedule_c*)param_1; + } + } + } + } + return 0; +} + +/* 8097B128-8097B194 0024C8 006C+00 1/1 0/0 0/0 .text s_sub2__FPvPv */ +static void* s_sub2(void* param_1, void* param_2) { + if (fopAcM_IsActor(param_1) && fopAcM_GetName(param_1) == PROC_Tag_Schedule && + static_cast(param_2)->searchFirstScheduleTagSub( + static_cast(param_1))) + { + return param_1; + } + return NULL; +} + +/* 8097B194-8097B288 002534 00F4+00 1/1 0/0 0/0 .text + * searchFirstScheduleTagSub__11daNpcCdn3_cFP10fopAc_ac_c */ +bool daNpcCdn3_c::searchFirstScheduleTagSub(fopAc_ac_c* param_1) { + if (getGroupID() == ((daTagSchedule_c*)param_1)->getGroupID()) { + int uVar3 = ((daTagSchedule_c*)param_1)->getStartTime(); + int uVar3a = (u16)((uVar3 / 10) * 60 + (uVar3 % 10) * 10); + int iVar1 = getTime(); + if (mTagSched == NULL) { + mTagSched = (daTagSchedule_c*)param_1; + } else { + u8 uVar4 = mTagSched->getStartTime(); + if (uVar3a > iVar1) { + if (uVar3a < uVar4) { + mTagSched = (daTagSchedule_c*)param_1; + } + } else if (uVar3a > uVar4) { + mTagSched = (daTagSchedule_c*)param_1; + } + } + } + return 0; +} + +/* 8097B288-8097B38C 002628 0104+00 2/2 0/0 0/0 .text checkSchedule__11daNpcCdn3_cFv */ +void daNpcCdn3_c::checkSchedule() { + if (getGroupID() != 0xff && field_0xb88 != NULL) { + u16 rawStartTime = field_0xb88->getStartTime(); + int schedStartTime = (u16)((rawStartTime / 10) * 60 + (rawStartTime % 10) * 10); + int currentTime = getTime(); + int currentDay = getDayOfWeek(); + int schedDay = field_0xb88->getWeekNum(); + if (schedDay == currentDay && schedStartTime <= currentTime) { + setSchedule(field_0xb88); + field_0xb88 = NULL; + setAction(MODE_PATH); + } + } +} + +/* 8097B38C-8097B5A8 00272C 021C+00 3/3 0/0 0/0 .text + * setSchedule__11daNpcCdn3_cFP15daTagSchedule_c */ +void daNpcCdn3_c::setSchedule(daTagSchedule_c* param_1) { + mTagSched = param_1; + int iVar8; + if (mTagSched->getPathID() != 0xff) { + if (mTagSched->getStartEnd() == 0) { + iVar8 = 1; + } else { + if (mTagSched->getStartEnd() == 1) { + iVar8 = -1; + } else { + iVar8 = 1; + } + } + m_path.setPath(mTagSched->getPathID(), fopAcM_GetRoomNo(this), iVar8, + ¤t.pos, false); + if (iVar8 == -1) { + m_path.setLastPointNum(); + } + } + u16 startTime = mTagSched->getStartTime(); + field_0xb8c = (startTime / 10) * 60 + (startTime % 10) * 10; + mSeqNum = mTagSched->getSeqNum(); + mFlowNodeNum = mTagSched->getFlowNodeNum(); + if (mSeqNum < 0 || mSeqNum >= 44) { + OSReport_Error("城下町の町人 スケジュールタグ設定値異常 引数1モーションシーケンス=%dが異常です。\n", mSeqNum); + JUT_PANIC(1825, 0); + } + if (mTagSched->getStartEnd() == 0) { + current.pos.set(m_path.getPoint(0)); + home.pos.set(current.pos); + old.pos.set(current.pos); + current.angle.y = cLib_targetAngleY(m_path.getPoint(0), m_path.getPoint(1)); + shape_angle.y = current.angle.y; + home.angle.y = current.angle.y; + old.angle.y = current.angle.y; + field_0xb95 = 1; + } + if (m_path.isPath()) { + setAction(MODE_PATH); + } else { + setAction(MODE_WAIT); + } + const char* dayStr = ""; + switch (mTagSched->getWeekNum()) { + case 0: + dayStr = "日"; + break; + case 1: + dayStr = "月"; + break; + case 2: + dayStr = "火"; + break; + case 3: + dayStr = "水"; + break; + case 4: + dayStr = "木"; + break; + case 5: + dayStr = "金"; + break; + case 6: + dayStr = "土"; + break; + default: + JUT_PANIC(1856, 0); + break; + } + OS_REPORT("町人スケジュールセット\n"); + OS_REPORT("開始時刻: %s曜日 %d時 %d分\n", dayStr, startTime / 10, (startTime % 10) * 10); + OS_REPORT("グループID: %d\n", mTagSched->getGroupID()); + OS_REPORT("レールID: %d\n", mTagSched->getPathID()); + OS_REPORT("モーションシーケンス: %d\n", mSeqNum); + OS_REPORT("スタート、エンド: %d\n", mTagSched->getStartEnd()); + OS_REPORT("メッセージID: %d\n", mFlowNodeNum); +} + +/* 8097B5A8-8097B60C 002948 0064+00 2/2 0/0 0/0 .text isInShop__11daNpcCdn3_cFv */ +inline bool daNpcCdn3_c::isInShop() { + BOOL rv = FALSE; + if (strcmp(dComIfGp_getStartStageName(), "R_SP160") == 0 && dComIfG_play_c::getLayerNo(0) <= 1) { + rv = TRUE; + } + return rv; +} + +/* 8097B60C-8097B684 0029AC 0078+00 3/3 0/0 0/0 .text isChairStyle__11daNpcCdn3_cFv */ +bool daNpcCdn3_c::isChairStyle() { + if (mSeqNum == 15 || mSeqNum == 16 || (mSeqNum == 17 && isM_()) || + mSeqNum == 38 || mSeqNum == 39 || mSeqNum == 40) + { + return true; + } + return false; +} + +/* 8097B684-8097B6D0 002A24 004C+00 2/2 0/0 0/0 .text isNoTurnTalk__11daNpcCdn3_cFv */ +bool daNpcCdn3_c::isNoTurnTalk() { + if (mSeqNum == 7 || mSeqNum == 8 || mSeqNum == 18 || mSeqNum == 19 || + mSeqNum == 41 || mSeqNum == 42 || mSeqNum == 43) + { + return true; + } + return false; +} + +/* 8097B6D0-8097B754 002A70 0084+00 21/0 0/0 0/0 .text waita__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::waita(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(0, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097B754-8097B7D8 002AF4 0084+00 15/0 0/0 0/0 .text talka__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::talka(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(6, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097B7D8-8097B85C 002B78 0084+00 3/0 0/0 0/0 .text waitwall__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::waitwall(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(11, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097B85C-8097B8E0 002BFC 0084+00 2/0 0/0 0/0 .text talkwall__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::talkwall(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(12, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097B8E0-8097B964 002C80 0084+00 2/0 0/0 0/0 .text talkbwall__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::talkbwall(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(13, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097B964-8097B9E8 002D04 0084+00 12/0 0/0 0/0 .text talkb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::talkb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(7, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097B9E8-8097BA6C 002D88 0084+00 4/0 0/0 0/0 .text talkc__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::talkc(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(8, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BA6C-8097BAF0 002E0C 0084+00 2/0 0/0 0/0 .text waitb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::waitb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(1, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BAF0-8097BB74 002E90 0084+00 3/0 0/0 0/0 .text sitwaita__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::sitwaita(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(14, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BB74-8097BBF8 002F14 0084+00 4/0 0/0 0/0 .text sittalka__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::sittalka(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(15, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BBF8-8097BC7C 002F98 0084+00 4/0 0/0 0/0 .text sittalkab__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::sittalkab(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(16, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BC7C-8097BD00 00301C 0084+00 3/0 0/0 0/0 .text sitwaitb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::sitwaitb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(17, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BD00-8097BD84 0030A0 0084+00 4/0 0/0 0/0 .text sittalkb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::sittalkb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(18, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BD84-8097BE08 003124 0084+00 4/0 0/0 0/0 .text sittalkbb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::sittalkbb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(19, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BE08-8097BE8C 0031A8 0084+00 2/0 0/0 0/0 .text looka__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::looka(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(9, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BE8C-8097BF10 00322C 0084+00 2/0 0/0 0/0 .text lookb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::lookb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(10, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097BF10-8097C070 0032B0 0160+00 1/0 0/0 0/0 .text playm__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::playm(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(34, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + if (isM_()) { + if (getType() == 4) { + mCitizen.startCreatureVoiceLevel(Z2SE_CSL_TOWN_BAND_GT_1, -1); + } else { + if (getType() == 5) { + mCitizen.startCreatureVoiceLevel(Z2SE_CSL_TOWN_BAND_GT_2, -1); + } else { + if (getType() == 6) { + mCitizen.startCreatureVoiceLevel(Z2SE_CSL_TOWN_BAND_GT_3, -1); + } + } + } + } else { + mCitizen.startCreatureVoiceLevel(Z2SE_CSL_TOWN_BAND_FLUTE, -1); + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C070-8097C12C 003410 00BC+00 1/0 0/0 0/0 .text turnr__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::turnr(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(0, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb92 = shape_angle.y - 0x4000; + field_0xb94 = 0; + } + cLib_addCalcAngleS2(&shape_angle.y, field_0xb92, 4, 0x2000); + if (abs(field_0xb92 - shape_angle.y) <= 4) { + shape_angle.y = field_0xb92; + return 1; + } + return 0; + } + return 0; +} + +/* 8097C12C-8097C1E8 0034CC 00BC+00 1/0 0/0 0/0 .text turnl__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::turnl(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(0, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb92 = shape_angle.y + 0x4000; + field_0xb94 = 0; + } + cLib_addCalcAngleS2(&shape_angle.y, field_0xb92, 4, 0x2000); + if (abs(field_0xb92 - shape_angle.y) <= 4) { + shape_angle.y = field_0xb92; + return 1; + } + return 0; + } + return 0; +} + +/* 8097C1E8-8097C250 003588 0068+00 1/0 0/0 0/0 .text walka__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::walka(void* param_0) { + setAnm((J3DAnmTransformKey*)getAnmP(2, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb68 = 2; + return 1; +} + +/* 8097C250-8097C2B8 0035F0 0068+00 1/0 0/0 0/0 .text walkb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::walkb(void* param_0) { + setAnm((J3DAnmTransformKey*)getAnmP(3, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb68 = 2; + return 1; +} + +/* 8097C2B8-8097C320 003658 0068+00 1/0 0/0 0/0 .text runa__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::runa(void* param_0) { + setAnm((J3DAnmTransformKey*)getAnmP(4, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb68 = 1; + return 1; +} + +/* 8097C320-8097C388 0036C0 0068+00 1/0 0/0 0/0 .text runb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::runb(void* param_0) { + setAnm((J3DAnmTransformKey*)getAnmP(5, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xb68 = 1; + return 1; +} + +/* 8097C388-8097C40C 003728 0084+00 3/0 0/0 0/0 .text browsea__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::browsea(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(20, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C40C-8097C490 0037AC 0084+00 3/0 0/0 0/0 .text browseb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::browseb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(21, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C490-8097C5B0 003830 0120+00 1/0 0/0 0/0 .text dance__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::dance(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(47, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + if (m_type == 17) { + mCitizen.startCreatureVoiceLevel(Z2SE_WAD_A_MV_DANCE, -1); + } else { + if (m_type == 2) { + mCitizen.startCreatureVoiceLevel(Z2SE_MCN_A_V_DANCE, -1); + } else { + if (m_type == 26) { + mCitizen.startCreatureVoiceLevel(Z2SE_WCN_A_V_DANCE, -1); + } + } + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C5B0-8097C634 003950 0084+00 4/0 0/0 0/0 .text ladytalka__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::ladytalka(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(48, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C634-8097C6B8 0039D4 0084+00 5/0 0/0 0/0 .text ladytalkb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::ladytalkb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(49, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C6B8-8097C73C 003A58 0084+00 3/0 0/0 0/0 .text normtalka__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::normtalka(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(50, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C73C-8097C7C0 003ADC 0084+00 3/0 0/0 0/0 .text normtalkb__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::normtalkb(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(51, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C7C0-8097C844 003B60 0084+00 1/0 0/0 0/0 .text sellme__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::sellme(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(52, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C844-8097C8F0 003BE4 00AC+00 1/0 0/0 0/0 .text sing__11daNpcCdn3_cFPv */ +int daNpcCdn3_c::sing(void* param_0) { + if (isStop()) { + if (field_0xb94 != 0) { + setAnm((J3DAnmTransformKey*)getAnmP(53, mObjNum), 1.0f, 12.0f, 2, 0, -1); + field_0xaa0 = 1; + field_0xb94 = 0; + } + mCitizen.startCreatureVoiceLevel(Z2SE_CSL_TOWN_BAND_VOCAL, -1); + return field_0xaa0 == 0; + } + return 0; +} + +/* 8097C8F0-8097C910 003C90 0020+00 1/0 0/0 0/0 .text daNpcCdn3_Create__FPv */ +static int daNpcCdn3_Create(void* i_this) { + return static_cast(i_this)->create(); } /* ############################################################################################## */ -/* 8097F550-8097F558 000010 0008+00 0/2 0/0 0/0 .rodata @4280 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4280[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8097F550, &lit_4280); -#pragma pop - -/* 8097F558-8097F560 000018 0008+00 0/2 0/0 0/0 .rodata @4281 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4281[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8097F558, &lit_4281); -#pragma pop - -/* 8097F560-8097F568 000020 0008+00 0/2 0/0 0/0 .rodata @4282 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4282[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8097F560, &lit_4282); -#pragma pop - -/* 8097F568-8097F56C 000028 0004+00 0/2 0/0 0/0 .rodata @4283 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4283 = 2.0f; -COMPILER_STRIP_GATE(0x8097F568, &lit_4283); -#pragma pop - /* 8097F5AC-8097F5AC 00006C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on -SECTION_DEAD static char const* const stringBase_8097F5AC = - "城下町の町人 パス点引数設定値異常 引数1モーションシーケンス=%dが異常です。\n"; +SECTION_DEAD static char const* const stringBase_8097F652 = + "城下町の町人 マップツール設定値異常 引数1モーションシーケンス=%dが異常です。\n"; #pragma pop -/* 80980618-80980638 -00001 0020+00 1/1 0/0 0/0 .data @5488 */ -SECTION_DATA static void* lit_5488[8] = { - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x22C), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x234), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x23C), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x244), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x24C), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x254), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x25C), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x264), -}; +/* 8097C910-8097CC58 003CB0 0348+00 3/1 0/0 0/0 .text create__11daNpcCdn3_cFv */ +int daNpcCdn3_c::create() { + fopAcM_SetupActor(this, daNpcCdn3_c); + mIsDarkWorld = dKy_darkworld_check(); + m_type = getType(); + mObjNum = getObjNum(); + mSeqNum = getSeqNum(); + mFlowNodeNum = getFlowNodeNum(); + if (mSeqNum < 0 || 44 <= mSeqNum) { + OSReport_Error("城下町の町人 マップツール設定値異常 引数1モーションシーケンス=%dが異常です。\n", mSeqNum); + JUT_PANIC(175, 0); + } + int rv = loadResrc(m_type, mObjNum); + if (rv == cPhs_COMPLEATE_e) { + if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x80002890) == 0) { + OS_REPORT("アクター生成失敗しました!\n"); + return cPhs_ERROR_e; + } + create_init(); + } + return rv; +} -/* 80980638-80980658 -00001 0020+00 1/1 0/0 0/0 .data @5487 */ -SECTION_DATA static void* lit_5487[8] = { - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x194), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x19C), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x1A4), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x1AC), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x1B4), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x1BC), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x1C4), - (void*)(((char*)create__11daNpcCdn3_cFv) + 0x1CC), -}; +/* 8097CC58-8097D078 003FF8 0420+00 1/1 0/0 0/0 .text create_init__11daNpcCdn3_cFv */ +// NONMATCHING - issues with initParamTime division and mod interaction with u16 +void daNpcCdn3_c::create_init() { + gravity = -3.0f; + initTimeSchedule(); + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -40.0f, -10.0f, -40.0f, 40.0f, 190.0f, + 40.0f); + f32 chkWallR = Cd2_HIO_chkWallR(m_type); + f32 chkWallH = Cd2_HIO_chkWallH(m_type); + mAcchCir.SetWall(chkWallH, chkWallR); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, + fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + mAcch.SetRoofNone(); + mAcch.SetWaterNone(); + mAcch.CrrPos(dComIfG_Bgsp()); + setEnvTevCol(); + setRoomNo(); + initCollision(); + if (strcmp(dComIfGp_getStartStageName(), "F_SP116") == 0 && + dComIfGp_getStartStageRoomNo() == 3 && getType() == 7) + { + attention_info.distances[fopAc_attn_SPEAK_e] = 0xda; + attention_info.distances[fopAc_attn_TALK_e] = 0xda; + } else { + attention_info.distances[fopAc_attn_SPEAK_e] = 0xd9; + attention_info.distances[fopAc_attn_TALK_e] = 0xd9; + } + + if (isInShop()) { + fopAcM_OnStatus(this, 0x4000); + } + + if (m_path.setPath(getPathID(), fopAcM_GetRoomNo(this), 1, ¤t.pos, false)) { + setAction(MODE_PATH); + } else { + setAction(MODE_WAIT); + } + + mpMorf->setMorf(0.0f); + f32 gnd = mAcch.GetGroundH(); + current.pos.y = gnd; + field_0xb64 = gnd; + setMtx(); +} + +/* 8097D078-8097D120 004418 00A8+00 2/2 0/0 0/0 .text setMtx__11daNpcCdn3_cFv */ +void daNpcCdn3_c::setMtx() { + mDoMtx_stack_c::transS(current.pos.x, field_0xb64, current.pos.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + mpMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get()); + field_0xa9c = 0; + mpMorf->modelCalc(); + setAttention(m_type); + lookat(); + field_0xa9c = 1; + mpMorf->modelCalc(); + setAttention(m_type); +} + +/* 8097D120-8097D614 0044C0 04F4+00 1/1 0/0 0/0 .text lookat__11daNpcCdn3_cFv */ +// NONMATCHING - stack + r3 init order +void daNpcCdn3_c::lookat() { + int local_68[4]; + csXyz cStack_4c = csXyz(Cd2_HIO_maxLmtX_BACKBONE(m_type), Cd2_HIO_maxLmtY_BACKBONE(m_type), 0); + csXyz cStack_46 = csXyz(Cd2_HIO_maxLmtX_NECK(m_type), Cd2_HIO_maxLmtY_NECK(m_type), 0); + csXyz cStack_40 = csXyz(Cd2_HIO_maxLmtX_HEAD(m_type), Cd2_HIO_maxLmtY_HEAD(m_type), 0); + csXyz cStack_60 = csXyz(Cd2_HIO_minLmtX_BACKBONE(m_type), Cd2_HIO_minLmtY_BACKBONE(m_type), 0); + csXyz cStack_5a = csXyz(Cd2_HIO_minLmtX_NECK(m_type), Cd2_HIO_minLmtY_NECK(m_type), 0); + csXyz cStack_54 = csXyz(Cd2_HIO_minLmtX_HEAD(m_type), Cd2_HIO_minLmtY_HEAD(m_type), 0); + cXyz cStack_80(cXyz::Zero); + if (isM_()) { + local_68[0] = 1; + local_68[1] = 2; + local_68[2] = 3; + local_68[3] = -1; + } else { + local_68[0] = 1; + local_68[1] = 2; + local_68[2] = 3; + local_68[3] = -1; + } + mLookat.init(mpMorf->getModel(), local_68, &cStack_4c,&cStack_60); + Mtx afStack_38; + if (m_targetAct.getActorP() != NULL) { + cMtx_copy(mpMorf->getModel()->getBaseTRMtx(), afStack_38); + cStack_80 = m_targetAct.getActorP()->eyePos; + } else { + cMtx_copy(mpMorf->getModel()->getBaseTRMtx(), afStack_38); + cStack_80 = cXyz::Zero; + } + mLookat.action(cStack_80, eyePos, this, afStack_38, m_targetAct.getActorP() != NULL); +} + +/* 8097D650-8097D684 0049F0 0034+00 1/0 0/0 0/0 .text daNpcCdn3_Delete__FPv */ +static int daNpcCdn3_Delete(void* i_this) { + static_cast(i_this)->~daNpcCdn3_c(); + return 1; +} + +/* 8097D684-8097D728 004A24 00A4+00 1/0 0/0 0/0 .text __dt__11daNpcCdn3_cFv */ +daNpcCdn3_c::~daNpcCdn3_c() { + removeResrc(m_type, mObjNum); + if (heap != NULL) { + mpMorf->stopZelAnime(); + } +} + +/* 8097D728-8097D748 004AC8 0020+00 1/0 0/0 0/0 .text daNpcCdn3_Execute__FPv */ +static int daNpcCdn3_Execute(void* i_this) { + return static_cast(i_this)->execute(); +} + +/* 8097D748-8097DABC 004AE8 0374+00 1/1 0/0 0/0 .text execute__11daNpcCdn3_cFv */ +// NONMATCHING - isInShop bool issue +int daNpcCdn3_c::execute() { + mAcchCir.SetWallH(Cd2_HIO_chkWallH(m_type)); + mAcchCir.SetWallR(Cd2_HIO_chkWallR(m_type)); + checkTimeSchedule(); + if (field_0xb95 != 0) { + fopAcM_OnStatus(this, 0x8000000); + } else { + fopAcM_OffStatus(this, 0x8000000); + } + if (field_0xb95 != 0) { + if (!mIsDarkWorld && daPy_py_c::checkNowWolf()) { + fopAcM_delete(this); + } + return 1; + } else { + if (getGroupID() == 0xff && mMode == MODE_WAIT && !isInShop() && !isOrchestra() && + fopAcM_CheckCondition(this, 4)) + { + return 1; + } + if (!chkEvent()) { + orderEvent(); + } + callExecute(); + cLib_addCalc2(&field_0xb64, current.pos.y, 0.4f, 25.0f); + animation(-1); + setCollision(); + setMtx(); + } + return 1; +} + +inline bool daNpcCdn3_c::searchFirstScheduleTag(fopAc_ac_c* param_1) { + field_0xb88 = NULL; + fpcM_Search(s_sub2, this); + if (mTagSched != NULL) { + mTagSched->setWeekNum((u32)getDayOfWeek() % 7); + } + return mTagSched != NULL; +} + +inline bool daNpcCdn3_c::searchNextScheduleTag() { + if (mTagSched == NULL) { + return 0; + } + field_0xb88 = 0; + fpcM_Search(s_sub1, this); + if (field_0xb88 != 0) { + u32 uVar2 = mTagSched->getWeekNum(); + u32 bVar3 = mTagSched->getStartTime(); + u32 bVar4 = field_0xb88->getStartTime(); + if (bVar4 <= bVar3) { + uVar2 = (uVar2 + 1) % 7; + } + field_0xb88->setWeekNum(uVar2 % 7); + } + return field_0xb88 != NULL; +} + +/* 8097DABC-8097DEF4 004E5C 0438+00 1/1 0/0 0/0 .text checkTimeSchedule__11daNpcCdn3_cFv + */ +// NONMATCHING - getLastPointNum issues +void daNpcCdn3_c::checkTimeSchedule() { + int iVar2 = getTime(); + if (getGroupID() == 0xff) { + if (field_0xb96 == 0 && fopAcM_CheckCondition(this, 4)) { + if (field_0xb8c <= iVar2 && field_0xb8e > iVar2) { + field_0xb95 = 0; + } else { + field_0xb95 = 1; + } + } + } else { + if (mTagSched == NULL) { + if (searchFirstScheduleTag(this)) { + setSchedule(mTagSched); + if (mTagSched->getStartEnd() == 1) { + if (field_0xb88 == 0) { + searchNextScheduleTag(); + } + setSchedule(field_0xb88); + field_0xb88 = NULL; + field_0xb95 = 1; + } else if (field_0xb8c < iVar2) { + current.pos.set(m_path.getPoint(m_path.getLastPointNum())); + home.pos.set(current.pos); + old.pos.set(current.pos); + current.angle.y = + cLib_targetAngleY(m_path.getPoint(m_path.getLastPointNum()), + m_path.getPoint(m_path.getLastPointNum() - 1)); + shape_angle.y = current.angle.y; + home.angle.y = current.angle.y; + old.angle.y = current.angle.y; + m_path.setLastPointNum(); + } + } + } else if (field_0xb95 != 0 && mTagSched->getStartEnd() != 1) { + int day = getDayOfWeek(); + int schedDay = mTagSched->getWeekNum(); + if (schedDay == day && field_0xb8c <= iVar2) { + field_0xb95 = 0; + } + } + if (field_0xb88 == 0) { + searchNextScheduleTag(); + } + } +} + +inline int daNpcCdn3_c::draw() { + if (field_0xb95 != 0) { + return 1; + } + drawNpc(); + drawObj(mObjNum, field_0xac8, Cd2_HIO_objScale(m_type)); + if (field_0xacc != NULL) { + g_env_light.setLightTevColorType_MAJI(field_0xacc, + &tevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(field_0xacc); + dComIfGd_setList(); + } + drawShadow(60.0f); + mLookat.dbView(); + return 1; +} + +/* 8097DEF4-8097E000 005294 010C+00 1/0 0/0 0/0 .text daNpcCdn3_Draw__FPv */ +static int daNpcCdn3_Draw(void* i_this) { + return static_cast(i_this)->draw(); +} + +/* 8097E000-8097E008 0053A0 0008+00 1/0 0/0 0/0 .text daNpcCdn3_IsDelete__FPv */ +static int daNpcCdn3_IsDelete(void* i_this) { + return 1; +} /* 80980658-80980678 -00001 0020+00 1/0 0/0 0/0 .data daNpcCdn3_METHODS */ static actor_method_class daNpcCdn3_METHODS = { - (process_method_func)daNpcCdn3_Create__FPv, - (process_method_func)daNpcCdn3_Delete__FPv, - (process_method_func)daNpcCdn3_Execute__FPv, - (process_method_func)daNpcCdn3_IsDelete__FPv, - (process_method_func)daNpcCdn3_Draw__FPv, + (process_method_func)daNpcCdn3_Create, + (process_method_func)daNpcCdn3_Delete, + (process_method_func)daNpcCdn3_Execute, + (process_method_func)daNpcCdn3_IsDelete, + (process_method_func)daNpcCdn3_Draw, }; /* 80980678-809806A8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_CD3 */ @@ -2109,665 +2131,4 @@ extern actor_process_profile_definition g_profile_NPC_CD3 = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 809806A8-809806B4 001000 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 809806B4-809806C0 00100C 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 809806C0-809806CC 001018 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 809806CC-809806D8 001024 000C+00 2/2 0/0 0/0 .data __vt__16dNpcLib_lookat_c */ -SECTION_DATA extern void* __vt__16dNpcLib_lookat_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16dNpcLib_lookat_cFv, -}; - -/* 809806D8-809806E4 001030 000C+00 3/3 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcT_ActorMngr_cFv, -}; - -/* 809806E4-809806F0 00103C 000C+00 2/2 0/0 0/0 .data __vt__11daNpcCdn3_c */ -SECTION_DATA extern void* __vt__11daNpcCdn3_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__11daNpcCdn3_cFv, -}; - -/* 809806F0-809806FC 001048 000C+00 3/3 0/0 0/1 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 809806FC-80980708 001054 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80980708-8098072C 001060 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_8097EFE0, - (void*)NULL, - (void*)NULL, - (void*)func_8097EFD8, -}; - -/* 8098072C-80980738 001084 000C+00 2/2 0/0 0/0 .data __vt__10daNpcCd2_c */ -SECTION_DATA extern void* __vt__10daNpcCd2_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10daNpcCd2_cFv, -}; - -/* 80980738-80980744 001090 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGPla */ -SECTION_DATA extern void* __vt__8cM3dGPla[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGPlaFv, -}; - -/* 80979144-809799B0 0004E4 086C+00 1/0 0/0 0/0 .text executePath__11daNpcCdn3_cFv */ -void daNpcCdn3_c::executePath() { - // NONMATCHING -} - -/* 809799B0-809799F8 000D50 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGPlaFv */ -// cM3dGPla::~cM3dGPla() { -extern "C" void __dt__8cM3dGPlaFv() { - // NONMATCHING -} - -/* 809799F8-80979A34 000D98 003C+00 2/2 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80979A34-80979B2C 000DD4 00F8+00 1/0 0/0 0/0 .text initTalk__11daNpcCdn3_cFv */ -void daNpcCdn3_c::initTalk() { - // NONMATCHING -} - -/* 80979B2C-80979F08 000ECC 03DC+00 1/0 0/0 0/0 .text executeTalk__11daNpcCdn3_cFv */ -void daNpcCdn3_c::executeTalk() { - // NONMATCHING -} - -/* 80979F08-8097A028 0012A8 0120+00 1/0 0/0 0/0 .text initEscape__11daNpcCdn3_cFv */ -void daNpcCdn3_c::initEscape() { - // NONMATCHING -} - -/* 8097A028-8097A398 0013C8 0370+00 1/0 0/0 0/0 .text executeEscape__11daNpcCdn3_cFv */ -void daNpcCdn3_c::executeEscape() { - // NONMATCHING -} - -/* 8097A398-8097A518 001738 0180+00 1/0 0/0 0/0 .text initFear__11daNpcCdn3_cFv */ -void daNpcCdn3_c::initFear() { - // NONMATCHING -} - -/* 8097A518-8097A60C 0018B8 00F4+00 1/0 0/0 0/0 .text executeFear__11daNpcCdn3_cFv */ -void daNpcCdn3_c::executeFear() { - // NONMATCHING -} - -/* 8097A60C-8097A6AC 0019AC 00A0+00 1/0 0/0 0/0 .text initFear2__11daNpcCdn3_cFv */ -void daNpcCdn3_c::initFear2() { - // NONMATCHING -} - -/* 8097A6AC-8097A724 001A4C 0078+00 1/0 0/0 0/0 .text executeFear2__11daNpcCdn3_cFv */ -void daNpcCdn3_c::executeFear2() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8097F56C-8097F570 00002C 0004+00 0/2 0/0 0/0 .rodata @4583 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4583 = -40.0f; -COMPILER_STRIP_GATE(0x8097F56C, &lit_4583); -#pragma pop - -/* 8097F570-8097F574 000030 0004+00 0/2 0/0 0/0 .rodata @4584 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4584 = -10.0f; -COMPILER_STRIP_GATE(0x8097F570, &lit_4584); -#pragma pop - -/* 8097F574-8097F578 000034 0004+00 0/1 0/0 0/0 .rodata @4585 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4585 = -80.0f; -COMPILER_STRIP_GATE(0x8097F574, &lit_4585); -#pragma pop - -/* 8097F578-8097F57C 000038 0004+00 0/2 0/0 0/0 .rodata @4586 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4586 = 40.0f; -COMPILER_STRIP_GATE(0x8097F578, &lit_4586); -#pragma pop - -/* 8097F57C-8097F580 00003C 0004+00 0/2 0/0 0/0 .rodata @4587 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4587 = 190.0f; -COMPILER_STRIP_GATE(0x8097F57C, &lit_4587); -#pragma pop - -/* 8097F580-8097F584 000040 0004+00 0/1 0/0 0/0 .rodata @4588 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4588 = 200.0f; -COMPILER_STRIP_GATE(0x8097F580, &lit_4588); -#pragma pop - -/* 8097A724-8097A7E0 001AC4 00BC+00 1/0 0/0 0/0 .text initFight__11daNpcCdn3_cFv */ -void daNpcCdn3_c::initFight() { - // NONMATCHING -} - -/* 8097A7E0-8097A960 001B80 0180+00 1/0 0/0 0/0 .text executeFight__11daNpcCdn3_cFv */ -void daNpcCdn3_c::executeFight() { - // NONMATCHING -} - -/* 8097A960-8097A9E4 001D00 0084+00 1/0 0/0 0/0 .text initRelief__11daNpcCdn3_cFv */ -void daNpcCdn3_c::initRelief() { - // NONMATCHING -} - -/* 8097A9E4-8097ABDC 001D84 01F8+00 1/0 0/0 0/0 .text executeRelief__11daNpcCdn3_cFv */ -void daNpcCdn3_c::executeRelief() { - // NONMATCHING -} - -/* 8097ABDC-8097ABE8 001F7C 000C+00 3/3 0/0 0/0 .text setAngle__11daNpcCdn3_cFv */ -void daNpcCdn3_c::setAngle() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8097F584-8097F588 000044 0004+00 0/1 0/0 0/0 .rodata @4752 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4752 = 4.0f / 5.0f; -COMPILER_STRIP_GATE(0x8097F584, &lit_4752); -#pragma pop - -/* 8097F588-8097F58C 000048 0004+00 0/1 0/0 0/0 .rodata @4753 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4753 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x8097F588, &lit_4753); -#pragma pop - -/* 8097F58C-8097F590 00004C 0004+00 0/1 0/0 0/0 .rodata @4754 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4754 = 7.0f / 10.0f; -COMPILER_STRIP_GATE(0x8097F58C, &lit_4754); -#pragma pop - -/* 8097F590-8097F594 000050 0004+00 0/1 0/0 0/0 .rodata @4755 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4755 = 1.5f; -COMPILER_STRIP_GATE(0x8097F590, &lit_4755); -#pragma pop - -/* 8097F594-8097F598 000054 0004+00 0/1 0/0 0/0 .rodata @4756 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4756 = 6.0f / 5.0f; -COMPILER_STRIP_GATE(0x8097F594, &lit_4756); -#pragma pop - -/* 8097F598-8097F59C 000058 0004+00 0/1 0/0 0/0 .rodata @4757 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4757 = 3.0f / 5.0f; -COMPILER_STRIP_GATE(0x8097F598, &lit_4757); -#pragma pop - -/* 8097ABE8-8097AF14 001F88 032C+00 2/2 0/0 0/0 .text pathMoveF__11daNpcCdn3_cFv */ -void daNpcCdn3_c::pathMoveF() { - // NONMATCHING -} - -/* 8097AF14-8097AFE0 0022B4 00CC+00 1/1 0/0 0/0 .text ctrlMsgAnm__11daNpcCdn3_cFv */ -void daNpcCdn3_c::ctrlMsgAnm() { - // NONMATCHING -} - -/* 8097AFE0-8097B04C 002380 006C+00 1/1 0/0 0/0 .text s_sub1__FPvPv */ -static void s_sub1(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 8097B04C-8097B128 0023EC 00DC+00 1/1 0/0 0/0 .text - * searchNextScheduleTagSub__11daNpcCdn3_cFP10fopAc_ac_c */ -void daNpcCdn3_c::searchNextScheduleTagSub(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 8097B128-8097B194 0024C8 006C+00 1/1 0/0 0/0 .text s_sub2__FPvPv */ -static void s_sub2(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 8097B194-8097B288 002534 00F4+00 1/1 0/0 0/0 .text - * searchFirstScheduleTagSub__11daNpcCdn3_cFP10fopAc_ac_c */ -void daNpcCdn3_c::searchFirstScheduleTagSub(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 8097B288-8097B38C 002628 0104+00 2/2 0/0 0/0 .text checkSchedule__11daNpcCdn3_cFv */ -void daNpcCdn3_c::checkSchedule() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8097F5AC-8097F5AC 00006C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8097F5F8 = - "城下町の町人 スケジュールタグ設定値異常 引数1モーションシーケンス=%dが異常です。\n"; -#pragma pop - -/* 8097B38C-8097B5A8 00272C 021C+00 3/3 0/0 0/0 .text - * setSchedule__11daNpcCdn3_cFP15daTagSchedule_c */ -void daNpcCdn3_c::setSchedule(daTagSchedule_c* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8097F5AC-8097F5AC 00006C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8097F64A = "R_SP160"; -#pragma pop - -/* 8097B5A8-8097B60C 002948 0064+00 2/2 0/0 0/0 .text isInShop__11daNpcCdn3_cFv */ -void daNpcCdn3_c::isInShop() { - // NONMATCHING -} - -/* 8097B60C-8097B684 0029AC 0078+00 3/3 0/0 0/0 .text isChairStyle__11daNpcCdn3_cFv */ -void daNpcCdn3_c::isChairStyle() { - // NONMATCHING -} - -/* 8097B684-8097B6D0 002A24 004C+00 2/2 0/0 0/0 .text isNoTurnTalk__11daNpcCdn3_cFv */ -void daNpcCdn3_c::isNoTurnTalk() { - // NONMATCHING -} - -/* 8097B6D0-8097B754 002A70 0084+00 21/0 0/0 0/0 .text waita__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::waita(void* param_0) { - // NONMATCHING -} - -/* 8097B754-8097B7D8 002AF4 0084+00 15/0 0/0 0/0 .text talka__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::talka(void* param_0) { - // NONMATCHING -} - -/* 8097B7D8-8097B85C 002B78 0084+00 3/0 0/0 0/0 .text waitwall__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::waitwall(void* param_0) { - // NONMATCHING -} - -/* 8097B85C-8097B8E0 002BFC 0084+00 2/0 0/0 0/0 .text talkwall__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::talkwall(void* param_0) { - // NONMATCHING -} - -/* 8097B8E0-8097B964 002C80 0084+00 2/0 0/0 0/0 .text talkbwall__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::talkbwall(void* param_0) { - // NONMATCHING -} - -/* 8097B964-8097B9E8 002D04 0084+00 12/0 0/0 0/0 .text talkb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::talkb(void* param_0) { - // NONMATCHING -} - -/* 8097B9E8-8097BA6C 002D88 0084+00 4/0 0/0 0/0 .text talkc__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::talkc(void* param_0) { - // NONMATCHING -} - -/* 8097BA6C-8097BAF0 002E0C 0084+00 2/0 0/0 0/0 .text waitb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::waitb(void* param_0) { - // NONMATCHING -} - -/* 8097BAF0-8097BB74 002E90 0084+00 3/0 0/0 0/0 .text sitwaita__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::sitwaita(void* param_0) { - // NONMATCHING -} - -/* 8097BB74-8097BBF8 002F14 0084+00 4/0 0/0 0/0 .text sittalka__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::sittalka(void* param_0) { - // NONMATCHING -} - -/* 8097BBF8-8097BC7C 002F98 0084+00 4/0 0/0 0/0 .text sittalkab__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::sittalkab(void* param_0) { - // NONMATCHING -} - -/* 8097BC7C-8097BD00 00301C 0084+00 3/0 0/0 0/0 .text sitwaitb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::sitwaitb(void* param_0) { - // NONMATCHING -} - -/* 8097BD00-8097BD84 0030A0 0084+00 4/0 0/0 0/0 .text sittalkb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::sittalkb(void* param_0) { - // NONMATCHING -} - -/* 8097BD84-8097BE08 003124 0084+00 4/0 0/0 0/0 .text sittalkbb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::sittalkbb(void* param_0) { - // NONMATCHING -} - -/* 8097BE08-8097BE8C 0031A8 0084+00 2/0 0/0 0/0 .text looka__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::looka(void* param_0) { - // NONMATCHING -} - -/* 8097BE8C-8097BF10 00322C 0084+00 2/0 0/0 0/0 .text lookb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::lookb(void* param_0) { - // NONMATCHING -} - -/* 8097BF10-8097C070 0032B0 0160+00 1/0 0/0 0/0 .text playm__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::playm(void* param_0) { - // NONMATCHING -} - -/* 8097C070-8097C12C 003410 00BC+00 1/0 0/0 0/0 .text turnr__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::turnr(void* param_0) { - // NONMATCHING -} - -/* 8097C12C-8097C1E8 0034CC 00BC+00 1/0 0/0 0/0 .text turnl__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::turnl(void* param_0) { - // NONMATCHING -} - -/* 8097C1E8-8097C250 003588 0068+00 1/0 0/0 0/0 .text walka__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::walka(void* param_0) { - // NONMATCHING -} - -/* 8097C250-8097C2B8 0035F0 0068+00 1/0 0/0 0/0 .text walkb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::walkb(void* param_0) { - // NONMATCHING -} - -/* 8097C2B8-8097C320 003658 0068+00 1/0 0/0 0/0 .text runa__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::runa(void* param_0) { - // NONMATCHING -} - -/* 8097C320-8097C388 0036C0 0068+00 1/0 0/0 0/0 .text runb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::runb(void* param_0) { - // NONMATCHING -} - -/* 8097C388-8097C40C 003728 0084+00 3/0 0/0 0/0 .text browsea__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::browsea(void* param_0) { - // NONMATCHING -} - -/* 8097C40C-8097C490 0037AC 0084+00 3/0 0/0 0/0 .text browseb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::browseb(void* param_0) { - // NONMATCHING -} - -/* 8097C490-8097C5B0 003830 0120+00 1/0 0/0 0/0 .text dance__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::dance(void* param_0) { - // NONMATCHING -} - -/* 8097C5B0-8097C634 003950 0084+00 4/0 0/0 0/0 .text ladytalka__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::ladytalka(void* param_0) { - // NONMATCHING -} - -/* 8097C634-8097C6B8 0039D4 0084+00 5/0 0/0 0/0 .text ladytalkb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::ladytalkb(void* param_0) { - // NONMATCHING -} - -/* 8097C6B8-8097C73C 003A58 0084+00 3/0 0/0 0/0 .text normtalka__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::normtalka(void* param_0) { - // NONMATCHING -} - -/* 8097C73C-8097C7C0 003ADC 0084+00 3/0 0/0 0/0 .text normtalkb__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::normtalkb(void* param_0) { - // NONMATCHING -} - -/* 8097C7C0-8097C844 003B60 0084+00 1/0 0/0 0/0 .text sellme__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::sellme(void* param_0) { - // NONMATCHING -} - -/* 8097C844-8097C8F0 003BE4 00AC+00 1/0 0/0 0/0 .text sing__11daNpcCdn3_cFPv */ -void daNpcCdn3_c::sing(void* param_0) { - // NONMATCHING -} - -/* 8097C8F0-8097C910 003C90 0020+00 1/0 0/0 0/0 .text daNpcCdn3_Create__FPv */ -static void daNpcCdn3_Create(void* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8097F5AC-8097F5AC 00006C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8097F652 = - "城下町の町人 マップツール設定値異常 引数1モーションシーケンス=%dが異常です。\n"; -#pragma pop - -/* 8097C910-8097CC58 003CB0 0348+00 3/1 0/0 0/0 .text create__11daNpcCdn3_cFv */ -void daNpcCdn3_c::create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8097F59C-8097F5A0 00005C 0004+00 0/1 0/0 0/0 .rodata @5585 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5585 = -3.0f; -COMPILER_STRIP_GATE(0x8097F59C, &lit_5585); -#pragma pop - -/* 8097F5AC-8097F5AC 00006C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8097F6A0 = "F_SP116"; -#pragma pop - -/* 8097CC58-8097D078 003FF8 0420+00 1/1 0/0 0/0 .text create_init__11daNpcCdn3_cFv */ -void daNpcCdn3_c::create_init() { - // NONMATCHING -} - -/* 8097D078-8097D120 004418 00A8+00 2/2 0/0 0/0 .text setMtx__11daNpcCdn3_cFv */ -void daNpcCdn3_c::setMtx() { - // NONMATCHING -} - -/* 8097D120-8097D614 0044C0 04F4+00 1/1 0/0 0/0 .text lookat__11daNpcCdn3_cFv */ -void daNpcCdn3_c::lookat() { - // NONMATCHING -} - -/* 8097D614-8097D650 0049B4 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 8097D650-8097D684 0049F0 0034+00 1/0 0/0 0/0 .text daNpcCdn3_Delete__FPv */ -static void daNpcCdn3_Delete(void* param_0) { - // NONMATCHING -} - -/* 8097D684-8097D728 004A24 00A4+00 1/0 0/0 0/0 .text __dt__11daNpcCdn3_cFv */ -daNpcCdn3_c::~daNpcCdn3_c() { - // NONMATCHING -} - -/* 8097D728-8097D748 004AC8 0020+00 1/0 0/0 0/0 .text daNpcCdn3_Execute__FPv */ -static void daNpcCdn3_Execute(void* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8097F5A0-8097F5A4 000060 0004+00 1/1 0/0 0/0 .rodata @5944 */ -SECTION_RODATA static f32 const lit_5944 = 2.0f / 5.0f; -COMPILER_STRIP_GATE(0x8097F5A0, &lit_5944); - -/* 8097F5A4-8097F5A8 000064 0004+00 1/1 0/0 0/0 .rodata @5945 */ -SECTION_RODATA static f32 const lit_5945 = 25.0f; -COMPILER_STRIP_GATE(0x8097F5A4, &lit_5945); - -/* 8097D748-8097DABC 004AE8 0374+00 1/1 0/0 0/0 .text execute__11daNpcCdn3_cFv */ -void daNpcCdn3_c::execute() { - // NONMATCHING -} - -/* 8097DABC-8097DEF4 004E5C 0438+00 1/1 0/0 0/0 .text checkTimeSchedule__11daNpcCdn3_cFv - */ -void daNpcCdn3_c::checkTimeSchedule() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8097F5A8-8097F5AC 000068 0004+00 1/1 0/0 0/0 .rodata @6103 */ -SECTION_RODATA static f32 const lit_6103 = 60.0f; -COMPILER_STRIP_GATE(0x8097F5A8, &lit_6103); - -/* 8097DEF4-8097E000 005294 010C+00 1/0 0/0 0/0 .text daNpcCdn3_Draw__FPv */ -static void daNpcCdn3_Draw(void* param_0) { - // NONMATCHING -} - -/* 8097E000-8097E008 0053A0 0008+00 1/0 0/0 0/0 .text daNpcCdn3_IsDelete__FPv */ -static bool daNpcCdn3_IsDelete(void* param_0) { - return true; -} - -/* 8097E008-8097E050 0053A8 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 8097E050-8097EFD8 0053F0 0F88+00 0/0 1/0 0/0 .text __sinit_d_a_npc_cdn3_cpp */ -void __sinit_d_a_npc_cdn3_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8097E050, __sinit_d_a_npc_cdn3_cpp); -#pragma pop - -/* 8097EFD8-8097EFE0 006378 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_8097EFD8() { - // NONMATCHING -} - -/* 8097EFE0-8097EFE8 006380 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_8097EFE0() { - // NONMATCHING -} - -/* 8097EFE8-8097F030 006388 0048+00 1/0 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */ -// daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() { -extern "C" void __dt__18daNpcT_ActorMngr_cFv() { - // NONMATCHING -} - -/* 8097F030-8097F280 0063D0 0250+00 2/1 0/0 0/0 .text __dt__10daNpcCd2_cFv */ -// daNpcCd2_c::~daNpcCd2_c() { -extern "C" void __dt__10daNpcCd2_cFv() { - // NONMATCHING -} - -/* 8097F280-8097F368 006620 00E8+00 1/0 0/0 0/0 .text __dt__16dNpcLib_lookat_cFv */ -// dNpcLib_lookat_c::~dNpcLib_lookat_c() { -extern "C" void __dt__16dNpcLib_lookat_cFv() { - // NONMATCHING -} - -/* 8097F368-8097F3B0 006708 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 8097F3B0-8097F3F8 006750 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 8097F3F8-8097F454 006798 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 8097F454-8097F4C4 0067F4 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 8097F4C4-8097F534 006864 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - /* 8097F5AC-8097F5AC 00006C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_npc_fguard.cpp b/src/d/actor/d_a_npc_fguard.cpp index 9e8f3ddea53..1c3ab174c3e 100644 --- a/src/d/actor/d_a_npc_fguard.cpp +++ b/src/d/actor/d_a_npc_fguard.cpp @@ -536,9 +536,9 @@ static void func_809BAE78() { } /* 809BAE80-809BB0D0 000A40 0250+00 2/1 0/0 0/0 .text __dt__10daNpcCd2_cFv */ -daNpcCd2_c::~daNpcCd2_c() { - // NONMATCHING -} +// daNpcCd2_c::~daNpcCd2_c() { +// // NONMATCHING +// } /* 809BB0D0-809BB10C 000C90 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ csXyz::~csXyz() { @@ -546,9 +546,9 @@ csXyz::~csXyz() { } /* 809BB10C-809BB1F4 000CCC 00E8+00 1/0 0/0 0/0 .text __dt__16dNpcLib_lookat_cFv */ -dNpcLib_lookat_c::~dNpcLib_lookat_c() { - // NONMATCHING -} +// dNpcLib_lookat_c::~dNpcLib_lookat_c() { +// // NONMATCHING +// } /* 809BB1F4-809BB23C 000DB4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ cM3dGCyl::~cM3dGCyl() { @@ -578,4 +578,4 @@ dBgS_AcchCir::~dBgS_AcchCir() { /* 809BB38C-809BB3FC 000F4C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ dBgS_ObjAcch::~dBgS_ObjAcch() { // NONMATCHING -} \ No newline at end of file +} diff --git a/src/d/actor/d_a_obj_digplace.cpp b/src/d/actor/d_a_obj_digplace.cpp index 6993bd7a7c2..a6c66cad944 100644 --- a/src/d/actor/d_a_obj_digplace.cpp +++ b/src/d/actor/d_a_obj_digplace.cpp @@ -73,7 +73,7 @@ int daObjDigpl_c::execute() { u8 item_no; if (mpDigPoints != NULL) { - item_no = mpDigPoints->m_points[mCurrentDigPoint].field_0x0; + item_no = mpDigPoints->m_points[mCurrentDigPoint].mArg1; } else { item_no = getItemNum(); } diff --git a/src/d/actor/d_a_obj_tp.cpp b/src/d/actor/d_a_obj_tp.cpp index 86c6c3c6257..4f31c97ac65 100644 --- a/src/d/actor/d_a_obj_tp.cpp +++ b/src/d/actor/d_a_obj_tp.cpp @@ -471,7 +471,7 @@ static int daObj_Tp_Create(fopAc_ac_c* i_this) { int local_40 = (pPoint->mArg0 & 0xf); int parameters = local_40 | ((fopAcM_GetParam(tp) & 0xff000000) | 0xff0000 | (i << 8)); cStack_28 = pPoint->m_position; - cStack_30.y = pPoint->field_0x0 * 364; + cStack_30.y = pPoint->mArg1 * 364; cStack_30.z = tp->field_0x597 | (tp->field_0x598 << 8); if (i == path->m_num - 1) { if (!dPath_ChkClose(path)) { diff --git a/src/d/actor/d_a_tag_wljump.cpp b/src/d/actor/d_a_tag_wljump.cpp index e32d38ac6af..b17fc4e0d49 100644 --- a/src/d/actor/d_a_tag_wljump.cpp +++ b/src/d/actor/d_a_tag_wljump.cpp @@ -144,7 +144,7 @@ int daTagWljump_c::execute() { if (!player->checkWolfTagLockJumpLand()) { if (!player->checkWolfTagLockJump()) { for (var_r28 = 0; var_r28 < field_0x5c4->m_num; var_r28++, point_p++) { - if (player->current.pos.abs2(point_p->m_position) < point_p->field_0x0 * point_p->field_0x0 * 10.0f * 10.0f) { + if (player->current.pos.abs2(point_p->m_position) < point_p->mArg1 * point_p->mArg1 * 10.0f * 10.0f) { field_0x56a = var_r28; if (var_r28 == 0) { field_0x568 = 1; diff --git a/src/d/d_npc_lib.cpp b/src/d/d_npc_lib.cpp index b87ca8f9eb4..e36a1f4dfd2 100644 --- a/src/d/d_npc_lib.cpp +++ b/src/d/d_npc_lib.cpp @@ -251,6 +251,3 @@ int dNpcLib_lookat_c::limitter(s16* o_value, s16 param_1, s16 param_2, s16 param return 1; } - -/* 80252094-8025217C 24C9D4 00E8+00 1/0 0/0 0/0 .text __dt__16dNpcLib_lookat_cFv */ -dNpcLib_lookat_c::~dNpcLib_lookat_c() {}