From 9bebc819ab2e0152850b11d8d3871b24f490c082 Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Wed, 22 Oct 2025 21:48:04 -0400 Subject: [PATCH] obj_ikada and obj_ita matching (#2753) --- configure.py | 4 +- include/d/actor/d_a_e_ymb.h | 3 +- include/d/actor/d_a_obj_ikada.h | 44 +- include/d/actor/d_a_obj_ita.h | 57 +- src/d/actor/d_a_obj_ikada.cpp | 560 +++++++------------- src/d/actor/d_a_obj_ita.cpp | 888 +++++++++++--------------------- 6 files changed, 548 insertions(+), 1008 deletions(-) diff --git a/configure.py b/configure.py index cd95e2b4e0c..a29054887c2 100755 --- a/configure.py +++ b/configure.py @@ -2039,9 +2039,9 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_iceblock"), ActorRel(NonMatching, "d_a_obj_iceleaf"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_ihasi"), - ActorRel(NonMatching, "d_a_obj_ikada"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_ikada"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_inobone"), - ActorRel(NonMatching, "d_a_obj_ita"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_ita"), ActorRel(NonMatching, "d_a_obj_itamato"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kabuto"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_kag"), diff --git a/include/d/actor/d_a_e_ymb.h b/include/d/actor/d_a_e_ymb.h index 96677987b2c..2c2416348bf 100644 --- a/include/d/actor/d_a_e_ymb.h +++ b/include/d/actor/d_a_e_ymb.h @@ -13,7 +13,8 @@ * * @details * - */ +*/ + class daE_YMB_c : public fopEn_enemy_c { public: /* 8081615C */ int ctrlJoint(J3DJoint*, J3DModel*); diff --git a/include/d/actor/d_a_obj_ikada.h b/include/d/actor/d_a_obj_ikada.h index 483f8af5cf3..8d69c8e97e1 100644 --- a/include/d/actor/d_a_obj_ikada.h +++ b/include/d/actor/d_a_obj_ikada.h @@ -1,7 +1,9 @@ #ifndef D_A_OBJ_IKADA_H #define D_A_OBJ_IKADA_H -#include "f_op/f_op_actor_mng.h" +#include "d/d_bg_s_acch.h" +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_cc_d.h" /** * @ingroup actors-objects @@ -10,21 +12,41 @@ * * @details * - */ -class daObjIkada_c : public fopAc_ac_c { +*/ + +class daObjIkada_c : public dBgS_MoveBgActor { public: /* 80C269B8 */ void RideOn_Angle(s16&, f32, s16, f32); - /* 80C26A20 */ void Check_RideOn(); + /* 80C26A20 */ BOOL Check_RideOn(); /* 80C26C50 */ void initBaseMtx(); /* 80C26C7C */ void setBaseMtx(); - /* 80C27028 */ void CreateHeap(); - /* 80C270A0 */ void Create(); - /* 80C270E0 */ void Execute(Mtx**); - /* 80C27400 */ void Draw(); - /* 80C274A4 */ void Delete(); + /* 80C27028 */ inline int CreateHeap(); + /* 80C270A0 */ inline int Create(); + /* 80C270E0 */ inline int Execute(Mtx**); + /* 80C27400 */ inline int Draw(); + /* 80C274A4 */ inline int Delete(); -private: - /* 0x568 */ u8 field_0x568[0x844 - 0x568]; + inline cPhs__Step create(); + + /* 0x5A0 */ f32 field_0x5a0; + /* 0x5A4 */ f32 field_0x5a4; + /* 0x5A8 */ u8 field_0x5a8[0x5ac - 0x5a8]; + /* 0x5AC */ s16 field_0x5ac; + /* 0x5AE */ u8 field_0x5ae[0x5bc - 0x5ae]; + /* 0x5BC */ csXyz field_0x5bc; + /* 0x5C2 */ u8 field_0x5c2[0x5c4 - 0x5c2]; + /* 0x5C4 */ s16 field_0x5c4; + /* 0x5C6 */ s16 field_0x5c6; + /* 0x5C8 */ csXyz field_0x5c8; + /* 0x5D0 */ f32 field_0x5d0; + /* 0x5D4 */ s16 field_0x5d4; + /* 0x5D6 */ u8 field_0x5d6; + /* 0x5D8 */ cXyz field_0x5d8; + /* 0x5E4 */ dCcD_Stts mStts; + /* 0x620 */ J3DModel* mpModel; + /* 0x624 */ request_of_phase_process_class mPhase; + /* 0x62C */ dBgS_AcchCir mAcchCir; + /* 0x66C */ dBgS_ObjAcch mBgc; }; STATIC_ASSERT(sizeof(daObjIkada_c) == 0x844); diff --git a/include/d/actor/d_a_obj_ita.h b/include/d/actor/d_a_obj_ita.h index e87137a87ac..379473df1c4 100644 --- a/include/d/actor/d_a_obj_ita.h +++ b/include/d/actor/d_a_obj_ita.h @@ -1,7 +1,9 @@ #ifndef D_A_OBJ_ITA_H #define D_A_OBJ_ITA_H -#include "f_op/f_op_actor_mng.h" +#include "d/d_bg_s_acch.h" +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_cc_d.h" /** * @ingroup actors-objects @@ -10,30 +12,49 @@ * * @details * - */ -class daObjIta_c : public fopAc_ac_c { +*/ + +class daObjIta_c : public dBgS_MoveBgActor { public: /* 80C283AC */ void Search_Ymb(); - /* 80C28674 */ void Check_RideOn(); + /* 80C28674 */ BOOL Check_RideOn(); /* 80C28788 */ void initBaseMtx(); /* 80C287B4 */ void setBaseMtx(); - /* 80C28928 */ void create(); - /* 80C28BB0 */ void CreateHeap(); - /* 80C28C28 */ void Create(); - /* 80C28C70 */ void Execute(Mtx**); - /* 80C290AC */ void Draw(); - /* 80C29150 */ void Delete(); + /* 80C28928 */ inline cPhs__Step create(); + /* 80C28BB0 */ inline int CreateHeap(); + /* 80C28C28 */ inline int Create(); + /* 80C28C70 */ inline int Execute(Mtx**); + /* 80C290AC */ inline int Draw(); + /* 80C29150 */ inline int Delete(); + + f32 dummy2(); -private: - /* 0x568 */ u8 field_0x568[0x8dc - 0x568]; + /* 0x5A0 */ f32 field_0x5a0; + /* 0x5A4 */ f32 field_0x5a4; + /* 0x5A8 */ f32 field_0x5a8; + /* 0x5AC */ f32 field_0x5ac; + /* 0x5B0 */ s16 field_0x5b0; + /* 0x5B2 */ u8 field_0x5b2[0x5c0 - 0x5b2]; + /* 0x5C0 */ csXyz field_0x5c0; + /* 0x5C6 */ u8 field_0x5c6[0x5c8 - 0x5c6]; + /* 0x5C8 */ s16 field_0x5c8; + /* 0x5CA */ s16 field_0x5ca; + /* 0x5CC */ s16 field_0x5cc; + /* 0x5CE */ csXyz field_0x5ce; + /* 0x5D4 */ f32 field_0x5d4; + /* 0x5D8 */ cXyz field_0x5d8; + /* 0x5E4 */ u8 field_0x5e4; + /* 0x5E5 */ u8 field_0x5e5; + /* 0x5E6 */ s16 field_0x5e6; + /* 0x5E8 */ dCcD_Stts mStts; + /* 0x624 */ J3DModel* mpModel; + /* 0x628 */ Z2Creature mSound; + /* 0x6B8 */ request_of_phase_process_class mPhase; + /* 0x6C0 */ u8 field_0x6c0; + /* 0x6C4 */ dBgS_AcchCir mAcchCir; + /* 0x704 */ dBgS_ObjAcch mBgc; }; STATIC_ASSERT(sizeof(daObjIta_c) == 0x8dc); -class daObj_ITA_HIO_c { -public: - /* 80C2836C */ daObj_ITA_HIO_c(); - /* 80C29184 */ ~daObj_ITA_HIO_c(); -}; - #endif /* D_A_OBJ_ITA_H */ diff --git a/src/d/actor/d_a_obj_ikada.cpp b/src/d/actor/d_a_obj_ikada.cpp index 609a5200c83..097f9671e20 100644 --- a/src/d/actor/d_a_obj_ikada.cpp +++ b/src/d/actor/d_a_obj_ikada.cpp @@ -6,281 +6,219 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_obj_ikada.h" -#include "dol2asm.h" +#include "d/actor/d_a_player.h" +#include "d/d_s_play.h" - -// -// Forward References: -// - -extern "C" void RideOn_Angle__12daObjIkada_cFRsfsf(); -extern "C" void Check_RideOn__12daObjIkada_cFv(); -extern "C" void initBaseMtx__12daObjIkada_cFv(); -extern "C" void setBaseMtx__12daObjIkada_cFv(); -extern "C" static void rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c(); -extern "C" static void daObjIkada_Draw__FP12daObjIkada_c(); -extern "C" static void daObjIkada_Execute__FP12daObjIkada_c(); -extern "C" static bool daObjIkada_IsDelete__FP12daObjIkada_c(); -extern "C" static void daObjIkada_Delete__FP12daObjIkada_c(); -extern "C" static void daObjIkada_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void CreateHeap__12daObjIkada_cFv(); -extern "C" void Create__12daObjIkada_cFv(); -extern "C" void Execute__12daObjIkada_cFPPA3_A4_f(); -extern "C" void Draw__12daObjIkada_cFv(); -extern "C" void Delete__12daObjIkada_cFv(); -extern "C" static void func_80C274D8(); -extern "C" static void func_80C274E0(); -extern "C" extern char const* const d_a_obj_ikada__stringBase0; - -// -// External References: -// - -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz(); -extern "C" void waterCheck__11fopAcM_wt_cFPC4cXyz(); -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_cFPCcPCcP11dRes_info_ci(); -extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc(); -extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void cM_rndFX__Ff(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void cLib_addCalcAngleS__FPsssss(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80C274F0-80C274F8 000000 0004+04 3/3 0/0 0/0 .rodata @3668 */ -SECTION_RODATA static u8 const lit_3668[4 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C274F0, &lit_3668); - -/* 80C274F8-80C27500 000008 0008+00 1/3 0/0 0/0 .rodata @3670 */ -SECTION_RODATA static u8 const lit_3670[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C274F8, &lit_3670); - -/* 80C269B8-80C26A20 000078 0068+00 1/1 0/0 0/0 .text RideOn_Angle__12daObjIkada_cFRsfsf - */ -void daObjIkada_c::RideOn_Angle(s16& param_0, f32 param_1, s16 param_2, f32 param_3) { - // NONMATCHING +static f32 dummy() { + return 0.0f; } -/* ############################################################################################## */ -/* 80C27500-80C27508 000010 0008+00 0/1 0/0 0/0 .rodata @3725 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3725[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C27500, &lit_3725); -#pragma pop - -/* 80C27508-80C27510 000018 0008+00 0/1 0/0 0/0 .rodata @3726 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3726[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C27508, &lit_3726); -#pragma pop - -/* 80C27510-80C27518 000020 0008+00 0/1 0/0 0/0 .rodata @3727 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3727[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C27510, &lit_3727); -#pragma pop - -/* 80C27518-80C2751C 000028 0004+00 0/2 0/0 0/0 .rodata @3728 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3728 = 250.0f; -COMPILER_STRIP_GATE(0x80C27518, &lit_3728); -#pragma pop - -/* 80C2751C-80C27520 00002C 0004+00 0/3 0/0 0/0 .rodata @3729 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3729 = 300.0f; -COMPILER_STRIP_GATE(0x80C2751C, &lit_3729); -#pragma pop - -/* 80C27520-80C27524 000030 0004+00 0/2 0/0 0/0 .rodata @3730 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3730 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x80C27520, &lit_3730); -#pragma pop - -/* 80C27524-80C27528 000034 0004+00 0/3 0/0 0/0 .rodata @3731 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3731 = 100.0f; -COMPILER_STRIP_GATE(0x80C27524, &lit_3731); -#pragma pop +/* 80C269B8-80C26A20 000078 0068+00 1/1 0/0 0/0 .text RideOn_Angle__12daObjIkada_cFRsfsf */ +void daObjIkada_c::RideOn_Angle(s16& param_1, f32 param_2, s16 param_3, f32 param_4) { + cLib_addCalcAngleS(¶m_1, param_3 * (param_2 / param_4), 1, 0x100, 1); +} /* 80C26A20-80C26C50 0000E0 0230+00 1/1 0/0 0/0 .text Check_RideOn__12daObjIkada_cFv */ -void daObjIkada_c::Check_RideOn() { - // NONMATCHING +BOOL daObjIkada_c::Check_RideOn() { + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz& pos = fopAcM_GetPosition(player); + f32 fVar4 = 0.0f; + s16 target = 0; + + field_0x5d6 = 1; + s16 targetAngleY = cLib_targetAngleY(¤t.pos, &pos); + f32 fVar1 = current.pos.abs(pos); + f32 fVar2 = fVar1 * cM_scos(targetAngleY - shape_angle.y); + f32 fVar3 = -fVar1 * cM_ssin(targetAngleY - shape_angle.y); + RideOn_Angle(field_0x5c8.x, fVar2, 0x200, 250.0f); + RideOn_Angle(field_0x5c8.z, fVar3, 0x200, 300.0f); + fVar4 = 0.0f; + field_0x5d6 = 1; + + if (fopAcM_GetSpeedF(player) > fVar4) { + target = 0x400; + field_0x5ac = 0x150; + } + + field_0x5d0 = HREG_F(3) * (1.0f - (std::abs(fVar2) / 2500.0f) * (1.0f - std::abs(fVar3) / 300.0f)); + cLib_addCalc(&field_0x5a0, target, HREG_F(13) + 0.05f, 100.0f, 0.0f); + + return FALSE; } /* 80C26C50-80C26C7C 000310 002C+00 1/1 0/0 0/0 .text initBaseMtx__12daObjIkada_cFv */ void daObjIkada_c::initBaseMtx() { - // NONMATCHING + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + setBaseMtx(); } /* 80C26C7C-80C26CD8 00033C 005C+00 2/2 0/0 0/0 .text setBaseMtx__12daObjIkada_cFv */ void daObjIkada_c::setBaseMtx() { - // NONMATCHING + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), mBgMtx); } -/* ############################################################################################## */ -/* 80C27528-80C2752C 000038 0004+00 1/1 0/0 0/0 .rodata @3767 */ -SECTION_RODATA static f32 const lit_3767 = -1.0f; -COMPILER_STRIP_GATE(0x80C27528, &lit_3767); +/* 80C26CD8-80C26D3C 000398 0064+00 1/1 0/0 0/0 .text rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */ +static void rideCallBack(dBgW* param_1, fopAc_ac_c* a_this, fopAc_ac_c* param_3) { + daObjIkada_c* i_this = (daObjIkada_c*)a_this; + daPy_py_c* player = daPy_getPlayerActorClass(); -/* 80C2752C-80C27530 00003C 0004+00 1/1 0/0 0/0 .rodata @3768 */ -SECTION_RODATA static f32 const lit_3768 = -6.0f; -COMPILER_STRIP_GATE(0x80C2752C, &lit_3768); + if (i_this->field_0x5d6 == 0 && player->current.pos.y - player->old.pos.y < -1.0f) { + i_this->field_0x5a4 = -6.0f; + } -/* 80C26CD8-80C26D3C 000398 0064+00 1/1 0/0 0/0 .text - * rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */ -static void rideCallBack(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) { - // NONMATCHING + i_this->Check_RideOn(); } -/* 80C26D3C-80C26D68 0003FC 002C+00 1/0 0/0 0/0 .text daObjIkada_Draw__FP12daObjIkada_c - */ -static void daObjIkada_Draw(daObjIkada_c* param_0) { - // NONMATCHING +/* 80C26D3C-80C26D68 0003FC 002C+00 1/0 0/0 0/0 .text daObjIkada_Draw__FP12daObjIkada_c */ +static int daObjIkada_Draw(daObjIkada_c* i_this) { + return i_this->MoveBGDraw(); } -/* 80C26D68-80C26D88 000428 0020+00 1/0 0/0 0/0 .text daObjIkada_Execute__FP12daObjIkada_c */ -static void daObjIkada_Execute(daObjIkada_c* param_0) { - // NONMATCHING +/* 80C26D68-80C26D88 000428 0020+00 1/0 0/0 0/0 .text daObjIkada_Execute__FP12daObjIkada_c */ +static int daObjIkada_Execute(daObjIkada_c* i_this) { + return i_this->MoveBGExecute(); } -/* 80C26D88-80C26D90 000448 0008+00 1/0 0/0 0/0 .text daObjIkada_IsDelete__FP12daObjIkada_c */ -static bool daObjIkada_IsDelete(daObjIkada_c* param_0) { - return true; +/* 80C26D88-80C26D90 000448 0008+00 1/0 0/0 0/0 .text daObjIkada_IsDelete__FP12daObjIkada_c */ +static int daObjIkada_IsDelete(daObjIkada_c* i_this) { + return 1; } -/* 80C26D90-80C26DB4 000450 0024+00 1/0 0/0 0/0 .text daObjIkada_Delete__FP12daObjIkada_c - */ -static void daObjIkada_Delete(daObjIkada_c* param_0) { - // NONMATCHING +/* 80C26D90-80C26DB4 000450 0024+00 1/0 0/0 0/0 .text daObjIkada_Delete__FP12daObjIkada_c */ +static int daObjIkada_Delete(daObjIkada_c* i_this) { + fpc_ProcID id = fopAcM_GetID(i_this); + i_this->MoveBGDelete(); + return 1; } -/* ############################################################################################## */ -/* 80C27530-80C27534 000040 0004+00 0/1 0/0 0/0 .rodata @3846 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3846 = 200.0f; -COMPILER_STRIP_GATE(0x80C27530, &lit_3846); -#pragma pop - -/* 80C27534-80C27538 000044 0004+00 0/1 0/0 0/0 .rodata @3847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3847 = 32000.0f; -COMPILER_STRIP_GATE(0x80C27534, &lit_3847); -#pragma pop - -/* 80C27538-80C2753C 000048 0004+00 0/1 0/0 0/0 .rodata @3848 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3848 = -250.0f; -COMPILER_STRIP_GATE(0x80C27538, &lit_3848); -#pragma pop - -/* 80C2753C-80C27540 00004C 0004+00 0/1 0/0 0/0 .rodata @3849 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3849 = -50.0f; -COMPILER_STRIP_GATE(0x80C2753C, &lit_3849); -#pragma pop - -/* 80C27540-80C27544 000050 0004+00 0/1 0/0 0/0 .rodata @3850 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3850 = -300.0f; -COMPILER_STRIP_GATE(0x80C27540, &lit_3850); -#pragma pop - -/* 80C27544-80C27548 000054 0004+00 0/1 0/0 0/0 .rodata @3851 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3851 = 50.0f; -COMPILER_STRIP_GATE(0x80C27544, &lit_3851); -#pragma pop - -/* 80C27564-80C27564 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C27564 = "M_Ikada"; -SECTION_DEAD static char const* const stringBase_80C2756C = "M_Ikada.dzb"; -#pragma pop - /* 80C27584-80C27588 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_ikada__stringBase0; +static char* l_arcName = "M_Ikada"; + +/* 80C27028-80C270A0 0006E8 0078+00 1/0 0/0 0/0 .text CreateHeap__12daObjIkada_cFv */ +int daObjIkada_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "M_Ikada.bmd"); + JUT_ASSERT(82, modelData != NULL); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } + + return 1; +} + +cPhs__Step daObjIkada_c::create() { + fopAcM_ct(this, daObjIkada_c); + + cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhase, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "M_Ikada.dzb"); + JUT_ASSERT(108, dzb_id != -1); + + phase = (cPhs__Step)MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0xC00, NULL); + if (phase == cPhs_ERROR_e) { + return phase; + } + } + + mBgc.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL); + mAcchCir.SetWall(100.0f, 200.0f); + field_0x5d4 = cM_rndFX(32000.0f); + fopAcM_setCullSizeBox(this, -250.0f, -50.0f, -300.0f, 250.0f, 50.0f, 300.0f); + + cXyz pos(current.pos.x, current.pos.y + 300.0f, current.pos.z); + if (fopAcM_wt_c::waterCheck(&pos)) { + current.pos.y = fopAcM_wt_c::getWaterY(); + } + + return phase; +} + +/* 80C26DB4-80C26FB8 000474 0204+00 1/0 0/0 0/0 .text daObjIkada_Create__FP10fopAc_ac_c */ +static int daObjIkada_Create(fopAc_ac_c* a_this) { + daObjIkada_c* i_this = (daObjIkada_c*)a_this; + fpc_ProcID id = fopAcM_GetID(a_this); + return i_this->create(); +} + +/* 80C270A0-80C270E0 000760 0040+00 1/0 0/0 0/0 .text Create__12daObjIkada_cFv */ +int daObjIkada_c::Create() { + initBaseMtx(); + mpBgW->SetRideCallback(rideCallBack); + return cPhs_COMPLEATE_e; +} + +/* 80C270E0-80C27400 0007A0 0320+00 1/0 0/0 0/0 .text Execute__12daObjIkada_cFPPA3_A4_f */ +int daObjIkada_c::Execute(Mtx** mtx) { + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz& unk = fopAcM_GetPosition(player); + cXyz pos(current.pos.x, current.pos.y + 300.0f, current.pos.z); + f32 posY = current.pos.y; + + if (fopAcM_wt_c::waterCheck(&pos)) { + posY = fopAcM_wt_c::getWaterY(); + } + + #ifdef DEBUG + field_0x5c4 = field_0x5c4 + (((TREG_S(1) + 0x350) + (HREG_F(1) + 2.0f)) * field_0x5a0 + field_0x5a4 * HREG_F(9)); + #else + field_0x5c4 = field_0x5c4 + (((HREG_F(1) + 2.0f) * field_0x5a0) + 848.0f) + field_0x5a4 * HREG_F(9); + #endif + + #ifdef DEBUG + field_0x5c6 = field_0x5c6 + (((TREG_S(2) + 0x350) + (HREG_F(2) + 2.0f)) * field_0x5a0 + field_0x5a4 * HREG_F(9)); + #else + field_0x5c6 = field_0x5c6 + (((HREG_F(2) + 2.0f) * field_0x5a0) + 848.0f) + field_0x5a4 * HREG_F(9); + #endif + + cLib_addCalc(¤t.pos.y, field_0x5d0 + (posY + field_0x5a4 * 11.0f + ((HREG_F(4) + 5.0f) * cM_ssin(field_0x5c6 + oREG_S(3) + field_0x5d4))), + 0.1f, 15.0f, 0.1f); + cLib_addCalcAngleS(&shape_angle.x, field_0x5c8.x + (nREG_F(0) + 1.0f) * field_0x5ac * cM_ssin(oREG_S(1) + 0x2000 + field_0x5c4 + field_0x5d4), 2, 0x100, 1); + cLib_addCalcAngleS(&shape_angle.z, field_0x5c8.z + (nREG_F(1) + 1.0f) * field_0x5ac * cM_ssin(field_0x5c6 + oREG_S(2) + field_0x5d4), 2, 0x100, 1); + + if (field_0x5d6 == 0) { + cLib_addCalcAngleS(&field_0x5c8.x, 0, 2, 0x100, 1); + cLib_addCalcAngleS(&field_0x5c8.z, 0, 2, 0x100, 1); + cLib_addCalc(&field_0x5d0, 0.0f, 0.2f, 100.0f, 0.0f); + cLib_addCalc(&field_0x5a0, 0.0f, HREG_F(13) + 0.05f, 100.0f, 0.0f); + } + + cLib_addCalc(&field_0x5a4, 0.0f, 0.2f, 100.0f, 0.0f); + field_0x5d6 = 0; + field_0x5ac = 0x120; + fopAcM_posMoveF(this, mStts.GetCCMoveP()); + *mtx = &mBgMtx; + setBaseMtx(); + mBgc.CrrPos(dComIfG_Bgsp()); + + return 1; +} + +/* 80C27400-80C274A4 000AC0 00A4+00 1/0 0/0 0/0 .text Draw__12daObjIkada_cFv */ +int daObjIkada_c::Draw() { + g_env_light.settingTevStruct(16, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + return 1; +} + +/* 80C274A4-80C274D8 000B64 0034+00 1/0 0/0 0/0 .text Delete__12daObjIkada_cFv */ +int daObjIkada_c::Delete() { + dComIfG_resDelete(&mPhase, l_arcName); + return 1; +} /* 80C27588-80C275A8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjIkada_Method */ static actor_method_class l_daObjIkada_Method = { - (process_method_func)daObjIkada_Create__FP10fopAc_ac_c, - (process_method_func)daObjIkada_Delete__FP12daObjIkada_c, - (process_method_func)daObjIkada_Execute__FP12daObjIkada_c, - (process_method_func)daObjIkada_IsDelete__FP12daObjIkada_c, - (process_method_func)daObjIkada_Draw__FP12daObjIkada_c, + (process_method_func)daObjIkada_Create, + (process_method_func)daObjIkada_Delete, + (process_method_func)daObjIkada_Execute, + (process_method_func)daObjIkada_IsDelete, + (process_method_func)daObjIkada_Draw, }; /* 80C275A8-80C275D8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Ikada */ @@ -300,137 +238,3 @@ extern actor_process_profile_definition g_profile_Obj_Ikada = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80C275D8-80C275FC 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80C274E0, - (void*)NULL, - (void*)NULL, - (void*)func_80C274D8, -}; - -/* 80C275FC-80C27624 000078 0028+00 1/1 0/0 0/0 .data __vt__12daObjIkada_c */ -SECTION_DATA extern void* __vt__12daObjIkada_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__12daObjIkada_cFv, - (void*)Create__12daObjIkada_cFv, - (void*)Execute__12daObjIkada_cFPPA3_A4_f, - (void*)Draw__12daObjIkada_cFv, - (void*)Delete__12daObjIkada_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; - -/* 80C26DB4-80C26FB8 000474 0204+00 1/0 0/0 0/0 .text daObjIkada_Create__FP10fopAc_ac_c - */ -static void daObjIkada_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80C26FB8-80C27028 000678 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C27564-80C27564 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C27578 = "M_Ikada.bmd"; -#pragma pop - -/* 80C27028-80C270A0 0006E8 0078+00 1/0 0/0 0/0 .text CreateHeap__12daObjIkada_cFv */ -void daObjIkada_c::CreateHeap() { - // NONMATCHING -} - -/* 80C270A0-80C270E0 000760 0040+00 1/0 0/0 0/0 .text Create__12daObjIkada_cFv */ -void daObjIkada_c::Create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C27548-80C2754C 000058 0004+00 0/1 0/0 0/0 .rodata @3912 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3912 = 848.0f; -COMPILER_STRIP_GATE(0x80C27548, &lit_3912); -#pragma pop - -/* 80C2754C-80C27550 00005C 0004+00 0/1 0/0 0/0 .rodata @3913 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3913 = 2.0f; -COMPILER_STRIP_GATE(0x80C2754C, &lit_3913); -#pragma pop - -/* 80C27550-80C27554 000060 0004+00 0/1 0/0 0/0 .rodata @3914 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3914 = 11.0f; -COMPILER_STRIP_GATE(0x80C27550, &lit_3914); -#pragma pop - -/* 80C27554-80C27558 000064 0004+00 0/1 0/0 0/0 .rodata @3915 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3915 = 5.0f; -COMPILER_STRIP_GATE(0x80C27554, &lit_3915); -#pragma pop - -/* 80C27558-80C2755C 000068 0004+00 0/1 0/0 0/0 .rodata @3916 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3916 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80C27558, &lit_3916); -#pragma pop - -/* 80C2755C-80C27560 00006C 0004+00 0/1 0/0 0/0 .rodata @3917 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3917 = 15.0f; -COMPILER_STRIP_GATE(0x80C2755C, &lit_3917); -#pragma pop - -/* 80C27560-80C27564 000070 0004+00 0/1 0/0 0/0 .rodata @3918 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3918 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80C27560, &lit_3918); -#pragma pop - -/* 80C270E0-80C27400 0007A0 0320+00 1/0 0/0 0/0 .text Execute__12daObjIkada_cFPPA3_A4_f - */ -void daObjIkada_c::Execute(Mtx** param_0) { - // NONMATCHING -} - -/* 80C27400-80C274A4 000AC0 00A4+00 1/0 0/0 0/0 .text Draw__12daObjIkada_cFv */ -void daObjIkada_c::Draw() { - // NONMATCHING -} - -/* 80C274A4-80C274D8 000B64 0034+00 1/0 0/0 0/0 .text Delete__12daObjIkada_cFv */ -void daObjIkada_c::Delete() { - // NONMATCHING -} - -/* 80C274D8-80C274E0 000B98 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80C274D8() { - // NONMATCHING -} - -/* 80C274E0-80C274E8 000BA0 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80C274E0() { - // NONMATCHING -} - -/* 80C27564-80C27564 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_ita.cpp b/src/d/actor/d_a_obj_ita.cpp index 4b9ac7042cb..083a895716c 100644 --- a/src/d/actor/d_a_obj_ita.cpp +++ b/src/d/actor/d_a_obj_ita.cpp @@ -6,147 +6,304 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_obj_ita.h" -#include "dol2asm.h" +#include "d/actor/d_a_e_ymb.h" +#include "d/actor/d_a_player.h" +#include "d/d_s_play.h" +class daObj_ITA_HIO_c : public JORReflexible { +public: + /* 80C2836C */ daObj_ITA_HIO_c(); + /* 80C29184 */ virtual ~daObj_ITA_HIO_c() {} + void genMessage(JORMContext* ctx) { + ctx->genLabel("ヒメクジ", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("サーチエリア", &search_area, 0.0f, 2000.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("飛ばし方向スピード", &launch_dir_spd, 0.0f, -100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("飛ばし方向Yスピード", &launch_dir_y_spd, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("重力設定", &gravity_settings, 0.0f, -20.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + } - -// -// Forward References: -// - -extern "C" void __ct__15daObj_ITA_HIO_cFv(); -extern "C" void Search_Ymb__10daObjIta_cFv(); -extern "C" void Check_RideOn__10daObjIta_cFv(); -extern "C" void initBaseMtx__10daObjIta_cFv(); -extern "C" void setBaseMtx__10daObjIta_cFv(); -extern "C" static void rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c(); -extern "C" static void daObjIta_Draw__FP10daObjIta_c(); -extern "C" static void daObjIta_Execute__FP10daObjIta_c(); -extern "C" static bool daObjIta_IsDelete__FP10daObjIta_c(); -extern "C" static void daObjIta_Delete__FP10daObjIta_c(); -extern "C" static void daObjIta_Create__FP10fopAc_ac_c(); -extern "C" void create__10daObjIta_cFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void CreateHeap__10daObjIta_cFv(); -extern "C" void Create__10daObjIta_cFv(); -extern "C" void Execute__10daObjIta_cFPPA3_A4_f(); -extern "C" void Draw__10daObjIta_cFv(); -extern "C" void Delete__10daObjIta_cFv(); -extern "C" void __dt__15daObj_ITA_HIO_cFv(); -extern "C" void func_80C291CC(void* _this, s16); -extern "C" void __sinit_d_a_obj_ita_cpp(); -extern "C" static void func_80C29214(); -extern "C" static void func_80C2921C(); -extern "C" extern char const* const d_a_obj_ita__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void fopAcM_SearchByName__FsPP10fopAc_ac_c(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz(); -extern "C" void waterCheck__11fopAcM_wt_cFPC4cXyz(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci(); -extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc(); -extern "C" void StartQuake__12dVibration_cFPCUcii4cXyz(); -extern "C" void StopQuake__12dVibration_cFi(); -extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_addCalcAngleS__FPsssss(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __ct__10Z2CreatureFv(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void setHitBoardSe__9daE_YMB_cFv(); -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80C29238-80C2923C 000000 0004+00 5/5 0/0 0/0 .rodata @3649 */ -SECTION_RODATA static f32 const lit_3649 = 600.0f; -COMPILER_STRIP_GATE(0x80C29238, &lit_3649); - -/* 80C2923C-80C29240 000004 0004+00 0/1 0/0 0/0 .rodata @3650 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3650 = -16.0f; -COMPILER_STRIP_GATE(0x80C2923C, &lit_3650); -#pragma pop - -/* 80C29240-80C29244 000008 0004+00 0/1 0/0 0/0 .rodata @3651 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3651 = 44.0f; -COMPILER_STRIP_GATE(0x80C29240, &lit_3651); -#pragma pop - -/* 80C29244-80C29248 00000C 0004+00 0/1 0/0 0/0 .rodata @3652 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3652 = -9.0f; -COMPILER_STRIP_GATE(0x80C29244, &lit_3652); -#pragma pop - -/* 80C292E8-80C292E8 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C292E8 = "M_Ita"; -#pragma pop + /* ヒメクジ */ + /* 0x04 */ s8 id; + /* 0x08 */ f32 search_area; + /* 0x0C */ f32 launch_dir_spd; + /* 0x10 */ f32 launch_dir_y_spd; + /* 0x14 */ f32 gravity_settings; +}; /* 80C29318-80C2931C -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_ita__stringBase0; +static char* l_arcName = "M_Ita"; + +/* 80C2836C-80C283AC 0000EC 0040+00 1/1 0/0 0/0 .text __ct__15daObj_ITA_HIO_cFv */ +daObj_ITA_HIO_c::daObj_ITA_HIO_c() { + id = -1; + search_area = 600.0f; + launch_dir_spd = -16.0f; + launch_dir_y_spd = 44.0f; + gravity_settings = -9.0f; +} + +static f32 dummy() { + return 0.0f; +} + +// Fakematch??? - Only way I could figure out how to get proper rodata placement +f32 daObjIta_c::dummy2() { + return field_0x5c8; +} + +/* 80C293DC-80C293F4 000014 0018+00 1/1 0/0 0/0 .bss l_HIO */ +static daObj_ITA_HIO_c l_HIO; + +namespace { + /* 80C293F4-80C293F8 00002C 0004+00 2/2 0/0 0/0 .bss e_ymb__25@unnamed@d_a_obj_ita_cpp@ */ + static daE_YMB_c* e_ymb; + + /* 80C293F8-80C293FC 000030 0004+00 2/2 0/0 0/0 .bss e_ymb_Pos__25@unnamed@d_a_obj_ita_cpp@ */ + static cXyz* e_ymb_Pos; +} // namespace + +/* 80C283AC-80C28674 00012C 02C8+00 1/1 0/0 0/0 .text Search_Ymb__10daObjIta_cFv */ +void daObjIta_c::Search_Ymb() { + f32 zero = 0.0f; + cXyz pos(e_ymb_Pos->x - current.pos.x, e_ymb_Pos->y - current.pos.y, e_ymb_Pos->z - current.pos.z); + + mDoMtx_stack_c::YrotS(-shape_angle.y); + mDoMtx_stack_c::multVec(&pos, &pos); + + if (pos.x < BREG_F(0) + 750.0f && pos.x > -750.0f - BREG_F(0) && pos.z < 450.0f + BREG_F(1) && pos.z > -450.0f - BREG_F(1) && pos.y < BREG_F(7) + 600.0f) { + f32 speed_f = fopAcM_GetSpeedF(e_ymb); + zero = 0.0f; + if (speed_f > zero) { + field_0x5b0 = speed_f * (BREG_F(6) + 16.0f) + 256.0f; + e_ymb->setHitBoardSe(); + field_0x5a0 = speed_f * (BREG_F(5) + 31.0f); + + if (field_0x5e5 == 0 && field_0x6c0 == 1) { + field_0x5a8 = -5.0f; + u8 i_pattern[6] = {0, 32, 1, 0, 16, 0}; + dComIfGp_getVibration().StartQuake(i_pattern, 1, 1, cXyz(0.0f, 1.0f, 0.0f)); + field_0x5e5 = 1; + field_0x5e6 = 90; + + if (field_0x5a0 > 300.0f && field_0x5a0 < 1900.0f) { + fopAcM_seStart(this, Z2SE_OBJ_FLOATBOARD_SWING, 0); + } else if (field_0x5a0 >= 1900.0f) { + fopAcM_seStart(this, Z2SE_OBJ_FLOATBOARD_SWING_L, 0); + } + } + + cLib_addCalc(&field_0x5d4, BREG_F(8) + -100.0f, 0.5f, 100.0f, 0.0f); + } + } else if (field_0x5e6 == 1) { + dComIfGp_getVibration().StopQuake(31); + field_0x5e5 = 0; + } +} + +/* 80C28674-80C28788 0003F4 0114+00 1/1 0/0 0/0 .text Check_RideOn__10daObjIta_cFv */ +BOOL daObjIta_c::Check_RideOn() { + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz& pos = fopAcM_GetPosition(player); + + field_0x6c0 = 1; + cXyz vecTrans(pos.x - current.pos.x, pos.y - current.pos.y, pos.z - current.pos.z); + mDoMtx_stack_c::YrotS(-shape_angle.y); + mDoMtx_stack_c::multVec(&vecTrans, &vecTrans); + + if (vecTrans.x < 1000.0f && vecTrans.x > -1000.0f && vecTrans.z < 700.0f && vecTrans.z > -700.0f && fopAcM_GetSpeedF(player) > 0.0f) { + cLib_addCalcAngleS(&field_0x5b0, 0x150, 11, 0x100, 0); + field_0x5c8 = 0x400; + } + + return FALSE; +} + +/* 80C28788-80C287B4 000508 002C+00 1/1 0/0 0/0 .text initBaseMtx__10daObjIta_cFv */ +void daObjIta_c::initBaseMtx() { + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + setBaseMtx(); +} + +/* 80C287B4-80C28838 000534 0084+00 2/2 0/0 0/0 .text setBaseMtx__10daObjIta_cFv */ +void daObjIta_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(shape_angle.y); + mDoMtx_stack_c::XrotM(shape_angle.z); + mDoMtx_stack_c::ZrotM(shape_angle.x); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), mBgMtx); +} + +/* 80C28838-80C28890 0005B8 0058+00 1/1 0/0 0/0 .text rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */ +static void rideCallBack(dBgW* param_1, fopAc_ac_c* a_this, fopAc_ac_c* i_player) { + daObjIta_c* i_this = (daObjIta_c*)a_this; + + if (fopAcM_GetName(i_player) == PROC_ALINK) { + daPy_py_c* player = daPy_getPlayerActorClass(); + if (i_this->field_0x5ac < 0.0f) { + i_this->field_0x5a8 = i_this->field_0x5ac * 0.8f; + i_this->field_0x5ac = 0.0f; + } + + i_this->Check_RideOn(); + } +} + +/* 80C28890-80C288BC 000610 002C+00 1/0 0/0 0/0 .text daObjIta_Draw__FP10daObjIta_c */ +static int daObjIta_Draw(daObjIta_c* i_this) { + return i_this->MoveBGDraw(); +} + +/* 80C288BC-80C288DC 00063C 0020+00 1/0 0/0 0/0 .text daObjIta_Execute__FP10daObjIta_c */ +static int daObjIta_Execute(daObjIta_c* i_this) { + return i_this->MoveBGExecute(); +} + +/* 80C288DC-80C288E4 00065C 0008+00 1/0 0/0 0/0 .text daObjIta_IsDelete__FP10daObjIta_c */ +static int daObjIta_IsDelete(daObjIta_c* i_this) { + return 1; +} + +/* 80C288E4-80C28908 000664 0024+00 1/0 0/0 0/0 .text daObjIta_Delete__FP10daObjIta_c */ +static int daObjIta_Delete(daObjIta_c* i_this) { + fpc_ProcID id = fopAcM_GetID(i_this); + i_this->MoveBGDelete(); + return 1; +} + +/* 80C28908-80C28928 000688 0020+00 1/0 0/0 0/0 .text daObjIta_Create__FP10fopAc_ac_c */ +static int daObjIta_Create(fopAc_ac_c* a_this) { + daObjIta_c* i_this = (daObjIta_c*)a_this; + fpc_ProcID id = fopAcM_GetID(a_this); + return i_this->create(); +} + +/* 80C28BB0-80C28C28 000930 0078+00 1/0 0/0 0/0 .text CreateHeap__10daObjIta_cFv */ +int daObjIta_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "M_FloatingDust00.bmd"); + JUT_ASSERT(735, modelData != NULL); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } + + return 1; +} + +/* 80C28928-80C28B40 0006A8 0218+00 1/1 0/0 0/0 .text create__10daObjIta_cFv */ +cPhs__Step daObjIta_c::create() { + fopAcM_ct(this, daObjIta_c); + + cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhase, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "M_FloatingDust00.dzb"); + JUT_ASSERT(763, dzb_id != -1); + phase = (cPhs__Step)MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x1320, NULL); + if (phase == cPhs_ERROR_e) { + return phase; + } + } + + mBgc.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL); + mAcchCir.SetWall(100.0f, 200.0f); + field_0x5b0 = 0x100; + mBgc.CrrPos(dComIfG_Bgsp()); + fopAcM_setCullSizeBox(this, -750.0f, -50.0f, -450.0f, 750.0f, 50.0f, 450.0f); + + cXyz pos(current.pos.x, current.pos.y + 300.0f, current.pos.z); + if (fopAcM_wt_c::waterCheck(&pos)) { + current.pos.y = oREG_F(0) + HREG_F(0) + fopAcM_wt_c::getWaterY() + 50.0f; + } + + return phase; +} + +/* 80C28C28-80C28C70 0009A8 0048+00 1/0 0/0 0/0 .text Create__10daObjIta_cFv */ +int daObjIta_c::Create() { + initBaseMtx(); + mpBgW->SetRideCallback(rideCallBack); + fopAcM_wt_c::waterCheck(¤t.pos); + return cPhs_COMPLEATE_e; +} + +/* 80C28C70-80C290AC 0009F0 043C+00 1/0 0/0 0/0 .text Execute__10daObjIta_cFPPA3_A4_f */ +int daObjIta_c::Execute(Mtx** mtx) { + fopAcM_seStartLevel(this, Z2SE_OBJ_FLOATBOARD, 0); + + field_0x5e6--; + if (field_0x5e6 < 0) { + field_0x5e6 = 0; + } + + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz& playerSpeed = fopAcM_GetSpeed(player); + + if (fopAcM_SearchByName(PROC_E_YMB, (fopAc_ac_c**)&e_ymb) != 0 && e_ymb != NULL) { + e_ymb_Pos = &fopAcM_GetPosition(e_ymb); + } + + if (playerSpeed.y != 0.0f) { + field_0x5ac = playerSpeed.y; + } + + field_0x5ca += (TREG_F(1) + 768.0f) + (HREG_F(1) + 2.0f) * field_0x5a4 + (BREG_F(3) + 2.0f) * field_0x5a0; + field_0x5cc += (TREG_F(2) + 768.0f) + (HREG_F(2) + 2.0f) * field_0x5a4 + (BREG_F(3) + 2.0f) * field_0x5a0; + + if (e_ymb != NULL) { + Search_Ymb(); + } + + f32 posY = current.pos.y; + cXyz pos(current.pos.x, current.pos.y + 300.0f, current.pos.z); + if (fopAcM_wt_c::waterCheck(&pos)) { + posY = fopAcM_wt_c::getWaterY() - 40.0f; + } + + cLib_addCalc(¤t.pos.y, field_0x5d4 + (posY + 60.0f + field_0x5a8 * (HREG_F(0) + 5.0f) + cM_ssin(field_0x5cc) * 20.0f), 0.1f, 15.0f, 0.1f); + cLib_addCalcAngleS(&shape_angle.x, field_0x5ce.x + (nREG_F(0) + 1.0f) * field_0x5b0 * cM_ssin(field_0x5ca + oREG_F(1) + 0x2000), 2, 0x1000, 1); + cLib_addCalcAngleS(&shape_angle.z, field_0x5ce.z + (nREG_F(1) + 1.0f) * field_0x5b0 * cM_ssin(field_0x5cc), 2, 0x1000, 1); + cLib_addCalc(&field_0x5a4, field_0x5c8, HREG_F(13) + 0.05f, 100.0f, 0.0f); + cLib_addCalc2(&field_0x5a8, 0.0f, HREG_F(1) + 0.1f, 10.0f); + cLib_addCalc(&field_0x5a0, 0.0f, HREG_F(13) + 0.01f, 100.0f, 0.0f); + cLib_addCalc(&field_0x5d4, 0.0f, 0.1f, 100.0f, 0.0f); + cLib_addCalcAngleS(&field_0x5b0, 0x100, 11, 0x100, 0); + cLib_addCalcAngleS(&field_0x5ce.x, 0, 2, 0x100, 1); + cLib_addCalcAngleS(&field_0x5ce.z, 0, 2, 0x100, 1); + + field_0x5c8 = 0; + field_0x6c0 = 0; + fopAcM_posMoveF(this, mStts.GetCCMoveP()); + *mtx = &mBgMtx; + setBaseMtx(); + mBgc.CrrPos(dComIfG_Bgsp()); + + return 1; +} + +/* 80C290AC-80C29150 000E2C 00A4+00 1/0 0/0 0/0 .text Draw__10daObjIta_cFv */ +int daObjIta_c::Draw() { + g_env_light.settingTevStruct(16, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + return 1; +} + +/* 80C29150-80C29184 000ED0 0034+00 1/0 0/0 0/0 .text Delete__10daObjIta_cFv */ +int daObjIta_c::Delete() { + dComIfG_resDelete(&mPhase, l_arcName); + return 1; +} /* 80C2931C-80C2933C -00001 0020+00 1/0 0/0 0/0 .data l_daObjIta_Method */ static actor_method_class l_daObjIta_Method = { - (process_method_func)daObjIta_Create__FP10fopAc_ac_c, - (process_method_func)daObjIta_Delete__FP10daObjIta_c, - (process_method_func)daObjIta_Execute__FP10daObjIta_c, - (process_method_func)daObjIta_IsDelete__FP10daObjIta_c, - (process_method_func)daObjIta_Draw__FP10daObjIta_c, + (process_method_func)daObjIta_Create, + (process_method_func)daObjIta_Delete, + (process_method_func)daObjIta_Execute, + (process_method_func)daObjIta_IsDelete, + (process_method_func)daObjIta_Draw, }; /* 80C2933C-80C2936C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_ITA */ @@ -166,468 +323,3 @@ extern actor_process_profile_definition g_profile_Obj_ITA = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80C2936C-80C29390 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80C2921C, - (void*)NULL, - (void*)NULL, - (void*)func_80C29214, -}; - -/* 80C29390-80C293B8 000078 0028+00 1/1 0/0 0/0 .data __vt__10daObjIta_c */ -SECTION_DATA extern void* __vt__10daObjIta_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__10daObjIta_cFv, - (void*)Create__10daObjIta_cFv, - (void*)Execute__10daObjIta_cFPPA3_A4_f, - (void*)Draw__10daObjIta_cFv, - (void*)Delete__10daObjIta_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; - -/* 80C293B8-80C293C4 0000A0 000C+00 2/2 0/0 0/0 .data __vt__15daObj_ITA_HIO_c */ -SECTION_DATA extern void* __vt__15daObj_ITA_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daObj_ITA_HIO_cFv, -}; - -/* 80C2836C-80C283AC 0000EC 0040+00 1/1 0/0 0/0 .text __ct__15daObj_ITA_HIO_cFv */ -daObj_ITA_HIO_c::daObj_ITA_HIO_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C29248-80C29250 000010 0004+04 1/4 0/0 0/0 .rodata @3674 */ -SECTION_RODATA static u8 const lit_3674[4 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C29248, &lit_3674); - -/* 80C29250-80C29258 000018 0008+00 0/1 0/0 0/0 .rodata @3676 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3676[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C29250, &lit_3676); -#pragma pop - -/* 80C29258-80C29260 000020 0006+02 0/1 0/0 0/0 .rodata @3694 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3694[6 + 2 /* padding */] = { - 0x00, - 0x20, - 0x01, - 0x00, - 0x10, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C29258, &lit_3694); -#pragma pop - -/* 80C29260-80C29264 000028 0004+00 0/2 0/0 0/0 .rodata @3743 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3743 = 750.0f; -COMPILER_STRIP_GATE(0x80C29260, &lit_3743); -#pragma pop - -/* 80C29264-80C29268 00002C 0004+00 0/2 0/0 0/0 .rodata @3744 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3744 = -750.0f; -COMPILER_STRIP_GATE(0x80C29264, &lit_3744); -#pragma pop - -/* 80C29268-80C2926C 000030 0004+00 0/2 0/0 0/0 .rodata @3745 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3745 = 450.0f; -COMPILER_STRIP_GATE(0x80C29268, &lit_3745); -#pragma pop - -/* 80C2926C-80C29270 000034 0004+00 0/2 0/0 0/0 .rodata @3746 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3746 = -450.0f; -COMPILER_STRIP_GATE(0x80C2926C, &lit_3746); -#pragma pop - -/* 80C29270-80C29274 000038 0004+00 0/1 0/0 0/0 .rodata @3747 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3747 = 256.0f; -COMPILER_STRIP_GATE(0x80C29270, &lit_3747); -#pragma pop - -/* 80C29274-80C29278 00003C 0004+00 0/1 0/0 0/0 .rodata @3748 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3748 = 16.0f; -COMPILER_STRIP_GATE(0x80C29274, &lit_3748); -#pragma pop - -/* 80C29278-80C2927C 000040 0004+00 0/1 0/0 0/0 .rodata @3749 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3749 = 31.0f; -COMPILER_STRIP_GATE(0x80C29278, &lit_3749); -#pragma pop - -/* 80C2927C-80C29280 000044 0004+00 0/1 0/0 0/0 .rodata @3750 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3750 = -5.0f; -COMPILER_STRIP_GATE(0x80C2927C, &lit_3750); -#pragma pop - -/* 80C29280-80C29284 000048 0004+00 0/2 0/0 0/0 .rodata @3751 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3751 = 1.0f; -COMPILER_STRIP_GATE(0x80C29280, &lit_3751); -#pragma pop - -/* 80C29284-80C29288 00004C 0004+00 0/3 0/0 0/0 .rodata @3752 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3752 = 300.0f; -COMPILER_STRIP_GATE(0x80C29284, &lit_3752); -#pragma pop - -/* 80C29288-80C2928C 000050 0004+00 0/1 0/0 0/0 .rodata @3753 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3753 = 1900.0f; -COMPILER_STRIP_GATE(0x80C29288, &lit_3753); -#pragma pop - -/* 80C2928C-80C29290 000054 0004+00 0/2 0/0 0/0 .rodata @3754 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3754 = -1.0f; -COMPILER_STRIP_GATE(0x80C2928C, &lit_3754); -#pragma pop - -/* 80C29290-80C29294 000058 0004+00 0/1 0/0 0/0 .rodata @3755 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3755 = -100.0f; -COMPILER_STRIP_GATE(0x80C29290, &lit_3755); -#pragma pop - -/* 80C29294-80C29298 00005C 0004+00 0/1 0/0 0/0 .rodata @3756 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3756 = 0.5f; -COMPILER_STRIP_GATE(0x80C29294, &lit_3756); -#pragma pop - -/* 80C29298-80C2929C 000060 0004+00 0/3 0/0 0/0 .rodata @3757 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3757 = 100.0f; -COMPILER_STRIP_GATE(0x80C29298, &lit_3757); -#pragma pop - -/* 80C293D0-80C293DC 000008 000C+00 1/1 0/0 0/0 .bss @3644 */ -static u8 lit_3644[12]; - -/* 80C293DC-80C293F4 000014 0018+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[24]; - -/* 80C293F4-80C293F8 00002C 0004+00 2/2 0/0 0/0 .bss e_ymb__25@unnamed@d_a_obj_ita_cpp@ - */ -static u8 data_80C293F4[4]; - -/* 80C293F8-80C293FC 000030 0004+00 2/2 0/0 0/0 .bss e_ymb_Pos__25@unnamed@d_a_obj_ita_cpp@ */ -static u8 data_80C293F8[4]; - -/* 80C283AC-80C28674 00012C 02C8+00 1/1 0/0 0/0 .text Search_Ymb__10daObjIta_cFv */ -void daObjIta_c::Search_Ymb() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C2929C-80C292A0 000064 0004+00 0/1 0/0 0/0 .rodata @3793 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3793 = 1000.0f; -COMPILER_STRIP_GATE(0x80C2929C, &lit_3793); -#pragma pop - -/* 80C292A0-80C292A4 000068 0004+00 0/1 0/0 0/0 .rodata @3794 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3794 = -1000.0f; -COMPILER_STRIP_GATE(0x80C292A0, &lit_3794); -#pragma pop - -/* 80C292A4-80C292A8 00006C 0004+00 0/1 0/0 0/0 .rodata @3795 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3795 = 700.0f; -COMPILER_STRIP_GATE(0x80C292A4, &lit_3795); -#pragma pop - -/* 80C292A8-80C292AC 000070 0004+00 0/1 0/0 0/0 .rodata @3796 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3796 = -700.0f; -COMPILER_STRIP_GATE(0x80C292A8, &lit_3796); -#pragma pop - -/* 80C28674-80C28788 0003F4 0114+00 1/1 0/0 0/0 .text Check_RideOn__10daObjIta_cFv */ -void daObjIta_c::Check_RideOn() { - // NONMATCHING -} - -/* 80C28788-80C287B4 000508 002C+00 1/1 0/0 0/0 .text initBaseMtx__10daObjIta_cFv */ -void daObjIta_c::initBaseMtx() { - // NONMATCHING -} - -/* 80C287B4-80C28838 000534 0084+00 2/2 0/0 0/0 .text setBaseMtx__10daObjIta_cFv */ -void daObjIta_c::setBaseMtx() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C292AC-80C292B0 000074 0004+00 1/1 0/0 0/0 .rodata @3847 */ -SECTION_RODATA static f32 const lit_3847 = 4.0f / 5.0f; -COMPILER_STRIP_GATE(0x80C292AC, &lit_3847); - -/* 80C28838-80C28890 0005B8 0058+00 1/1 0/0 0/0 .text - * rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */ -static void rideCallBack(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) { - // NONMATCHING -} - -/* 80C28890-80C288BC 000610 002C+00 1/0 0/0 0/0 .text daObjIta_Draw__FP10daObjIta_c */ -static void daObjIta_Draw(daObjIta_c* param_0) { - // NONMATCHING -} - -/* 80C288BC-80C288DC 00063C 0020+00 1/0 0/0 0/0 .text daObjIta_Execute__FP10daObjIta_c */ -static void daObjIta_Execute(daObjIta_c* param_0) { - // NONMATCHING -} - -/* 80C288DC-80C288E4 00065C 0008+00 1/0 0/0 0/0 .text daObjIta_IsDelete__FP10daObjIta_c - */ -static bool daObjIta_IsDelete(daObjIta_c* param_0) { - return true; -} - -/* 80C288E4-80C28908 000664 0024+00 1/0 0/0 0/0 .text daObjIta_Delete__FP10daObjIta_c */ -static void daObjIta_Delete(daObjIta_c* param_0) { - // NONMATCHING -} - -/* 80C28908-80C28928 000688 0020+00 1/0 0/0 0/0 .text daObjIta_Create__FP10fopAc_ac_c */ -static void daObjIta_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C292B0-80C292B4 000078 0004+00 0/1 0/0 0/0 .rodata @3933 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3933 = 200.0f; -COMPILER_STRIP_GATE(0x80C292B0, &lit_3933); -#pragma pop - -/* 80C292B4-80C292B8 00007C 0004+00 0/1 0/0 0/0 .rodata @3934 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3934 = -50.0f; -COMPILER_STRIP_GATE(0x80C292B4, &lit_3934); -#pragma pop - -/* 80C292B8-80C292BC 000080 0004+00 0/1 0/0 0/0 .rodata @3935 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3935 = 50.0f; -COMPILER_STRIP_GATE(0x80C292B8, &lit_3935); -#pragma pop - -/* 80C292E8-80C292E8 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C292EE = "M_FloatingDust00.dzb"; -#pragma pop - -/* 80C28928-80C28B40 0006A8 0218+00 1/1 0/0 0/0 .text create__10daObjIta_cFv */ -void daObjIta_c::create() { - // NONMATCHING -} - -/* 80C28B40-80C28BB0 0008C0 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C292E8-80C292E8 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C29303 = "M_FloatingDust00.bmd"; -#pragma pop - -/* 80C28BB0-80C28C28 000930 0078+00 1/0 0/0 0/0 .text CreateHeap__10daObjIta_cFv */ -void daObjIta_c::CreateHeap() { - // NONMATCHING -} - -/* 80C28C28-80C28C70 0009A8 0048+00 1/0 0/0 0/0 .text Create__10daObjIta_cFv */ -void daObjIta_c::Create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80C292BC-80C292C0 000084 0004+00 0/1 0/0 0/0 .rodata @4013 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4013 = 768.0f; -COMPILER_STRIP_GATE(0x80C292BC, &lit_4013); -#pragma pop - -/* 80C292C0-80C292C4 000088 0004+00 0/1 0/0 0/0 .rodata @4014 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4014 = 2.0f; -COMPILER_STRIP_GATE(0x80C292C0, &lit_4014); -#pragma pop - -/* 80C292C4-80C292C8 00008C 0004+00 0/1 0/0 0/0 .rodata @4015 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4015 = 40.0f; -COMPILER_STRIP_GATE(0x80C292C4, &lit_4015); -#pragma pop - -/* 80C292C8-80C292CC 000090 0004+00 0/1 0/0 0/0 .rodata @4016 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4016 = 60.0f; -COMPILER_STRIP_GATE(0x80C292C8, &lit_4016); -#pragma pop - -/* 80C292CC-80C292D0 000094 0004+00 0/1 0/0 0/0 .rodata @4017 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4017 = 5.0f; -COMPILER_STRIP_GATE(0x80C292CC, &lit_4017); -#pragma pop - -/* 80C292D0-80C292D4 000098 0004+00 0/1 0/0 0/0 .rodata @4018 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4018 = 20.0f; -COMPILER_STRIP_GATE(0x80C292D0, &lit_4018); -#pragma pop - -/* 80C292D4-80C292D8 00009C 0004+00 0/1 0/0 0/0 .rodata @4019 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4019 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80C292D4, &lit_4019); -#pragma pop - -/* 80C292D8-80C292DC 0000A0 0004+00 0/1 0/0 0/0 .rodata @4020 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4020 = 15.0f; -COMPILER_STRIP_GATE(0x80C292D8, &lit_4020); -#pragma pop - -/* 80C292DC-80C292E0 0000A4 0004+00 0/1 0/0 0/0 .rodata @4021 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4021 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x80C292DC, &lit_4021); -#pragma pop - -/* 80C292E0-80C292E4 0000A8 0004+00 0/1 0/0 0/0 .rodata @4022 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4022 = 10.0f; -COMPILER_STRIP_GATE(0x80C292E0, &lit_4022); -#pragma pop - -/* 80C292E4-80C292E8 0000AC 0004+00 0/1 0/0 0/0 .rodata @4023 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4023 = 1.0f / 100.0f; -COMPILER_STRIP_GATE(0x80C292E4, &lit_4023); -#pragma pop - -/* 80C28C70-80C290AC 0009F0 043C+00 1/0 0/0 0/0 .text Execute__10daObjIta_cFPPA3_A4_f */ -void daObjIta_c::Execute(Mtx** param_0) { - // NONMATCHING -} - -/* 80C290AC-80C29150 000E2C 00A4+00 1/0 0/0 0/0 .text Draw__10daObjIta_cFv */ -void daObjIta_c::Draw() { - // NONMATCHING -} - -/* 80C29150-80C29184 000ED0 0034+00 1/0 0/0 0/0 .text Delete__10daObjIta_cFv */ -void daObjIta_c::Delete() { - // NONMATCHING -} - -/* 80C29184-80C291CC 000F04 0048+00 2/1 0/0 0/0 .text __dt__15daObj_ITA_HIO_cFv */ -daObj_ITA_HIO_c::~daObj_ITA_HIO_c() { - // NONMATCHING -} - -/* 80C291CC-80C291D8 000F4C 000C+00 1/1 0/0 0/0 .text sinShort__Q25JMath18TSinCosTable<13,f>CFs */ -extern "C" void func_80C291CC(void* _this, s16 param_0) /* const */ { - // NONMATCHING -} - -/* 80C291D8-80C29214 000F58 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_ita_cpp */ -void __sinit_d_a_obj_ita_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80C291D8, __sinit_d_a_obj_ita_cpp); -#pragma pop - -/* 80C29214-80C2921C 000F94 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80C29214() { - // NONMATCHING -} - -/* 80C2921C-80C29224 000F9C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80C2921C() { - // NONMATCHING -} - -/* 80C292E8-80C292E8 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */