From bf372802ca81f2c2eb5ae18a5908a2d84e1d3139 Mon Sep 17 00:00:00 2001 From: WilliamArnett <149556961+WilliamArnett@users.noreply.github.com> Date: Wed, 22 Jul 2026 19:10:59 -0500 Subject: d_a_npc_bm1 100% Matching Retail (#1107) * 99% match * Rewrote _execute to increase accuracy. Only issue in .text is a label not loading correctly. I have no idea how to fix this. * Equivalent. Weak func ordering. * 7% text * 28% text * 41% text * 65% text * Rewrote _execute to increase accuracy. Only issue in .text is a label not loading correctly. I have no idea how to fix this. * Equivalent. Weak func ordering. * 82% text * Equivalent. A lot of work is needed to name variables and clean up functions. Weak function ordering is wrong. * Cleaned some functions, named several variables, and began documenting dialog tree. * Naming a couple more variables * 21% text * change out getMySubstanceP for getMyIntegerP inline * 100% text * Refactor to use JUT_ASSERT macro * #181: d_a_tag_attention matching; TODO: implement chk_inside and dComIfGp_att_Look2RequestF * #181: continue working on d_a_tag_attention, matching almost complete * #181: revert naming class member (not certain enough) * #181: preliminary changes to resolve #784 comments regarding usage of debug maps * #181: commit suggestion by @WilliamArnett, fixing regalloc error Co-authored-by: WilliamArnett <149556961+WilliamArnett@users.noreply.github.com> * #181: fix missing curly bracket * #181: resolve #784 comments with the kind help of @WilliamArnett; move `daTagAttention::Act_c::chk_inside` to header file; split `plyrToObjVec` definition to match assembly; remove temp variable, use values directly and swap operands; implement `Look2RequestF` in `include/d/d_attention.h`; remove non-matching use of temp variable `iVar1` and replace `current.pos` with uninitialized variable in `daTagAttention::Act_c::_execute` * Update fork to match upstream * some changes * 12% text * 21% text * 26% text * 43% text * 51% text * Revert unnecessary file changes * Update d_a_tag_attention.cpp * 55% text * 52% text * 52% text * 56% text * 68% * 77% text * 100% matching minus regswap * 100% matching for retail * Many more demo matches * Fix broken match in _create() * Demo Match * Add some missing inlines * Fix dComIfGp_setMesgCameraInfoActor * More inline matching * fix broken demo match * Name some fields * Utilize EventBit enum * Name more fields, and add inline calls to d_a_npc_ls1 * Remove comments * Implement @LagoLunatic suggested changes * remove actor cast from dSnap_RegistFig calls * Fix broken match in eInit_ATTENTION_ * Second round of @LagoLunatic 's suggested changes --------- Co-authored-by: Skelp Co-authored-by: Skelp <59535863+Skelp@users.noreply.github.com> --- include/d/actor/d_a_npc_bm1.h | 425 +++++++++++++++++++++++++++--------------- include/d/d_com_inf_game.h | 17 ++ 2 files changed, 288 insertions(+), 154 deletions(-) (limited to 'include') diff --git a/include/d/actor/d_a_npc_bm1.h b/include/d/actor/d_a_npc_bm1.h index 78e812e9..1e648aff 100644 --- a/include/d/actor/d_a_npc_bm1.h +++ b/include/d/actor/d_a_npc_bm1.h @@ -1,60 +1,107 @@ #ifndef D_A_NPC_BM1_H #define D_A_NPC_BM1_H +#include "JSystem/JParticle/JPAEmitter.h" #include "d/d_npc.h" #include "f_op/f_op_actor.h" +#include "m_Do/m_Do_hostIO.h" class J3DNode; + class daNpc_Bm1_c : public fopNpc_npc_c { public: - struct anm_prm_c { - + typedef s8 SpecificType; + enum { + SPECIFIC_TYPE_Quill_0_e, + SPECIFIC_TYPE_Quill_1_e, + SPECIFIC_TYPE_Quill_2_e, + SPECIFIC_TYPE_Quill_3_e, + SPECIFIC_TYPE_Quill_4_e, + SPECIFIC_TYPE_Akoot_e, + SPECIFIC_TYPE_Skett_e, + SPECIFIC_TYPE_Basht_e, + SPECIFIC_TYPE_Bisht_e, + SPECIFIC_TYPE_Hoskit_e, + SPECIFIC_TYPE_Ilari_0xA_e, + SPECIFIC_TYPE_Ilari_0xB_e, + SPECIFIC_TYPE_Ilari_0xC_e, + SPECIFIC_TYPE_Pashli_e, + SPECIFIC_TYPE_Namali_e, + SPECIFIC_TYPE_Kogoli_e, + SPECIFIC_TYPE_Invalid_e = 0xFF + }; + + typedef s8 Type; + enum{ + TYPE_Uninitialized_e, + TYPE_Quill_e, + TYPE_Akoot_e, + TYPE_Skett_e, + TYPE_Basht_e, + TYPE_Bisht_e, + TYPE_Hoskit_e, + TYPE_Ilari_e, + TYPE_Pashli_e, + TYPE_Namali_e, + TYPE_Kogoli_e, + TYPE_Invalid_e = 0xFF, + }; + struct anm_prm_c{ + s8 mAnmNum; + s8 mBtpNum; + f32 mMorf; + f32 mSpeed; + s32 mLoopMode; + BOOL mbHasArms; }; - void IamKakkuto() {} - void IamSukketo() {} - void clr_manzai() {} - void getOdoroki() {} - void getStt() {} - void get_oldMsgStat() {} - void setFocus() {} - void setTelescopeDemo() {} - void set_manzai() {} + typedef BOOL (daNpc_Bm1_c::*ActionFunc)(void*); + + bool IamKakkuto() {return mSpecificType == SPECIFIC_TYPE_Akoot_e;} + bool IamSukketo() {return mSpecificType == SPECIFIC_TYPE_Skett_e;} + void clr_manzai() {mbManzai = false;} + bool getOdoroki() { return m880;} + s8 getStt() { return mStatus;} + u16 get_oldMsgStat() {return mOldMsgStat;} + void setFocus() {m882 = true;} + void setTelescopeDemo() {m881 = true;} + void set_manzai() {mbManzai = true;} + void nodeWngControl(J3DNode*, J3DModel*); void nodeArmControl(J3DNode*, J3DModel*); void nodeBm1Control(J3DNode*, J3DModel*); - void chk_appCnd(); - void init_PST_0(); - void init_PST_1(); - void init_PST_2(); - void init_PST_3(); - void init_PST_4(); - void init_BMB_0(); - void init_BMB_1(); - void init_BMB_2(); - void init_BMC_0(); - void init_BMC_1(); - void init_BMC_2(); - void init_BMC_3(); - void init_BMD_0(); - void init_BMD_1(); - void init_SKT_0(); - void init_KKT_0(); - void createInit(); + bool chk_appCnd(); + bool init_PST_0(); + bool init_PST_1(); + bool init_PST_2(); + bool init_PST_3(); + bool init_PST_4(); + bool init_BMB_0(); + bool init_BMB_1(); + bool init_BMB_2(); + bool init_BMC_0(); + bool init_BMC_1(); + bool init_BMC_2(); + bool init_BMC_3(); + bool init_BMD_0(); + bool init_BMD_1(); + bool init_SKT_0(); + bool init_KKT_0(); + bool createInit(); void setMtx(bool); - void anmNum_toResID(int); - void headAnmNum_toResID(int); - void wingAnmNum_toResID(int); - void btpNum_toResID(int); - void setBtp(bool, int); - void iniTexPttrnAnm(bool); + char* anmNum_toResID(int); + char* headAnmNum_toResID(int); + char* wingAnmNum_toResID(int); + char* btpNum_toResID(int); + bool setBtp(bool, int); + bool iniTexPttrnAnm(bool); void plyTexPttrnAnm(); void setAnm_tex(signed char); - void setAnm_anm(anm_prm_c*); + BOOL setAnm_anm(anm_prm_c*); void setAnm_NUM(int, int); - void setAnm(); + bool setAnm(); void setPlaySpd(float); void chg_anmTag(); void control_anmTag(); @@ -64,35 +111,35 @@ public: void anmAtr(unsigned short); void eventOrder(); void checkOrder(); - void chk_manzai(); - void chk_talk(); - void chk_partsNotMove(); - void lookBack(); + u8 chk_manzai(); + bool chk_talk(); + bool chk_partsNotMove(); + BOOL lookBack(); u16 next_msgStatus(unsigned long*); - void getBitMask(); - void getMsg_PST_1(); - void getMsg_PST_3(); - void getMsg_SKT_0(); - void getMsg_KKT_0(); - void getMsg_BMB_0(); - void getMsg_BMB_1(); - void getMsg_BMB_2(); - void getMsg_BMC_0(); - void getMsg_BMC_2(); - void getMsg_BMC_3(); - void getMsg_BMD_0(); - void getMsg_BMD_1(); + s8 getBitMask(); + u32 getMsg_PST_1(); + u32 getMsg_PST_3(); + u32 getMsg_SKT_0(); + u32 getMsg_KKT_0(); + u32 getMsg_BMB_0(); + u32 getMsg_BMB_1(); + u32 getMsg_BMB_2(); + u32 getMsg_BMC_0(); + u32 getMsg_BMC_2(); + u32 getMsg_BMC_3(); + u32 getMsg_BMD_0(); + u32 getMsg_BMD_1(); u32 getMsg(); - void chkAttention(); + bool chkAttention(); void setAttention(bool); - void searchByID(fpc_ProcID); - void partner_srch_sub(void* (*)(void*, void*)); + fopAc_ac_c* searchByID(fpc_ProcID); + bool partner_srch_sub(void* (*)(void*, void*)); void partner_srch(); - void bm_movPass(bool); + u32 bm_movPass(bool); void bm_setFlyAnm(); void bm_clcFlySpd(); void bm_clcMovSpd(); - void bm_flyMove(); + bool bm_flyMove(); void bm_nMove(); void setPrtcl_Flyaway(); void delPrtcl_Flyaway(); @@ -104,14 +151,14 @@ public: void setPrtcl_Hane1(); void flwPrtcl_Hane1(); void delPrtcl_Hane1(); - void decideType(int, int); + bool decideType(int, int); void eInit_setLocFlag(int*); void eInit_setShapeAngleY(int*, short); void eInit_setEvTimer(int*); - void eInit_calcRelativPos(cXyz*, int*); + cXyz eInit_calcRelativPos(cXyz*, int*); void eInit_ATTENTION_(int*, int*, int*, cXyz*, int*, int*, int*); void eInit_SET_PLYER_GOL_(int*, cXyz*, int*); - void eInit_prmFloat(float*, float); + float eInit_prmFloat(float*, float); void eInit_FLY_(int*, float*, float*, float*, float*); void eInit_DEL_ACTOR_(); void eInit_WLK_(int*, float*, float*, cXyz*, int*, int*, int*); @@ -120,118 +167,188 @@ public: void eInit_SET_ANM_(int*); void eInit_MOV_PTH_POINT_(int*, int*, int*, int*); void event_actionInit(int); - void eMove_ATTENTION_(); - void eMove_KMA_FLY_(); - void eMove_FLY_(); - void eMove_WLK_(); - void event_action(); + bool eMove_ATTENTION_(); + bool eMove_KMA_FLY_(); + bool eMove_FLY_(); + bool eMove_WLK_(); + bool event_action(); void cut_init_360_TRN(int); - void cut_move_360_TRN(); + bool cut_move_360_TRN(); void privateCut(int); void endEvent(); - void isEventEntry(); + BOOL isEventEntry(); void event_proc(int); - void set_action(int (daNpc_Bm1_c::*)(void*), void*); + BOOL set_action(int (daNpc_Bm1_c::*)(void*), void*); + BOOL chk_action(int (daNpc_Bm1_c::*)(void*)); //Unused void setStt(signed char); - void d_wait(); - void lookup(); - void orooro(); - void wait_1(); - void talk_1(); - void talk_2(); - void manzai(); - void wait_4(); - void flyawy(); - void wait_5(); - void h_wait(); - void wait_7(); - void wait_3(); - void wait_8(); - void wait_2(); - void walk_1(); - void CHKwai(); - void demo_action1(void*); - void wait_action1(void*); - void wait_action2(void*); - void wait_action3(void*); - void wait_action4(void*); - void wait_action5(void*); - void wait_action6(void*); - void wait_action7(void*); - void wait_action8(void*); - void wait_action9(void*); - void wait_actionA(void*); - void demo(); + BOOL d_wait(); + BOOL lookup(); + BOOL orooro(); + BOOL wait_1(); + BOOL talk_1(); + BOOL talk_2(); + BOOL manzai(); + BOOL wait_4(); + BOOL flyawy(); + BOOL wait_5(); + BOOL wait_6(); //Unused + BOOL h_wait(); + BOOL wait_7(); + BOOL wait_3(); + BOOL wait_8(); + BOOL wait_2(); + BOOL walk_1(); + BOOL CHKwai(); + BOOL demo_action1(void*); + BOOL wait_action1(void*); + BOOL wait_action2(void*); + BOOL wait_action3(void*); + BOOL wait_action4(void*); + BOOL wait_action5(void*); + BOOL wait_action6(void*); + BOOL wait_action7(void*); + BOOL wait_action8(void*); + BOOL wait_action9(void*); + BOOL wait_actionA(void*); + bool demo(); void shadowDraw(); BOOL _draw(); BOOL _execute(); BOOL _delete(); cPhs_State _create(); - void create_Anm(); - void create_hed_Anm(); - void create_wng_Anm(); - void create_arm_Anm(); - void create_itm_Mdl(); - void CreateHeap(); + J3DModelData* create_Anm(); + J3DModelData* create_hed_Anm(); + J3DModelData* create_wng_Anm(); + J3DModelData* create_arm_Anm(); + bool create_itm_Mdl(); + BOOL CreateHeap(); -public: - /* 0x6C4 */ u8 m6C4[0x6CC - 0x6C4]; +private: + /* 0x6C4 */ request_of_phase_process_class mPhs; /* 0x6CC */ char mArcName[4]; - /* 0x6D0 */ u8 mHeadJntIdx; - /* 0x6D1 */ u8 mBackboneJntIdx; - /* 0x6D2 */ u8 mNeckJntIdx; - /* 0x6D3 */ u8 mArmLJntIdx; - /* 0x6D4 */ u8 mArmRJntIdx; - /* 0x6D5 */ u8 m6D5[0x734 - 0x6D5]; + /* 0x6D0 */ s8 m_hed_jnt_num; + /* 0x6D1 */ s8 m_bbone_jnt_num; + /* 0x6D2 */ s8 m_nec_jnt_num; + /* 0x6D3 */ s8 m_arm_L_jnt_num; + /* 0x6D4 */ s8 m_arm_R_jnt_num; + /* 0x6D8 */ J3DModel* mpBinderModel; + /* 0x6DC */ J3DModel* mpBagModel; + /* 0x6E0 */ J3DModel* mpKnifeModel; + /* 0x6E4 */ J3DModel* mpStickModel; + /* 0x6E8 */ u32 mShadowID; + /* 0x6EC */ mDoExt_McaMorf* mpHeadMorf; + /* 0x6F0 */ J3DAnmTexPattern* m_hed_tex_pttrn; + /* 0x6F4 */ mDoExt_btpAnm mHeadBtpAnm; + /* 0x708 */ u8 mBlinkFrame; + /* 0x709 u8 pad709; */ + /* 0x70A */ s16 mBlinkTimer; + /* 0x70C */ s16 pad70C; + /* 0x710 */ mDoExt_McaMorf* mpWingMorf; + /* 0x714 */ s8 m_wngL1_jnt_num; + /* 0x715 */ s8 m_wngR1_jnt_num; + /* 0x716 */ s8 m_wngL3_jnt_num; + /* 0x717 */ s8 m_wngR3_jnt_num; + /* 0x718 */ u8 pad718[0x71C - 0x718]; //Possibly an unused mDoExt_McaMorf* ? + /* 0x71C */ mDoExt_McaMorf* mpArmMorf; + /* 0x720 */ s8 m_armL1_jnt_num; + /* 0x721 */ s8 m_armR1_jnt_num; + /* 0x722 */ s8 m_armL2_jnt_num; + /* 0x723 */ s8 m_armR2_jnt_num; + /* 0x724 */ s8 m_hnd_R_jnt_num; + /* 0x728 */ ActionFunc mCurrActionFunc; /* 0x734 */ Mtx mLeftArmMtx; /* 0x764 */ Mtx mRightArmMtx; - /* 0x794 */ u8 m794[0x80C - 0x794]; - /* 0x80C */ cXyz m80C; + /* 0x794 */ dNpc_PathRun_c mPathRun; + /* 0x79C */ dNpc_EventCut_c mEventCut; + /* 0x808 */ fpc_ProcID mPartnerProcID; + /* 0x80C */ cXyz mInitialPos; /* 0x818 */ csXyz m818; - /* 0x81E */ u8 m81E[0x820 - 0x81E]; + /* 0x81E u8 pad81E[0x820 - 0x81E]; */ /* 0x820 */ cXyz mEyePos; - /* 0x82C */ u8 m82C[0x86E - 0x82C]; + /* 0x82C */ cXyz m82C; + /* 0x838 */ cXyz mTargetPos; + /* 0x844 */ f32 mFrame; + /* 0x848 */ f32 mTargetFlySpeed; + /* 0x84C */ f32 mFlySpeedY; + /* 0x850 */ f32 mTargetFlyStep; + /* 0x854 */ f32 mFlyAccelY; + /* 0x858 */ f32 m858; + /* 0x85C */ s16 m85C; + /* 0x85E */ s16 m85E; + /* 0x860 */ s16 m860; + /* 0x862 */ s16 mEventIdTable[4]; + /* 0x86A */ s16 mEventIdx; + /* 0x86C */ s16 m86C; /* 0x86E */ s16 m86E; - /* 0x870 */ u8 m870[0x874 - 0x870]; - /* 0x874 */ s16 m874; + /* 0x870 */ s16 m870; + /* 0x872 */ s16 m872; + /* 0x874 */ s16 mHeadLookAtMaxVel; /* 0x876 */ s16 m876; - /* 0x878 */ u8 m878[0x880 - 0x878]; - /* 0x880 */ u8 m880; - /* 0x881 */ u8 m881; - /* 0x882 */ u8 m882; - /* 0x883 */ u8 m883[0x884 - 0x883]; - /* 0x884 */ u8 m884; - /* 0x885 */ u8 m885[0x887 - 0x885]; + /* 0x878 */ u16 mOldMsgStat; + /* 0x87A */ s8 mbMorfAnimStopped; + /* 0x87B */ s8 m87B; + /* 0x87C */ s8 m87C; + /* 0x87D */ u8 m87D; + /* 0x87E */ u8 m87E; + /* 0x87F */ bool m87F; + /* 0x880 */ bool m880; + /* 0x881 */ bool m881; + /* 0x882 */ bool m882; + /* 0x883 */ bool mbManzai; + /* 0x884 */ bool mbInitPostman0; + /* 0x885 */ bool mbHasArms; + /* 0x886 */ bool mbSetShapeAngle; /* 0x887 */ u8 m887; - /* 0x888 */ u8 m888[0x894 - 0x888]; - /* 0x894 */ u8 m894; - /* 0x895 */ u8 m895; + /* 0x888 */ u8 m888; + /* 0x889 */ bool m889; + /* 0x88A */ bool m88A; + /* 0x88B */ u8 m88B; + /* 0x88C */ bool mbRanExecute; + /* 0x88D */ u8 m88D; + /* 0x88E */ u8 m88E; + /* 0x88F */ u8 m88F; + /* 0x890 */ s32 mbSetEyePos; + /* 0x894 */ bool mbAttention; + /* 0x895 */ bool m895; /* 0x896 */ bool m896; - /* 0x897 */ u8 m897[0x8FD - 0x897]; - /* 0x8FD */ u8 m8FD; - /* 0x8FE */ u8 m8FE[0x900 - 0x8FE]; - /* 0x900 */ u8 m900; - /* 0x901 */ u8 mType; - /* 0x902 */ u8 mSpecificType; - /* 0x903 */ u8 mSpawnCondition; - /* 0x904 */ u8 m904[0x908 - 0x904]; + /* 0x897 */ bool mbInDemo; + /* 0x898 */ cXyz mWingLPos; + /* 0x8A4 */ cXyz mWingRPos; + /* 0x8B0 */ cXyz mArmLPos; + /* 0x8BC */ cXyz mArmRPos; + /* 0x8C8 */ u8 m8C8; + /* 0x8C9 */ u8 m8C9[0x8CC - 0x8C9]; + /* 0x8CC */ u8 m8CC; + /* 0x8CD */ u8 m8CD[0x8D4 - 0x8CD]; + /* 0x8D4 */ JPABaseEmitter* mpFlyawayEmitterL; + /* 0x8D8 */ JPABaseEmitter* mpFlyawayEmitterR; + /* 0x8DC */ JPABaseEmitter* mpLandEmitterL; + /* 0x8E0 */ JPABaseEmitter* mpLandEmitterR; + /* 0x8E4 */ JPABaseEmitter* mpFeatherEmitterL; + /* 0x8E8 */ JPABaseEmitter* mpFeatherEmitterR; + /* 0x8EC */ JPABaseEmitter* mpFeather1EmitterL; + /* 0x8F0 */ JPABaseEmitter* mpFeather1EmitterR; +#if VERSION == VERSION_DEMO + /* 0x8F4 */ u32 mDemoUnused; //Possibly an unused emitter +#endif + /* 0x8F4 */ s8 m8F4; + /* 0x8F5 */ s8 mActionIndex; + /* 0x8F6 */ s8 mActNo; + /* 0x8F7 */ u8 m8F7; + /* 0x8F8 */ u8 m8F8; + /* 0x8F9 */ s8 mBtpNum; + /* 0x8FA */ s8 mAnmNum; + /* 0x8FB */ u8 m8FB[0x8FD - 0x8FB]; + /* 0x8FD */ s8 m8FD; + /* 0x8FE */ s8 mStatus; + /* 0x8FF */ s8 m8FF; + /* 0x900 */ s8 mLookBackState; + /* 0x901 */ s8 mType; + /* 0x902 */ SpecificType mSpecificType; + /* 0x903 */ s8 mSpawnCondition; + /* 0x904 */ s8 m904; + /* 0x904 */ s8 m905; }; -STATIC_ASSERT(sizeof(daNpc_Bm1_c) == 0x908); - -class daNpc_Bm1_childHIO_c { -public: - daNpc_Bm1_childHIO_c(); - -public: - /* Place member variables here */ -}; - -class daNpc_Bm1_HIO_c { -public: - daNpc_Bm1_HIO_c(); - -public: - /* Place member variables here */ -}; +STATIC_ASSERT(sizeof(daNpc_Bm1_c) == DEMO_SELECT(0x90C,0x908)); #endif /* D_A_NPC_BM1_H */ diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index ce7abcad..f0e1bf59 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -244,6 +244,18 @@ public: } void setMesgCamInfoBasicID(int id) { mMesgCamInfo.mBasicID = id; } dComIfG_MesgCamInfo_c* getMesgCamInfo() { return &mMesgCamInfo; } + void setMesgCamInfoActor(fopAc_ac_c* actor_1,fopAc_ac_c* actor_2,fopAc_ac_c* actor_3,fopAc_ac_c* actor_4,fopAc_ac_c* actor_5,fopAc_ac_c* actor_6,fopAc_ac_c* actor_7,fopAc_ac_c* actor_8,fopAc_ac_c* actor_9,fopAc_ac_c* actor_A){ + mMesgCamInfo.mActor[0] = actor_1; + mMesgCamInfo.mActor[1] = actor_2; + mMesgCamInfo.mActor[2] = actor_3; + mMesgCamInfo.mActor[3] = actor_4; + mMesgCamInfo.mActor[4] = actor_5; + mMesgCamInfo.mActor[5] = actor_6; + mMesgCamInfo.mActor[6] = actor_7; + mMesgCamInfo.mActor[7] = actor_8; + mMesgCamInfo.mActor[8] = actor_9; + mMesgCamInfo.mActor[9] = actor_A; + } int getMesgCamInfoID() { return mMesgCamInfo.mID; } void setMesgCamInfoID(int param_0) { mMesgCamInfo.mID = param_0; } void clearMesgCamInfoID() { mMesgCamInfo.mID = -1; } @@ -3159,6 +3171,11 @@ inline dComIfG_MesgCamInfo_c* dComIfGp_getMesgCameraInfo() { return g_dComIfG_gameInfo.play.getMesgCamInfo(); } +inline void dComIfGp_setMesgCameraInfoActor(fopAc_ac_c* actor_1,fopAc_ac_c* actor_2,fopAc_ac_c* actor_3,fopAc_ac_c* actor_4,fopAc_ac_c* actor_5,fopAc_ac_c* actor_6,fopAc_ac_c* actor_7,fopAc_ac_c* actor_8,fopAc_ac_c* actor_9,fopAc_ac_c* actor_A){ + g_dComIfG_gameInfo.play.setMesgCamInfoActor(actor_1,actor_2,actor_3,actor_4,actor_5,actor_6,actor_7,actor_8,actor_9,actor_A); + +}; + inline u8 dComIfGp_checkMesgBgm() { return g_dComIfG_gameInfo.play.checkMesgBgm(); } -- cgit v1.2.3