From 0520ce17570cd3973c244b297542f5903e5af412 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Tue, 30 Sep 2025 02:18:21 -0700 Subject: [PATCH] obj_mato / obj_nagaisu (#2714) --- configure.py | 2 +- include/d/actor/d_a_obj_mato.h | 48 +- include/d/actor/d_a_obj_nagaisu.h | 73 +-- src/d/actor/d_a_obj_mato.cpp | 670 +++++++++++++------------- src/d/actor/d_a_obj_nagaisu.cpp | 755 +++++++++++++----------------- 5 files changed, 725 insertions(+), 823 deletions(-) diff --git a/configure.py b/configure.py index 96e6b24e6c8..172f2cb304f 100755 --- a/configure.py +++ b/configure.py @@ -2096,7 +2096,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_magLiftRot"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_maki"), ActorRel(Equivalent, "d_a_obj_master_sword"), # weak function and vtable order (dBgS_AcchCir/dBgS_ObjAcch) - ActorRel(NonMatching, "d_a_obj_mato"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mato"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mhole"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mie"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_6pole"), diff --git a/include/d/actor/d_a_obj_mato.h b/include/d/actor/d_a_obj_mato.h index bcba5213b80..be3c5837809 100644 --- a/include/d/actor/d_a_obj_mato.h +++ b/include/d/actor/d_a_obj_mato.h @@ -2,11 +2,31 @@ #define D_A_OBJ_MATO_H #include "f_op/f_op_actor_mng.h" +#include "d/d_cc_d.h" +#include "d/d_path.h" + +class daObjMATO_c; + +struct MatoData_s { + /* 0x000 */ J3DModel* model; + /* 0x004 */ dCcD_Stts ccStts; + /* 0x040 */ dCcD_Cyl ccCyl; + /* 0x17C */ cXyz pos; + /* 0x188 */ cXyz scale; + /* 0x194 */ csXyz rot; + /* 0x19C */ void (daObjMATO_c::*action)(int); + /* 0x1A8 */ void (daObjMATO_c::*prev_action)(int); + /* 0x1B4 */ int mode; + /* 0x1B8 */ s16 rot_speed; + /* 0x1BA */ u8 type; + /* 0x1BB */ u8 is_hit; + /* 0x1BC */ u8 timer; +}; /** * @ingroup actors-objects * @class daObjMATO_c - * @brief Target (???) + * @brief Flight by Fowl Rupee Target * * @details * @@ -20,23 +40,23 @@ public: /* 80C91F74 */ void wait(int); /* 80C92044 */ void disappear(int); /* 80C921A8 */ void getRupee(int); - /* 80C922AC */ void execute(); - /* 80C92380 */ void _delete(); + /* 80C922AC */ int execute(); + /* 80C92380 */ int _delete(); /* 80C9243C */ void setBaseMtx(); - /* 80C92650 */ void mato_init(); - /* 80C927AC */ void create(); + /* 80C92650 */ int mato_init(); + /* 80C927AC */ int create(); -private: - /* 0x568 */ u8 field_0x568[0x39f8 - 0x568]; + inline int CreateHeap(); + inline int draw(); + + /* 0x0568 */ request_of_phase_process_class mPhase; + /* 0x0570 */ dPath* mpPath; + /* 0x0574 */ MatoData_s mData[30]; + /* 0x39F4 */ u16 field_0x39f4; + /* 0x39F6 */ u8 field_0x39f6; + /* 0x39F7 */ u8 mIsAddSimpleModel; }; STATIC_ASSERT(sizeof(daObjMATO_c) == 0x39f8); -struct MatoData_s { -public: - /* 80C92924 */ ~MatoData_s(); - /* 80C92A50 */ MatoData_s(); -}; - - #endif /* D_A_OBJ_MATO_H */ diff --git a/include/d/actor/d_a_obj_nagaisu.h b/include/d/actor/d_a_obj_nagaisu.h index 9d1e204e744..30ac30b234a 100644 --- a/include/d/actor/d_a_obj_nagaisu.h +++ b/include/d/actor/d_a_obj_nagaisu.h @@ -5,6 +5,40 @@ #include "d/d_cc_d.h" #include "d/d_model.h" +class daObjNagaisu_c; + +// child seat / couch? +class daObjIsuChild_c { +public: + /* 80C9FA90 */ daObjIsuChild_c(); + /* 80C9FCDC */ virtual ~daObjIsuChild_c(); + /* 80C9FD4C */ int createHeap(); + /* 80C9FE28 */ void create(daObjNagaisu_c*, dCcD_Stts*); + /* 80C9FF54 */ int execute(); + /* 80CA0034 */ int draw(dMdl_c*); + /* 80CA00B8 */ int Delete(); + /* 80CA0118 */ bool chkHit(); + /* 80CA0180 */ void callEmt(); + + void setDeadFlg(bool i_flg) { mIsDead = i_flg; } + bool getDeadFlg() { return mIsDead; } + + void setPos(const cXyz& i_pos) { + mPos.x = i_pos.x; + mPos.y = i_pos.y; + mPos.z = i_pos.z; + } + + static const dCcD_SrcCyl s_CcDCyl; + + /* 0x004 */ dMdl_obj_c mMdlObj; + /* 0x038 */ Vec mPos; + /* 0x044 */ dCcD_Cyl mCcCyl[2]; + /* 0x2BC */ Mtx mBgMtx; + /* 0x2EC */ dBgW* mpBgW; + /* 0x2F0 */ bool mIsDead; +}; + /** * @ingroup actors-objects * @class daObjNagaisu_c @@ -13,40 +47,25 @@ * @details * */ -class daObjNagaisu_c : public fopAc_ac_c { +class daObjNagaisu_c : public fopAc_ac_c, public request_of_phase_process_class { public: /* 80C9F3D8 */ daObjNagaisu_c(); - /* 80C9F4B8 */ ~daObjNagaisu_c(); - /* 80C9F5A8 */ void createHeap(); - /* 80C9F668 */ void create(); - /* 80C9F7A8 */ void Delete(); - /* 80C9F81C */ void draw(); - /* 80C9F8C4 */ void execute(); + /* 80C9F4B8 */ virtual ~daObjNagaisu_c(); + /* 80C9F5A8 */ int createHeap(); + /* 80C9F668 */ int create(); + /* 80C9F7A8 */ int Delete(); + /* 80C9F81C */ int draw(); + /* 80C9F8C4 */ int execute(); /* 80C9F914 */ void init(); /* 80C9F944 */ void setIsu(); - static u8 const REMOVE_ISU_IDX[28]; -private: - /* 0x568 */ u8 field_0x568[0xb6e4 - 0x568]; + static const int REMOVE_ISU_IDX[]; + + /* 0x574 */ J3DModel* mpModel; + /* 0x578 */ dCcD_Stts mCcStts; + /* 0x5B4 */ daObjIsuChild_c mChild[60]; }; STATIC_ASSERT(sizeof(daObjNagaisu_c) == 0xb6e4); -// child seat / couch? -class daObjIsuChild_c { -public: - /* 80C9FA90 */ daObjIsuChild_c(); - /* 80C9FCDC */ ~daObjIsuChild_c(); - /* 80C9FD4C */ void createHeap(); - /* 80C9FE28 */ void create(daObjNagaisu_c*, dCcD_Stts*); - /* 80C9FF54 */ void execute(); - /* 80CA0034 */ void draw(dMdl_c*); - /* 80CA00B8 */ void Delete(); - /* 80CA0118 */ void chkHit(); - /* 80CA0180 */ void callEmt(); - - static u8 const s_CcDCyl[68]; -}; - - #endif /* D_A_OBJ_NAGAISU_H */ diff --git a/src/d/actor/d_a_obj_mato.cpp b/src/d/actor/d_a_obj_mato.cpp index e134970157f..2395aeb4c1f 100644 --- a/src/d/actor/d_a_obj_mato.cpp +++ b/src/d/actor/d_a_obj_mato.cpp @@ -6,367 +6,397 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_obj_mato.h" -#include "dol2asm.h" - - - -// -// Forward References: -// - -extern "C" void setAction__11daObjMATO_cFM11daObjMATO_cFPCvPvi_vi(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void daObjMATO_Create__FP10fopAc_ac_c(); -extern "C" static void daObjMATO_Delete__FP11daObjMATO_c(); -extern "C" void action__11daObjMATO_cFv(); -extern "C" void hit_check__11daObjMATO_cFv(); -extern "C" void start_wait__11daObjMATO_cFi(); -extern "C" void wait__11daObjMATO_cFi(); -extern "C" void disappear__11daObjMATO_cFi(); -extern "C" void getRupee__11daObjMATO_cFi(); -extern "C" void execute__11daObjMATO_cFv(); -extern "C" void _delete__11daObjMATO_cFv(); -extern "C" void setBaseMtx__11daObjMATO_cFv(); -extern "C" static void daObjMATO_Draw__FP11daObjMATO_c(); -extern "C" static void daObjMATO_Execute__FP11daObjMATO_c(); -extern "C" void mato_init__11daObjMATO_cFv(); -extern "C" void create__11daObjMATO_cFv(); -extern "C" void __dt__10MatoData_sFv(); -extern "C" void __ct__10MatoData_sFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" static bool daObjMATO_IsDelete__FP11daObjMATO_c(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" extern char const* const d_a_obj_mato__stringBase0; - -// -// External References: -// - -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_createItemForSimpleDemo__FPC4cXyziiPC5csXyzPC4cXyzff(); -extern "C" void addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc(); -extern "C" void removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai(); -extern "C" void entrySimpleModel__14dComIfG_play_cFP8J3DModeli(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void dPath_GetRoomPath__Fii(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Move__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void ChkCoHit__12dCcD_GObjInfFv(); -extern "C" void GetCoHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void GetAc__8cCcD_ObjFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_chaseF__FPfff(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __dl__FPv(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// Declarations: -// +#include "d/d_cc_uty.h" +#include "d/d_s_play.h" +#include "f_op/f_op_camera_mng.h" /* 80C91B58-80C91C1C 000078 00C4+00 5/5 0/0 0/0 .text * setAction__11daObjMATO_cFM11daObjMATO_cFPCvPvi_vi */ -void daObjMATO_c::setAction(void (daObjMATO_c::*param_0)(int), int param_1) { - // NONMATCHING +void daObjMATO_c::setAction(void (daObjMATO_c::*i_action)(int), int i_no) { + if (mData[i_no].action != NULL) { + mData[i_no].mode = -1; + (this->*mData[i_no].action)(i_no); + } + + mData[i_no].prev_action = mData[i_no].action; + mData[i_no].action = i_action; + mData[i_no].mode = 0; + (this->*mData[i_no].action)(i_no); } -/* ############################################################################################## */ /* 80C92C50-80C92C6C 000000 001C+00 6/6 0/0 0/0 .rodata l_B_ling_bmd_table */ -SECTION_RODATA static u8 const l_B_ling_bmd_table[28] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, +static const int l_B_ling_bmd_table[] = { + 4, + 3, + 4, + 4, + 4, + 4, + 4, }; -COMPILER_STRIP_GATE(0x80C92C50, &l_B_ling_bmd_table); -/* 80C92CD4-80C92CD4 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C92CD4 = "B_ling"; -#pragma pop +int daObjMATO_c::CreateHeap() { + int i; + J3DModelData* a_pModelData[2]; + + for (i = 0; i < 2; i++) { + a_pModelData[i] = (J3DModelData*)dComIfG_getObjectRes("B_ling", l_B_ling_bmd_table[i]); + JUT_ASSERT(174, a_pModelData[i] != NULL); + } + + for (i = 0; i < mpPath->m_num; i++) { + mData[i].model = mDoExt_J3DModel__create(a_pModelData[mData[i].type], J3DMdlFlag_DifferedDLBuffer, BMD_DEFAULT_DIFF_FLAGS); + if (mData[i].model == NULL) { + return 0; + } + } + + return 1; +} /* 80C91C1C-80C91D04 00013C 00E8+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING +static int useHeapInit(fopAc_ac_c* i_this) { + return ((daObjMATO_c*)i_this)->CreateHeap(); } /* 80C91D04-80C91D24 000224 0020+00 1/0 0/0 0/0 .text daObjMATO_Create__FP10fopAc_ac_c */ -static void daObjMATO_Create(fopAc_ac_c* param_0) { - // NONMATCHING +static int daObjMATO_Create(fopAc_ac_c* i_this) { + fpc_ProcID id = fopAcM_GetID(i_this); + return ((daObjMATO_c*)i_this)->create(); } /* 80C91D24-80C91D48 000244 0024+00 1/0 0/0 0/0 .text daObjMATO_Delete__FP11daObjMATO_c */ -static void daObjMATO_Delete(daObjMATO_c* param_0) { - // NONMATCHING +static int daObjMATO_Delete(daObjMATO_c* i_this) { + fpc_ProcID id = fopAcM_GetID(i_this); + i_this->_delete(); + return 1; } /* 80C91D48-80C91DE4 000268 009C+00 1/1 0/0 0/0 .text action__11daObjMATO_cFv */ void daObjMATO_c::action() { - // NONMATCHING + int i; + for (i = 0; i < mpPath->m_num; i++) { + if (field_0x39f6 != 0 && !mData[i].is_hit) { + mData[i].rot.y = fopCamM_GetAngleY(dComIfGp_getCamera(0)); + } + + (this->*mData[i].action)(i); + } } -/* ############################################################################################## */ +namespace { /* 80C92CDC-80C92D20 000000 0044+00 1/1 0/0 0/0 .data cc_cyl_src__26@unnamed@d_a_obj_mato_cpp@ */ -SECTION_DATA static u8 data_80C92CDC[68] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x19, - 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, -}; - -/* 80C92D20-80C92D2C -00001 000C+00 1/1 0/0 0/0 .data @3843 */ -SECTION_DATA static void* lit_3843[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)disappear__11daObjMATO_cFi, +static dCcD_SrcCyl cc_cyl_src = { + { + {0, {{0, 0, 0}, {0, 0}, 0x119}}, + {dCcD_SE_13, 0, 0, 0, 0}, + {dCcD_SE_NONE, 0, 0, 0, 2}, + {2}, + }, + { + {0.0f, 0.0f, 0.0f}, + 150.0f, + 300.0f, + }, }; +} /* 80C91DE4-80C91ECC 000304 00E8+00 1/1 0/0 0/0 .text hit_check__11daObjMATO_cFv */ void daObjMATO_c::hit_check() { - // NONMATCHING + if (field_0x39f6 != 0) { + for (int i = 0; i < mpPath->m_num; i++) { + if (!mData[i].is_hit) { + mData[i].ccStts.Move(); + if (mData[i].ccCyl.ChkCoHit()) { + fopAc_ac_c* a_pCoHitAc = dCc_GetAc(mData[i].ccCyl.GetCoHitObj()->GetAc()); + if (fopAcM_GetName(a_pCoHitAc) == PROC_ALINK) { + mData[i].is_hit = TRUE; + getRupee(i); + setAction(&daObjMATO_c::disappear, i); + } + } + } + } + } } -/* ############################################################################################## */ -/* 80C92C6C-80C92C70 00001C 0004+00 2/4 0/0 0/0 .rodata @3878 */ -SECTION_RODATA static u8 const lit_3878[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C92C6C, &lit_3878); - -/* 80C92D2C-80C92D38 -00001 000C+00 1/1 0/0 0/0 .data @3867 */ -SECTION_DATA static void* lit_3867[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__11daObjMATO_cFi, -}; - /* 80C91ECC-80C91F74 0003EC 00A8+00 2/0 0/0 0/0 .text start_wait__11daObjMATO_cFi */ -void daObjMATO_c::start_wait(int param_0) { - // NONMATCHING +void daObjMATO_c::start_wait(int i_no) { + if (mData[i_no].mode == 0) { + mData[i_no].is_hit = FALSE; + mData[i_no].rot.setall(0); + mData[i_no].scale.setall(0.0f); + mData[i_no].mode++; + } else if (mData[i_no].mode != -1 && field_0x39f6 != 0) { + setAction(&daObjMATO_c::wait, i_no); + } } -/* ############################################################################################## */ -/* 80C92C70-80C92C74 000020 0004+00 1/2 0/0 0/0 .rodata @3900 */ -SECTION_RODATA static f32 const lit_3900 = 1.0f; -COMPILER_STRIP_GATE(0x80C92C70, &lit_3900); - -/* 80C92C74-80C92C78 000024 0004+00 1/1 0/0 0/0 .rodata @3901 */ -SECTION_RODATA static f32 const lit_3901 = 0.25f; -COMPILER_STRIP_GATE(0x80C92C74, &lit_3901); - -/* 80C92D38-80C92D44 -00001 000C+00 1/1 0/0 0/0 .data @3891 */ -SECTION_DATA static void* lit_3891[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)disappear__11daObjMATO_cFi, -}; - /* 80C91F74-80C92044 000494 00D0+00 1/0 0/0 0/0 .text wait__11daObjMATO_cFi */ -void daObjMATO_c::wait(int param_0) { - // NONMATCHING +void daObjMATO_c::wait(int i_no) { + if (mData[i_no].mode == 0) { + mData[i_no].mode++; + } else if (mData[i_no].mode != -1) { + if (field_0x39f6 != 0) { + cLib_chaseF(&mData[i_no].scale.x, 1.0f, 0.25f); + cLib_chaseF(&mData[i_no].scale.y, 1.0f, 0.25f); + cLib_chaseF(&mData[i_no].scale.z, 1.0f, 0.25f); + } else { + setAction(&daObjMATO_c::disappear, i_no); + } + } } -/* ############################################################################################## */ /* 80C92C78-80C92C94 000028 001C+00 0/1 0/0 0/0 .rodata l_rupee_itemno_table */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_rupee_itemno_table[28] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, +static const int l_rupee_itemno_table[] = { + fpcNm_ITEM_GREEN_RUPEE, + fpcNm_ITEM_BLUE_RUPEE, + fpcNm_ITEM_YELLOW_RUPEE, + fpcNm_ITEM_RED_RUPEE, + fpcNm_ITEM_PURPLE_RUPEE, + fpcNm_ITEM_ORANGE_RUPEE, + fpcNm_ITEM_SILVER_RUPEE, }; -COMPILER_STRIP_GATE(0x80C92C78, &l_rupee_itemno_table); -#pragma pop /* 80C92C94-80C92C9C 000044 0007+01 0/1 0/0 0/0 .rodata l_rupee_count_table */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_rupee_count_table[7 + 1 /* padding */] = { - 0x01, - 0x05, - 0x0A, - 0x14, - 0x32, - 0x64, - 0xC8, - /* padding */ - 0x00, +static const u8 l_rupee_count_table[] = { + 1, + 5, + 10, + 20, + 50, + 100, + 200, }; -COMPILER_STRIP_GATE(0x80C92C94, &l_rupee_count_table); -#pragma pop /* 80C92C9C-80C92CB8 00004C 001C+00 0/1 0/0 0/0 .rodata l_rupee_getse */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_rupee_getse[28] = { - 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, - 0x00, 0x72, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x72, -}; -COMPILER_STRIP_GATE(0x80C92C9C, &l_rupee_getse); -#pragma pop - -/* 80C92CB8-80C92CBC 000068 0004+00 0/1 0/0 0/0 .rodata @3934 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3934 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80C92CB8, &lit_3934); -#pragma pop - -/* 80C92CBC-80C92CC0 00006C 0004+00 0/1 0/0 0/0 .rodata @3935 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3935 = 1.5f; -COMPILER_STRIP_GATE(0x80C92CBC, &lit_3935); -#pragma pop - -/* 80C92CC0-80C92CC4 000070 0004+00 0/1 0/0 0/0 .rodata @3936 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3936 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x80C92CC0, &lit_3936); -#pragma pop - -/* 80C92D44-80C92D50 -00001 000C+00 1/1 0/0 0/0 .data @3924 */ -SECTION_DATA static void* lit_3924[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)start_wait__11daObjMATO_cFi, +static const u32 l_rupee_getse[] = { + Z2SE_GREEN_LUPY_GET, + Z2SE_BLUE_LUPY_GET, + Z2SE_BLUE_LUPY_GET, + Z2SE_RED_LUPY_GET, + Z2SE_RED_LUPY_GET, + Z2SE_RED_LUPY_GET, + Z2SE_RED_LUPY_GET, }; /* 80C92044-80C921A8 000564 0164+00 2/0 0/0 0/0 .text disappear__11daObjMATO_cFi */ -void daObjMATO_c::disappear(int param_0) { - // NONMATCHING +void daObjMATO_c::disappear(int i_no) { + if (mData[i_no].mode == 0) { + mData[i_no].timer = 20; + mData[i_no].rot_speed = 0x2000; + mData[i_no].mode++; + } else if (mData[i_no].mode != -1) { + if (mData[i_no].mode == 1) { + mData[i_no].rot.y += mData[i_no].rot_speed; + + mData[i_no].timer--; + if (mData[i_no].timer == 0) { + mData[i_no].mode++; + } + } else if (mData[i_no].mode == 2) { + mData[i_no].rot.y += mData[i_no].rot_speed; + + cLib_chaseF(&mData[i_no].scale.x, 0.0f, 0.1f); + cLib_chaseF(&mData[i_no].scale.y, 1.5f, 0.05f); + cLib_chaseF(&mData[i_no].scale.z, 0.0f, 0.1f); + + if (!mData[i_no].scale.x && !mData[i_no].scale.z) { + mData[i_no].mode++; + } + } else if (field_0x39f6 == 0) { + setAction(&daObjMATO_c::start_wait, i_no); + } + } } -/* ############################################################################################## */ -/* 80C92CC4-80C92CC8 000074 0004+00 0/1 0/0 0/0 .rodata @3959 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3959 = -1.0f; -COMPILER_STRIP_GATE(0x80C92CC4, &lit_3959); -#pragma pop - /* 80C921A8-80C922AC 0006C8 0104+00 1/1 0/0 0/0 .text getRupee__11daObjMATO_cFi */ -void daObjMATO_c::getRupee(int param_0) { - // NONMATCHING +void daObjMATO_c::getRupee(int i_no) { + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz size(1.0f, 1.0f, 1.0f); + csXyz angle; + angle.x = angle.z = 0; + angle.y = player->shape_angle.y; + + fopAcM_createItemForSimpleDemo(¤t.pos, l_rupee_itemno_table[mData[i_no].type], fopAcM_GetRoomNo(this), &angle, &size, 0.0f, 0.0f); + dComIfGp_setItemRupeeCount(l_rupee_count_table[mData[i_no].type]); + mDoAud_seStart(l_rupee_getse[mData[i_no].type], NULL, 0, 0); } /* 80C922AC-80C92380 0007CC 00D4+00 1/1 0/0 0/0 .text execute__11daObjMATO_cFv */ -void daObjMATO_c::execute() { - // NONMATCHING +int daObjMATO_c::execute() { + u8 swbit = (fopAcM_GetParam(this) & 0xFF00) >> 8; + if (swbit != 0xFF) { + if (field_0x39f6 != 0) { + if (!dComIfGs_isSwitch(swbit, fopAcM_GetRoomNo(this)) && field_0x39f4 != 0) { + field_0x39f4--; + if (field_0x39f4 == 0) { + field_0x39f6 = 0; + } + } + } else if (dComIfGs_isSwitch(swbit, fopAcM_GetRoomNo(this))) { + field_0x39f6 = 1; + field_0x39f4 = 1500; + } + } + + hit_check(); + action(); + setBaseMtx(); + return 1; } /* 80C92380-80C9243C 0008A0 00BC+00 1/1 0/0 0/0 .text _delete__11daObjMATO_cFv */ -void daObjMATO_c::_delete() { - // NONMATCHING +int daObjMATO_c::_delete() { + if (mIsAddSimpleModel) { + J3DModelData* a_pModelData[2]; + + for (int i = 0; i < 2; i++) { + a_pModelData[i] = (J3DModelData*)dComIfG_getObjectRes("B_ling", l_B_ling_bmd_table[i]); + dComIfGp_removeSimpleModel(a_pModelData[i], fopAcM_GetRoomNo(this)); + } + } + + dComIfG_resDelete(&mPhase, "B_ling"); + return 1; } -/* ############################################################################################## */ -/* 80C92CC8-80C92CCC 000078 0004+00 0/1 0/0 0/0 .rodata @4039 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4039 = 420.0f; -COMPILER_STRIP_GATE(0x80C92CC8, &lit_4039); -#pragma pop - -/* 80C92CCC-80C92CD0 00007C 0004+00 0/1 0/0 0/0 .rodata @4040 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4040 = 190.0f; -COMPILER_STRIP_GATE(0x80C92CCC, &lit_4040); -#pragma pop - -/* 80C92CD0-80C92CD4 000080 0004+00 0/1 0/0 0/0 .rodata @4041 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4041 = 840.0f; -COMPILER_STRIP_GATE(0x80C92CD0, &lit_4041); -#pragma pop - /* 80C9243C-80C92584 00095C 0148+00 1/1 0/0 0/0 .text setBaseMtx__11daObjMATO_cFv */ void daObjMATO_c::setBaseMtx() { - // NONMATCHING + cXyz sp8; + for (int i = 0; i < mpPath->m_num; i++) { + mDoMtx_stack_c::transS(mData[i].pos); + mDoMtx_stack_c::ZXYrotM(mData[i].rot); + mData[i].model->setBaseScale(mData[i].scale); + mData[i].model->setBaseTRMtx(mDoMtx_stack_c::get()); + + sp8 = mData[i].pos; + sp8.y -= 420.0f + hREG_F(0); + + mData[i].ccCyl.SetC(sp8); + mData[i].ccCyl.SetR((190.0f + hREG_F(2)) * mData[i].scale.x); + mData[i].ccCyl.SetH((840.0f + hREG_F(1)) * mData[i].scale.y); + dComIfG_Ccsp()->Set(&mData[i].ccCyl); + } +} + +int daObjMATO_c::draw() { + for (int i = 0; i < mpPath->m_num; i++) { + g_env_light.settingTevStruct(0, &mData[i].pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mData[i].model, &tevStr); + dComIfGp_entrySimpleModel(mData[i].model, fopAcM_GetRoomNo(this)); + } + + return 1; } /* 80C92584-80C92630 000AA4 00AC+00 1/0 0/0 0/0 .text daObjMATO_Draw__FP11daObjMATO_c */ -static void daObjMATO_Draw(daObjMATO_c* param_0) { - // NONMATCHING +static int daObjMATO_Draw(daObjMATO_c* i_this) { + return i_this->draw(); } /* 80C92630-80C92650 000B50 0020+00 2/1 0/0 0/0 .text daObjMATO_Execute__FP11daObjMATO_c */ -static void daObjMATO_Execute(daObjMATO_c* param_0) { - // NONMATCHING +static int daObjMATO_Execute(daObjMATO_c* i_this) { + return i_this->execute(); } -/* ############################################################################################## */ -/* 80C92D50-80C92D5C -00001 000C+00 1/1 0/0 0/0 .data @4104 */ -SECTION_DATA static void* lit_4104[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)start_wait__11daObjMATO_cFi, -}; - /* 80C92650-80C927AC 000B70 015C+00 1/1 0/0 0/0 .text mato_init__11daObjMATO_cFv */ -void daObjMATO_c::mato_init() { - // NONMATCHING +int daObjMATO_c::mato_init() { + int rail_no = fopAcM_GetParam(this) & 0xFF; + mpPath = dPath_GetRoomPath(rail_no, fopAcM_GetRoomNo(this)); + if (mpPath == NULL) { + return 0; + } + + dPnt* a_pPnt = mpPath->m_points; + + for (int i = 0; i < mpPath->m_num; i++) { + mData[i].pos = a_pPnt->m_position; + mData[i].scale.setall(0.0f); + mData[i].is_hit = FALSE; + mData[i].timer = 0; + mData[i].rot.setall(0); + mData[i].type = a_pPnt->mArg0; + + if (mData[i].type > 6) { + // "Rupee arg is over upper limit: rail point No:%d" + OS_REPORT("ルピーの引数が上限オーバー:レール点No:%d\n", i); + // "Forcing green rupee" + OS_REPORT("強制的に緑ルピーにします\n"); + mData[i].type = 0; + } + + mData[i].ccStts.Init(0xFF, 0, this); + mData[i].ccCyl.Set(cc_cyl_src); + mData[i].ccCyl.SetStts(&mData[i].ccStts); + + setAction(&daObjMATO_c::start_wait, i); + a_pPnt++; + } + + return 1; } /* 80C927AC-80C92924 000CCC 0178+00 1/1 0/0 0/0 .text create__11daObjMATO_cFv */ -void daObjMATO_c::create() { - // NONMATCHING +int daObjMATO_c::create() { + fopAcM_SetupActor(this, daObjMATO_c); + + if (!mato_init()) { + OS_REPORT("MATO : rale data not found!\n"); + return cPhs_ERROR_e; + } + + int phase_state = dComIfG_resLoad(&mPhase, "B_ling"); + if (phase_state == cPhs_COMPLEATE_e) { + OS_REPORT("MATO PARAM %x\n", fopAcM_GetParam(this)); + OS_REPORT("MATO SET 1\n"); + + if (!fopAcM_entrySolidHeap(this, useHeapInit, 0x4800)) { + return cPhs_ERROR_e; + } + + OS_REPORT("MATO SET 2\n"); + + J3DModelData* a_pModelData[2]; + for (int i = 0; i < 2; i++) { + a_pModelData[i] = (J3DModelData*)dComIfG_getObjectRes("B_ling", l_B_ling_bmd_table[i]); + JUT_ASSERT(752, a_pModelData[i] != NULL) + + if (dComIfGp_addSimpleModel(a_pModelData[i], fopAcM_GetRoomNo(this), 0) == -1) { + // "Cucco Game Target: simple model entry failed. " + OS_REPORT("\x1B[43;30mコッコゲームの的:シンプルモデル登録失敗しました。\n\x1B[m"); + } + + mIsAddSimpleModel = TRUE; + } + + fopAcM_OffStatus(this, 0); + attention_info.flags = 0; + + field_0x39f6 = 0; + health = 10; + field_0x560 = 10; + daObjMATO_Execute(this); + } + + return phase_state; +} + +/* 80C92BF8-80C92C00 001118 0008+00 1/0 0/0 0/0 .text daObjMATO_IsDelete__FP11daObjMATO_c + */ +static int daObjMATO_IsDelete(daObjMATO_c* i_this) { + return 1; } -/* ############################################################################################## */ /* 80C92D5C-80C92D7C -00001 0020+00 1/0 0/0 0/0 .data l_daObjMATO_Method */ static actor_method_class l_daObjMATO_Method = { - (process_method_func)daObjMATO_Create__FP10fopAc_ac_c, - (process_method_func)daObjMATO_Delete__FP11daObjMATO_c, - (process_method_func)daObjMATO_Execute__FP11daObjMATO_c, - (process_method_func)daObjMATO_IsDelete__FP11daObjMATO_c, - (process_method_func)daObjMATO_Draw__FP11daObjMATO_c, + (process_method_func)daObjMATO_Create, + (process_method_func)daObjMATO_Delete, + (process_method_func)daObjMATO_Execute, + (process_method_func)daObjMATO_IsDelete, + (process_method_func)daObjMATO_Draw, }; /* 80C92D7C-80C92DAC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Mato */ @@ -386,73 +416,3 @@ extern actor_process_profile_definition g_profile_Obj_Mato = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80C92DAC-80C92DB8 0000D0 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80C92DB8-80C92DC4 0000DC 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80C92DC4-80C92DD0 0000E8 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80C92DD0-80C92DDC 0000F4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80C92924-80C92A50 000E44 012C+00 1/1 0/0 0/0 .text __dt__10MatoData_sFv */ -MatoData_s::~MatoData_s() { - // NONMATCHING -} - -/* 80C92A50-80C92B0C 000F70 00BC+00 1/1 0/0 0/0 .text __ct__10MatoData_sFv */ -MatoData_s::MatoData_s() { - // NONMATCHING -} - -/* 80C92B0C-80C92B54 00102C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80C92B54-80C92B9C 001074 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80C92B9C-80C92BF8 0010BC 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80C92BF8-80C92C00 001118 0008+00 1/0 0/0 0/0 .text daObjMATO_IsDelete__FP11daObjMATO_c - */ -static bool daObjMATO_IsDelete(daObjMATO_c* param_0) { - return true; -} - -/* 80C92C00-80C92C48 001120 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80C92CD4-80C92CD4 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_nagaisu.cpp b/src/d/actor/d_a_obj_nagaisu.cpp index aa42459273c..b59eb26aa32 100644 --- a/src/d/actor/d_a_obj_nagaisu.cpp +++ b/src/d/actor/d_a_obj_nagaisu.cpp @@ -6,129 +6,344 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_obj_nagaisu.h" -#include "dol2asm.h" - - - -// -// Forward References: -// - -extern "C" static void daObjNagaisu_c_createHeap__FP10fopAc_ac_c(); -extern "C" void __ct__14daObjNagaisu_cFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__14daObjNagaisu_cFv(); -extern "C" void createHeap__14daObjNagaisu_cFv(); -extern "C" void create__14daObjNagaisu_cFv(); -extern "C" void Delete__14daObjNagaisu_cFv(); -extern "C" void draw__14daObjNagaisu_cFv(); -extern "C" void execute__14daObjNagaisu_cFv(); -extern "C" void init__14daObjNagaisu_cFv(); -extern "C" void setIsu__14daObjNagaisu_cFv(); -extern "C" void __ct__15daObjIsuChild_cFv(); -extern "C" void __dt__8dCcD_CylFv(); -extern "C" void __ct__8dCcD_CylFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__15daObjIsuChild_cFv(); -extern "C" void createHeap__15daObjIsuChild_cFv(); -extern "C" void create__15daObjIsuChild_cFP14daObjNagaisu_cP9dCcD_Stts(); -extern "C" void execute__15daObjIsuChild_cFv(); -extern "C" void draw__15daObjIsuChild_cFP6dMdl_c(); -extern "C" void Delete__15daObjIsuChild_cFv(); -extern "C" void chkHit__15daObjIsuChild_cFv(); -extern "C" void callEmt__15daObjIsuChild_cFv(); -extern "C" static void daObjNagaisu_create__FP14daObjNagaisu_c(); -extern "C" static void daObjNagaisu_Delete__FP14daObjNagaisu_c(); -extern "C" static void daObjNagaisu_execute__FP14daObjNagaisu_c(); -extern "C" static void daObjNagaisu_draw__FP14daObjNagaisu_c(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" u8 const REMOVE_ISU_IDX__14daObjNagaisu_c[28]; -extern "C" u8 const s_CcDCyl__15daObjIsuChild_c[68]; -extern "C" extern char const* const d_a_obj_nagaisu__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); -extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f(); -extern "C" void __ct__4dBgWFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void entryObj__6dMdl_cFP10dMdl_obj_c(); -extern "C" void entry__10dMdl_mng_cFP12J3DModelDataUsi(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __ct__5csXyzFsss(); -extern "C" void ChkUsed__9cBgW_BgIdCFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// Declarations: -// /* 80C9F3B8-80C9F3D8 000078 0020+00 1/1 0/0 0/0 .text daObjNagaisu_c_createHeap__FP10fopAc_ac_c */ -static void daObjNagaisu_c_createHeap(fopAc_ac_c* param_0) { - // NONMATCHING +static int daObjNagaisu_c_createHeap(fopAc_ac_c* i_this) { + return ((daObjNagaisu_c*)i_this)->createHeap(); } -/* ############################################################################################## */ -/* 80CA0400-80CA0400 0000A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80CA0400 = "Nagaisu"; -#pragma pop - /* 80CA0408-80CA040C -00001 0004+00 4/4 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_nagaisu__stringBase0; +static char* l_arcName = "Nagaisu"; + +/* 80C9F3D8-80C9F45C 000098 0084+00 2/2 0/0 0/0 .text __ct__14daObjNagaisu_cFv */ +daObjNagaisu_c::daObjNagaisu_c() {} + +/* 80C9F4B8-80C9F5A8 000178 00F0+00 1/0 0/0 0/0 .text __dt__14daObjNagaisu_cFv */ +daObjNagaisu_c::~daObjNagaisu_c() { + dComIfG_resDelete(this, l_arcName); +} + +/* 80C9F5A8-80C9F668 000268 00C0+00 1/1 0/0 0/0 .text createHeap__14daObjNagaisu_cFv */ +int daObjNagaisu_c::createHeap() { + J3DModelData* a_model_data_p = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4); + JUT_ASSERT(156, a_model_data_p != NULL); + + mpModel = mDoExt_J3DModel__create(a_model_data_p, J3DMdlFlag_DifferedDLBuffer, BMD_DEFAULT_DIFF_FLAGS); + if (mpModel == NULL) { + return 0; + } + + daObjIsuChild_c* a_child_p = mChild; + for (int i = 0; i < 60; i++) { + if (!a_child_p->getDeadFlg() && !a_child_p->createHeap()) { + return 0; + } + + a_child_p++; + } + + return 1; +} + +/* 80CA035C-80CA0378 000000 001C+00 3/3 0/0 0/0 .rodata REMOVE_ISU_IDX__14daObjNagaisu_c */ +const int daObjNagaisu_c::REMOVE_ISU_IDX[] = { + 6, + 7, + 11, + 14, + 18, + 21, + 29, +}; + +/* 80CA0378-80CA03BC 00001C 0044+00 0/1 0/0 0/0 .rodata s_CcDCyl__15daObjIsuChild_c */ +const dCcD_SrcCyl daObjIsuChild_c::s_CcDCyl = { + { + {0, {{0, 0, 0}, {0x400020, 0x11}, 0}}, + {dCcD_SE_NONE, 0, 0, 0, 0}, + {dCcD_SE_NONE, 0, 0, 0, 0}, + {0}, + }, + { + {0.0f, 0.0f, 0.0f}, + 0.0f, + 0.0f, + }, +}; + +/* 80C9F668-80C9F7A8 000328 0140+00 1/1 0/0 0/0 .text create__14daObjNagaisu_cFv */ +int daObjNagaisu_c::create() { + fopAcM_SetupActor(this, daObjNagaisu_c); + + int phase_state = dComIfG_resLoad(this, l_arcName); + if (phase_state == cPhs_COMPLEATE_e) { + current.pos.z -= 3300.0f; + setIsu(); + + if (!fopAcM_entrySolidHeap(this, daObjNagaisu_c_createHeap, 0x12000)) { + return cPhs_ERROR_e; + } + + init(); + + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + fopAcM_setCullSizeBox2(this, mpModel->getModelData()); + + daObjIsuChild_c* a_child_p = mChild; + for (int i = 0; i < 60; i++) { + a_child_p->create(this, &mCcStts); + a_child_p++; + } + } + + return phase_state; +} + +/* 80C9F7A8-80C9F81C 000468 0074+00 1/1 0/0 0/0 .text Delete__14daObjNagaisu_cFv */ +int daObjNagaisu_c::Delete() { + daObjIsuChild_c* a_child_p = mChild; + for (int i = 0; i < 60; i++) { + a_child_p->Delete(); + a_child_p->setDeadFlg(true); + a_child_p++; + } + + this->~daObjNagaisu_c(); + return 1; +} + +/* 80C9F81C-80C9F8C4 0004DC 00A8+00 1/1 0/0 0/0 .text draw__14daObjNagaisu_cFv */ +int daObjNagaisu_c::draw() { + g_env_light.settingTevStruct(8, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + + dMdl_c* a_mdl_p = dMdl_mng_c::entry(mpModel->getModelData(), 0, current.roomNo); + if (a_mdl_p != NULL) { + daObjIsuChild_c* a_child_p = mChild; + for (int i = 0; i < 60; i++) { + a_child_p->draw(a_mdl_p); + a_child_p++; + } + } + + return 1; +} + +/* 80C9F8C4-80C9F914 000584 0050+00 1/1 0/0 0/0 .text execute__14daObjNagaisu_cFv */ +int daObjNagaisu_c::execute() { + daObjIsuChild_c* a_child_p = mChild; + for (int i = 0; i < 60; i++) { + a_child_p->execute(); + a_child_p++; + } + + return 1; +} + +/* 80C9F914-80C9F944 0005D4 0030+00 1/1 0/0 0/0 .text init__14daObjNagaisu_cFv */ +void daObjNagaisu_c::init() { + mCcStts.Init(0xFF, 0, this); +} + +/* 80C9F944-80C9FA90 000604 014C+00 1/1 0/0 0/0 .text setIsu__14daObjNagaisu_cFv */ +void daObjNagaisu_c::setIsu() { + daObjIsuChild_c* a_child_p = mChild; + f32 start_x_pos = current.pos.x; + cXyz prev_pos(current.pos.x, current.pos.y, current.pos.z); + cXyz pos(prev_pos); + + int row_start_idx = 0; + int section_start_idx = 3; + u8 is_remove_isu = false; + + for (int i = 0; i < 60; i++) { + if (i == row_start_idx) { + row_start_idx += 6; + pos.x = start_x_pos; + + // after seven rows, move farther back to leave room for the entrance way + if (i == (6 * 7)) { + pos.z = 600.0f + prev_pos.z; + } else { + pos.z = 300.0f + prev_pos.z; + } + } else if (i == section_start_idx) { + section_start_idx += 6; + pos.x = 790.0f + prev_pos.x; + pos.z = prev_pos.z; + } else { + pos.x = 280.0f + prev_pos.x; + pos.z = prev_pos.z; + } + + prev_pos.x = pos.x; + prev_pos.z = pos.z; + + is_remove_isu = false; + for (int j = 0; j < 7; j++) { + if (i == REMOVE_ISU_IDX[j]) { + is_remove_isu = true; + break; + } + } + + if (is_remove_isu) { + a_child_p->setDeadFlg(true); + } else { + a_child_p->setDeadFlg(false); + a_child_p->setPos(pos); + } + + a_child_p++; + } +} + +/* 80C9FA90-80C9FAFC 000750 006C+00 1/1 0/0 0/0 .text __ct__15daObjIsuChild_cFv */ +daObjIsuChild_c::daObjIsuChild_c() { + mIsDead = false; + mpBgW = NULL; +} + +/* 80C9FCDC-80C9FD4C 00099C 0070+00 3/2 0/0 0/0 .text __dt__15daObjIsuChild_cFv */ +daObjIsuChild_c::~daObjIsuChild_c() {} + +/* 80C9FD4C-80C9FE28 000A0C 00DC+00 1/1 0/0 0/0 .text createHeap__15daObjIsuChild_cFv */ +int daObjIsuChild_c::createHeap() { + mpBgW = new dBgW(); + if (mpBgW == NULL) { + return 0; + } + + mDoMtx_stack_c::transS(mPos.x, mPos.y, mPos.z); + mDoMtx_stack_c::YrotM(-0x8000); + MTXCopy(mDoMtx_stack_c::get(), mBgMtx); + + if (mpBgW->Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, 7), 1, &mBgMtx) == true) { + return 0; + } + + return 1; +} + +/* 80C9FE28-80C9FF54 000AE8 012C+00 1/1 0/0 0/0 .text + * create__15daObjIsuChild_cFP14daObjNagaisu_cP9dCcD_Stts */ +// NONMATCHING - missing instruction +void daObjIsuChild_c::create(daObjNagaisu_c* i_parent, dCcD_Stts* i_ccStts) { + static const int COL_OFFSET_X[] = { + 60, + -60, + }; + + if (!mIsDead) { + for (int i = 0; i < 2; i++) { + mCcCyl[i].Set(s_CcDCyl); + mCcCyl[i].SetStts(i_ccStts); + + cXyz center(mPos.x + COL_OFFSET_X[i], mPos.y, mPos.z + -50.0f); + mCcCyl[i].SetC(center); + mCcCyl[i].SetH(180.0f); + mCcCyl[i].SetR(65.0f); + } + + if (!dComIfG_Bgsp().Regist(mpBgW, i_parent)) {} + } +} + +/* 80C9FF54-80CA0034 000C14 00E0+00 1/1 0/0 0/0 .text execute__15daObjIsuChild_cFv */ +int daObjIsuChild_c::execute() { + if (!mIsDead) { + if (chkHit()) { + callEmt(); + mDoAud_seStart(Z2SE_OBJ_BREAK_WOOD_FURNITURE, &mPos, 0, 0); + Delete(); + mIsDead = true; + } else { + for (int i = 0; i < 2; i++) { + dComIfG_Ccsp()->Set(&mCcCyl[i]); + } + } + } +} + +/* 80CA0034-80CA00B8 000CF4 0084+00 1/1 0/0 0/0 .text draw__15daObjIsuChild_cFP6dMdl_c */ +int daObjIsuChild_c::draw(dMdl_c* i_mdl) { + if (!mIsDead) { + mDoMtx_stack_c::transS(mPos.x, mPos.y, mPos.z); + mDoMtx_stack_c::YrotM(-0x8000); + mMdlObj.setMtx(mDoMtx_stack_c::get()); + i_mdl->entryObj(&mMdlObj); + } +} + +/* 80CA00B8-80CA0118 000D78 0060+00 2/2 0/0 0/0 .text Delete__15daObjIsuChild_cFv */ +// NONMATCHING retail +int daObjIsuChild_c::Delete() { + if (!mIsDead) { + if (mpBgW != NULL && mpBgW->ChkUsed()) { + dComIfG_Bgsp().Release(mpBgW); + } + } +} + +/* 80CA0118-80CA0180 000DD8 0068+00 1/1 0/0 0/0 .text chkHit__15daObjIsuChild_cFv */ +bool daObjIsuChild_c::chkHit() { + for (int i = 0; i < 2; i++) { + if (mCcCyl[i].ChkTgHit()) { + return true; + } + } + + return false; +} + +/* 80CA0180-80CA0258 000E40 00D8+00 1/1 0/0 0/0 .text callEmt__15daObjIsuChild_cFv */ +void daObjIsuChild_c::callEmt() { + cXyz pos(mPos.x, mPos.y, mPos.z); + csXyz rot(0, -0x8000, 0); + cXyz size(1.25f, 1.25f, 1.25f); + + for (int i = 0; i < 4; i++) { + static const u16 PARTICLE_NAME[] = { + dPa_RM(ID_ZI_S_LV5KAGU_BREAK_A), + dPa_RM(ID_ZI_S_LV5KAGU_BREAK_B), + dPa_RM(ID_ZI_S_LV5KAGU_BREAK_C), + dPa_RM(ID_ZI_S_LV5KAGU_BREAK_D), + }; + + dComIfGp_particle_set(PARTICLE_NAME[i], &pos, &rot, &size); + } +} + +/* 80CA0258-80CA02AC 000F18 0054+00 1/0 0/0 0/0 .text daObjNagaisu_create__FP14daObjNagaisu_c */ +static int daObjNagaisu_create(daObjNagaisu_c* i_this) { + fopAcM_SetupActor(i_this, daObjNagaisu_c); + return i_this->create(); +} + +/* 80CA02AC-80CA02CC 000F6C 0020+00 1/0 0/0 0/0 .text daObjNagaisu_Delete__FP14daObjNagaisu_c */ +static int daObjNagaisu_Delete(daObjNagaisu_c* i_this) { + return i_this->Delete(); +} + +/* 80CA02CC-80CA02EC 000F8C 0020+00 1/0 0/0 0/0 .text daObjNagaisu_execute__FP14daObjNagaisu_c */ +static int daObjNagaisu_execute(daObjNagaisu_c* i_this) { + return i_this->execute(); +} + +/* 80CA02EC-80CA030C 000FAC 0020+00 1/0 0/0 0/0 .text daObjNagaisu_draw__FP14daObjNagaisu_c */ +static int daObjNagaisu_draw(daObjNagaisu_c* i_this) { + return i_this->draw(); +} /* 80CA040C-80CA042C -00001 0020+00 1/0 0/0 0/0 .data daObjNagaisu_METHODS */ static actor_method_class daObjNagaisu_METHODS = { - (process_method_func)daObjNagaisu_create__FP14daObjNagaisu_c, - (process_method_func)daObjNagaisu_Delete__FP14daObjNagaisu_c, - (process_method_func)daObjNagaisu_execute__FP14daObjNagaisu_c, + (process_method_func)daObjNagaisu_create, + (process_method_func)daObjNagaisu_Delete, + (process_method_func)daObjNagaisu_execute, 0, - (process_method_func)daObjNagaisu_draw__FP14daObjNagaisu_c, + (process_method_func)daObjNagaisu_draw, }; /* 80CA042C-80CA045C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Nagaisu */ @@ -148,315 +363,3 @@ extern actor_process_profile_definition g_profile_Obj_Nagaisu = { fopAc_ENV_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80CA045C-80CA0468 000054 000C+00 2/2 0/0 0/0 .data __vt__15daObjIsuChild_c */ -SECTION_DATA extern void* __vt__15daObjIsuChild_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daObjIsuChild_cFv, -}; - -/* 80CA0468-80CA0474 000060 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80CA0474-80CA0480 00006C 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80CA0480-80CA048C 000078 000C+00 2/2 0/0 0/0 .data __vt__14daObjNagaisu_c */ -SECTION_DATA extern void* __vt__14daObjNagaisu_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14daObjNagaisu_cFv, -}; - -/* 80C9F3D8-80C9F45C 000098 0084+00 2/2 0/0 0/0 .text __ct__14daObjNagaisu_cFv */ -daObjNagaisu_c::daObjNagaisu_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CA048C-80CA0498 000084 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80CA0498-80CA04A4 000090 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80C9F45C-80C9F4B8 00011C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80C9F4B8-80C9F5A8 000178 00F0+00 1/0 0/0 0/0 .text __dt__14daObjNagaisu_cFv */ -daObjNagaisu_c::~daObjNagaisu_c() { - // NONMATCHING -} - -/* 80C9F5A8-80C9F668 000268 00C0+00 1/1 0/0 0/0 .text createHeap__14daObjNagaisu_cFv */ -void daObjNagaisu_c::createHeap() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CA035C-80CA0378 000000 001C+00 3/3 0/0 0/0 .rodata REMOVE_ISU_IDX__14daObjNagaisu_c */ -SECTION_RODATA u8 const daObjNagaisu_c::REMOVE_ISU_IDX[28] = { - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, - 0x00, 0x0E, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1D, -}; -COMPILER_STRIP_GATE(0x80CA035C, &daObjNagaisu_c::REMOVE_ISU_IDX); - -/* 80CA0378-80CA03BC 00001C 0044+00 0/1 0/0 0/0 .rodata s_CcDCyl__15daObjIsuChild_c */ -#pragma push -#pragma force_active on -SECTION_RODATA u8 const daObjIsuChild_c::s_CcDCyl[68] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80CA0378, &daObjIsuChild_c::s_CcDCyl); -#pragma pop - -/* 80CA03BC-80CA03C0 000060 0004+00 1/1 0/0 0/0 .rodata @3731 */ -SECTION_RODATA static f32 const lit_3731 = 3300.0f; -COMPILER_STRIP_GATE(0x80CA03BC, &lit_3731); - -/* 80C9F668-80C9F7A8 000328 0140+00 1/1 0/0 0/0 .text create__14daObjNagaisu_cFv */ -void daObjNagaisu_c::create() { - // NONMATCHING -} - -/* 80C9F7A8-80C9F81C 000468 0074+00 1/1 0/0 0/0 .text Delete__14daObjNagaisu_cFv */ -void daObjNagaisu_c::Delete() { - // NONMATCHING -} - -/* 80C9F81C-80C9F8C4 0004DC 00A8+00 1/1 0/0 0/0 .text draw__14daObjNagaisu_cFv */ -void daObjNagaisu_c::draw() { - // NONMATCHING -} - -/* 80C9F8C4-80C9F914 000584 0050+00 1/1 0/0 0/0 .text execute__14daObjNagaisu_cFv */ -void daObjNagaisu_c::execute() { - // NONMATCHING -} - -/* 80C9F914-80C9F944 0005D4 0030+00 1/1 0/0 0/0 .text init__14daObjNagaisu_cFv */ -void daObjNagaisu_c::init() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CA03C0-80CA03C4 000064 0004+00 0/1 0/0 0/0 .rodata @3820 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3820 = 600.0f; -COMPILER_STRIP_GATE(0x80CA03C0, &lit_3820); -#pragma pop - -/* 80CA03C4-80CA03C8 000068 0004+00 0/1 0/0 0/0 .rodata @3821 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3821 = 300.0f; -COMPILER_STRIP_GATE(0x80CA03C4, &lit_3821); -#pragma pop - -/* 80CA03C8-80CA03CC 00006C 0004+00 0/1 0/0 0/0 .rodata @3822 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3822 = 790.0f; -COMPILER_STRIP_GATE(0x80CA03C8, &lit_3822); -#pragma pop - -/* 80CA03CC-80CA03D0 000070 0004+00 0/1 0/0 0/0 .rodata @3823 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3823 = 280.0f; -COMPILER_STRIP_GATE(0x80CA03CC, &lit_3823); -#pragma pop - -/* 80C9F944-80C9FA90 000604 014C+00 1/1 0/0 0/0 .text setIsu__14daObjNagaisu_cFv */ -void daObjNagaisu_c::setIsu() { - // NONMATCHING -} - -/* 80C9FA90-80C9FAFC 000750 006C+00 1/1 0/0 0/0 .text __ct__15daObjIsuChild_cFv */ -daObjIsuChild_c::daObjIsuChild_c() { - // NONMATCHING -} - -/* 80C9FAFC-80C9FBC8 0007BC 00CC+00 2/2 0/0 0/0 .text __dt__8dCcD_CylFv */ -// dCcD_Cyl::~dCcD_Cyl() { -extern "C" void __dt__8dCcD_CylFv() { - // NONMATCHING -} - -/* 80C9FBC8-80C9FC4C 000888 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */ -// dCcD_Cyl::dCcD_Cyl() { -extern "C" void __ct__8dCcD_CylFv() { - // NONMATCHING -} - -/* 80C9FC4C-80C9FC94 00090C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80C9FC94-80C9FCDC 000954 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80C9FCDC-80C9FD4C 00099C 0070+00 3/2 0/0 0/0 .text __dt__15daObjIsuChild_cFv */ -daObjIsuChild_c::~daObjIsuChild_c() { - // NONMATCHING -} - -/* 80C9FD4C-80C9FE28 000A0C 00DC+00 1/1 0/0 0/0 .text createHeap__15daObjIsuChild_cFv */ -void daObjIsuChild_c::createHeap() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CA03D0-80CA03D8 000074 0008+00 0/1 0/0 0/0 .rodata COL_OFFSET_X$3919 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const COL_OFFSET_X[8] = { - 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xC4, -}; -COMPILER_STRIP_GATE(0x80CA03D0, &COL_OFFSET_X); -#pragma pop - -/* 80CA03D8-80CA03DC 00007C 0004+00 0/1 0/0 0/0 .rodata @3940 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3940 = -50.0f; -COMPILER_STRIP_GATE(0x80CA03D8, &lit_3940); -#pragma pop - -/* 80CA03DC-80CA03E0 000080 0004+00 0/1 0/0 0/0 .rodata @3941 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3941 = 180.0f; -COMPILER_STRIP_GATE(0x80CA03DC, &lit_3941); -#pragma pop - -/* 80CA03E0-80CA03E4 000084 0004+00 0/1 0/0 0/0 .rodata @3942 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3942 = 65.0f; -COMPILER_STRIP_GATE(0x80CA03E0, &lit_3942); -#pragma pop - -/* 80CA03E4-80CA03EC 000088 0008+00 0/1 0/0 0/0 .rodata @3944 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3944[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80CA03E4, &lit_3944); -#pragma pop - -/* 80C9FE28-80C9FF54 000AE8 012C+00 1/1 0/0 0/0 .text - * create__15daObjIsuChild_cFP14daObjNagaisu_cP9dCcD_Stts */ -void daObjIsuChild_c::create(daObjNagaisu_c* param_0, dCcD_Stts* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CA03EC-80CA03F0 000090 0004+00 1/2 0/0 0/0 .rodata @3963 */ -SECTION_RODATA static f32 const lit_3963 = 1.0f; -COMPILER_STRIP_GATE(0x80CA03EC, &lit_3963); - -/* 80CA03F0-80CA03F4 000094 0004+00 1/1 0/0 0/0 .rodata @3964 */ -SECTION_RODATA static f32 const lit_3964 = -1.0f; -COMPILER_STRIP_GATE(0x80CA03F0, &lit_3964); - -/* 80C9FF54-80CA0034 000C14 00E0+00 1/1 0/0 0/0 .text execute__15daObjIsuChild_cFv */ -void daObjIsuChild_c::execute() { - // NONMATCHING -} - -/* 80CA0034-80CA00B8 000CF4 0084+00 1/1 0/0 0/0 .text draw__15daObjIsuChild_cFP6dMdl_c */ -void daObjIsuChild_c::draw(dMdl_c* param_0) { - // NONMATCHING -} - -/* 80CA00B8-80CA0118 000D78 0060+00 2/2 0/0 0/0 .text Delete__15daObjIsuChild_cFv */ -void daObjIsuChild_c::Delete() { - // NONMATCHING -} - -/* 80CA0118-80CA0180 000DD8 0068+00 1/1 0/0 0/0 .text chkHit__15daObjIsuChild_cFv */ -void daObjIsuChild_c::chkHit() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80CA03F4-80CA03FC 000098 0008+00 0/1 0/0 0/0 .rodata PARTICLE_NAME$4004 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const PARTICLE_NAME[8] = { - 0x8A, 0xE7, 0x8A, 0xE8, 0x8A, 0xE9, 0x8A, 0xEA, -}; -COMPILER_STRIP_GATE(0x80CA03F4, &PARTICLE_NAME); -#pragma pop - -/* 80CA03FC-80CA0400 0000A0 0004+00 0/1 0/0 0/0 .rodata @4029 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4029 = 1.25f; -COMPILER_STRIP_GATE(0x80CA03FC, &lit_4029); -#pragma pop - -/* 80CA0180-80CA0258 000E40 00D8+00 1/1 0/0 0/0 .text callEmt__15daObjIsuChild_cFv */ -void daObjIsuChild_c::callEmt() { - // NONMATCHING -} - -/* 80CA0258-80CA02AC 000F18 0054+00 1/0 0/0 0/0 .text daObjNagaisu_create__FP14daObjNagaisu_c */ -static void daObjNagaisu_create(daObjNagaisu_c* param_0) { - // NONMATCHING -} - -/* 80CA02AC-80CA02CC 000F6C 0020+00 1/0 0/0 0/0 .text daObjNagaisu_Delete__FP14daObjNagaisu_c */ -static void daObjNagaisu_Delete(daObjNagaisu_c* param_0) { - // NONMATCHING -} - -/* 80CA02CC-80CA02EC 000F8C 0020+00 1/0 0/0 0/0 .text daObjNagaisu_execute__FP14daObjNagaisu_c */ -static void daObjNagaisu_execute(daObjNagaisu_c* param_0) { - // NONMATCHING -} - -/* 80CA02EC-80CA030C 000FAC 0020+00 1/0 0/0 0/0 .text daObjNagaisu_draw__FP14daObjNagaisu_c */ -static void daObjNagaisu_draw(daObjNagaisu_c* param_0) { - // NONMATCHING -} - -/* 80CA030C-80CA0354 000FCC 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80CA0400-80CA0400 0000A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */