From aefdf7499be295b0a07a69aafa529834173897ec Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Wed, 8 Jul 2026 11:59:39 -0400 Subject: [PATCH] d_a_obj_tide use res enums --- include/d/actor/d_a_obj_tide.h | 55 +++++---- src/d/actor/d_a_obj_tide.cpp | 207 ++++++++++++++++++++++++++++----- src/d/actor/d_a_tn.cpp | 2 +- 3 files changed, 206 insertions(+), 58 deletions(-) diff --git a/include/d/actor/d_a_obj_tide.h b/include/d/actor/d_a_obj_tide.h index 526b2b11a..d735c083c 100644 --- a/include/d/actor/d_a_obj_tide.h +++ b/include/d/actor/d_a_obj_tide.h @@ -3,51 +3,56 @@ #include "d/d_bg_s_movebg_actor.h" #include "d/d_a_obj.h" +#include "m_Do/m_Do_hostIO.h" class mDoExt_bckAnm; class mDoExt_btkAnm; class mDoExt_brkAnm; namespace daObjTide { - namespace { - enum Type_e { - TYPE_0_e = 0, - TYPE_1_e = 1, - TYPE_2_e = 2, - TYPE_3_e = 3, - TYPE_4_e = 4, - TYPE_5_e = 5, - }; + enum Type_e { + TYPE_0_e = 0, + TYPE_1_e = 1, + TYPE_2_e = 2, + TYPE_3_e = 3, + TYPE_4_e = 4, + TYPE_5_e = 5, + }; + namespace { struct Attr_c { /* 0x00 */ const char* arcName; - /* 0x04 */ s16 m04; - /* 0x06 */ s16 m06; - /* 0x08 */ s16 m08; - /* 0x0A */ s16 m0A; - /* 0x0C */ s16 m0C; - /* 0x10 */ u32 m10; - /* 0x14 */ s16 m14; - /* 0x16 */ s16 m16; - /* 0x18 */ u32 m18; - /* 0x1C */ u32 resSize; + /* 0x04 */ s16 bdl_res_index; + /* 0x06 */ s16 dzb_res_index; + /* 0x08 */ s16 bck_res_index; + /* 0x0A */ s16 brk_res_index; + /* 0x0C */ s16 btk_res_index; + /* 0x10 */ u32 bdl_dlist_flags; + /* 0x14 */ s16 nure_bdl_res_index; + /* 0x16 */ s16 nure_brk_res_index; + /* 0x18 */ u32 nure_bdl_dlist_flags; + /* 0x1C */ u32 res_size; /* 0x20 */ s16 m20; /* 0x24 */ f32 m24; /* 0x28 */ f32 m28; /* 0x2C */ f32 m2C; /* 0x30 */ f32 m30; - /* 0x34 */ s16 minX; - /* 0x36 */ s16 minY; - /* 0x38 */ s16 minZ; - /* 0x3A */ s16 maxX; - /* 0x3C */ s16 maxY; - /* 0x3E */ s16 maxZ; + /* 0x34 */ s16 min_x; + /* 0x36 */ s16 min_y; + /* 0x38 */ s16 min_z; + /* 0x3A */ s16 max_x; + /* 0x3C */ s16 max_y; + /* 0x3E */ s16 max_z; /* 0x40 */ bool sch_flag; /* 0x42 */ s16 m42; /* 0x44 */ f32 m44; }; // size = 0x48 } + class Hio_c : public JORReflexible { + void genMessage(JORMContext* ctx) {} + }; + class Act_c : public dBgS_MoveBgActor { enum Prm_e { PRM_SWSAVE_W = 8, diff --git a/src/d/actor/d_a_obj_tide.cpp b/src/d/actor/d_a_obj_tide.cpp index 91a3a1e5c..4571f733b 100644 --- a/src/d/actor/d_a_obj_tide.cpp +++ b/src/d/actor/d_a_obj_tide.cpp @@ -11,6 +11,8 @@ #include "f_op/f_op_kankyo.h" #include "f_op/f_op_kankyo_mng.h" #include "m_Do/m_Do_ext.h" +#include "res/Object/Humi.h" +#include "res/Object/Gmtw.h" namespace daObjTide { namespace { @@ -18,34 +20,175 @@ static const char L_arcname_Humi[] = "Humi"; static const char L_arcname_Gmtw[] = "Gmtw"; static const Attr_c L_attr[6] = { { - L_arcname_Humi, 0xB, 0x20, 0xFFFF, 0xFFFF, 0x19, 0x11000222, 0x6, 0x12, 0x11000022, 0x8000, 0xFE34, 1.0f, - 12.0f, 1.0f, 0.13f, 0xF060, 0xF95C, 0xF286, 0x2260, 0xF9C0, 0x11F8, true, 1, 0.44999999f, + L_arcname_Humi, + dRes_INDEX_HUMI_BDL_HUMI0_e, + dRes_INDEX_HUMI_DZB_HUMI0_e, + -1, + -1, + dRes_INDEX_HUMI_BTK_HUMI0_e, + 0x11000222, + dRes_INDEX_HUMI_BDL_HNURE0_e, + dRes_INDEX_HUMI_BRK_HNURE0_e, + 0x11000022, + 0x8000, + 0xFE34, + 1.0f, + 12.0f, + 1.0f, + 0.13f, + 0xF060, + 0xF95C, + 0xF286, + 0x2260, + 0xF9C0, + 0x11F8, + true, + 1, + 0.45f, }, { - L_arcname_Humi, 0xE, 0x23, 0xFFFF, 0xFFFF, 0x1C, 0x11000222, 0x9, 0x15, 0x11000022, 0x4000, 0xFD44, 1.0f, - 14.0f, 1.0f, 0.15f, 0x15E0, 0xF98E, 0xF31C, 0x1C84, 0xF9F2, 0xF8F8, true, 5, 0.5f, + L_arcname_Humi, + dRes_INDEX_HUMI_BDL_HUMI4_e, + dRes_INDEX_HUMI_DZB_HUMI4_e, + -1, + -1, + dRes_INDEX_HUMI_BTK_HUMI4_e, + 0x11000222, + dRes_INDEX_HUMI_BDL_HNURE4_e, + dRes_INDEX_HUMI_BRK_HNURE4_e, + 0x11000022, + 0x4000, + 0xFD44, + 1.0f, + 14.0f, + 1.0f, + 0.15f, + 0x15E0, + 0xF98E, + 0xF31C, + 0x1C84, + 0xF9F2, + 0xF8F8, + true, + 5, + 0.5f, }, { - L_arcname_Humi, 0xF, 0x24, 0xFFFF, 0xFFFF, 0x1D, 0x11000222, 0xA, 0x16, 0x11000022, 0x4000, 0xFDA8, 1.0f, - 10.0f, 1.0f, 0.11f, 0x1644, 0xF98E, 0x578, 0x1E78, 0xF9F2, 0x12C0, true, 5, 0.5f, + L_arcname_Humi, + dRes_INDEX_HUMI_BDL_HUMI5_e, + dRes_INDEX_HUMI_DZB_HUMI5_e, + -1, + -1, + dRes_INDEX_HUMI_BTK_HUMI5_e, + 0x11000222, + dRes_INDEX_HUMI_BDL_HNURE5_e, + dRes_INDEX_HUMI_BRK_HNURE5_e, + 0x11000022, + 0x4000, + 0xFDA8, + 1.0f, + 10.0f, + 1.0f, + 0.11f, + 0x1644, + 0xF98E, + 0x578, + 0x1E78, + 0xF9F2, + 0x12C0, + true, + 5, + 0.5f, }, { - L_arcname_Gmtw, 0x9, 0xF, 0x6, 0xFFFF, 0xC, 0x11001222, 0xFFFF, 0xFFFF, 0x0, 0x4000, 0xE890, 0.0099999998f, - 1.0f, 1.0f, 0.0099999998f, 0xF8F8, 0xFED4, 0xF8F8, 0x708, 0x96, 0x708, false, 0, 1.0f, + L_arcname_Gmtw, + dRes_INDEX_GMTW_BDL_GMTW00_e, + dRes_INDEX_GMTW_DZB_GUMI0_e, + dRes_INDEX_GMTW_BCK_GMTW00_e, + -1, + dRes_INDEX_GMTW_BTK_GMTW00_e, + 0x11001222, + -1, + -1, + 0x0, + 0x4000, + 0xE890, + 0.01f, + 1.0f, + 1.0f, + 0.01f, + 0xF8F8, + 0xFED4, + 0xF8F8, + 0x708, + 0x96, + 0x708, + false, + 0, + 1.0f, }, { - L_arcname_Humi, 0xC, 0x21, 0xFFFF, 0xFFFF, 0x1A, 0x11000222, 0x7, 0x13, 0x11000022, 0x4000, 0xFDDA, 1.0f, - 12.0f, 1.0f, 0.13f, 0xE3E0, 0xF98E, 0xFED4, 0xF0C4, 0xF9F2, 0x6A4, true, 3, 0.5f, + L_arcname_Humi, + dRes_INDEX_HUMI_BDL_HUMI2_e, + dRes_INDEX_HUMI_DZB_HUMI2_e, + -1, + -1, + dRes_INDEX_HUMI_BTK_HUMI2_e, + 0x11000222, + dRes_INDEX_HUMI_BDL_HNURE2_e, + dRes_INDEX_HUMI_BRK_HNURE2_e, + 0x11000022, + 0x4000, + 0xFDDA, + 1.0f, + 12.0f, + 1.0f, + 0.13f, + 0xE3E0, + 0xF98E, + 0xFED4, + 0xF0C4, + 0xF9F2, + 0x6A4, + true, + 3, + 0.5f, }, { - L_arcname_Humi, 0xD, 0x22, 0xFFFF, 0xFFFF, 0x1B, 0x11000222, 0x8, 0x14, 0x11000022, 0x4000, 0xFDDA, 1.0f, - 12.0f, 1.0f, 0.13f, 0xED8, 0xF98E, 0x190, 0x1770, 0xF9F2, 0x5DC, true, 5, 0.5f, + L_arcname_Humi, + dRes_INDEX_HUMI_BDL_HUMI3_e, + dRes_INDEX_HUMI_DZB_HUMI3_e, + -1, + -1, + dRes_INDEX_HUMI_BTK_HUMI3_e, + 0x11000222, + dRes_INDEX_HUMI_BDL_HNURE3_e, + dRes_INDEX_HUMI_BRK_HNURE3_e, + 0x11000022, + 0x4000, + 0xFDDA, + 1.0f, + 12.0f, + 1.0f, + 0.13f, + 0xED8, + 0xF98E, + 0x190, + 0x1770, + 0xF9F2, + 0x5DC, + true, + 5, + 0.5f, }, }; inline const Attr_c& attr(Type_e type) { - return L_attr[(s32)type]; + return L_attr[type]; } + +static Hio_c L_hio; + } // namespace Mtx Act_c::M_tmp_mtx; @@ -54,11 +197,11 @@ Mtx Act_c::M_tmp_mtx; BOOL Act_c::CreateHeap() { const char* arcname = attr(M_type).arcName; - J3DModelData* model_data = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).m04)); + J3DModelData* model_data = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).bdl_res_index)); JUT_ASSERT(438, model_data != NULL); - if (attr(M_type).m10 != 0) { - mModel1 = mDoExt_J3DModel__create(model_data, 0x80000, attr(M_type).m10); + if (attr(M_type).bdl_dlist_flags != 0) { + mModel1 = mDoExt_J3DModel__create(model_data, 0x80000, attr(M_type).bdl_dlist_flags); } else { mModel1 = mDoExt_J3DModel__create(model_data, 0, 0x11020203); } @@ -67,8 +210,8 @@ BOOL Act_c::CreateHeap() { bool bVar3 = true; bool bVar4 = true; - if (attr(M_type).m08 >= 0) { - J3DAnmTransform* bck = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).m08)); + if (attr(M_type).bck_res_index >= 0) { + J3DAnmTransform* bck = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).bck_res_index)); JUT_ASSERT(455, bck != NULL); mBck1 = new mDoExt_bckAnm(); @@ -77,8 +220,8 @@ BOOL Act_c::CreateHeap() { } } - if (attr(M_type).m0A >= 0) { - J3DAnmTevRegKey* brk = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).m0A)); + if (attr(M_type).brk_res_index >= 0) { + J3DAnmTevRegKey* brk = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).brk_res_index)); JUT_ASSERT(474, brk != NULL); mBrk1 = new mDoExt_brkAnm(); @@ -87,8 +230,8 @@ BOOL Act_c::CreateHeap() { } } - if (attr(M_type).m0C >= 0) { - J3DAnmTextureSRTKey* btk = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).m0C)); + if (attr(M_type).btk_res_index >= 0) { + J3DAnmTextureSRTKey* btk = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).btk_res_index)); JUT_ASSERT(487, btk != NULL); mBtk = new mDoExt_btkAnm(); @@ -100,16 +243,16 @@ BOOL Act_c::CreateHeap() { bool bVar1 = true; bool bVar5 = true; - if (attr(M_type).m14 >= 0 && attr(M_type).m16 >= 0) { - J3DModelData* mdl_nure_data = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).m14)); + if (attr(M_type).nure_bdl_res_index >= 0 && attr(M_type).nure_brk_res_index >= 0) { + J3DModelData* mdl_nure_data = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).nure_bdl_res_index)); JUT_ASSERT(504, mdl_nure_data != NULL); - mModel2 = mDoExt_J3DModel__create(mdl_nure_data, 0x80000, attr(M_type).m18); + mModel2 = mDoExt_J3DModel__create(mdl_nure_data, 0x80000, attr(M_type).nure_bdl_dlist_flags); if (mModel2 == NULL) { bVar1 = false; } - J3DAnmTevRegKey* brk_nure = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).m16)); + J3DAnmTevRegKey* brk_nure = static_cast(dComIfG_getObjectRes(arcname, attr(M_type).nure_brk_res_index)); JUT_ASSERT(515, brk_nure != NULL); mBrk2 = new mDoExt_brkAnm(); @@ -127,7 +270,7 @@ BOOL Act_c::CreateHeap() { BOOL Act_c::Create() { fopAcM_SetMtx(this, mModel1->getBaseTRMtx()); init_mtx(); - fopAcM_setCullSizeBox(this, attr(M_type).minX, attr(M_type).minY, attr(M_type).minZ, attr(M_type).maxX, attr(M_type).maxY, attr(M_type).maxZ); + fopAcM_setCullSizeBox(this, attr(M_type).min_x, attr(M_type).min_y, attr(M_type).min_z, attr(M_type).max_x, attr(M_type).max_y, attr(M_type).max_z); m2F0 = 0.0f; m2F4 = 0; @@ -168,7 +311,7 @@ cPhs_State Act_c::Mthd_Create() { if (attr(M_type).sch_flag) { current.pos.y = home.pos.y + (1.0f - daTagWaterlevel::Act_c::get_now()) * attr(M_type).m20; } - phase_state = MoveBGCreate(attr(M_type).arcName, attr(M_type).m06, dBgS_MoveBGProc_Trans, attr(M_type).resSize); + phase_state = MoveBGCreate(attr(M_type).arcName, attr(M_type).dzb_res_index, dBgS_MoveBGProc_Trans, attr(M_type).res_size); m2F7 = true; JUT_ASSERT(641, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e)); @@ -220,7 +363,7 @@ void Act_c::init_mtx() { } /* 00000B84-00000D04 .text move_to_aim__Q29daObjTide5Act_cFfb */ -void Act_c::move_to_aim(float arg1, bool arg2) { +void Act_c::move_to_aim(f32 arg1, bool arg2) { f32 fVar1 = arg1 - current.pos.y; if (std::fabsf(fVar1) < 0.1f) { current.pos.y = arg1; @@ -424,7 +567,7 @@ void Act_c::mode_gmtw_demo() { if (!m2F6 && gmtw_demo_up_start()) { m2F6 = 1; - m2F4 = 0x5a; + m2F4 = 90; } bVar3 = false; @@ -440,7 +583,7 @@ void Act_c::mode_gmtw_demo() { if (m2F6 == 1) { if (--m2F4 <= 0) { m2F6 = 2; - } else if (m2F4 == 0x3b) { + } else if (m2F4 == 59) { dComIfGp_particle_set(dPa_name::ID_IT_SN_MT_WATER00, &a_this->current.pos); dComIfG_Bgsp()->Regist(mpBgW, a_this); m2F7 = true; @@ -686,7 +829,7 @@ BOOL Mthd_Draw(void* i_this) { /* 00001E5C-00001E88 .text Mthd_IsDelete__Q29daObjTide26@unnamed@d_a_obj_tide_cpp@FPv */ BOOL Mthd_IsDelete(void* i_this) { - return ((Act_c*)i_this)->IsDelete(); + return ((Act_c*)i_this)->MoveBGIsDelete(); } static actor_method_class Mthd_Table = { diff --git a/src/d/actor/d_a_tn.cpp b/src/d/actor/d_a_tn.cpp index 9c31f7b7e..5f3f8893c 100644 --- a/src/d/actor/d_a_tn.cpp +++ b/src/d/actor/d_a_tn.cpp @@ -1,6 +1,6 @@ /** * d_a_tn.cpp - * Enemy - Darknut / Mini-Boss - Darknut (Tower of the Gods) / タートナック (Tātonakku) + * Enemy - Darknut / Mini-Boss - Darknut (Tower of the Gods) / タートナック (Taatonakku) */ #include "d/dolzel_rel.h" // IWYU pragma: keep