diff options
| author | Carco_21 <144170194+carter-ktb21@users.noreply.github.com> | 2025-05-30 06:49:24 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-30 13:49:24 +0300 |
| commit | bc945599045ebcf8e8f88ea3560e89fb36ba3968 (patch) | |
| tree | 5125e902f7c1fb8141589bc7eaed5bfd7b9fec6b /include | |
| parent | 6fd5560738b856d59575f8d26f1d02b64def0d76 (diff) | |
d_a_npc_ks work (#2461)
* Initial work
* Work on ori2 and others
* Work on npc_ks_home
* Work on npc_ks_demo_022
* Chugging through
* Started on demo_camera
* More demo_camera work
* 51% equivalent
* General cleanup
* Fixed compile error in d_a_e_mk
* Small d_a_e_mk fix
* d_a_e_fs fix
* PR cleanup
* Started work on d_a_obj_sw
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_npc_ks.h | 139 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_so.h | 28 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_sw.h | 57 | ||||
| -rw-r--r-- | include/d/actor/d_a_player.h | 4 | ||||
| -rw-r--r-- | include/d/d_com_inf_game.h | 1 | ||||
| -rw-r--r-- | include/d/d_meter2_info.h | 4 | ||||
| -rw-r--r-- | include/d/d_stage.h | 1 |
7 files changed, 218 insertions, 16 deletions
diff --git a/include/d/actor/d_a_npc_ks.h b/include/d/actor/d_a_npc_ks.h index 29e040f6e0..55c6d55c58 100644 --- a/include/d/actor/d_a_npc_ks.h +++ b/include/d/actor/d_a_npc_ks.h @@ -2,6 +2,8 @@ #define D_A_NPC_KS_H #include "d/actor/d_a_npc.h" +#include "d/actor/d_a_obj_so.h" +#include "d/actor/d_a_obj_sw.h" /** * @ingroup actors-npcs @@ -11,23 +13,146 @@ * @details * */ -class npc_ks_class : public fopAc_ac_c { +class npc_ks_class { public: - /* 0x568 */ u8 field_0x568[0x5b6 - 0x568]; + /* 0x000 */ fopAc_ac_c actor; + /* 0x568 */ u8 field_0x568[0x570 - 0x568]; + /* 0x570 */ u8 field_0x570; + /* 0x571 */ u8 field_0x571[0x5b4 - 0x571]; + /* 0x5B4 */ u8 mRoomMonkeyID; + /* 0x5B5 */ u8 field_0x5b5; /* 0x5B6 */ u8 field_0x5b6; - /* 0x5B7 */ u8 field_0x5b7[0x5c8 - 0x5b7]; + /* 0x5B7 */ u8 field_0x5b7; + /* 0x5B8 */ int field_0x5b8; + /* 0x5BC */ int field_0x5bc; + /* 0x5C0 */ char* mResName; + /* 0x5C4 */ f32 field_0x5c4; /* 0x5C8 */ s16 field_0x5c8; - /* 0x5CA */ u8 field_0x5ca[0x5ea - 0x5ca]; + /* 0x5CC */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x5D0 */ int field_0x5d0; + /* 0x5D4 */ f32 field_0x5d4; + /* 0x5D8 */ mDoExt_btpAnm* mBtp1; + /* 0x5DC */ mDoExt_btpAnm* mBtp2; + /* 0x5E0 */ s16 field_0x5e0; + /* 0x5E2 */ u8 field_0x5e2[2]; + /* 0x5E4 */ s8 field_0x5e4; + /* 0x5E5 */ u8 field_0x5e5; + /* 0x5E6 */ s16 field_0x5e6; + /* 0x5E8 */ s16 mActionID; /* 0x5EA */ s16 mMode; - /* 0x5EC */ u8 field_0x5ec[0xc20 - 0x5ec]; + /* 0x5EC */ u32 mShadowKey; + /* 0x5F0 */ s16 mTimers[4]; + /* 0x5F8 */ s16 field_0x5f8; + /* 0x5FA */ s16 field_0x5fa; + /* 0x5FC */ s8 field_0x5fc; + /* 0x5FD */ u8 field_0x5fd; + /* 0x5FE */ s16 field_0x5fe; + /* 0x600 */ s16 field_0x600; + /* 0x602 */ s16 field_0x602; + /* 0x604 */ s16 field_0x604; + /* 0x606 */ s16 field_0x606; + /* 0x608 */ s16 field_0x608; + /* 0x60C */ f32 field_0x60c; + /* 0x610 */ s16 field_0x610; + /* 0x614 */ cXyz field_0x614; + /* 0x620 */ s8 field_0x620; + /* 0x621 */ u8 field_0x621; + /* 0x622 */ u8 field_0x622; + /* 0x623 */ u8 field_0x623; + /* 0x624 */ cXyz field_0x624; + /* 0x630 */ int field_0x630; + /* 0x634 */ f32 field_0x634; + /* 0x638 */ f32 field_0x638; + /* 0x63C */ f32 field_0x63c; + /* 0x640 */ dBgS_AcchCir mAcchCir; + /* 0x680 */ dBgS_ObjAcch mObjAcch; + /* 0x858 */ u32 field_0x858; + /* 0x85C */ u32 field_0x85c; + /* 0x860 */ Z2Creature mSound; + /* 0x8F0 */ cXyz field_0x8f0; + /* 0x8FC */ csXyz field_0x8fc; + /* 0x904 */ int field_0x904; + /* 0x908 */ f32 field_0x908; + /* 0x90C */ s8 field_0x90c; + /* 0x910 */ cXyz field_0x910; + /* 0x91C */ cXyz field_0x91c; + /* 0x928 */ f32 field_0x928; + /* 0x92C */ s8 field_0x92c; + /* 0x930 */ void* field_0x930; + /* 0x934 */ obj_sw_class* field_0x934; + /* 0x938 */ fpc_ProcID field_0x938; + /* 0x93C */ int field_0x93c; + /* 0x940 */ cXyz field_0x940; + /* 0x94C */ s16 field_0x94c; + /* 0x94E */ s16 field_0x94e; + /* 0x950 */ dCcD_Stts mStts; + /* 0x98C */ dCcD_Cyl field_0x98c; + /* 0xAC8 */ u8 field_0xac8[0xaec - 0xac8]; + /* 0xAEC */ s8 field_0xaec; + /* 0xAED */ u8 field_0xaed[0xaf4 - 0xaed]; + /* 0xAF4 */ dMsgFlow_c mMsgFlow; + /* 0xB40 */ u8 field_0xb40; + /* 0xB41 */ u8 field_0xb41; + /* 0xB42 */ s16 field_0xb42; + /* 0xB44 */ s16 field_0xb44; + /* 0xB48 */ cXyz field_0xb48; + /* 0xB54 */ cXyz field_0xb54; + /* 0xB60 */ cXyz field_0xb60; + /* 0xB6C */ cXyz field_0xb6c; + /* 0xB78 */ cXyz field_0xb78; + /* 0xB84 */ cXyz field_0xb84; + /* 0xB90 */ u8 field_0xb90[0xba8 - 0xb90]; + /* 0xBA8 */ cXyz field_0xba8; + /* 0xBB4 */ f32 field_0xbb4; + /* 0xBB8 */ f32 field_0xbb8; + /* 0xBBC */ u8 field_0xbbc[0xbc0 - 0xbbc]; + /* 0xBC0 */ npc_ks_class* field_0xbc0; + /* 0xBC4 */ f32 field_0xbc4; + /* 0xBC8 */ cXyz field_0xbc8; + /* 0xBD4 */ s16 field_0xbd4; + /* 0xBD6 */ u8 field_0xbd6; + /* 0xBD7 */ s8 field_0xbd7; + /* 0xBD8 */ s8 field_0xbd8; + /* 0xBD9 */ s8 field_0xbd9; + /* 0xBDA */ u8 field_0xbda; + /* 0xBDB */ s8 field_0xbdb; + /* 0xBDC */ s8 field_0xbdc; + /* 0xBDD */ s8 field_0xbdd; + /* 0xBDE */ s16 field_0xbde; + /* 0xBE0 */ s8 field_0xbe0; + /* 0xBE4 */ u32 field_0xbe4[4]; + /* 0xBF4 */ u32 field_0xbf4; + /* 0xBF8 */ u8 field_0xbf8[0xbfc - 0xbf8]; + /* 0xBFC */ J3DModel* field_0xbfc; + /* 0xC00 */ J3DModel* field_0xc00; + /* 0xC04 */ cXyz field_0xc04; + /* 0xC10 */ u8 field_0xc10[0xc17 - 0xc10]; + /* 0xC17 */ s8 field_0xc17; + /* 0xC18 */ u8 field_0xc18[0xc20 - 0xc18]; }; STATIC_ASSERT(sizeof(npc_ks_class) == 0xc20); -class daNpc_Ks_HIO_c { +class daNpc_Ks_HIO_c : public JORReflexible { public: /* 80A48F8C */ daNpc_Ks_HIO_c(); - /* 80A5DA90 */ ~daNpc_Ks_HIO_c(); + /* 80A5DA90 */ virtual ~daNpc_Ks_HIO_c() {}; + + void genMessage(JORMContext*); + + /* 0x04 */ s8 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1c; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ u8 field_0x28; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; }; diff --git a/include/d/actor/d_a_obj_so.h b/include/d/actor/d_a_obj_so.h index 7454485725..dfa01c4b60 100644 --- a/include/d/actor/d_a_obj_so.h +++ b/include/d/actor/d_a_obj_so.h @@ -12,8 +12,32 @@ * */ class obj_so_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x1bd0 - 0x568]; +public: + /* 0x0568 */ u8 field_0x568[0x8fc - 0x568]; + /* 0x08FC */ f32 field_0x8fc; + /* 0x0900 */ f32 field_0x900; + /* 0x0904 */ u8 field_0x904[0x91c - 0x904]; + /* 0x091C */ int field_0x91c; + /* 0x0920 */ cXyz field_0x920[12]; + /* 0x09B0 */ u8 field_0x9b0[0xdac - 0x9b0]; + /* 0x0DAC */ s16 field_0xdac; + /* 0x0DAE */ s16 field_0xdae; + /* 0x0DB0 */ u8 field_0xdb0[0xdc4 - 0xdb0]; + /* 0x0DC4 */ s8 field_0xdc4; + /* 0x0DC5 */ u8 field_0xdc5[0xdc8 - 0xdc5]; + /* 0x0DC8 */ f32 field_0xdc8; + /* 0x0DCC */ u8 field_0xdcc[0x1054 - 0xdcc]; + /* 0x1054 */ s8 field_0x1054; + /* 0x1055 */ u8 field_0x1055[0x1a98 - 0x1055]; + /* 0x1A98 */ s8 field_0x1a98[7]; + /* 0x1A9F */ u8 field_0x1a9f[0x1bd0 - 0x1a9f]; + + bool partBreak() { + for (int i = 0; i < 8; i++) { + if (field_0x1a98[i] == 2) return 1; + } + return 0; + } }; STATIC_ASSERT(sizeof(obj_so_class) == 0x1bd0); diff --git a/include/d/actor/d_a_obj_sw.h b/include/d/actor/d_a_obj_sw.h index 94b2c39cb0..77108c57b3 100644 --- a/include/d/actor/d_a_obj_sw.h +++ b/include/d/actor/d_a_obj_sw.h @@ -11,18 +11,63 @@ * @details * */ -class obj_sw_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0xd90 - 0x568]; -}; - -STATIC_ASSERT(sizeof(obj_sw_class) == 0xd90); struct obj_sc_s { public: /* 80CF2F3C */ ~obj_sc_s(); /* 80CF2FA8 */ obj_sc_s(); + + /* 0x00 */ s8 field_0x0; + /* 0x01 */ u8 field_0x1[0x4 - 0x1]; + /* 0x04 */ cXyz field_0x4; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 field_0x2a; + /* 0x2C */ s16 field_0x2c; + /* 0x2E */ u8 field_0x2e[0x30 - 0x2e]; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ s8 field_0x34; + /* 0x35 */ s8 field_0x35; + /* 0x36 */ u8 field_0x36[0x38 - 0x36]; + /* 0x38 */ int field_0x38; + /* 0x3C */ int field_0x3c; + /* 0x40 */ mDoExt_McaMorf* mpModelMorf; + /* 0x44 */ Z2SoundObjSimple mSound; + /* 0x64 */ J3DModel* mpModel; + /* 0x68 */ s16 field_0x68; + // + 2 bytes of padding }; + class obj_sw_class { +public: + /* 0x000 */ fopAc_ac_c actor; + /* 0x568 */ u8 field_0x568[0x570 - 0x568]; + /* 0x570 */ u8 field_0x570; + /* 0x571 */ u8 field_0x571[0x576 - 0x571]; + /* 0x576 */ s16 field_0x576; + /* 0x578 */ u8 field_0x578[0x57a - 0x578]; + /* 0x57A */ s16 field_0x57a; + /* 0x57C */ s16 field_0x57c; + /* 0x57E */ s16 field_0x57e; + /* 0x580 */ s16 field_0x580; + /* 0x582 */ s16 field_0x582; + /* 0x584 */ u8 field_0x584[0x5a8 - 0x584]; + /* 0x5A8 */ obj_sc_s field_0x5a8; + /* 0x614 */ cXyz field_0x614; + /* 0x620 */ u8 field_0x620[0x864 - 0x620]; + /* 0x864 */ obj_sc_s field_0x864; + /* 0x8D0 */ u8 field_0x8d0[0x8fc - 0x8d0]; + /* 0x8FC */ f32 field_0x8fc; + /* 0x900 */ f32 field_0x900; + /* 0x904 */ cXyz field_0x904[2]; + /* 0x91C */ int field_0x91c; + /* 0x920 */ cXyz field_0x920[12]; + /* 0x9B0 */ u8 field_0x9b0[0xd50 - 0x9b0]; + /* 0xD50 */ mDoExt_3DlineMat1_c field_0xd50; + /* 0xD8C */ int field_0xd8c; +}; + +STATIC_ASSERT(sizeof(obj_sw_class) == 0xd90); #endif /* D_A_OBJ_SW_H */ diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 42105788e4..30b2493bb5 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -1070,7 +1070,7 @@ public: mDemo.setParam2(i_param2); } - void changeDemoParam0(s16 i_param1) { + void changeDemoParam0(int i_param1) { mDemo.setParam0(i_param1); } @@ -1156,6 +1156,8 @@ public: void setGiantPuzzle() { mSpecialMode = SMODE_WOLF_PUZZLE; } void setGiantPuzzleEnd() { mSpecialMode = 0; } + + BOOL checkAutoJumpStart() { return checkResetFlg0(RFLG0_UNK_100); } }; int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4); diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index eea0184278..a6797a1b63 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -1057,6 +1057,7 @@ u8 dComIfGs_checkGetInsectNum(); u8 dComIfGs_getSelectMixItemNoArrowIndex(int i_selmixItemIdx); BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no); s8 dComIfGs_PolyDamageOff_Check(); +void dComIfGs_shake_kandelaar(); void dComIfGs_Grass_hide_Set(s8 param_0); void dComIfGs_onGetMagicUseFlag(); void dComIfG_playerStatusD(); diff --git a/include/d/d_meter2_info.h b/include/d/d_meter2_info.h index 1ea6cbc17a..6d2d933f34 100644 --- a/include/d/d_meter2_info.h +++ b/include/d/d_meter2_info.h @@ -356,6 +356,10 @@ inline u16 dMeter2Info_getOilGaugeBackUp() { return g_meter2_info.getOilGaugeBackUp(); } +inline void dMeter2Info_setOilGaugeBackUp(u16 param_1) { + g_meter2_info.mOilGaugeBackUp = param_1; +} + inline void dMeter2Info_setSaveStageName(const char* i_stageName) { g_meter2_info.setSaveStageName(i_stageName); } diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 8cf0ce60bf..ecb6398817 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -1093,6 +1093,7 @@ public: static s8 getRoomReadId() { return mRoomReadId; } static void offNoChangeRoom() { mNoChangeRoom = false; } static void onNoChangeRoom() { mNoChangeRoom = true; } + static s8 getNextStayNo() { return mNextStayNo; } static void setProcID(u32 id) { mProcID = id; } static u32 getProcID() { return mProcID; } static void setStatusProcID(int i_roomNo, fpc_ProcID i_id) { mStatus[i_roomNo].mProcID = i_id; } |
