#ifndef D_A_NPC_PEOPLE_H #define D_A_NPC_PEOPLE_H #include "f_op/f_op_actor.h" #include "d/d_cc_d.h" #include "m_Do/m_Do_ext.h" #include "SSystem/SComponent/c_phase.h" #include "d/d_npc.h" struct sUbMsgDat { /* 0x00 */ u32 field_0x00; /* 0x04 */ u8 field_0x04; /* 0x05 */ u8 field_0x05; /* 0x06 */ u8 field_0x06; /* 0x06 */ u8 field_0x07; }; // Size: 0x07 struct sPeopleAnmDat { /* 0x00 */ u8 field_0x00; /* 0x01 */ u8 field_0x01; /* 0x02 */ u8 field_0x02; }; // Size: 0x03 struct daNpcPeople_c__l_npc_dat { /* 0x00 */ s16 field_0x00; /* 0x02 */ s16 field_0x02; /* 0x04 */ s16 field_0x04; /* 0x06 */ s16 field_0x06; /* 0x08 */ s16 field_0x08; /* 0x0A */ s16 field_0x0A; /* 0x0C */ s16 field_0x0C; /* 0x0E */ s16 field_0x0E; /* 0x10 */ s16 field_0x10; /* 0x12 */ s16 field_0x12; /* 0x14 */ f32 field_0x14; /* 0x18 */ f32 field_0x18; /* 0x1C */ f32 field_0x1C; /* 0x20 */ f32 field_0x20; /* 0x24 */ f32 field_0x24; /* 0x28 */ f32 field_0x28; /* 0x2C */ f32 field_0x2C; /* 0x30 */ f32 field_0x30; /* 0x34 */ s16 field_0x34; /* 0x36 */ s16 field_0x36; /* 0x38 */ s16 field_0x38; /* 0x3A */ s16 field_0x3A; /* 0x3C */ f32 field_0x3C; /* 0x40 */ f32 field_0x40; /* 0x44 */ f32 field_0x44; /* 0x48 */ f32 field_0x48; /* 0x4C */ s16 field_0x4C; /* 0x4E */ s16 field_0x4E; /* 0x50 */ s16 field_0x50; /* 0x52 */ s16 field_0x52; /* 0x54 */ s16 field_0x54; /* 0x56 */ s16 field_0x56; /* 0x58 */ s16 field_0x58; /* 0x5A */ u8 field_0x5A; /* 0x5B */ u8 field_0x5B; /* 0x5C */ u8 field_0x5C; /* 0x5D */ u8 field_0x5D; /* 0x5E */ u8 field_0x5E; /* 0x5F */ u8 field_0x5F; }; // Size: 0x60 class daNpcPeople_c : public fopNpc_npc_c { public: enum Prm_e { PRM_RAIL_ID_W = 0x8, PRM_RAIL_ID_S = 0x10, PRM_ARG0_W = 0x8, PRM_ARG0_S = 0x0, }; u8 getNpcNo() { return mNpcNo; } request_of_phase_process_class* getPhaseP() { return &mPhase; } void setEtcFlag(u32 flags) { mEtcFlag |= flags; } void setResFlag(u8 flag) { mResFlag = flag; } void setAnmFlag(u8 flags) { mAnmFlag |= flags; } void setTalk(u8 value) { mTalk = value; } void setNoTalk(u8 value) { mNoTalk = value; } void setOrderEventNum(u8 value) { mOrderEventNum = value; } daNpcPeople_c(); cPhs_State _create(); BOOL createHeap(); cPhs_State createInit(); bool _delete(); bool _draw(); bool _execute(); bool executeCommon(); void executeSetMode(u8); s32 executeWaitInit(); void executeWait(); s32 executeTalkInit(); void executeTalk(); s32 executeWalkInit(); void executeWalk(); s32 executeTurnInit(); void executeTurn(); s32 executeBikkuriInit(); void executeBikkuri(); s32 executeFurueInit(); void executeFurue(); s32 executeKyoroInit(); void executeKyoro(); s32 executeLetterInit(); void executeLetter(); s32 executeLookInit(); void executeLook(); s32 executeLook2Init(); void executeLook2(); s32 executeUgWalkInit(); void executeUgWalk(); s32 executeUgTurnInit(); void executeUgTurn(); s32 executeUgLookInit(); void executeUgLook(); s32 executeUgLook2Init(); void executeUgLook2(); s32 executeUgSitInit(); void executeUgSit(); void checkOrder(); void eventOrder(); void eventMove(); void privateCut(); void eventMesSetTpInit(int); void eventMesSetInit(int); bool eventMesSet(); bool eventMesSet2(); void eventFlagSetInit(int); void eventGetItemInit(int); bool eventGetItem(); void eventTurnToPlayerInit(); bool eventTurnToPlayer(); void eventUb1TalkInit(int); bool eventUb1Talk(); void eventUb1TalkXyInit(int); bool eventUb1TalkXy(); bool eventUb2Talk(); bool eventUbSetAnm(); void eventAreaMaxInit(); void eventCameraStopInit(); bool eventCameraStop(); void eventCameraStartInit(); void eventCoCylRInit(int); bool eventLookPo(); void eventMesSetPoInit(int); bool eventMesSetPo(); u16 talk2(int, fopAc_ac_c*); u16 talk3(int); u16 next_msgStatus(u32*); u32 getMsg(); u32 getMsg3(); void chkMsg(); void setMessage(u32); void setMessageUb(sUbMsgDat*); void setAnmFromMsgTag(); void setAnmFromMsgTagUo(int); void setAnmFromMsgTagUb(int); void setAnmFromMsgTagUw(int); void setAnmFromMsgTagUm(int); void setAnmFromMsgTagSa(int); void setAnmFromMsgTagUg(int); u8 getPrmNpcNo(); u8 getPrmRailID(); u8 getPrmArg0(); void setMtx(); void chkAttention(); void lookBack(); BOOL initTexPatternAnm(bool); void playTexPatternAnm(); void playAnm(); int getBck(u8); int getHeadBck(u8); void setAnm(u8, int, f32, f32); bool setAnmTbl(sPeopleAnmDat*, int); void setWaitAnm(); s16 XyCheckCB(int); s16 XyEventCB(int); s16 photoCB(int); int getRand(int max); BOOL isPhoto(u8); BOOL isColor(); void setCollision(dCcD_Cyl*, cXyz, f32, f32); BOOL chkSurprise(); BOOL chkEndEvent(); BOOL is1GetMap20(); BOOL is1DayGetMap20(); int getWindDir(); BOOL isUo1FdaiAll(); BOOL isUo1FdaiOne(); s32 chkDaiza(); BOOL checkPig(); BOOL isPigOk(); s16 getPigTimer(); void resetPig(); void initUgSearchArea(); cXyz getDirDistToPos(s16, f32); void warp(); private: /* 0x6C4 */ request_of_phase_process_class mPhase; /* 0x6CC */ request_of_phase_process_class mPhase2; /* 0x6D4 */ J3DModel* mpHeadModel; /* 0x6D8 */ J3DModel* mpEtcModel; /* 0x6DC */ mDoExt_McaMorf* mpHeadMorf; /* 0x6E0 */ J3DAnmTexPattern* m_head_tex_pattern; /* 0x6E4 */ mDoExt_btpAnm mBtpAnm; /* 0x6F8 */ u32 mShadowId; /* 0x6FC */ dNpc_PathRun_c mPathRun; /* 0x704 */ u8 m704[0x710 - 0x704]; /* 0x710 */ cXyz mLookAtPos; /* 0x71C */ cXyz m71C; /* 0x728 */ sPeopleAnmDat* m728; /* 0x72C */ daNpcPeople_c__l_npc_dat* mpNpcDat; /* 0x730 */ daNpcPeople_c* m730; /* 0x734 */ u32* m734; /* 0x738 */ sUbMsgDat* m738; /* 0x73C */ sUbMsgDat** m73C; /* 0x740 */ f32 m740; /* 0x744 */ f32 m744; /* 0x748 */ f32 m748; /* 0x74C */ f32 m74C; /* 0x750 */ f32 m750; /* 0x754 */ u8 m754[0x758 - 0x754]; /* 0x758 */ u32 mEtcFlag; /* 0x75C */ int m75C; /* 0x760 */ int m760; /* 0x764 */ bool m764; /* 0x765 */ u8 m765; /* 0x766 */ s16 m766[4]; /* 0x76E */ s16 m76E; /* 0x770 */ s16 m770; /* 0x772 */ s16 m772; /* 0x774 */ s16 m774; /* 0x776 */ s16 m776; /* 0x778 */ s16 m778; /* 0x77A */ s16 m77A; /* 0x77C */ u16 m77C; /* 0x77E */ u16 m77E; /* 0x780 */ s16 m780; /* 0x782 */ s16 m782; /* 0x784 */ s16 m784; /* 0x786 */ s16 m786; /* 0x788 */ u8 mTalk; /* 0x789 */ u8 m789; /* 0x78A */ u8 m78A; /* 0x78B */ u8 m78B; /* 0x78C */ u8 mNoTalk; /* 0x78D */ u8 mOrderEventNum; /* 0x78E */ u8 m78E; /* 0x78F */ u8 m78F; /* 0x790 */ u8 mResFlag; /* 0x791 */ u8 mNpcNo; /* 0x792 */ u8 m792; /* 0x793 */ u8 m793; /* 0x794 */ u8 m794; /* 0x795 */ u8 mAnmFlag; /* 0x796 */ s8 m796; /* 0x797 */ s8 m797; /* 0x798 */ u8 m798; /* 0x799 */ s8 m799; /* 0x79A */ u8 m79A; /* 0x79B */ u8 mbIsNight; /* 0x79C */ u8 m79C; /* 0x79D */ u8 m79D; /* 0x79E */ u8 m79E; /* 0x79F */ u8 m79F; /* 0x7A0 */ u8 m7A0; /* 0x7A1 */ u8 m7A1; /* 0x7A2 */ u8 m7A2; /* 0x7A3 */ s8 m7A3; /* 0x7A4 */ u8 m7A4; /* 0x7A5 */ u8 m7A5; /* 0x7A6 */ u8 m7A6; /* 0x7A7 */ u8 m7A7; /* 0x7A8 */ u8 m7A8; static const char m_arcname[]; }; // Size: 0x7A9 #endif /* D_A_NPC_PEOPLE_H */