From 2524f4f5fc1094b973adf13df5830af9f52fc513 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sun, 21 Jan 2024 02:37:08 -0500 Subject: [PATCH] Minor d_com_static work --- include/d/actor/d_a_dai.h | 3 + include/d/actor/d_a_dai_item.h | 2 + include/d/actor/d_a_disappear.h | 3 +- include/d/actor/d_a_dummy.h | 2 +- include/d/actor/d_a_obj_light.h | 10 ++- include/d/actor/d_a_obj_roten.h | 2 + include/d/actor/d_a_player.h | 6 +- include/d/actor/d_a_player_main.h | 2 +- include/d/actor/d_a_salvage.h | 1 + include/d/actor/d_a_steam_tag.h | 2 +- include/d/actor/d_a_title.h | 2 +- include/d/actor/d_a_wind_tag.h | 2 + src/d/actor/d_a_disappear.cpp | 19 +++-- src/d/actor/d_a_grass.cpp | 4 +- src/d/d_com_static.cpp | 133 ++++++++++++++++++++---------- 15 files changed, 130 insertions(+), 63 deletions(-) diff --git a/include/d/actor/d_a_dai.h b/include/d/actor/d_a_dai.h index fc0c64ebb..1e072a971 100644 --- a/include/d/actor/d_a_dai.h +++ b/include/d/actor/d_a_dai.h @@ -30,9 +30,12 @@ public: mNowDaizaNum = 0; mNowItemNum = 0; } + static void getMaxDaiza(); + static void getDaizaSetItemNum(); static u32 mNowDaizaNum; static u32 mNowItemNum; + static const u16 m_savelabel[]; public: /* 0x6C4 */ request_of_phase_process_class mPhsFdai; diff --git a/include/d/actor/d_a_dai_item.h b/include/d/actor/d_a_dai_item.h index 432b48165..50d786bca 100644 --- a/include/d/actor/d_a_dai_item.h +++ b/include/d/actor/d_a_dai_item.h @@ -43,6 +43,8 @@ public: void mode_drop(); bool _draw(); + static BOOL daiItemNodeCallBack(J3DNode*, int); + public: /* 0x290 */ request_of_phase_process_class mPhsDai; /* 0x298 */ request_of_phase_process_class mPhsCloth; diff --git a/include/d/actor/d_a_disappear.h b/include/d/actor/d_a_disappear.h index 9d10d9bfe..4607b39e5 100644 --- a/include/d/actor/d_a_disappear.h +++ b/include/d/actor/d_a_disappear.h @@ -2,10 +2,11 @@ #define D_A_DISAPPEAR_H #include "f_op/f_op_actor.h" +#include "SSystem/SComponent/c_phase.h" class disappear_class : public fopAc_ac_c { public: - /* 0x290 */ u8 m290[0x298 - 0x290]; + /* 0x290 */ request_of_phase_process_class mPhase; // Unused /* 0x298 */ s32 mSwitchNo; /* 0x29C */ s16 mTimer; }; diff --git a/include/d/actor/d_a_dummy.h b/include/d/actor/d_a_dummy.h index 2ef31499a..fb14d164a 100644 --- a/include/d/actor/d_a_dummy.h +++ b/include/d/actor/d_a_dummy.h @@ -19,7 +19,7 @@ namespace daDummy { public: /* 0x290 */ // vtable - /* 0x294 */ request_of_phase_process_class mPhase; + /* 0x294 */ request_of_phase_process_class mPhase; // Unused /* 0x29c */ Mtx mMtx; }; }; diff --git a/include/d/actor/d_a_obj_light.h b/include/d/actor/d_a_obj_light.h index 5de5b30f0..cbe8bd259 100644 --- a/include/d/actor/d_a_obj_light.h +++ b/include/d/actor/d_a_obj_light.h @@ -25,8 +25,14 @@ namespace daObjLight { void control_treasure(); BOOL _execute(); BOOL _draw(); - - public: + + static void renew_light_angle(); + static void get_light_angle(); + static void get_light_dif_angle(); + static void set_light_dif_angle_LOD(short); + static void set_light_dif_angle_FRRS(short); + +public: /* Place member variables here */ }; }; diff --git a/include/d/actor/d_a_obj_roten.h b/include/d/actor/d_a_obj_roten.h index 1c2c26af7..624dc4aa0 100644 --- a/include/d/actor/d_a_obj_roten.h +++ b/include/d/actor/d_a_obj_roten.h @@ -13,6 +13,8 @@ public: void set_mtx(); void CreateHeap(); void CreateInit(); + + static void getCreateCount(); public: /* Place member variables here */ diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index d7facf953..946af6ddf 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -448,12 +448,12 @@ public: bool checkGrabWear() const { return field_0x2b0 < 0.0f; } bool checkNormalSwordEquip() const { return dComIfGs_getSelectEquip(0) == SWORD || - dComIfGp_getMiniGameType() == 2; + dComIfGp_getMiniGameType() == 2; } bool checkMasterSwordEquip() const { return dComIfGs_getSelectEquip(0) == MASTER_SWORD || - dComIfGs_getSelectEquip(0) == LV3_SWORD || - dComIfGs_getSelectEquip(0) == MASTER_SWORD_EX; + dComIfGs_getSelectEquip(0) == LV3_SWORD || + dComIfGs_getSelectEquip(0) == MASTER_SWORD_EX; } void setFace(daPy_FACE face) { mFace = face; } diff --git a/include/d/actor/d_a_player_main.h b/include/d/actor/d_a_player_main.h index bffdf7e12..f5d86cf63 100644 --- a/include/d/actor/d_a_player_main.h +++ b/include/d/actor/d_a_player_main.h @@ -2433,7 +2433,7 @@ public: } bool checkSwordEquip() const { return dComIfGs_getSelectEquip(0) != NO_ITEM || - dComIfGp_getMiniGameType() == 2; + dComIfGp_getMiniGameType() == 2; } int getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } diff --git a/include/d/actor/d_a_salvage.h b/include/d/actor/d_a_salvage.h index a23861fb3..5fc76dbde 100644 --- a/include/d/actor/d_a_salvage.h +++ b/include/d/actor/d_a_salvage.h @@ -76,6 +76,7 @@ public: static u8 mNowRoomNo; static daSalvage_control_c* mTagData_p; static s32 mSalvageId; + static const u16 m_savelabel[]; public: /* Place member variables here */ diff --git a/include/d/actor/d_a_steam_tag.h b/include/d/actor/d_a_steam_tag.h index 264920b2c..fa72fe2b1 100644 --- a/include/d/actor/d_a_steam_tag.h +++ b/include/d/actor/d_a_steam_tag.h @@ -34,7 +34,7 @@ public: /* 0x55C */ dPointWind_c mPointWind; public: - static s32 mEmitterNum; + static u8 mEmitterNum; }; #endif /* D_A_STEAM_TAG_H */ diff --git a/include/d/actor/d_a_title.h b/include/d/actor/d_a_title.h index 4c1ee5c3f..6ce5ca912 100644 --- a/include/d/actor/d_a_title.h +++ b/include/d/actor/d_a_title.h @@ -19,7 +19,7 @@ public: static void daTitle_Kirakira_Sound_flag_on(); - static bool daTitle_Kirakira_Sound_flag[]; + static bool daTitle_Kirakira_Sound_flag; }; class daTitle_c : public fopAc_ac_c { diff --git a/include/d/actor/d_a_wind_tag.h b/include/d/actor/d_a_wind_tag.h index 044053487..562c97c2c 100644 --- a/include/d/actor/d_a_wind_tag.h +++ b/include/d/actor/d_a_wind_tag.h @@ -25,6 +25,8 @@ namespace daWindTag { void set_next_pnt(); BOOL _draw(); void MoveEmitter(); + + static const f32 mData[]; public: /* Place member variables here */ diff --git a/src/d/actor/d_a_disappear.cpp b/src/d/actor/d_a_disappear.cpp index a058c4a83..bf161a603 100644 --- a/src/d/actor/d_a_disappear.cpp +++ b/src/d/actor/d_a_disappear.cpp @@ -23,16 +23,19 @@ static BOOL daDisappear_Execute(disappear_class* i_this) { i_this->mTimer--; if (i_this->mTimer == 0) { - s8 health = i_this->mHealth; + s8 health = i_this->mHealth; // TODO: add enum for disappear types (stored in health) if (health != 1 && health != 3) { if (health == 2) { fopAcM_createItemForBoss(&i_this->current.pos, 0, i_this->current.roomNo, &i_this->current.angle); } else if (health >= 0x0A && health <= 0x0D) { + // Special type for Keese (ki) spawned in the Puppet Ganon fight. if (health < 0x0D) { static u32 ki_item_d[] = { - 0, 10, 16 + HEART, + L_MAGIC, + ARROW_10, }; fopAcM_createItem(&i_this->current.pos, ki_item_d[health - 0xA], -1, -1, 0, NULL, 4); @@ -69,23 +72,23 @@ void set_disappear(disappear_class* i_this, float scale) { i_this->mTimer = 58 + g_regHIO.mChild[8].mShortRegs[0]; switch (i_this->mHealth) { - case 0: - case 2: - case 10: + case 0x0: + case 0x2: + case 0xA: case 0xB: case 0xC: case 0xD: dComIfGp_particle_set(0x14, &i_this->current.pos, NULL, &particleScale); - case 3: + case 0x3: dComIfGp_particle_set(0x13, &i_this->current.pos, NULL, &particleScale); dComIfGp_particle_setStripes(0x15, &i_this->current.pos, NULL, &particleScale, 0xFF, 0x96); dComIfGp_particle_set(0x16, &i_this->current.pos, NULL, &particleScale); break; - case 1: + case 0x1: dComIfGp_particle_set(0x13, &i_this->current.pos, NULL, &particleScale); dComIfGp_particle_set(0x16, &i_this->current.pos, NULL, &particleScale); break; - case 4: + case 0x4: dComIfGp_particle_set(0x043C, &i_this->current.pos); dComIfGp_particle_set(0x043D, &i_this->current.pos); dComIfGp_particle_set(0x043E, &i_this->current.pos); diff --git a/src/d/actor/d_a_grass.cpp b/src/d/actor/d_a_grass.cpp index e2e6cdd83..dcf7060b4 100644 --- a/src/d/actor/d_a_grass.cpp +++ b/src/d/actor/d_a_grass.cpp @@ -14,6 +14,8 @@ #include "d/d_tree.h" #include "SSystem/SComponent/c_sxyz.h" +static u8 dummy[0x4C]; + namespace daGrass_prm { inline s8 getItemNo(grass_class* ac) { return (fopAcM_GetParam(ac) >> 6) & 0x3F; } inline u8 getKind(grass_class* ac) { return (fopAcM_GetParam(ac) >> 4) & 0x03; } @@ -32,8 +34,6 @@ static BOOL daGrass_Delete(grass_class*) { /* 000000FC-000014E0 .text daGrass_Create__FP10fopAc_ac_c */ static s32 daGrass_Create(fopAc_ac_c* i_ac) { - static float dummy[19]; - static const csXyz l_setType0[] = { csXyz(0, 0, 0), csXyz(3, 0, -50), diff --git a/src/d/d_com_static.cpp b/src/d/d_com_static.cpp index 289d4da27..32203100e 100644 --- a/src/d/d_com_static.cpp +++ b/src/d/d_com_static.cpp @@ -19,10 +19,16 @@ #include "d/actor/d_a_tag_kb_item.h" #include "d/actor/d_a_tag_waterlevel.h" #include "d/actor/d_a_title.h" +#include "d/actor/d_a_wind_tag.h" +#include "d/actor/d_a_salvage.h" +#include "d/actor/d_a_obj_light.h" +#include "d/actor/d_a_dai.h" +#include "d/actor/d_a_obj_roten.h" +#include "d/actor/d_a_dai_item.h" #include "d/d_procname.h" static Vec dummy_3569; -u32 daSteamTag_c::mEmitterNum; +u8 daSteamTag_c::mEmitterNum; /* 8005662C-80056638 .text init__12daSteamTag_cFv */ void daSteamTag_c::init() { @@ -77,45 +83,86 @@ void daAgbsw0_c::incTclBeat() { mFigureBeat++; } -// /* 80056760-80056790 .text init_room__11daSalvage_cFSc */ -// void daSalvage_c::init_room(signed char) { -// /* Nonmatching */ -// } +const f32 daWindTag::daWindTag_c::mData[] = { + 150.0f, + 1000.0f, + 1000.0f, + 7000.0f, +}; -// /* 80056790-800567F8 .text renew_light_angle__Q210daObjLight5Act_cFv */ -// void daObjLight::Act_c::renew_light_angle() { -// /* Nonmatching */ -// } +const u16 daSalvage_c::m_savelabel[] = { + 0x2080, 0x2004, + 0x2002, 0x2804, + 0x2802, 0x2801, + 0x2980, 0x2940, + 0x3B01, 0x3C80, + 0x3C40, 0x3C20, + 0x3C10, 0x3C08, + 0x3C04, 0x3C02, +}; -// /* 800567F8-80056824 .text get_light_angle__Q210daObjLight5Act_cFv */ -// void daObjLight::Act_c::get_light_angle() { -// /* Nonmatching */ -// } +/* 80056760-80056790 .text init_room__11daSalvage_cFSc */ +void daSalvage_c::init_room(signed char) { + /* Nonmatching */ +} -// /* 80056824-8005682C .text get_light_dif_angle__Q210daObjLight5Act_cFv */ -// void daObjLight::Act_c::get_light_dif_angle() { -// /* Nonmatching */ -// } +/* 80056790-800567F8 .text renew_light_angle__Q210daObjLight5Act_cFv */ +void daObjLight::Act_c::renew_light_angle() { + /* Nonmatching */ +} -// /* 8005682C-80056860 .text set_light_dif_angle_LOD__Q210daObjLight5Act_cFs */ -// void daObjLight::Act_c::set_light_dif_angle_LOD(short) { -// /* Nonmatching */ -// } +/* 800567F8-80056824 .text get_light_angle__Q210daObjLight5Act_cFv */ +void daObjLight::Act_c::get_light_angle() { + /* Nonmatching */ +} -// /* 80056860-800568A8 .text set_light_dif_angle_FRRS__Q210daObjLight5Act_cFs */ -// void daObjLight::Act_c::set_light_dif_angle_FRRS(short) { -// /* Nonmatching */ -// } +/* 80056824-8005682C .text get_light_dif_angle__Q210daObjLight5Act_cFv */ +void daObjLight::Act_c::get_light_dif_angle() { + /* Nonmatching */ +} -// /* 800568A8-800568B0 .text getMaxDaiza__7daDai_cFv */ -// void daDai_c::getMaxDaiza() { -// /* Nonmatching */ -// } +/* 8005682C-80056860 .text set_light_dif_angle_LOD__Q210daObjLight5Act_cFs */ +void daObjLight::Act_c::set_light_dif_angle_LOD(short) { + /* Nonmatching */ +} -// /* 800568B0-800568B8 .text getDaizaSetItemNum__7daDai_cFv */ -// void daDai_c::getDaizaSetItemNum() { -// /* Nonmatching */ -// } +/* 80056860-800568A8 .text set_light_dif_angle_FRRS__Q210daObjLight5Act_cFs */ +void daObjLight::Act_c::set_light_dif_angle_FRRS(short) { + /* Nonmatching */ +} + +const u16 daDai_c::m_savelabel[] = { + 0xF8FF, 0xF7FF, + 0xF6FF, 0xF5FF, + 0xF4FF, 0xF3FF, + 0xF2FF, 0xF1FF, + 0xF0FF, 0xEFFF, + 0xEEFF, 0xEDFF, + 0xECFF, 0xEBFF, + 0xEAFF, 0xE9FF, + 0xE8FF, 0xE7FF, + 0xE6FF, 0xE5FF, + 0xE4FF, 0xE3FF, + 0xE2FF, 0xE1FF, + 0xE0FF, 0xDFFF, + 0xDEFF, 0xDDFF, + 0xDCFF, 0xDBFF, + 0xDAFF, 0xD9FF, + 0xD8FF, 0xD7FF, + 0xD6FF, 0xD5FF, + 0xD4FF, 0xD3FF, + 0xD2FF, 0xD1FF, +}; + +/* 800568A8-800568B0 .text getMaxDaiza__7daDai_cFv */ +void daDai_c::getMaxDaiza() { + /* Nonmatching */ +} + +/* 800568B0-800568B8 .text getDaizaSetItemNum__7daDai_cFv */ +void daDai_c::getDaizaSetItemNum() { + /* Nonmatching */ +} bool daNpc_Os_c::m_playerRoom[3] = { false, false, false }; s8 daNpc_Os_c::m_cattleRoomNo = -1; @@ -192,10 +239,10 @@ void daIball_c::remove_old() { } } -// /* 80056A18-80056AD0 .text getCreateCount__13daObj_Roten_cFv */ -// void daObj_Roten_c::getCreateCount() { -// /* Nonmatching */ -// } +/* 80056A18-80056AD0 .text getCreateCount__13daObj_Roten_cFv */ +void daObj_Roten_c::getCreateCount() { + /* Nonmatching */ +} const s16 daObjMovebox::Act_c::M_dir_base[4] = { 0x0000, @@ -266,16 +313,16 @@ void daTagKbItem_c::dig_main() { field_0x299 = 0; } -bool daTitle_proc_c::daTitle_Kirakira_Sound_flag[] = { false }; +bool daTitle_proc_c::daTitle_Kirakira_Sound_flag = true; /* 80056CC0-80056CCC .text daTitle_Kirakira_Sound_flag_on__14daTitle_proc_cFv */ void daTitle_proc_c::daTitle_Kirakira_Sound_flag_on() { - daTitle_Kirakira_Sound_flag[0] = true; + daTitle_Kirakira_Sound_flag = true; } -// /* 80056CCC-80056DE0 .text daiItemNodeCallBack__13daStandItem_cFP7J3DNodei */ -// void daStandItem_c::daiItemNodeCallBack(J3DNode*, int) { -// /* Nonmatching */ -// } +/* 80056CCC-80056DE0 .text daiItemNodeCallBack__13daStandItem_cFP7J3DNodei */ +BOOL daStandItem_c::daiItemNodeCallBack(J3DNode*, int) { + /* Nonmatching */ +} bool daNpc_kam_c::m_hyoi_kamome;