diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/SSystem/SComponent/c_bg_s_chk.h | 2 | ||||
| -rw-r--r-- | include/d/a/d_a_alink.h | 254 | ||||
| -rw-r--r-- | include/d/bg/d_bg_s.h | 3 | ||||
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 16 | ||||
| -rw-r--r-- | include/d/d_stage.h | 5 | ||||
| -rw-r--r-- | include/d/d_tresure.h | 4 | ||||
| -rw-r--r-- | include/d/kankyo/d_kankyo.h | 3 | ||||
| -rw-r--r-- | include/f_op/f_op_actor_mng.h | 24 | ||||
| -rw-r--r-- | include/m_Do/m_Do_ext.h | 1 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_midna/d_a_midna.h | 262 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_tbox/d_a_tbox.h | 207 |
11 files changed, 517 insertions, 264 deletions
diff --git a/include/SSystem/SComponent/c_bg_s_chk.h b/include/SSystem/SComponent/c_bg_s_chk.h index 8367b50e25..eacef20b80 100644 --- a/include/SSystem/SComponent/c_bg_s_chk.h +++ b/include/SSystem/SComponent/c_bg_s_chk.h @@ -25,7 +25,7 @@ public: void SetExtChk(cBgS_Chk&); bool ChkSameActorPid(unsigned int) const; - void setActorPid(u32 pid) { mActorPid = pid; } + void SetActorPid(u32 pid) { mActorPid = pid; } u32 GetActorPid() const { return mActorPid; } void SetPolyPassChk(cBgS_PolyPassChk* p_chk) { mPolyPassChk = p_chk; } void SetGrpPassChk(cBgS_GrpPassChk* p_chk) { mGrpPassChk = p_chk; } diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index f1a5ecfe43..3a73feb858 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -6237,263 +6237,9 @@ public: static daAlinkHIO_hookshot_c1 const m; }; -class mDoExt_morf_c; - inline BOOL dComIfGs_isTransformLV(int i_no); inline BOOL i_dComIfGs_isEventBit(const u16); -typedef int (daMidna_c::*daMidna_func)(); -class daMidna_c : public fopAc_ac_c { -public: - enum daMidna_ERFLG0 { - ERFLG0_NO_SERVICE_WAIT = 0x80, - ERFLG0_FORCE_PANIC = 8, - ERFLG0_UNK_2 = 2, - }; - - enum daMidna_FLG0 { - FLG0_UNK_80000000 = 0x80000000, - FLG0_UNK_8000000 = 0x8000000, - FLG0_NPC_NEAR = 0x100000, - FLG0_NPC_FAR = 0x40000, - FLG0_NO_INPUT = 0x4000, - FLG0_NO_DRAW = 0x2000, - FLG0_UNK_400 = 0x400, - FLG0_UNK_800 = 0x800, - FLG0_UNK_200 = 0x200, - }; - - enum daMidna_FLG1 { - FLG1_FORCE_NORMAL_COL = 8, - FLG1_FORCE_TIRED_COL = 4, - FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE = 2, - }; - - enum daMidna_ANM {}; - - void onForcePanic(); - u32 checkForceNormalColor() const; - u32 checkForceTiredColor() const; - bool checkMidnaTired(); - void onNoServiceWait(); - - /* 804BC3E0 */ void modelCallBack(int); - /* 804BC5C4 */ void changeUpperBck(); - /* 804BC614 */ void changeFaceBck(); - /* 804BC670 */ void baseModelCallBack(int); - /* 804BC740 */ void initInvModel(u16, J3DModel**, mDoExt_invisibleModel*, u32); - /* 804BC7D4 */ void initDemoModel(J3DModel**, char const*, u32); - /* 804BC868 */ void createHeap(); - /* 804BD274 */ void create(); - /* 804BD93C */ void allAnimePlay(); - /* 804BDE04 */ void setMatrix(); - /* 804BE470 */ void setBodyPartMatrix(); - /* 804BED1C */ void setRoomInfo(); - /* 804BEDB8 */ void setBodyPartPos(); - /* 804BEFA0 */ void checkAppear(); - /* 804BF070 */ void checkMidnaPosState(); - /* 804BFF80 */ void setUpperAnime(u16, u16); - /* 804C0020 */ void setUpperAnimeAndSe(daMidna_c::daMidna_ANM); - /* 804C0094 */ void setFaceAnime(u16, u16); - /* 804C0134 */ void endHighModel(); - /* 804C0238 */ void setDemoAnm(); - /* 804C0BAC */ void setFaceBtp(u16, int); - /* 804C0C6C */ void setFaceBtk(u16, int); - /* 804C0D2C */ void setLeftHandShape(u16); - /* 804C0E18 */ void setRightHandShape(u16); - /* 804C0F04 */ void checkHairOnlyAnime(int) const; - /* 804C0F24 */ void setBckAnime(J3DAnmTransform*, int, f32); - /* 804C103C */ void setAnm(); - /* 804C287C */ void getNeckAimAngle(cXyz const*, s16*, s16*, s16*, s16*); - /* 804C2A68 */ void clearEyeMove(); - /* 804C2AB8 */ void setEyeMove(cXyz const*, s16, s16); - /* 804C2EBC */ void setNeckAngle(); - /* 804C3168 */ void initHairAngle(); - /* 804C3298 */ void setHairAngle(); - /* 804C3F04 */ void setDemoData(); - /* 804C4394 */ void setSimpleBrk(J3DModelData*, u16); - /* 804C4444 */ void setSimpleBtk(J3DModelData*, u16); - /* 804C44CC */ void initMidnaModel(); - /* 804C49B8 */ void setMidnaNoDrawFlg(); - /* 804C4AE8 */ void checkMetamorphoseEnableBase(); - /* 804C4B68 */ void checkNoDrawState(); - /* 804C4BC0 */ void setSound(); - /* 804C4FDC */ void execute(); - /* 804C5A08 */ void draw(); - /* 804C61A4 */ ~daMidna_c(); - - void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; } - void onStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 |= i_flag; } - void offStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 &= ~i_flag; } - u32 checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; } - u32 checkStateFlg1(daMidna_FLG1 flag) const { return mStateFlg1 & flag; } - void setFaceNum(int num) { mFaceNum = num; } - void setMotionNum(int num) { mMotionNum = num; } - bool checkDemoTypeNone() const { return mDemoType == 0; } - void changeOriginalDemo() { mDemoType = 3; } - void changeDemoMode(u32 mode) { mDemoMode = mode; } - BOOL checkNpcNear() { return checkStateFlg0(FLG0_NPC_NEAR); } - BOOL checkNpcFar() { return checkStateFlg0(FLG0_NPC_FAR); } - BOOL checkNoDraw() const { return checkStateFlg0(FLG0_NO_DRAW); } - BOOL checkNoInput() const { return checkStateFlg0(FLG0_NO_INPUT); } - BOOL checkWolfNoPos() const { return checkStateFlg0(FLG0_UNK_800); } - int checkMetamorphoseEnable() { return (this->*mpFunc)(); } - int checkShadowModelDrawDemoForce() const { return checkStateFlg1(FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE); } - - void onTagWaitPosWarp(const cXyz* param_0) { - field_0x9ac = *param_0; - onStateFlg0(FLG0_UNK_400); - onEndResetStateFlg0(ERFLG0_UNK_2); - } - - void onTagWaitPos(const cXyz* param_0) { - field_0x9ac = *param_0; - onStateFlg0(FLG0_UNK_400); - } - - void offTagWaitPos() { - offStateFlg0((daMidna_FLG0)(FLG0_UNK_80000000 | FLG0_UNK_8000000 | FLG0_UNK_400)); - } - - void onTagNoHairLead() { - onStateFlg0(FLG0_UNK_80000000); - } - - bool checkReturnAnime() const { - return field_0x5e4[0].getIdx() == 0x1CA; - } - - bool checkShadowModelDrawSmode() const { - return field_0x84e == 3 || field_0x84e == 4 || field_0x84e == 2; - } - - bool checkShadowModelDraw() const { - return checkShadowModelDrawDemoForce() || checkShadowModelDrawSmode(); - } - - bool checkShadowReturnEnd() const { - return field_0x5e4[0].getIdx() == 0x21C && field_0x578->isStop(); - } - - bool checkShadowModeTalkWait() const { - return (field_0x84e == 2 || field_0x84e == 1) ; - } - - void setShadowReturn() { field_0x84e = 4; } - - - bool checkPortalObjRide() const { - return checkStateFlg0(FLG0_UNK_8000000) && checkStateFlg0(FLG0_UNK_200); - } - - inline static BOOL checkMidnaRealBody(); - - bool i_checkMidnaTired() { - return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1E08); - } - - static u8 const m_texDataTable[84]; - static u8 const m_anmDataTable[636]; - -private: - /* 0x0568 */ request_of_phase_process_class mPhase; - /* 0x0570 */ J3DModel* field_0x570; - /* 0x0574 */ J3DModel* field_0x574; - /* 0x0578 */ mDoExt_McaMorfSO* field_0x578; - /* 0x057C */ mDoExt_McaMorfCallBack1_c* field_0x57c; // this is really daMidna_McaMorfCB1_c. fix later - /* 0x0580 */ cXyz* field_0x580; - /* 0x0584 */ mDoExt_bckAnm field_0x584; - /* 0x05A0 */ mDoExt_bckAnm field_0x5a0; - /* 0x05BC */ J3DAnmTexPattern* field_0x5bc; - /* 0x05C0 */ J3DAnmTextureSRTKey* field_0x5c0; - /* 0x05C4 */ mDoExt_invisibleModel field_0x5c4; - /* 0x05CC */ mDoExt_invisibleModel mInvMaskBmd; - /* 0x05D4 */ mDoExt_invisibleModel mInvHandsBmd; - /* 0x05DC */ mDoExt_invisibleModel mInvHairhandBmd; - /* 0x05E4 */ daPy_anmHeap_c field_0x5e4[3]; - /* 0x0620 */ daPy_anmHeap_c field_0x620; - /* 0x0634 */ daPy_anmHeap_c field_0x634; - /* 0x0648 */ J3DAnmTextureSRTKey* field_0x648; - /* 0x064C */ J3DAnmTextureSRTKey* field_0x64c; - /* 0x0650 */ J3DAnmTextureSRTKey* field_0x650; - /* 0x0654 */ J3DAnmTextureSRTKey* field_0x654; - /* 0x0658 */ J3DAnmTevRegKey* field_0x658; - /* 0x065C */ J3DAnmTevRegKey* field_0x65c; - /* 0x0660 */ J3DAnmTevRegKey* field_0x660; - /* 0x0664 */ J3DAnmTevRegKey* field_0x664; - /* 0x0668 */ J3DAnmTevRegKey* field_0x668; - /* 0x066C */ J3DAnmTevRegKey* field_0x66c; - /* 0x0670 */ J3DModel* field_0x670; - /* 0x0674 */ J3DModel* mpMaskBmd; - /* 0x0678 */ J3DModel* field_0x678; - /* 0x067C */ J3DModel* mpHandsBmd; - /* 0x0680 */ J3DModel* field_0x680; - /* 0x0684 */ J3DModel* mpHairhandBmd; - /* 0x0688 */ J3DModel* mpDemoBDTmpBmd; - /* 0x068C */ J3DModel* mpDemoBDMaskBmd; - /* 0x0690 */ J3DModel* mpDemoBDHandsBmd; - /* 0x0694 */ J3DModel* mpDemoBDHairhandBmd; - /* 0x0698 */ J3DModel* mpGokouBmd; - /* 0x069C */ J3DShape* field_0x69c; - /* 0x06A0 */ J3DShape* field_0x6a0; - /* 0x06A4 */ J3DShape* field_0x6a4; - /* 0x06A8 */ J3DShape* field_0x6a8; - /* 0x06AC */ J3DModel* mpDemoFCBlendBmd; - /* 0x06B0 */ J3DModel* mpDemoFCTongueBmd; - /* 0x06B4 */ J3DAnmTextureSRTKey* field_0x6b4; - /* 0x06B8 */ mDoExt_bckAnm* mpDemoFCTmpBck; - /* 0x06BC */ J3DDeformData* mpDemoFCTmpBls; - /* 0x06C0 */ J3DAnmCluster* field_0x6c0; - /* 0x06C4 */ mDoExt_blkAnm* field_0x6c4; - /* 0x06C8 */ J3DModel* mpDemoHLTmpBmd; - /* 0x06CC */ mDoExt_bckAnm* mpDemoHLTmpBck; - /* 0x06D0 */ J3DModel* mpDemoHRTmpBmd; - /* 0x06D4 */ mDoExt_bckAnm* mpDemoHRTmpBck; - /* 0x06D8 */ J3DModel* mpDemoHDTmpBmd; - /* 0x06DC */ mDoExt_bckAnm* mpDemoHDTmpBck; - /* 0x06E0 */ J3DGXColorS10 field_0x6e0; - /* 0x06E8 */ J3DGXColor field_0x6e8; - /* 0x06EC */ u8 field_0x6ec; // this is probably J3DGXColor. fix later - /* 0x06ED */ u8 field_0x6ed; - /* 0x06EE */ u8 field_0x6ee; - /* 0x06EF */ u8 field_0x6ef; - /* 0x06F0 */ void* field_0x6f0; - /* 0x06F4 */ void* field_0x6f4; - /* 0x06F8 */ void* field_0x6f8; - /* 0x06FC */ Z2Creature field_0x6fc; - /* 0x078C */ dMsgFlow_c mMsgFlow; - /* 0x07D8 */ dBgS_LinkLinChk mLinChk; - /* 0x0848 */ u8 mMotionNum; - /* 0x0849 */ u8 mFaceNum; - /* 0x084A */ u8 field_0x84a[4]; - /* 0x084E */ u8 field_0x84e; - /* 0x084F */ u8 mDemoType; - /* 0x0850 */ u8 field_0x850[0xA]; - /* 0x085A */ s16 field_0x85a; - /* 0x085C */ u8 field_0x85c[0x22]; - /* 0x087E */ s16 field_0x87e; - /* 0x0880 */ u8 field_0x880[0xC]; // csXyz in here, fix later - /* 0x088C */ int mStaffID; - /* 0x0890 */ u32 mStateFlg0; - /* 0x0894 */ u32 mStateFlg1; - /* 0x0898 */ u32 mEndResetStateFlg0; - /* 0x089C */ u8 field_0x89c[0x24]; - /* 0x08C0 */ u32 mDemoMode; - /* 0x08C4 */ u8 field_0x8c4[4]; - /* 0x08C8 */ f32 field_0x8c8; - /* 0x08CC */ u8 field_0x8cc[0x14]; - /* 0x08E0 */ cXyz field_0x8e0[5]; - /* 0x091C */ cXyz field_0x91c[5]; - /* 0x0958 */ u8 field_0x958[0xC]; // cXyz here, fix later - /* 0x0964 */ cXyz field_0x964[5]; - /* 0x09A0 */ u8 field_0x9a0[0xC]; - /* 0x09AC */ cXyz field_0x9ac; - /* 0x09B8 */ u8 field_0x9b8[0x9C4 - 0x9B8]; - /* 0x09C4 */ cXyz field_0x9c4; - /* 0x09D0 */ u8 field_0x9d0[4]; - /* 0x09D4 */ daMidna_func mpFunc; -}; - static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1); static fopAc_ac_c* daAlink_searchCanoe(fopAc_ac_c* param_0, void* param_1); static void* daAlink_searchBoar(fopAc_ac_c* param_0, void* param_1); diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index 011ff553b9..2d9e1ccbb9 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -61,6 +61,8 @@ public: class dBgS_Acch; +u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0); + class dBgS : public cBgS { public: dBgS() {} @@ -107,6 +109,7 @@ public: bool PushPullCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, s16, dBgW_Base::PushPullLabel); bool WaterChk(dBgS_SplGrpChk* chk) { return SplGrpChk(chk); } + u32 GetMtrlSndId(cBgS_PolyInfo* param_0) { return dKy_pol_sound_get(param_0); } }; // Size: 0x1404 bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const&); diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 06d32de25b..36050fe6f7 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -1248,6 +1248,10 @@ inline BOOL dComIfGs_isTbox(int i_no) { return g_dComIfG_gameInfo.info.getMemory().getBit().isTbox(i_no); } +inline void dComIfGs_onTbox(int i_no) { + g_dComIfG_gameInfo.info.getMemory().getBit().onTbox(i_no); +} + inline BOOL dComIfGs_isSaveItem(int i_no) { return g_dComIfG_gameInfo.info.getMemory().getBit().isItem(i_no); } @@ -1638,6 +1642,10 @@ inline u8 i_dComIfGs_getEventReg(u16 reg) { return g_dComIfG_gameInfo.info.getEvent().getEventReg(reg); } +inline void dComIfGs_setEventReg(u16 reg, u8 value) { + g_dComIfG_gameInfo.info.getEvent().setEventReg(reg, value); +} + inline void dComIfGs_setWarashibeItem(u8 i_itemNo) { g_dComIfG_gameInfo.info.getPlayer().getItem().setWarashibeItem(i_itemNo); } @@ -2982,6 +2990,10 @@ inline void i_dComIfGp_event_reset() { g_dComIfG_gameInfo.play.getEvent().reset(); } +inline void dComIfGp_event_onEventFlag(u16 i_flag) { + g_dComIfG_gameInfo.play.getEvent().onEventFlag(i_flag); +} + inline void dComIfGp_evmng_cutEnd(int param_0) { dComIfGp_getPEvtManager()->cutEnd(param_0); } @@ -2998,6 +3010,10 @@ inline u8 dComIfGp_event_getPreItemNo() { return g_dComIfG_gameInfo.play.getEvent().getPreItemNo(); } +inline void dComIfGp_event_setItemPartner(void* param_0) { + g_dComIfG_gameInfo.play.getEvent().setPtI(param_0); +} + inline void dComIfGp_event_setItemPartnerId(unsigned int id) { g_dComIfG_gameInfo.play.getEvent().setPtI_Id(id); } diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 0955bdf316..b1943fc7fb 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -160,7 +160,7 @@ struct stage_camera2_data_class { struct stage_camera_class { /* 0x0 */ int field_0x0; - /* 0x4 */ stage_camera2_data_class* field_0x4; + /* 0x4 */ stage_camera2_data_class* mEntries; }; struct stage_arrow_data_class { @@ -335,7 +335,8 @@ struct dStage_DMap_c { struct dStage_MapEvent_dt_c { /* 0x00 */ u8 mType; - /* 0x01 */ u8 field_0x1[3 - 1]; + /* 0x01 */ u8 field_0x1; + /* 0x02 */ u8 field_0x2; /* 0x03 */ u8 field_0x3; /* 0x04 */ u8 field_0x4; /* 0x05 */ u8 field_0x5; diff --git a/include/d/d_tresure.h b/include/d/d_tresure.h index 78ac174efe..04650bc038 100644 --- a/include/d/d_tresure.h +++ b/include/d/d_tresure.h @@ -70,6 +70,10 @@ public: return mTypeGroupListAll[index].mNumber; } + static void setPosition(int i_tboxNo, Vec const* i_pos) { + setPosition(i_tboxNo, 0, i_pos, -1); + } + static u8 const typeToTypeGroup[17][2]; static type_group_list mTypeGroupListAll[17]; static typeGroupData_c* mTypeGroupData; diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index add7ddb20a..b4c0ab2947 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -560,12 +560,15 @@ void dKy_setLight_again(); void dKy_GxFog_tevstr_set(dKy_tevstr_c*); void dKy_plight_set(LIGHT_INFLUENCE* param_0); void dKy_plight_priority_set(LIGHT_INFLUENCE* param_0); +void dKy_efplight_set(LIGHT_INFLUENCE* param_0); +void dKy_efplight_cut(LIGHT_INFLUENCE* param_0); void dKy_tevstr_init(dKy_tevstr_c* param_0, s8 param_1, u8 param_2); SND_INFLUENCE* dKy_Sound_get(); void dKy_plight_cut(LIGHT_INFLUENCE* param_0); void dKy_dalkmist_inf_set(DALKMIST_INFLUENCE*); void dKy_dalkmist_inf_cut(DALKMIST_INFLUENCE*); int dKy_rain_check(); +void dKy_set_allcol_ratio(f32 ratio); void dKy_set_actcol_ratio(f32 ratio); void dKy_set_bgcol_ratio(f32 ratio); void dKy_set_fogcol_ratio(f32 ratio); diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 2b36b5feff..4835731cbf 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -5,6 +5,9 @@ #include "f_op/f_op_actor_iter.h" #include "f_pc/f_pc_manager.h" #include "f_pc/f_pc_searcher.h" +#include "d/bg/d_bg_s.h" +#include "d/bg/d_bg_s_lin_chk.h" +#include "d/bg/d_bg_s_wtr_chk.h" #define fopAcM_SetupActor(ptr,ClassName) \ if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \ @@ -57,10 +60,13 @@ struct fopAcM_search_prm { /* 0x0A */ s8 mSubType; }; -class dBgS_LinChk; +dBgS& dComIfG_Bgsp(); + class fopAcM_lc_c { public: static dBgS_LinChk* getLineCheck() { return (dBgS_LinChk*)&mLineCheck; } + static bool checkMoveBG() { return dComIfG_Bgsp().ChkMoveBG(*(dBgS_LinChk*)&mLineCheck); } + static cXyz* getCrossP() { return ((dBgS_LinChk*)&mLineCheck)->GetCrossP(); } static bool lineCheck(const cXyz*, const cXyz*, const fopAc_ac_c*); static u8 mLineCheck[112]; }; @@ -90,11 +96,11 @@ public: static f32 getGroundY() { return mGroundY; } }; -class dBgS_WtrChk; class fopAcM_wt_c { public: static dBgS_WtrChk* getWaterCheck() { return (dBgS_WtrChk*)&mWaterCheck; } static f32 getWaterY() { return mWaterY[0]; } + static int getPolyAtt0() { return dComIfG_Bgsp().GetPolyAtt0(*(dBgS_WtrChk*)&mWaterCheck); } static bool waterCheck(const cXyz*); static u8 mWaterCheck[84 + 4 /* padding */]; @@ -588,23 +594,27 @@ inline void make_prm_bokkuri(u32* pActorParams, csXyz* p_angle, u8 param_2, u8 p inline fopAc_ac_c* dComIfGp_getPlayer(int); inline s16 fopAcM_searchPlayerAngleY(const fopAc_ac_c* actor) { - return fopAcM_searchActorAngleY(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0)); + return fopAcM_searchActorAngleY(actor, dComIfGp_getPlayer(0)); } inline f32 fopAcM_searchPlayerDistanceY(const fopAc_ac_c* actor) { - return fopAcM_searchActorDistanceY(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0)); + return fopAcM_searchActorDistanceY(actor, dComIfGp_getPlayer(0)); } inline f32 fopAcM_searchPlayerDistanceXZ2(const fopAc_ac_c* actor) { - return fopAcM_searchActorDistanceXZ2(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0)); + return fopAcM_searchActorDistanceXZ2(actor, dComIfGp_getPlayer(0)); } inline f32 fopAcM_searchPlayerDistanceXZ(const fopAc_ac_c* actor) { - return fopAcM_searchActorDistanceXZ(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0)); + return fopAcM_searchActorDistanceXZ(actor, dComIfGp_getPlayer(0)); } inline f32 fopAcM_searchPlayerDistance(const fopAc_ac_c* actor) { - return fopAcM_searchActorDistance(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0)); + return fopAcM_searchActorDistance(actor, dComIfGp_getPlayer(0)); +} + +inline s32 fopAcM_seenPlayerAngleY(const fopAc_ac_c* i_actor) { + return fopAcM_seenActorAngleY(i_actor, dComIfGp_getPlayer(0)); } s8 dComIfGp_getReverb(int roomNo); diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 6c8215cabd..05926d090e 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -604,6 +604,7 @@ J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 i_modelFlag, u3 void mDoExt_setAraCacheSize(u32 size); int mDoExt_resIDToIndex(JKRArchive* p_archive, u16 id); void mDoExt_modelEntryDL(J3DModel* i_model); +void mDoExt_brkAnmRemove(J3DModelData* i_modelData); void mDoExt_setupStageTexture(J3DModelData* i_modelData); OSThread* mDoExt_GetCurrentRunningThread(); void mDoExt_setupShareTexture(J3DModelData* i_modelData, J3DModelData* i_shareModelData); diff --git a/include/rel/d/a/d_a_midna/d_a_midna.h b/include/rel/d/a/d_a_midna/d_a_midna.h index f9d2191565..9d65fc9600 100644 --- a/include/rel/d/a/d_a_midna/d_a_midna.h +++ b/include/rel/d/a/d_a_midna/d_a_midna.h @@ -1,6 +1,268 @@ #ifndef D_A_MIDNA_H #define D_A_MIDNA_H +#include "SSystem/SComponent/c_phase.h" +#include "JSystem/J3DGraphBase/J3DMatBlock.h" +#include "Z2AudioLib/Z2Creature.h" +#include "f_op/f_op_actor.h" +#include "d/bg/d_bg_s_lin_chk.h" +#include "d/com/d_com_inf_game.h" +#include "d/a/d_a_player.h" +#include "d/msg/d_msg_flow.h" #include "dolphin/types.h" +class daMidna_c; +typedef int (daMidna_c::*daMidna_func)(); + +class daMidna_c : public fopAc_ac_c { +public: + enum daMidna_ERFLG0 { + ERFLG0_NO_SERVICE_WAIT = 0x80, + ERFLG0_FORCE_PANIC = 8, + ERFLG0_UNK_2 = 2, + }; + + enum daMidna_FLG0 { + FLG0_UNK_80000000 = 0x80000000, + FLG0_UNK_8000000 = 0x8000000, + FLG0_NPC_NEAR = 0x100000, + FLG0_NPC_FAR = 0x40000, + FLG0_NO_INPUT = 0x4000, + FLG0_NO_DRAW = 0x2000, + FLG0_UNK_400 = 0x400, + FLG0_UNK_800 = 0x800, + FLG0_UNK_200 = 0x200, + }; + + enum daMidna_FLG1 { + FLG1_FORCE_NORMAL_COL = 8, + FLG1_FORCE_TIRED_COL = 4, + FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE = 2, + }; + + enum daMidna_ANM {}; + + void onForcePanic(); + u32 checkForceNormalColor() const; + u32 checkForceTiredColor() const; + bool checkMidnaTired(); + void onNoServiceWait(); + + /* 804BC3E0 */ void modelCallBack(int); + /* 804BC5C4 */ void changeUpperBck(); + /* 804BC614 */ void changeFaceBck(); + /* 804BC670 */ void baseModelCallBack(int); + /* 804BC740 */ void initInvModel(u16, J3DModel**, mDoExt_invisibleModel*, u32); + /* 804BC7D4 */ void initDemoModel(J3DModel**, char const*, u32); + /* 804BC868 */ void createHeap(); + /* 804BD274 */ void create(); + /* 804BD93C */ void allAnimePlay(); + /* 804BDE04 */ void setMatrix(); + /* 804BE470 */ void setBodyPartMatrix(); + /* 804BED1C */ void setRoomInfo(); + /* 804BEDB8 */ void setBodyPartPos(); + /* 804BEFA0 */ void checkAppear(); + /* 804BF070 */ void checkMidnaPosState(); + /* 804BFF80 */ void setUpperAnime(u16, u16); + /* 804C0020 */ void setUpperAnimeAndSe(daMidna_c::daMidna_ANM); + /* 804C0094 */ void setFaceAnime(u16, u16); + /* 804C0134 */ void endHighModel(); + /* 804C0238 */ void setDemoAnm(); + /* 804C0BAC */ void setFaceBtp(u16, int); + /* 804C0C6C */ void setFaceBtk(u16, int); + /* 804C0D2C */ void setLeftHandShape(u16); + /* 804C0E18 */ void setRightHandShape(u16); + /* 804C0F04 */ void checkHairOnlyAnime(int) const; + /* 804C0F24 */ void setBckAnime(J3DAnmTransform*, int, f32); + /* 804C103C */ void setAnm(); + /* 804C287C */ void getNeckAimAngle(cXyz const*, s16*, s16*, s16*, s16*); + /* 804C2A68 */ void clearEyeMove(); + /* 804C2AB8 */ void setEyeMove(cXyz const*, s16, s16); + /* 804C2EBC */ void setNeckAngle(); + /* 804C3168 */ void initHairAngle(); + /* 804C3298 */ void setHairAngle(); + /* 804C3F04 */ void setDemoData(); + /* 804C4394 */ void setSimpleBrk(J3DModelData*, u16); + /* 804C4444 */ void setSimpleBtk(J3DModelData*, u16); + /* 804C44CC */ void initMidnaModel(); + /* 804C49B8 */ void setMidnaNoDrawFlg(); + /* 804C4AE8 */ void checkMetamorphoseEnableBase(); + /* 804C4B68 */ void checkNoDrawState(); + /* 804C4BC0 */ void setSound(); + /* 804C4FDC */ void execute(); + /* 804C5A08 */ void draw(); + /* 804C61A4 */ ~daMidna_c(); + + void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; } + void onStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 |= i_flag; } + void offStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 &= ~i_flag; } + u32 checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; } + u32 checkStateFlg1(daMidna_FLG1 flag) const { return mStateFlg1 & flag; } + void setFaceNum(int num) { mFaceNum = num; } + void setMotionNum(int num) { mMotionNum = num; } + bool checkDemoTypeNone() const { return mDemoType == 0; } + void changeOriginalDemo() { mDemoType = 3; } + void changeDemoMode(u32 mode) { mDemoMode = mode; } + BOOL checkNpcNear() { return checkStateFlg0(FLG0_NPC_NEAR); } + BOOL checkNpcFar() { return checkStateFlg0(FLG0_NPC_FAR); } + BOOL checkNoDraw() const { return checkStateFlg0(FLG0_NO_DRAW); } + BOOL checkNoInput() const { return checkStateFlg0(FLG0_NO_INPUT); } + BOOL checkWolfNoPos() const { return checkStateFlg0(FLG0_UNK_800); } + int checkMetamorphoseEnable() { return (this->*mpFunc)(); } + int checkShadowModelDrawDemoForce() const { return checkStateFlg1(FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE); } + + void onTagWaitPosWarp(const cXyz* param_0) { + field_0x9ac = *param_0; + onStateFlg0(FLG0_UNK_400); + onEndResetStateFlg0(ERFLG0_UNK_2); + } + + void onTagWaitPos(const cXyz* param_0) { + field_0x9ac = *param_0; + onStateFlg0(FLG0_UNK_400); + } + + void offTagWaitPos() { + offStateFlg0((daMidna_FLG0)(FLG0_UNK_80000000 | FLG0_UNK_8000000 | FLG0_UNK_400)); + } + + void onTagNoHairLead() { + onStateFlg0(FLG0_UNK_80000000); + } + + bool checkReturnAnime() const { + return field_0x5e4[0].getIdx() == 0x1CA; + } + + bool checkShadowModelDrawSmode() const { + return field_0x84e == 3 || field_0x84e == 4 || field_0x84e == 2; + } + + bool checkShadowModelDraw() const { + return checkShadowModelDrawDemoForce() || checkShadowModelDrawSmode(); + } + + bool checkShadowReturnEnd() const { + return field_0x5e4[0].getIdx() == 0x21C && field_0x578->isStop(); + } + + bool checkShadowModeTalkWait() const { + return (field_0x84e == 2 || field_0x84e == 1) ; + } + + void setShadowReturn() { field_0x84e = 4; } + + + bool checkPortalObjRide() const { + return checkStateFlg0(FLG0_UNK_8000000) && checkStateFlg0(FLG0_UNK_200); + } + + inline static BOOL checkMidnaRealBody(); + + bool i_checkMidnaTired() { + return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1E08); + } + + static u8 const m_texDataTable[84]; + static u8 const m_anmDataTable[636]; + +private: + /* 0x0568 */ request_of_phase_process_class mPhase; + /* 0x0570 */ J3DModel* field_0x570; + /* 0x0574 */ J3DModel* field_0x574; + /* 0x0578 */ mDoExt_McaMorfSO* field_0x578; + /* 0x057C */ mDoExt_McaMorfCallBack1_c* field_0x57c; // this is really daMidna_McaMorfCB1_c. fix later + /* 0x0580 */ cXyz* field_0x580; + /* 0x0584 */ mDoExt_bckAnm field_0x584; + /* 0x05A0 */ mDoExt_bckAnm field_0x5a0; + /* 0x05BC */ J3DAnmTexPattern* field_0x5bc; + /* 0x05C0 */ J3DAnmTextureSRTKey* field_0x5c0; + /* 0x05C4 */ mDoExt_invisibleModel field_0x5c4; + /* 0x05CC */ mDoExt_invisibleModel mInvMaskBmd; + /* 0x05D4 */ mDoExt_invisibleModel mInvHandsBmd; + /* 0x05DC */ mDoExt_invisibleModel mInvHairhandBmd; + /* 0x05E4 */ daPy_anmHeap_c field_0x5e4[3]; + /* 0x0620 */ daPy_anmHeap_c field_0x620; + /* 0x0634 */ daPy_anmHeap_c field_0x634; + /* 0x0648 */ J3DAnmTextureSRTKey* field_0x648; + /* 0x064C */ J3DAnmTextureSRTKey* field_0x64c; + /* 0x0650 */ J3DAnmTextureSRTKey* field_0x650; + /* 0x0654 */ J3DAnmTextureSRTKey* field_0x654; + /* 0x0658 */ J3DAnmTevRegKey* field_0x658; + /* 0x065C */ J3DAnmTevRegKey* field_0x65c; + /* 0x0660 */ J3DAnmTevRegKey* field_0x660; + /* 0x0664 */ J3DAnmTevRegKey* field_0x664; + /* 0x0668 */ J3DAnmTevRegKey* field_0x668; + /* 0x066C */ J3DAnmTevRegKey* field_0x66c; + /* 0x0670 */ J3DModel* field_0x670; + /* 0x0674 */ J3DModel* mpMaskBmd; + /* 0x0678 */ J3DModel* field_0x678; + /* 0x067C */ J3DModel* mpHandsBmd; + /* 0x0680 */ J3DModel* field_0x680; + /* 0x0684 */ J3DModel* mpHairhandBmd; + /* 0x0688 */ J3DModel* mpDemoBDTmpBmd; + /* 0x068C */ J3DModel* mpDemoBDMaskBmd; + /* 0x0690 */ J3DModel* mpDemoBDHandsBmd; + /* 0x0694 */ J3DModel* mpDemoBDHairhandBmd; + /* 0x0698 */ J3DModel* mpGokouBmd; + /* 0x069C */ J3DShape* field_0x69c; + /* 0x06A0 */ J3DShape* field_0x6a0; + /* 0x06A4 */ J3DShape* field_0x6a4; + /* 0x06A8 */ J3DShape* field_0x6a8; + /* 0x06AC */ J3DModel* mpDemoFCBlendBmd; + /* 0x06B0 */ J3DModel* mpDemoFCTongueBmd; + /* 0x06B4 */ J3DAnmTextureSRTKey* field_0x6b4; + /* 0x06B8 */ mDoExt_bckAnm* mpDemoFCTmpBck; + /* 0x06BC */ J3DDeformData* mpDemoFCTmpBls; + /* 0x06C0 */ J3DAnmCluster* field_0x6c0; + /* 0x06C4 */ mDoExt_blkAnm* field_0x6c4; + /* 0x06C8 */ J3DModel* mpDemoHLTmpBmd; + /* 0x06CC */ mDoExt_bckAnm* mpDemoHLTmpBck; + /* 0x06D0 */ J3DModel* mpDemoHRTmpBmd; + /* 0x06D4 */ mDoExt_bckAnm* mpDemoHRTmpBck; + /* 0x06D8 */ J3DModel* mpDemoHDTmpBmd; + /* 0x06DC */ mDoExt_bckAnm* mpDemoHDTmpBck; + /* 0x06E0 */ J3DGXColorS10 field_0x6e0; + /* 0x06E8 */ J3DGXColor field_0x6e8; + /* 0x06EC */ u8 field_0x6ec; // this is probably J3DGXColor. fix later + /* 0x06ED */ u8 field_0x6ed; + /* 0x06EE */ u8 field_0x6ee; + /* 0x06EF */ u8 field_0x6ef; + /* 0x06F0 */ void* field_0x6f0; + /* 0x06F4 */ void* field_0x6f4; + /* 0x06F8 */ void* field_0x6f8; + /* 0x06FC */ Z2Creature field_0x6fc; + /* 0x078C */ dMsgFlow_c mMsgFlow; + /* 0x07D8 */ dBgS_LinkLinChk mLinChk; + /* 0x0848 */ u8 mMotionNum; + /* 0x0849 */ u8 mFaceNum; + /* 0x084A */ u8 field_0x84a[4]; + /* 0x084E */ u8 field_0x84e; + /* 0x084F */ u8 mDemoType; + /* 0x0850 */ u8 field_0x850[0xA]; + /* 0x085A */ s16 field_0x85a; + /* 0x085C */ u8 field_0x85c[0x22]; + /* 0x087E */ s16 field_0x87e; + /* 0x0880 */ u8 field_0x880[0xC]; // csXyz in here, fix later + /* 0x088C */ int mStaffID; + /* 0x0890 */ u32 mStateFlg0; + /* 0x0894 */ u32 mStateFlg1; + /* 0x0898 */ u32 mEndResetStateFlg0; + /* 0x089C */ u8 field_0x89c[0x24]; + /* 0x08C0 */ u32 mDemoMode; + /* 0x08C4 */ u8 field_0x8c4[4]; + /* 0x08C8 */ f32 field_0x8c8; + /* 0x08CC */ u8 field_0x8cc[0x14]; + /* 0x08E0 */ cXyz field_0x8e0[5]; + /* 0x091C */ cXyz field_0x91c[5]; + /* 0x0958 */ u8 field_0x958[0xC]; // cXyz here, fix later + /* 0x0964 */ cXyz field_0x964[5]; + /* 0x09A0 */ u8 field_0x9a0[0xC]; + /* 0x09AC */ cXyz field_0x9ac; + /* 0x09B8 */ u8 field_0x9b8[0x9C4 - 0x9B8]; + /* 0x09C4 */ cXyz field_0x9c4; + /* 0x09D0 */ u8 field_0x9d0[4]; + /* 0x09D4 */ daMidna_func mpFunc; +}; + #endif /* D_A_MIDNA_H */ diff --git a/include/rel/d/a/d_a_tbox/d_a_tbox.h b/include/rel/d/a/d_a_tbox/d_a_tbox.h index 70a00cfbef..e58d779d21 100644 --- a/include/rel/d/a/d_a_tbox/d_a_tbox.h +++ b/include/rel/d/a/d_a_tbox/d_a_tbox.h @@ -1,6 +1,213 @@ #ifndef D_A_TBOX_H #define D_A_TBOX_H +#include "SSystem/SComponent/c_phase.h" +#include "d/cc/d_cc_d.h" +#include "d/bg/d_bg_s_acch.h" +#include "d/bg/d_bg_s_movebg_actor.h" +#include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_hostIO.h" #include "dolphin/types.h" +class dBgW; + +class daTboxBase_c : public dBgS_MoveBgActor { +protected: + /* 0x5A0 */ dCcD_Stts mStts; + /* 0x5DC */ dCcD_Cyl mCyl; +}; + +STATIC_ASSERT(sizeof(daTboxBase_c) == 0x718); + +struct daTbox_ModelInfo { + /* 0x00 */ char* mArcName; + /* 0x04 */ int mModelResNo; + /* 0x08 */ int mBckResNo; + /* 0x0C */ int mClosedDzbResNo; + /* 0x10 */ int mOpenDzbResNo; + /* 0x14 */ int mEffectResNo; + /* 0x18 */ int mBrkResNo; +}; + +STATIC_ASSERT(sizeof(daTbox_ModelInfo) == 0x1C); + +class daTbox_c; +typedef int (daTbox_c::*daTbox_actionFn)(); +typedef void (daTbox_c::*daTbox_modeFn)(); + +class daTbox_c : public daTboxBase_c { +public: + enum Shape { + SHAPE_SMALL = 0, + SHAPE_LARGE = 1, + SHAPE_BOSSKEY = 2, + }; + + enum Mode { + MODE_EXEC_WAIT = 0, + MODE_EXEC = 1, + }; + + /* 80490E50 */ daTbox_ModelInfo* getModelInfo(); + /* 80490E6C */ cPhs__Step commonShapeSet(); + /* 804911B8 */ cPhs__Step effectShapeSet(); + /* 804911C0 */ cPhs__Step envShapeSet(); + /* 804911C8 */ cPhs__Step bgCheckSet(); + /* 8049129C */ void lightReady(); + /* 804912EC */ void setLightPos(); + /* 8049135C */ int checkEnv(); + /* 80491364 */ int checkAppear(); + /* 8049139C */ int checkOpen(); + /* 804913D0 */ void clrDzb(); + /* 8049141C */ void setDzb(); + /* 80491484 */ void surfaceProc(); + /* 80491544 */ int checkNormal(); + /* 804915BC */ int checkEnvEffectTbox(); + /* 80491624 */ u32 calcHeapSize(); + /* 804916A4 */ int CreateHeap(); + /* 80491744 */ void CreateInit(); + /* 804919B0 */ void initPos(); + /* 80491BB0 */ void initAnm(); + /* 80491F68 */ int boxCheck(); + /* 804920A8 */ void demoProcOpen(); + /* 8049216C */ void lightColorProc(); + /* 8049233C */ void environmentProc(); + /* 80492398 */ void lightUpProc(); + /* 804923D4 */ void lightDownProc(); + /* 80492408 */ void dropProcInitCall(); + /* 80492450 */ void dropProcInit(); + /* 804928DC */ int calcJumpGoalAndAngle(cXyz*, s16*); + /* 80492B10 */ bool getDropSAngle(s16*); + /* 80492BC8 */ int getDir(); + /* 80492C84 */ void setRotAxis(cXyz const*, cXyz const*); + /* 80492D08 */ void dropProcInit2(); + /* 80492F50 */ void dropProc(); + /* 80493338 */ void demoInitAppear(); + /* 80493484 */ void demoProcAppear(); + /* 80493518 */ int demoProc(); + /* 80493838 */ void OpenInit_com(); + /* 804939A4 */ void OpenInit(); + /* 804939F4 */ int actionWait(); + /* 804939FC */ int actionDemo(); + /* 80493CC8 */ int actionDemo2(); + /* 80493D90 */ int actionDropDemo(); + /* 80493ED8 */ u8 getBombItemNo(u8, u8); + /* 80493FE8 */ u8 getBombItemNo2(u8, u8, u8); + /* 80494144 */ u8 getBombItemNo3(u8, u8, u8, u8); + /* 804942CC */ u8 getBombItemNoMain(u8); + /* 804945C8 */ int setGetDemoItem(); + /* 804946A4 */ int actionOpenWait(); + /* 804948CC */ int actionNotOpenDemo(); + /* 80494950 */ int checkDrop(); + /* 80494A0C */ void settingDropDemoCamera(); + /* 80494D88 */ int actionSwOnWait(); + /* 80494E98 */ int actionSwOnWait2(); + /* 80494F44 */ int actionDropWait(); + /* 80495058 */ int actionGenocide(); + /* 8049518C */ int actionDropWaitForWeb(); + /* 80495250 */ int actionDropForWeb(); + /* 804953D4 */ void initBaseMtx(); + /* 80495490 */ void setBaseMtx(); + /* 80495660 */ void mode_proc_call(); + /* 804956EC */ void mode_exec_wait(); + /* 80495818 */ void mode_exec(); + /* 80495910 */ cPhs__Step create1st(); + /* 804959EC */ int Execute(f32 (**)[3][4]); + /* 80495AF0 */ int Draw(); + /* 80495C9C */ int Delete(); + /* 804961B0 */ int Create(); + /* 804961B8 */ bool checkSmallTbox(); + + u32 getEvent() { return fopAcM_GetParam(this) >> 24; } + int getShapeType() { return (fopAcM_GetParam(this) >> 20) & 0xf; } + int getSwNo() { return (fopAcM_GetParam(this) >> 12) & 0xff; } + int getTboxNo() { return (fopAcM_GetParam(this) >> 6) & 0x3f; } + int getFuncType() { return fopAcM_GetParam(this) & 0x3f; } + u32 getSwType() { return field_0x980 & 0xf; } + int getItemNo() { return (field_0x982 >> 8) & 0xff; } + int getPathId() { return field_0x982 & 0xff; } + void flagClr() { mFlags = 0; } + void flagOn(u16 i_flag) { mFlags |= i_flag; } + void flagOff(u16 i_flag) { mFlags &= ~i_flag; } + u16 flagCheck(u16 i_flag) { return mFlags & i_flag; } + void setAction(daTbox_actionFn i_actionFn) { mpActionFn = i_actionFn; } + void action() { (this->*mpActionFn)(); } + +private: + /* 0x718 */ bool field_0x718; + /* 0x71C */ request_of_phase_process_class mPhase; + /* 0x724 */ J3DModel* mpModel; + /* 0x728 */ J3DModel* mpSlimeModel; + /* 0x72C */ mDoExt_bckAnm* mpAnm; + /* 0x730 */ J3DModel* mpEffectModel; + /* 0x734 */ mDoExt_brkAnm* mpEffectAnm; + /* 0x738 */ dBgW* mpOpenBgW; + /* 0x73C */ dBgW* mpBgCollider; + /* 0x740 */ daTbox_actionFn mpActionFn; + /* 0x74C */ int mStaffId; + /* 0x750 */ f32 field_0x750; + /* 0x754 */ u16 mFlags; + /* 0x756 */ u16 mDemoFrame; + /* 0x758 */ bool field_0x758; + /* 0x759 */ u8 field_0x759; + /* 0x75A */ u16 field_0x75a; + /* 0x75C */ u8 mTimer; + /* 0x760 */ dBgS_ObjAcch mAcch; + /* 0x938 */ dBgS_AcchCir mAcchCir; + /* 0x978 */ u8 mTboxNo; + /* 0x97A */ s16 mEventId; + /* 0x97C */ bool field_0x97c; + /* 0x97D */ bool field_0x97d; + /* 0x97E */ u8 field_0x97e; + /* 0x97F */ bool mParamsInit; + /* 0x980 */ u16 field_0x980; + /* 0x982 */ u16 field_0x982; + /* 0x984 */ s16 field_0x984; + /* 0x988 */ Mtx field_0x988; + /* 0x9B8 */ cXyz mRotAxis; + /* 0x9C4 */ s16 field_0x9c4; + /* 0x9C6 */ s16 field_0x9c6; + /* 0x9C8 */ u8 field_0x9c8; + /* 0x9C9 */ u8 field_0x9c9; + /* 0x9CA */ s16 field_0x9ca; + /* 0x9CC */ u8 field_0x9cc; + /* 0x9CD */ u8 mMode; + /* 0x9D0 */ LIGHT_INFLUENCE mLight; + /* 0x9F0 */ f32 mAllcolRatio; + /* 0x9F4 */ int field_0x9f4; + /* 0x9F8 */ u32 mOpenSeId; + /* 0x9FC */ u8 field_0x9fc; + /* 0x9FD */ u8 field_0x9fd; + /* 0xA00 */ Mtx field_0xa00; +}; + +STATIC_ASSERT(sizeof(daTbox_c) == 0xA30); + +class daTbox_HIO_c : mDoHIO_entry_c { +public: + /* 80490D2C */ daTbox_HIO_c(); + /* 804960B8 */ virtual ~daTbox_HIO_c() {} + + /* 0x04 */ u8 mItemNo; + /* 0x05 */ u8 mUseDebugItemNo; + /* 0x06 */ u8 mClearSwitch; + /* 0x07 */ u8 mDemoType; + /* 0x08 */ u8 mDebugLightColorEnabled; + /* 0x09 */ u8 mTimerDisplay; + /* 0x0A */ u8 mCheckDisplay; + /* 0x0B */ u8 mSaveOff; + /* 0x0C */ f32 mGravity; + /* 0x10 */ cXyz mLightOffset; + /* 0x1C */ s16 mLightColorR; + /* 0x1E */ s16 mLightColorG; + /* 0x20 */ s16 mLightColorB; + /* 0x24 */ f32 mLightPower; + /* 0x28 */ f32 mFluctuationRate; + /* 0x2C */ f32 mEnvColorInfluence; + /* 0x30 */ s16 mFluctuationSpeed; + /* 0x32 */ u8 mForPlacementCheck; +}; + +STATIC_ASSERT(sizeof(daTbox_HIO_c) == 0x34); + #endif /* D_A_TBOX_H */ |
