diff --git a/config/GZ2E01/rels/d_a_obj_togeTrap/symbols.txt b/config/GZ2E01/rels/d_a_obj_togeTrap/symbols.txt index 7824cb45ef7..007fae8716a 100644 --- a/config/GZ2E01/rels/d_a_obj_togeTrap/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_togeTrap/symbols.txt @@ -28,10 +28,10 @@ init_modeBreak__12daTogeTrap_cFv = .text:0x00000F14; // type:function size:0xC8 modeBreak__12daTogeTrap_cFv = .text:0x00000FDC; // type:function size:0x190 scope:global Draw__12daTogeTrap_cFv = .text:0x0000116C; // type:function size:0xB8 scope:global Delete__12daTogeTrap_cFv = .text:0x00001224; // type:function size:0x30 scope:global -daTogeTrap_Draw__FP12daTogeTrap_c = .text:0x00001254; // type:function size:0x2C scope:global -daTogeTrap_Execute__FP12daTogeTrap_c = .text:0x00001280; // type:function size:0x20 scope:global -daTogeTrap_Delete__FP12daTogeTrap_c = .text:0x000012A0; // type:function size:0x20 scope:global -daTogeTrap_Create__FP10fopAc_ac_c = .text:0x000012C0; // type:function size:0x20 scope:global +daTogeTrap_Draw__FP12daTogeTrap_c = .text:0x00001254; // type:function size:0x2C scope:local +daTogeTrap_Execute__FP12daTogeTrap_c = .text:0x00001280; // type:function size:0x20 scope:local +daTogeTrap_Delete__FP12daTogeTrap_c = .text:0x000012A0; // type:function size:0x20 scope:local +daTogeTrap_Create__FP10fopAc_ac_c = .text:0x000012C0; // type:function size:0x20 scope:local __dt__10cCcD_GSttsFv = .text:0x000012E0; // type:function size:0x48 scope:global __dt__16daTogeTrap_HIO_cFv = .text:0x00001328; // type:function size:0x6C scope:global __sinit_d_a_obj_togeTrap_cpp = .text:0x00001394; // type:function size:0x70 scope:local @@ -57,16 +57,16 @@ mCcDObjInfo__12daTogeTrap_c = .rodata:0x00000014; // type:object size:0x30 scope @4036 = .rodata:0x0000006C; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x00000070; // type:object size:0x7 scope:local data:string_table ...data.0 = .data:0x00000000; // type:label scope:local -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local -lbl_665_data_10 = .data:0x00000010; // type:object size:0x10 +lbl_665_data_10 = .data:0x00000010; // type:object size:0x10 scope:local mCcDCyl__12daTogeTrap_c = .data:0x00000020; // type:object size:0x44 scope:global @3883 = .data:0x00000064; // type:object size:0xC scope:local @3884 = .data:0x00000070; // type:object size:0xC scope:local @3885 = .data:0x0000007C; // type:object size:0xC scope:local @3886 = .data:0x00000088; // type:object size:0xC scope:local mode_proc$3882 = .data:0x00000094; // type:object size:0x30 scope:local -l_daTogeTrap_Method = .data:0x000000C4; // type:object size:0x20 scope:global +l_daTogeTrap_Method = .data:0x000000C4; // type:object size:0x20 scope:local g_profile_Obj_TogeTrap = .data:0x000000E4; // type:object size:0x30 scope:global __vt__10cCcD_GStts = .data:0x00000114; // type:object size:0xC scope:global __vt__10dCcD_GStts = .data:0x00000120; // type:object size:0xC scope:global @@ -78,5 +78,5 @@ __vt__18fOpAcm_HIO_entry_c = .data:0x00000178; // type:object size:0xC scope:glo __vt__14mDoHIO_entry_c = .data:0x00000184; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @3647 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0x20 scope:global align:4 data:float -lbl_665_bss_34 = .bss:0x00000034; // type:object size:0x1 data:byte +l_HIO = .bss:0x00000014; // type:object size:0x20 scope:local align:4 data:float +init$1675 = .bss:0x00000034; // type:object size:0x1 scope:local data:byte diff --git a/config/GZ2J01/rels/d_a_obj_togeTrap/symbols.txt b/config/GZ2J01/rels/d_a_obj_togeTrap/symbols.txt index 650591b246d..391c756d044 100644 --- a/config/GZ2J01/rels/d_a_obj_togeTrap/symbols.txt +++ b/config/GZ2J01/rels/d_a_obj_togeTrap/symbols.txt @@ -28,10 +28,10 @@ init_modeBreak__12daTogeTrap_cFv = .text:0x00000F14; // type:function size:0xC8 modeBreak__12daTogeTrap_cFv = .text:0x00000FDC; // type:function size:0x190 scope:global Draw__12daTogeTrap_cFv = .text:0x0000116C; // type:function size:0xB8 scope:global Delete__12daTogeTrap_cFv = .text:0x00001224; // type:function size:0x30 scope:global -daTogeTrap_Draw__FP12daTogeTrap_c = .text:0x00001254; // type:function size:0x2C scope:global -daTogeTrap_Execute__FP12daTogeTrap_c = .text:0x00001280; // type:function size:0x20 scope:global -daTogeTrap_Delete__FP12daTogeTrap_c = .text:0x000012A0; // type:function size:0x20 scope:global -daTogeTrap_Create__FP10fopAc_ac_c = .text:0x000012C0; // type:function size:0x20 scope:global +daTogeTrap_Draw__FP12daTogeTrap_c = .text:0x00001254; // type:function size:0x2C scope:local +daTogeTrap_Execute__FP12daTogeTrap_c = .text:0x00001280; // type:function size:0x20 scope:local +daTogeTrap_Delete__FP12daTogeTrap_c = .text:0x000012A0; // type:function size:0x20 scope:local +daTogeTrap_Create__FP10fopAc_ac_c = .text:0x000012C0; // type:function size:0x20 scope:local __dt__10cCcD_GSttsFv = .text:0x000012E0; // type:function size:0x48 scope:global __dt__16daTogeTrap_HIO_cFv = .text:0x00001328; // type:function size:0x6C scope:global __sinit_d_a_obj_togeTrap_cpp = .text:0x00001394; // type:function size:0x70 scope:local @@ -56,16 +56,16 @@ mCcDObjInfo__12daTogeTrap_c = .rodata:0x00000014; // type:object size:0x30 scope @4007 = .rodata:0x00000068; // type:object size:0x4 scope:local align:4 data:float @4036 = .rodata:0x0000006C; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x00000070; // type:object size:0x7 scope:local data:string_table -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local -lbl_665_data_10 = .data:0x00000010; // type:object size:0x10 +lbl_665_data_10 = .data:0x00000010; // type:object size:0x10 scope:local mCcDCyl__12daTogeTrap_c = .data:0x00000020; // type:object size:0x44 scope:global @3883 = .data:0x00000064; // type:object size:0xC scope:local @3884 = .data:0x00000070; // type:object size:0xC scope:local @3885 = .data:0x0000007C; // type:object size:0xC scope:local @3886 = .data:0x00000088; // type:object size:0xC scope:local mode_proc$3882 = .data:0x00000094; // type:object size:0x30 scope:local -l_daTogeTrap_Method = .data:0x000000C4; // type:object size:0x20 scope:global +l_daTogeTrap_Method = .data:0x000000C4; // type:object size:0x20 scope:local g_profile_Obj_TogeTrap = .data:0x000000E4; // type:object size:0x30 scope:global __vt__10cCcD_GStts = .data:0x00000114; // type:object size:0xC scope:global __vt__10dCcD_GStts = .data:0x00000120; // type:object size:0xC scope:global @@ -77,5 +77,5 @@ __vt__18fOpAcm_HIO_entry_c = .data:0x00000178; // type:object size:0xC scope:glo __vt__14mDoHIO_entry_c = .data:0x00000184; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @3647 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0x20 scope:global align:4 data:float -lbl_665_bss_34 = .bss:0x00000034; // type:object size:0x1 data:byte +l_HIO = .bss:0x00000014; // type:object size:0x20 scope:local align:4 data:float +init$1675 = .bss:0x00000034; // type:object size:0x1 data:byte scope:local diff --git a/config/GZ2P01/rels/d_a_obj_togeTrap/symbols.txt b/config/GZ2P01/rels/d_a_obj_togeTrap/symbols.txt index 650591b246d..391c756d044 100644 --- a/config/GZ2P01/rels/d_a_obj_togeTrap/symbols.txt +++ b/config/GZ2P01/rels/d_a_obj_togeTrap/symbols.txt @@ -28,10 +28,10 @@ init_modeBreak__12daTogeTrap_cFv = .text:0x00000F14; // type:function size:0xC8 modeBreak__12daTogeTrap_cFv = .text:0x00000FDC; // type:function size:0x190 scope:global Draw__12daTogeTrap_cFv = .text:0x0000116C; // type:function size:0xB8 scope:global Delete__12daTogeTrap_cFv = .text:0x00001224; // type:function size:0x30 scope:global -daTogeTrap_Draw__FP12daTogeTrap_c = .text:0x00001254; // type:function size:0x2C scope:global -daTogeTrap_Execute__FP12daTogeTrap_c = .text:0x00001280; // type:function size:0x20 scope:global -daTogeTrap_Delete__FP12daTogeTrap_c = .text:0x000012A0; // type:function size:0x20 scope:global -daTogeTrap_Create__FP10fopAc_ac_c = .text:0x000012C0; // type:function size:0x20 scope:global +daTogeTrap_Draw__FP12daTogeTrap_c = .text:0x00001254; // type:function size:0x2C scope:local +daTogeTrap_Execute__FP12daTogeTrap_c = .text:0x00001280; // type:function size:0x20 scope:local +daTogeTrap_Delete__FP12daTogeTrap_c = .text:0x000012A0; // type:function size:0x20 scope:local +daTogeTrap_Create__FP10fopAc_ac_c = .text:0x000012C0; // type:function size:0x20 scope:local __dt__10cCcD_GSttsFv = .text:0x000012E0; // type:function size:0x48 scope:global __dt__16daTogeTrap_HIO_cFv = .text:0x00001328; // type:function size:0x6C scope:global __sinit_d_a_obj_togeTrap_cpp = .text:0x00001394; // type:function size:0x70 scope:local @@ -56,16 +56,16 @@ mCcDObjInfo__12daTogeTrap_c = .rodata:0x00000014; // type:object size:0x30 scope @4007 = .rodata:0x00000068; // type:object size:0x4 scope:local align:4 data:float @4036 = .rodata:0x0000006C; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x00000070; // type:object size:0x7 scope:local data:string_table -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local -lbl_665_data_10 = .data:0x00000010; // type:object size:0x10 +lbl_665_data_10 = .data:0x00000010; // type:object size:0x10 scope:local mCcDCyl__12daTogeTrap_c = .data:0x00000020; // type:object size:0x44 scope:global @3883 = .data:0x00000064; // type:object size:0xC scope:local @3884 = .data:0x00000070; // type:object size:0xC scope:local @3885 = .data:0x0000007C; // type:object size:0xC scope:local @3886 = .data:0x00000088; // type:object size:0xC scope:local mode_proc$3882 = .data:0x00000094; // type:object size:0x30 scope:local -l_daTogeTrap_Method = .data:0x000000C4; // type:object size:0x20 scope:global +l_daTogeTrap_Method = .data:0x000000C4; // type:object size:0x20 scope:local g_profile_Obj_TogeTrap = .data:0x000000E4; // type:object size:0x30 scope:global __vt__10cCcD_GStts = .data:0x00000114; // type:object size:0xC scope:global __vt__10dCcD_GStts = .data:0x00000120; // type:object size:0xC scope:global @@ -77,5 +77,5 @@ __vt__18fOpAcm_HIO_entry_c = .data:0x00000178; // type:object size:0xC scope:glo __vt__14mDoHIO_entry_c = .data:0x00000184; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @3647 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0x20 scope:global align:4 data:float -lbl_665_bss_34 = .bss:0x00000034; // type:object size:0x1 data:byte +l_HIO = .bss:0x00000014; // type:object size:0x20 scope:local align:4 data:float +init$1675 = .bss:0x00000034; // type:object size:0x1 data:byte scope:local diff --git a/configure.py b/configure.py index 4d4ff576a2e..f626e4e3a99 100755 --- a/configure.py +++ b/configure.py @@ -2142,7 +2142,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_obj_toaru_maki"), ActorRel(NonMatching, "d_a_obj_toby"), ActorRel(NonMatching, "d_a_obj_tobyhouse"), - ActorRel(NonMatching, "d_a_obj_togeTrap"), + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_togeTrap"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tombo"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tornado"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tornado2"), diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index 07cdc6619a5..c71b8d88dee 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -221,11 +221,16 @@ public: /* 0x0 */ u8 unk_0x0; }; -class daAlinkHIO_c { +class daAlinkHIO_c +#ifdef DEBUG +: public mDoHIO_entry_c +#endif +{ public: /* 80140B88 */ daAlinkHIO_c(); /* 80140C10 */ virtual ~daAlinkHIO_c(); + void genMessage(JORMContext*); void jumpStateUpdate(const cXyz*, const cXyz*, f32); /* 0x04 */ u8 field_0x4[0xC - 0x4]; diff --git a/include/d/actor/d_a_obj_togeTrap.h b/include/d/actor/d_a_obj_togeTrap.h index cad57c2d76b..b0b7f285238 100644 --- a/include/d/actor/d_a_obj_togeTrap.h +++ b/include/d/actor/d_a_obj_togeTrap.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_TOGETRAP_H #define D_A_OBJ_TOGETRAP_H +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" /** @@ -11,15 +13,24 @@ * @details * */ -class daTogeTrap_c : public fopAc_ac_c { +class daTogeTrap_c : public dBgS_MoveBgActor { public: + typedef void (daTogeTrap_c::*modeFunc)(); + + enum Mode { + MODE_WAIT, + MODE_MOVE_UP, + MODE_MOVE_DOWN, + MODE_BREAK, + }; + /* 80D17C74 */ void setBaseMtx(); - /* 80D17D5C */ void CreateHeap(); - /* 80D17E14 */ void create(); - /* 80D18244 */ void rideCallBack(dBgW*, fopAc_ac_c*, fopAc_ac_c*); - /* 80D1825C */ void Execute(f32 (**)[3][4]); + /* 80D17D5C */ int CreateHeap(); + /* 80D17E14 */ int create(); + /* 80D18244 */ static void rideCallBack(dBgW*, fopAc_ac_c*, fopAc_ac_c*); + /* 80D1825C */ int Execute(Mtx**); /* 80D182C8 */ void moveMain(); - /* 80D185DC */ void playerAreaCheck(); + /* 80D185DC */ BOOL playerAreaCheck(); /* 80D186B0 */ void init_modeWait(); /* 80D186BC */ void modeWait(); /* 80D186C0 */ void init_modeMoveUp(); @@ -28,23 +39,78 @@ public: /* 80D188DC */ void modeMoveDown(); /* 80D18994 */ void init_modeBreak(); /* 80D18A5C */ void modeBreak(); - /* 80D18BEC */ void Draw(); - /* 80D18CA4 */ void Delete(); + /* 80D18BEC */ int Draw(); + /* 80D18CA4 */ int Delete(); - static u8 const mCcDObjInfo[48]; - static u8 mCcDCyl[68]; + u8 getSwBit() { return fopAcM_GetParamBit(this, 0, 8); } + + static dCcD_SrcGObjInf const mCcDObjInfo; + static dCcD_SrcCyl mCcDCyl; private: - /* 0x568 */ u8 field_0x568[0xae4 - 0x568]; + /* 0x5A0 */ dCcD_Stts mStts; + /* 0x5DC */ dCcD_Cyl mCyls[4]; + /* 0xACC */ request_of_phase_process_class mPhase; + /* 0xAD4 */ J3DModel* mModel; + /* 0xAD8 */ J3DModel* mWolfEyeModel; + /* 0xADC */ u8 mMode; + /* 0xADD */ u8 field_0xadd; + /* 0xADE */ u8 mSwBit; + /* 0xADF */ bool mIsWolfEye; + /* 0xAE0 */ BOOL mIsPlayerInArea; }; STATIC_ASSERT(sizeof(daTogeTrap_c) == 0xae4); -class daTogeTrap_HIO_c { + +class daTogeTrap_HIO_c : public fOpAcm_HIO_entry_c { public: /* 80D17B6C */ daTogeTrap_HIO_c(); - /* 80D18DA8 */ ~daTogeTrap_HIO_c(); + /* 80D18DA8 */ ~daTogeTrap_HIO_c() {} + + #ifdef DEBUG + void genMessage(JORMContext* ctx) { + // Speed + ctx->genLabel("--- 速 出現時---", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + // Initial speed + ctx->genSlider("初速", &mInitialSpeed, 0.0f, 10000.0f, 0, NULL, 0xffff, 0xffff, 0x200, + 0x18); + // Max + ctx->genSlider("最大", &mMaxSpeed, 0.0f, 10000.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + // Speed when pulling + ctx->genLabel("--- 速度 引っ込み時---", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + ctx->genSlider("初速", &mInitialDownSpeed, 0.0, 10000.0, 0, NULL, 0xffff, 0xffff, 0x200, + 0x18); + // Max + ctx->genSlider("最大", &mMaxDownSpeed, 0.0f, 10000.0f, 0, NULL, 0xffff, 0xffff, 0x200, + 0x18); + // Range + ctx->genSlider("範囲", &mRange, 0.1f, 1000.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + // Spinner speed + ctx->genSlider("スピナー速度", &mSpinnerSpeed, 0.0f, 100.0f, 0, NULL, 0xffff, 0xffff, 0x200, + 0x18); + // Vibration + ctx->startComboBox("振動", &mVibration, 0, NULL, 0xffff, 0xffff, 0x100, 0x1a); + // Strength 1-8 + ctx->genComboBoxItem("強さ1", 1); + ctx->genComboBoxItem("強さ2", 2); + ctx->genComboBoxItem("強さ3", 3); + ctx->genComboBoxItem("強さ4", 4); + ctx->genComboBoxItem("強さ5", 5); + ctx->genComboBoxItem("強さ6", 6); + ctx->genComboBoxItem("強さ7", 7); + ctx->genComboBoxItem("強さ8", 8); + ctx->endComboBox(); + } + #endif + + /* 0x08 */ f32 mRange; + /* 0x0C */ f32 mInitialSpeed; + /* 0x10 */ f32 mMaxSpeed; + /* 0x14 */ f32 mInitialDownSpeed; + /* 0x18 */ f32 mMaxDownSpeed; + /* 0x1C */ f32 mSpinnerSpeed; + /* 0x20 */ u8 mVibration; }; - #endif /* D_A_OBJ_TOGETRAP_H */ diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index c95bf3c3e7d..75a24ec3d71 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -710,175 +710,175 @@ public: bool getDkCaught() const { return checkNoResetFlg1(FLG1_DK_CAUGHT); } bool getStCaught() const { return checkNoResetFlg1(FLG1_UNK_80000000); } - virtual cXyz* getMidnaAtnPos() const { return NULL; } - virtual void setMidnaMsgNum(fopAc_ac_c*, u16) {} - virtual MtxP getModelMtx() { return cullMtx; } - virtual MtxP getInvMtx() { return cullMtx; } - virtual cXyz* getShadowTalkAtnPos() { return ¤t.pos; } - virtual f32 getGroundY() = 0; - virtual MtxP getLeftItemMatrix() { return cullMtx; } - virtual MtxP getRightItemMatrix() { return cullMtx; } - virtual MtxP getLeftHandMatrix() { return cullMtx; } - virtual MtxP getRightHandMatrix() { return cullMtx; } - virtual MtxP getLinkBackBone1Matrix() { return cullMtx; } - virtual MtxP getWolfMouthMatrix() { return cullMtx; } - virtual MtxP getWolfBackbone2Matrix() { return cullMtx; } - virtual MtxP getBottleMtx() { return NULL; } - virtual BOOL checkPlayerGuard() const { return FALSE; } - virtual u32 checkPlayerFly() const { return 0; } - virtual BOOL checkFrontRoll() const { return FALSE; } - virtual BOOL checkWolfDash() const { return FALSE; } - virtual BOOL checkAutoJump() const { return FALSE; } - virtual bool checkSideStep() const { return FALSE; } - virtual bool checkWolfTriggerJump() const { return FALSE; } - virtual BOOL checkGuardBreakMode() const { return FALSE; } - virtual bool checkLv3Slide() const { return FALSE; } - virtual bool checkWolfHowlDemoMode() const { return FALSE; } - virtual bool checkChainBlockPushPull() { return FALSE; } - virtual BOOL checkElecDamage() const { return FALSE; } - virtual BOOL checkEmptyBottleSwing() const { return FALSE; } - virtual BOOL checkBottleSwingMode() const { return FALSE; } - virtual BOOL checkHawkWait() const { return FALSE; } - virtual BOOL checkGoatThrow() const { return FALSE; } - virtual BOOL checkGoatThrowAfter() const { return FALSE; } - virtual BOOL checkWolfTagLockJump() const { return FALSE; } - virtual BOOL checkWolfTagLockJumpLand() const { return FALSE; } - virtual BOOL checkWolfRope() { return FALSE; } - virtual BOOL checkWolfRopeHang() const { return FALSE; } - virtual BOOL checkRollJump() const { return FALSE; } - virtual BOOL checkGoronRideWait() const { return FALSE; } - virtual BOOL checkWolfChain() const { return FALSE; } - virtual BOOL checkWolfWait() const { return FALSE; } - virtual BOOL checkWolfJumpAttack() const { return FALSE; } - virtual BOOL checkWolfRSit() const { return FALSE; } - virtual bool checkBubbleFly() const { return FALSE; } - virtual BOOL checkBottleDrinkEnd() const { return FALSE; } - virtual BOOL checkWolfDig() const { return FALSE; } - virtual BOOL checkCutCharge() const { return FALSE; } - virtual BOOL checkCutTurnCharge() const { return FALSE; } - virtual BOOL checkCutLargeJumpCharge() const { return FALSE; } - virtual BOOL getBokoFlamePos(cXyz*) { return FALSE; } - virtual BOOL checkComboCutTurn() const { return FALSE; } - virtual BOOL checkClimbMove() const { return FALSE; } - virtual BOOL checkGrassWhistle() const { return FALSE; } - virtual BOOL checkBoarRun() const { return FALSE; } - virtual bool checkFmChainPut() const { return FALSE; } - virtual BOOL checkHorseElecDamage() const { return FALSE; } - virtual f32 getBaseAnimeFrameRate() const { return 1.0f; } - virtual f32 getBaseAnimeFrame() const { return 0.0f; } - virtual void setAnimeFrame(f32) {} - virtual BOOL checkWolfLock(fopAc_ac_c*) const { return FALSE; } - virtual bool cancelWolfLock(fopAc_ac_c*) { return FALSE; } - virtual s32 getAtnActorID() const { return fpcM_ERROR_PROCESS_ID_e; } - virtual s32 getItemID() const { return fpcM_ERROR_PROCESS_ID_e; } - virtual u32 getGrabActorID() const { return fpcM_ERROR_PROCESS_ID_e; } - virtual BOOL exchangeGrabActor(fopAc_ac_c*) { return FALSE; } - virtual BOOL setForceGrab(fopAc_ac_c*, int, int) { return FALSE; } - virtual void setForcePutPos(cXyz const&) {} - virtual u32 checkPlayerNoDraw() { return FALSE; } - virtual bool checkRopeTag() { return FALSE; } - virtual void voiceStart(u32) {} - virtual void seStartOnlyReverb(u32) {} - virtual void seStartOnlyReverbLevel(u32) {} - virtual void setOutPower(f32, short, int) {} - virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*) {} - virtual void onMagneGrab(f32, f32) {} - virtual void onFrollCrashFlg(u8, int) {} - virtual MtxP getModelJointMtx(u16) { return NULL; } - virtual MtxP getHeadMtx() { return NULL; } - virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*) { return FALSE; } - virtual BOOL checkCutJumpCancelTurn() const { return FALSE; } - virtual bool checkIronBallReturn() const { return FALSE; } - virtual bool checkIronBallGroundStop() const { return FALSE; } - virtual BOOL checkSingleBoarBattleSecondBowReady() const { return FALSE; } - virtual bool checkPointSubWindowMode() const { return FALSE; } - virtual void setClothesChange(int) {} - virtual void setPlayerPosAndAngle(cXyz const*, short, int) {} - virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*) {} - virtual void setPlayerPosAndAngle(f32 (*)[4]) {} - virtual bool setThrowDamage(short, f32, f32, int, int, int) { return FALSE; } - virtual bool checkSetNpcTks(cXyz*, int, int) { return FALSE; } - virtual int setRollJump(f32, f32, short) { return FALSE; } - virtual void playerStartCollisionSE(u32, u32) {} - virtual void changeTextureAnime(u16, u16, int) {} - virtual void cancelChangeTextureAnime() {} - virtual void cancelDungeonWarpReadyNeck() {} - virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*) {} - virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*) {} - virtual void onSceneChangeDead(u8, int) {} - virtual u32 checkHorseRide() const { return false; } - virtual u32 checkBoarRide() const { return 0; } - virtual u32 checkCanoeRide() const { return 0; } - virtual u32 checkBoardRide() const { return 0; } - virtual u32 checkSpinnerRide() const { return 0; } - virtual daSpinner_c* getSpinnerActor() { return NULL; } - virtual BOOL checkHorseRideNotReady() const { return FALSE; } - virtual bool checkArrowChargeEnd() const { return FALSE; } - virtual f32 getSearchBallScale() const { return 0.0f; } - virtual int checkFastShotTime() { return FALSE; } - virtual bool checkNoEquipItem() const { return TRUE; } - virtual bool checkFireMaterial() const { return FALSE; } - virtual bool checkKandelaarSwing(int) const { return FALSE; } - virtual s16 getBoardCutTurnOffsetAngleY() const { return 0; } - virtual cXyz* getMagneHitPos() { return &mSwordTopPos; } - virtual cXyz* getMagneBootsTopVec() { return ¤t.pos; } - virtual cXyz* getKandelaarFlamePos() { return NULL; } - virtual bool checkUseKandelaar(int) { return FALSE; } - virtual void setDkCaught(fopAc_ac_c*) {} - virtual void onPressedDamage(cXyz const&, short) {} - virtual bool checkPriActorOwn(fopAc_ac_c const*) const { return FALSE; } - virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2) { return FALSE; } - virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const { return FALSE; } - virtual void setWolfEnemyHangBiteAngle(short) {} - virtual void setKandelaarMtx(f32 (*)[4], int, int) {} - virtual bool getStickAngleFromPlayerShape(short*) const { return FALSE; } - virtual bool checkSpinnerPathMove() { return FALSE; } - virtual bool checkSpinnerTriggerAttack() { return FALSE; } - virtual void onSpinnerPathForceRemove() {} - virtual int getIronBallBgHit() const { return FALSE; } - virtual cXyz* getIronBallCenterPos() { return NULL; } - virtual bool checkCanoeFishingGetLeft() const { return FALSE; } - virtual bool checkCanoeFishingGetRight() const { return FALSE; } - virtual u8 checkBeeChildDrink() const { return FALSE; } - virtual void skipPortalObjWarp() {} - virtual BOOL checkTreasureRupeeReturn(int) const { return FALSE; } - virtual void setSumouReady(fopAc_ac_c*) {} - virtual bool checkAcceptDungeonWarpAlink(int) { return FALSE; } - virtual s16 getSumouCounter() const { return 0; } - virtual s16 checkSumouWithstand() const { return 0; } - virtual void cancelGoronThrowEvent() {} - virtual void setSumouGraspCancelCount(int) {} - virtual void setSumouPushBackDirection(short) {} - virtual void setSumouLoseHeadUp() {} - virtual s16 getGiantPuzzleAimAngle() const { return shape_angle.y; } - virtual void setGoronSideMove(fopAc_ac_c*) {} - virtual void setCargoCarry(fopAc_ac_c*) {} - virtual bool getDpdFarFlg() const { return 0; } - virtual cXyz* getHookshotTopPos() { return NULL; } - virtual bool checkHookshotReturnMode() const { return FALSE; } - virtual bool checkHookshotShootReturnMode() const { return FALSE; } - virtual bool checkOctaIealHang() const { return FALSE; } - virtual void cancelOctaIealHang() {} - virtual void cancelDragonHangBackJump() {} - virtual void setOctaIealWildHang() {} - virtual bool checkDragonHangRide() const { return FALSE; } - virtual void changeDragonActor(fopAc_ac_c*) {} - virtual u8 getClothesChangeWaitTimer() const { return 0; } - virtual u8 getShieldChangeWaitTimer() const { return 0; } - virtual u8 getSwordChangeWaitTimer() const { return 0; } - virtual BOOL checkMetamorphose() const { return FALSE; } - virtual BOOL checkWolfDownAttackPullOut() const { return FALSE; } - virtual BOOL checkBootsOrArmorHeavy() const { return FALSE; } - virtual s32 getBottleOpenAppearItem() const { return fpcM_ERROR_PROCESS_ID_e; } - virtual bool checkItemSwordEquip() const { return FALSE; } - virtual f32 getSinkShapeOffset() const { return 0.0f; } - virtual BOOL checkSinkDead() const { return FALSE; } - virtual BOOL checkHorseStart() { return FALSE; } - virtual Z2WolfHowlMgr* getWolfHowlMgrP() { return NULL; } - virtual BOOL checkWolfHowlSuccessAnime() const { return FALSE; } - virtual BOOL checkCopyRodTopUse() { return FALSE; } - virtual bool checkCopyRodEquip() const { return FALSE; } - virtual BOOL checkCutJumpMode() const { return FALSE; } + /* vt 0X008 */ virtual cXyz* getMidnaAtnPos() const { return NULL; } + /* vt 0X00C */ virtual void setMidnaMsgNum(fopAc_ac_c*, u16) {} + /* vt 0X010 */ virtual MtxP getModelMtx() { return cullMtx; } + /* vt 0X014 */ virtual MtxP getInvMtx() { return cullMtx; } + /* vt 0X018 */ virtual cXyz* getShadowTalkAtnPos() { return ¤t.pos; } + /* vt 0X01C */ virtual f32 getGroundY() = 0; + /* vt 0X020 */ virtual MtxP getLeftItemMatrix() { return cullMtx; } + /* vt 0X024 */ virtual MtxP getRightItemMatrix() { return cullMtx; } + /* vt 0X028 */ virtual MtxP getLeftHandMatrix() { return cullMtx; } + /* vt 0X02C */ virtual MtxP getRightHandMatrix() { return cullMtx; } + /* vt 0X030 */ virtual MtxP getLinkBackBone1Matrix() { return cullMtx; } + /* vt 0X034 */ virtual MtxP getWolfMouthMatrix() { return cullMtx; } + /* vt 0X038 */ virtual MtxP getWolfBackbone2Matrix() { return cullMtx; } + /* vt 0X03C */ virtual MtxP getBottleMtx() { return NULL; } + /* vt 0X040 */ virtual BOOL checkPlayerGuard() const { return FALSE; } + /* vt 0X044 */ virtual u32 checkPlayerFly() const { return 0; } + /* vt 0X048 */ virtual BOOL checkFrontRoll() const { return FALSE; } + /* vt 0X04C */ virtual BOOL checkWolfDash() const { return FALSE; } + /* vt 0X050 */ virtual BOOL checkAutoJump() const { return FALSE; } + /* vt 0X054 */ virtual bool checkSideStep() const { return FALSE; } + /* vt 0X058 */ virtual bool checkWolfTriggerJump() const { return FALSE; } + /* vt 0X05C */ virtual BOOL checkGuardBreakMode() const { return FALSE; } + /* vt 0X060 */ virtual bool checkLv3Slide() const { return FALSE; } + /* vt 0X064 */ virtual bool checkWolfHowlDemoMode() const { return FALSE; } + /* vt 0X068 */ virtual bool checkChainBlockPushPull() { return FALSE; } + /* vt 0X06C */ virtual BOOL checkElecDamage() const { return FALSE; } + /* vt 0X070 */ virtual BOOL checkEmptyBottleSwing() const { return FALSE; } + /* vt 0X074 */ virtual BOOL checkBottleSwingMode() const { return FALSE; } + /* vt 0X078 */ virtual BOOL checkHawkWait() const { return FALSE; } + /* vt 0X07C */ virtual BOOL checkGoatThrow() const { return FALSE; } + /* vt 0X080 */ virtual BOOL checkGoatThrowAfter() const { return FALSE; } + /* vt 0X084 */ virtual BOOL checkWolfTagLockJump() const { return FALSE; } + /* vt 0X088 */ virtual BOOL checkWolfTagLockJumpLand() const { return FALSE; } + /* vt 0X08C */ virtual BOOL checkWolfRope() { return FALSE; } + /* vt 0X090 */ virtual BOOL checkWolfRopeHang() const { return FALSE; } + /* vt 0X094 */ virtual BOOL checkRollJump() const { return FALSE; } + /* vt 0X098 */ virtual BOOL checkGoronRideWait() const { return FALSE; } + /* vt 0X09C */ virtual BOOL checkWolfChain() const { return FALSE; } + /* vt 0X0A0 */ virtual BOOL checkWolfWait() const { return FALSE; } + /* vt 0X0A4 */ virtual BOOL checkWolfJumpAttack() const { return FALSE; } + /* vt 0X0A8 */ virtual BOOL checkWolfRSit() const { return FALSE; } + /* vt 0X0AC */ virtual bool checkBubbleFly() const { return FALSE; } + /* vt 0X0B0 */ virtual BOOL checkBottleDrinkEnd() const { return FALSE; } + /* vt 0X0B4 */ virtual BOOL checkWolfDig() const { return FALSE; } + /* vt 0X0B8 */ virtual BOOL checkCutCharge() const { return FALSE; } + /* vt 0X0BC */ virtual BOOL checkCutTurnCharge() const { return FALSE; } + /* vt 0X0C0 */ virtual BOOL checkCutLargeJumpCharge() const { return FALSE; } + /* vt 0X0C4 */ virtual BOOL getBokoFlamePos(cXyz*) { return FALSE; } + /* vt 0X0C8 */ virtual BOOL checkComboCutTurn() const { return FALSE; } + /* vt 0X0CC */ virtual BOOL checkClimbMove() const { return FALSE; } + /* vt 0X0D0 */ virtual BOOL checkGrassWhistle() const { return FALSE; } + /* vt 0X0D4 */ virtual BOOL checkBoarRun() const { return FALSE; } + /* vt 0X0D8 */ virtual bool checkFmChainPut() const { return FALSE; } + /* vt 0X0DC */ virtual BOOL checkHorseElecDamage() const { return FALSE; } + /* vt 0X0E0 */ virtual f32 getBaseAnimeFrameRate() const { return 1.0f; } + /* vt 0X0E4 */ virtual f32 getBaseAnimeFrame() const { return 0.0f; } + /* vt 0X0E8 */ virtual void setAnimeFrame(f32) {} + /* vt 0X0EC */ virtual BOOL checkWolfLock(fopAc_ac_c*) const { return FALSE; } + /* vt 0X0F0 */ virtual bool cancelWolfLock(fopAc_ac_c*) { return FALSE; } + /* vt 0X0F4 */ virtual s32 getAtnActorID() const { return fpcM_ERROR_PROCESS_ID_e; } + /* vt 0X0F8 */ virtual s32 getItemID() const { return fpcM_ERROR_PROCESS_ID_e; } + /* vt 0X0FC */ virtual u32 getGrabActorID() const { return fpcM_ERROR_PROCESS_ID_e; } + /* vt 0X100 */ virtual BOOL exchangeGrabActor(fopAc_ac_c*) { return FALSE; } + /* vt 0X104 */ virtual BOOL setForceGrab(fopAc_ac_c*, int, int) { return FALSE; } + /* vt 0X108 */ virtual void setForcePutPos(cXyz const&) {} + /* vt 0X10C */ virtual u32 checkPlayerNoDraw() { return FALSE; } + /* vt 0X110 */ virtual bool checkRopeTag() { return FALSE; } + /* vt 0X114 */ virtual void voiceStart(u32) {} + /* vt 0X118 */ virtual void seStartOnlyReverb(u32) {} + /* vt 0X11C */ virtual void seStartOnlyReverbLevel(u32) {} + /* vt 0X120 */ virtual void setOutPower(f32, short, int) {} + /* vt 0X124 */ virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*) {} + /* vt 0X128 */ virtual void onMagneGrab(f32, f32) {} + /* vt 0X12C */ virtual void onFrollCrashFlg(u8, int) {} + /* vt 0X130 */ virtual MtxP getModelJointMtx(u16) { return NULL; } + /* vt 0X134 */ virtual MtxP getHeadMtx() { return NULL; } + /* vt 0X138 */ virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*) { return FALSE; } + /* vt 0X13C */ virtual BOOL checkCutJumpCancelTurn() const { return FALSE; } + /* vt 0X140 */ virtual bool checkIronBallReturn() const { return FALSE; } + /* vt 0X144 */ virtual bool checkIronBallGroundStop() const { return FALSE; } + /* vt 0X148 */ virtual BOOL checkSingleBoarBattleSecondBowReady() const { return FALSE; } + /* vt 0X14C */ virtual bool checkPointSubWindowMode() const { return FALSE; } + /* vt 0X150 */ virtual void setClothesChange(int) {} + /* vt 0X154 */ virtual void setPlayerPosAndAngle(cXyz const*, short, int) {} + /* vt 0X158 */ virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*) {} + /* vt 0X15C */ virtual void setPlayerPosAndAngle(f32 (*)[4]) {} + /* vt 0X160 */ virtual bool setThrowDamage(short, f32, f32, int, int, int) { return FALSE; } + /* vt 0X164 */ virtual bool checkSetNpcTks(cXyz*, int, int) { return FALSE; } + /* vt 0X168 */ virtual int setRollJump(f32, f32, short) { return FALSE; } + /* vt 0X16C */ virtual void playerStartCollisionSE(u32, u32) {} + /* vt 0X170 */ virtual void changeTextureAnime(u16, u16, int) {} + /* vt 0X174 */ virtual void cancelChangeTextureAnime() {} + /* vt 0X178 */ virtual void cancelDungeonWarpReadyNeck() {} + /* vt 0X17C */ virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*) {} + /* vt 0X180 */ virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*) {} + /* vt 0X184 */ virtual void onSceneChangeDead(u8, int) {} + /* vt 0X188 */ virtual u32 checkHorseRide() const { return false; } + /* vt 0X18C */ virtual u32 checkBoarRide() const { return 0; } + /* vt 0X190 */ virtual u32 checkCanoeRide() const { return 0; } + /* vt 0X194 */ virtual u32 checkBoardRide() const { return 0; } + /* vt 0X198 */ virtual u32 checkSpinnerRide() const { return 0; } + /* vt 0X19C */ virtual daSpinner_c* getSpinnerActor() { return NULL; } + /* vt 0X1A0 */ virtual BOOL checkHorseRideNotReady() const { return FALSE; } + /* vt 0X1A4 */ virtual bool checkArrowChargeEnd() const { return FALSE; } + /* vt 0X1A8 */ virtual f32 getSearchBallScale() const { return 0.0f; } + /* vt 0X1AC */ virtual int checkFastShotTime() { return FALSE; } + /* vt 0X1B0 */ virtual bool checkNoEquipItem() const { return TRUE; } + /* vt 0X1B4 */ virtual bool checkFireMaterial() const { return FALSE; } + /* vt 0X1B8 */ virtual bool checkKandelaarSwing(int) const { return FALSE; } + /* vt 0X1BC */ virtual s16 getBoardCutTurnOffsetAngleY() const { return 0; } + /* vt 0X1C0 */ virtual cXyz* getMagneHitPos() { return &mSwordTopPos; } + /* vt 0X1C4 */ virtual cXyz* getMagneBootsTopVec() { return ¤t.pos; } + /* vt 0X1C8 */ virtual cXyz* getKandelaarFlamePos() { return NULL; } + /* vt 0X1CC */ virtual bool checkUseKandelaar(int) { return FALSE; } + /* vt 0X1D0 */ virtual void setDkCaught(fopAc_ac_c*) {} + /* vt 0X1D4 */ virtual void onPressedDamage(cXyz const&, short) {} + /* vt 0X1D8 */ virtual bool checkPriActorOwn(fopAc_ac_c const*) const { return FALSE; } + /* vt 0X1DC */ virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2) { return FALSE; } + /* vt 0X1E0 */ virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const { return FALSE; } + /* vt 0X1E4 */ virtual void setWolfEnemyHangBiteAngle(short) {} + /* vt 0X1E8 */ virtual void setKandelaarMtx(f32 (*)[4], int, int) {} + /* vt 0X1EC */ virtual bool getStickAngleFromPlayerShape(short*) const { return FALSE; } + /* vt 0X1F0 */ virtual bool checkSpinnerPathMove() { return FALSE; } + /* vt 0X1F4 */ virtual bool checkSpinnerTriggerAttack() { return FALSE; } + /* vt 0X1F8 */ virtual void onSpinnerPathForceRemove() {} + /* vt 0X1FC */ virtual int getIronBallBgHit() const { return FALSE; } + /* vt 0X200 */ virtual cXyz* getIronBallCenterPos() { return NULL; } + /* vt 0X204 */ virtual bool checkCanoeFishingGetLeft() const { return FALSE; } + /* vt 0X208 */ virtual bool checkCanoeFishingGetRight() const { return FALSE; } + /* vt 0X20C */ virtual u8 checkBeeChildDrink() const { return FALSE; } + /* vt 0X210 */ virtual void skipPortalObjWarp() {} + /* vt 0X214 */ virtual BOOL checkTreasureRupeeReturn(int) const { return FALSE; } + /* vt 0X218 */ virtual void setSumouReady(fopAc_ac_c*) {} + /* vt 0X21C */ virtual bool checkAcceptDungeonWarpAlink(int) { return FALSE; } + /* vt 0X220 */ virtual s16 getSumouCounter() const { return 0; } + /* vt 0X224 */ virtual s16 checkSumouWithstand() const { return 0; } + /* vt 0X228 */ virtual void cancelGoronThrowEvent() {} + /* vt 0X22C */ virtual void setSumouGraspCancelCount(int) {} + /* vt 0X230 */ virtual void setSumouPushBackDirection(short) {} + /* vt 0X234 */ virtual void setSumouLoseHeadUp() {} + /* vt 0X238 */ virtual s16 getGiantPuzzleAimAngle() const { return shape_angle.y; } + /* vt 0X23C */ virtual void setGoronSideMove(fopAc_ac_c*) {} + /* vt 0X240 */ virtual void setCargoCarry(fopAc_ac_c*) {} + /* vt 0X244 */ virtual bool getDpdFarFlg() const { return 0; } + /* vt 0X248 */ virtual cXyz* getHookshotTopPos() { return NULL; } + /* vt 0X24C */ virtual bool checkHookshotReturnMode() const { return FALSE; } + /* vt 0X250 */ virtual bool checkHookshotShootReturnMode() const { return FALSE; } + /* vt 0X254 */ virtual bool checkOctaIealHang() const { return FALSE; } + /* vt 0X258 */ virtual void cancelOctaIealHang() {} + /* vt 0X25C */ virtual void cancelDragonHangBackJump() {} + /* vt 0X260 */ virtual void setOctaIealWildHang() {} + /* vt 0X264 */ virtual bool checkDragonHangRide() const { return FALSE; } + /* vt 0X268 */ virtual void changeDragonActor(fopAc_ac_c*) {} + /* vt 0X26C */ virtual u8 getClothesChangeWaitTimer() const { return 0; } + /* vt 0X270 */ virtual u8 getShieldChangeWaitTimer() const { return 0; } + /* vt 0X274 */ virtual u8 getSwordChangeWaitTimer() const { return 0; } + /* vt 0X278 */ virtual BOOL checkMetamorphose() const { return FALSE; } + /* vt 0X27C */ virtual BOOL checkWolfDownAttackPullOut() const { return FALSE; } + /* vt 0X280 */ virtual BOOL checkBootsOrArmorHeavy() const { return FALSE; } + /* vt 0X284 */ virtual s32 getBottleOpenAppearItem() const { return fpcM_ERROR_PROCESS_ID_e; } + /* vt 0X288 */ virtual bool checkItemSwordEquip() const { return FALSE; } + /* vt 0X28C */ virtual f32 getSinkShapeOffset() const { return 0.0f; } + /* vt 0X290 */ virtual BOOL checkSinkDead() const { return FALSE; } + /* vt 0X294 */ virtual BOOL checkHorseStart() { return FALSE; } + /* vt 0X298 */ virtual Z2WolfHowlMgr* getWolfHowlMgrP() { return NULL; } + /* vt 0X29C */ virtual BOOL checkWolfHowlSuccessAnime() const { return FALSE; } + /* vt 0X2A0 */ virtual BOOL checkCopyRodTopUse() { return FALSE; } + /* vt 0X2A4 */ virtual bool checkCopyRodEquip() const { return FALSE; } + /* vt 0X2A8 */ virtual BOOL checkCutJumpMode() const { return FALSE; } f32 getSpeedF() const { return speedF; } diff --git a/src/d/actor/d_a_demo00.cpp b/src/d/actor/d_a_demo00.cpp index f2ca3d4e2c3..8c00ac754d0 100644 --- a/src/d/actor/d_a_demo00.cpp +++ b/src/d/actor/d_a_demo00.cpp @@ -386,7 +386,8 @@ int daDemo00_c::createHeap() { if (mModel.mID.field_0x1c != -1) { mDeformData = (J3DDeformData*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x1c); - JUT_ASSERT(687, mModel.mDeformData != 0); + // Should be mModel.mDeformData + JUT_ASSERT(687, mDeformData != 0); if (mModel.mID.field_0x20 != -1) { mpBlkAnm = new mDoExt_blkAnm(); @@ -396,7 +397,7 @@ int daDemo00_c::createHeap() { J3DAnmCluster* anm_cluster = (J3DAnmCluster*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x20); if (anm_cluster == NULL) { - OS_REPORT("ESC_WARNING指定blkアニメーションが見つかりません!(%d)\n", field_0x5ac.field_0x20); // ESC_WARNING: Specified blk animation not found! (%d) + OS_REPORT("ESC_WARNING指定blkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x20); // ESC_WARNING: Specified blk animation not found! (%d) } else { if (mpBlkAnm->init(mDeformData, anm_cluster, 1, -1, 1.0f, 0, -1) == 0) { return 0; @@ -557,7 +558,8 @@ int daDemo00_c::actPerformance(dDemo_actor_c* actor) { } if (mModel.mID.field_0x20 != mModel.field_0x0.field_0x20) { - JUT_ASSERT(1049, mModel.mDeformData != 0 && mModel.mBlkAnm != 0); + // Should be mModel.mDeformData and mModel.mBlkAnm + JUT_ASSERT(1049, mDeformData != 0 && mpBlkAnm != 0); J3DAnmCluster* anmCluster = (J3DAnmCluster*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x20); if (anmCluster == NULL) { diff --git a/src/d/actor/d_a_obj_lv6bemos.cpp b/src/d/actor/d_a_obj_lv6bemos.cpp index 0cd94d3f972..7a08fb9956e 100644 --- a/src/d/actor/d_a_obj_lv6bemos.cpp +++ b/src/d/actor/d_a_obj_lv6bemos.cpp @@ -21,7 +21,7 @@ enum Obj_lv6bm_RES_File_ID { /* BTK */ /* 0x11 */ BTK_EF_BIMOBEAM = 0x11, - /* 0x12 */ BTK_EF_BIMOBEAM_0FF, + /* 0x12 */ BTK_EF_BIMOBEAM_OFF, /* 0x13 */ BTK_EF_BIMOBEAM_ON, /* DZB */ @@ -199,7 +199,7 @@ int daObjL6Bm_c::CreateHeap() { #endif pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM); - JUT_ASSERT(0x29A, pbtk != 0); + JUT_ASSERT(666, pbtk != 0); mpBtkAnm2 = new mDoExt_btkAnm(); if (mpBtkAnm2 == NULL || mpBtkAnm2->init(modelData, pbtk, 1, 2, 1.0f, 0, -1) == 0) { return 0; @@ -328,7 +328,7 @@ void daObjL6Bm_c::actionFindPlayer() { setAction(0); if (field_0x891 != 0) { - mpBtkAnm->init(mBeamEffectModel->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM_0FF), + mpBtkAnm->init(mBeamEffectModel->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM_OFF), 1, 0, 1.0f, 0, -1); field_0x891 = 0; } diff --git a/src/d/actor/d_a_obj_lv6bemos2.cpp b/src/d/actor/d_a_obj_lv6bemos2.cpp index aa49f08c939..1b8de32e263 100644 --- a/src/d/actor/d_a_obj_lv6bemos2.cpp +++ b/src/d/actor/d_a_obj_lv6bemos2.cpp @@ -220,7 +220,7 @@ int daObjLv6Bm_c::Create() { #ifdef DEBUG if (mEyeMaterial == NULL) { - OS_REPORT("Lv6ビーモス:目のマテリアル<%s>がありません\n", l_eye_matName) // Lv6 Beamos: Eye material <%s> is not available. + OS_REPORT("Lv6ビーモス:目のマテリアル<%s>がありません\n", l_eye_matName); // Lv6 Beamos: Eye material <%s> is not available. return 0; } #endif diff --git a/src/d/actor/d_a_obj_togeTrap.cpp b/src/d/actor/d_a_obj_togeTrap.cpp index 335452c6a7a..cae00fa615c 100644 --- a/src/d/actor/d_a_obj_togeTrap.cpp +++ b/src/d/actor/d_a_obj_togeTrap.cpp @@ -4,244 +4,333 @@ */ #include "d/actor/d_a_obj_togeTrap.h" -#include "dol2asm.h" +#include "d/actor/d_a_player.h" +#include "d/d_bg_w.h" +#include "d/d_com_inf_game.h" +UNK_REL_DATA +/* 80D17B6C-80D17BD0 0000EC 0064+00 1/1 0/0 0/0 .text __ct__16daTogeTrap_HIO_cFv */ +daTogeTrap_HIO_c::daTogeTrap_HIO_c() { + mInitialSpeed = 0.0f; + mMaxSpeed = 250.0f; + mInitialDownSpeed = 0.0f; + mMaxDownSpeed = 10.0f; + mSpinnerSpeed = 20.0f; + mVibration = 3; + mRange = 500.0f; +} -// -// Forward References: -// - -extern "C" void __ct__16daTogeTrap_HIO_cFv(); -extern "C" void __dt__18fOpAcm_HIO_entry_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__12daTogeTrap_cFv(); -extern "C" void CreateHeap__12daTogeTrap_cFv(); -extern "C" void create__12daTogeTrap_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__10dCcD_GSttsFv(); -extern "C" void rideCallBack__12daTogeTrap_cFP4dBgWP10fopAc_ac_cP10fopAc_ac_c(); -extern "C" void Execute__12daTogeTrap_cFPPA3_A4_f(); -extern "C" void moveMain__12daTogeTrap_cFv(); -extern "C" void playerAreaCheck__12daTogeTrap_cFv(); -extern "C" void init_modeWait__12daTogeTrap_cFv(); -extern "C" void modeWait__12daTogeTrap_cFv(); -extern "C" void init_modeMoveUp__12daTogeTrap_cFv(); -extern "C" void modeMoveUp__12daTogeTrap_cFv(); -extern "C" void init_modeMoveDown__12daTogeTrap_cFv(); -extern "C" void modeMoveDown__12daTogeTrap_cFv(); -extern "C" void init_modeBreak__12daTogeTrap_cFv(); -extern "C" void modeBreak__12daTogeTrap_cFv(); -extern "C" void Draw__12daTogeTrap_cFv(); -extern "C" void Delete__12daTogeTrap_cFv(); -extern "C" static void daTogeTrap_Draw__FP12daTogeTrap_c(); -extern "C" static void daTogeTrap_Execute__FP12daTogeTrap_c(); -extern "C" static void daTogeTrap_Delete__FP12daTogeTrap_c(); -extern "C" static void daTogeTrap_Create__FP10fopAc_ac_c(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__16daTogeTrap_HIO_cFv(); -extern "C" void __sinit_d_a_obj_togeTrap_cpp(); -extern "C" u8 const mCcDObjInfo__12daTogeTrap_c[48]; -extern "C" extern char const* const d_a_obj_togeTrap__stringBase0; -extern "C" u8 mCcDCyl__12daTogeTrap_c[68]; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotS__FPA4_fsss(); -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -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 dComIfGp_getReverb__Fi(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool Create__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 __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 GetTgHitGObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void getSpinnerRideSpeed__9daPy_py_cCFv(); -extern "C" void checkSpinnerReflectEffect__9daPy_py_cFv(); -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 __mi__4cXyzCFRC3Vec(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_addCalc__FPfffff(); -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_scall(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_25(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_25(); -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" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80D18E98-80D18E9C 000000 0004+00 4/4 0/0 0/0 .rodata @3655 */ -SECTION_RODATA static u8 const lit_3655[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D18E98, &lit_3655); - -/* 80D18E9C-80D18EA0 000004 0004+00 0/1 0/0 0/0 .rodata @3656 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3656 = 250.0f; -COMPILER_STRIP_GATE(0x80D18E9C, &lit_3656); -#pragma pop - -/* 80D18EA0-80D18EA4 000008 0004+00 0/1 0/0 0/0 .rodata @3657 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3657 = 10.0f; -COMPILER_STRIP_GATE(0x80D18EA0, &lit_3657); -#pragma pop - -/* 80D18EA4-80D18EA8 00000C 0004+00 0/1 0/0 0/0 .rodata @3658 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3658 = 20.0f; -COMPILER_STRIP_GATE(0x80D18EA4, &lit_3658); -#pragma pop - -/* 80D18EA8-80D18EAC 000010 0004+00 0/2 0/0 0/0 .rodata @3659 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3659 = 500.0f; -COMPILER_STRIP_GATE(0x80D18EA8, &lit_3659); -#pragma pop - -/* 80D18F10-80D18F1C 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80D18F1C-80D18F30 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop +/* 80D190B4-80D190D4 000014 0020+00 8/8 0/0 0/0 .bss l_HIO */ +static daTogeTrap_HIO_c l_HIO; /* 80D18F30-80D18F74 000020 0044+00 2/2 0/0 0/0 .data mCcDCyl__12daTogeTrap_c */ -SECTION_DATA u8 daTogeTrap_c::mCcDCyl[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, 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, +const dCcD_SrcGObjInf daTogeTrap_c::mCcDObjInfo = { + {0, {{2, 1, 0x1D}, {0x480028, 0x11}, {0}}}, + {dCcD_SE_SWORD, 0, 0, 0, 0}, + {dCcD_SE_STONE, 0, 0, 0, 0}, + {0}, }; -/* 80D18F74-80D18F80 -00001 000C+00 0/1 0/0 0/0 .data @3883 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3883[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWait__12daTogeTrap_cFv, +/* 80CA9C38-80CA9C7C 000020 0044+00 2/2 0/0 0/0 .data mCcDCyl__11daOnsTaru_c */ +dCcD_SrcCyl daTogeTrap_c::mCcDCyl = { + daTogeTrap_c::mCcDObjInfo, + { + {0.0f, 0.0f, 0.0f}, // mCenter + 0.0f, // mRadius + 0.0f // mHeight + } // mCyl }; -#pragma pop -/* 80D18F80-80D18F8C -00001 000C+00 0/1 0/0 0/0 .data @3884 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3884[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeMoveUp__12daTogeTrap_cFv, -}; -#pragma pop +/* 80D17C74-80D17D5C 0001F4 00E8+00 2/2 0/0 0/0 .text setBaseMtx__12daTogeTrap_cFv */ +void daTogeTrap_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); + mModel->setBaseScale(scale); + mModel->setBaseTRMtx(mDoMtx_stack_c::get()); + mDoMtx_stack_c::transS(home.pos.x, home.pos.y, home.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); + mWolfEyeModel->setBaseScale(scale); + mWolfEyeModel->setBaseTRMtx(mDoMtx_stack_c::get()); +} -/* 80D18F8C-80D18F98 -00001 000C+00 0/1 0/0 0/0 .data @3885 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3885[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeMoveDown__12daTogeTrap_cFv, -}; -#pragma pop +/* 80D17D5C-80D17E14 0002DC 00B8+00 1/0 0/0 0/0 .text CreateHeap__12daTogeTrap_cFv */ +int daTogeTrap_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("P_Toge", 4); + JUT_ASSERT(251, modelData != 0); + mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mModel == NULL) { + return 0; + } + modelData = (J3DModelData*)dComIfG_getObjectRes("P_Toge", 5); + JUT_ASSERT(262, modelData != 0); + mWolfEyeModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mWolfEyeModel == NULL) { + return 0; + } -/* 80D18F98-80D18FA4 -00001 000C+00 0/1 0/0 0/0 .data @3886 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3886[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeBreak__12daTogeTrap_cFv, -}; -#pragma pop + return 1; +} -/* 80D18FA4-80D18FD4 000094 0030+00 0/1 0/0 0/0 .data mode_proc$3882 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 mode_proc[48] = { - 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, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop +/* 80D17E14-80D18008 000394 01F4+00 1/1 0/0 0/0 .text create__12daTogeTrap_cFv */ +int daTogeTrap_c::create() { + fopAcM_SetupActor(this, daTogeTrap_c); + mSwBit = getSwBit(); + if (mSwBit != 0xff && + fopAcM_isSwitch(this, mSwBit)) + { + return cPhs_ERROR_e; + } + int phase = dComIfG_resLoad(&mPhase, "P_Toge"); + if (phase == 4) { + if (MoveBGCreate("P_Toge", 8, dBgS_MoveBGProc_TypicalRotY, 0x4000, NULL) == cPhs_ERROR_e) { + return cPhs_ERROR_e; + } + + fopAcM_SetMtx(this, mModel->getBaseTRMtx()); + fopAcM_setCullSizeBox2(this, mModel->getModelData()); + mpBgW->SetRideCallback(rideCallBack); + mStts.Init(0xff, 0xff, this); + for (int i = 0; i < 4; i++) { + mCyls[i].Set(mCcDCyl); + mCyls[i].SetStts(&mStts); + mCyls[i].OnTgSetBit(); + } + current.pos.y -= 300.0f; + mIsPlayerInArea = playerAreaCheck(); + mIsWolfEye = 0; + init_modeWait(); + setBaseMtx(); + + #ifdef DEBUG + // Spike traps + l_HIO.entryHIO("トゲトラップ"); + #endif + } + return phase; +} + +/* 80D18244-80D1825C 0007C4 0018+00 1/1 0/0 0/0 .text + * rideCallBack__12daTogeTrap_cFP4dBgWP10fopAc_ac_cP10fopAc_ac_c */ +void daTogeTrap_c::rideCallBack(dBgW* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3) { + if (fopAcM_GetName(param_3) == PROC_Obj_Movebox) { + ((daTogeTrap_c*)param_2)->field_0xadd = 1; + } +} + +/* 80D1825C-80D182C8 0007DC 006C+00 1/0 0/0 0/0 .text Execute__12daTogeTrap_cFPPA3_A4_f + */ +int daTogeTrap_c::Execute(Mtx** i_mtx) { + moveMain(); + *i_mtx = &mModel->getBaseTRMtx(); + setBaseMtx(); + if (!dComIfGs_wolfeye_effect_check()) { + mIsWolfEye = false; + } + field_0xadd = 0; + return 1; +} + +/* 80D182C8-80D185DC 000848 0314+00 1/1 0/0 0/0 .text moveMain__12daTogeTrap_cFv */ +void daTogeTrap_c::moveMain() { + static daTogeTrap_c::modeFunc mode_proc[4] = { + &daTogeTrap_c::modeWait, + &daTogeTrap_c::modeMoveUp, + &daTogeTrap_c::modeMoveDown, + &daTogeTrap_c::modeBreak, + }; + + int areaCheck = playerAreaCheck(); + if (areaCheck != mIsPlayerInArea) { + if (areaCheck == 1) { + init_modeMoveUp(); + } else { + init_modeMoveDown(); + } + mIsPlayerInArea = areaCheck; + } + for (int i = 0; i < 4; i++) { + if (mCyls[i].ChkTgHit()) { + cCcD_ObjHitInf* hitObj = mCyls[i].GetTgHitGObj(); + if (hitObj->GetAtType() & (AT_TYPE_IRON_BALL | AT_TYPE_BOMB)) { + init_modeBreak(); + break; + } + daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer(); + if (player->checkSpinnerRide() && (player->getSpinnerRideSpeed() >= l_HIO.mSpinnerSpeed || + player->checkSpinnerReflectEffect())) + { + init_modeBreak(); + break; + } + } + } + + for (int i = 0; i < 4; i++) { + mCyls[i].SetR(60.0f); + mCyls[i].SetH(290.0f); + cXyz local_30(0.0f, 0.0f, 0.0f); + local_30.x = (i * 100.0f) - 150.0f; + mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z); + mDoMtx_stack_c::multVec(&local_30, &local_30); + cXyz cStack_3c = current.pos; + cStack_3c += local_30; + mCyls[i].SetC(cStack_3c); + dComIfG_Ccsp()->Set(&mCyls[i]); + } + if (field_0xadd != 0) { + init_modeBreak(); + } + (this->*mode_proc[mMode])(); +} + +/* 80D185DC-80D186B0 000B5C 00D4+00 2/2 0/0 0/0 .text playerAreaCheck__12daTogeTrap_cFv + */ +BOOL daTogeTrap_c::playerAreaCheck() { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + cXyz local_48 = current.pos - player->current.pos; + mDoMtx_stack_c::YrotS(-current.angle.y); + mDoMtx_stack_c::multVec(&local_48, &local_48); + f32 absZ = fabsf(local_48.z); + f32 absX = fabsf(local_48.x); + BOOL rv = FALSE; + if (absZ <= l_HIO.mRange && absX <= 225.0f) { + rv = TRUE; + } + return rv; +} + +/* 80D186B0-80D186BC 000C30 000C+00 3/3 0/0 0/0 .text init_modeWait__12daTogeTrap_cFv */ +void daTogeTrap_c::init_modeWait() { + mMode = MODE_WAIT; +} + +/* 80D186BC-80D186C0 000C3C 0004+00 1/0 0/0 0/0 .text modeWait__12daTogeTrap_cFv */ +void daTogeTrap_c::modeWait() {} + +/* 80D186C0-80D18784 000C40 00C4+00 1/1 0/0 0/0 .text init_modeMoveUp__12daTogeTrap_cFv + */ +void daTogeTrap_c::init_modeMoveUp() { + fopAcM_SetSpeedF(this, l_HIO.mInitialSpeed); + mDoAud_seStart(Z2SE_OBJ_SWD_FENCE_POP, &home.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + for (int i = 0; i < 4; i++) { + mCyls[i].OnAtSetBit(); + mCyls[i].OnTgSetBit(); + } + this->mMode = MODE_MOVE_UP; +} + +/* 80D18784-80D188C0 000D04 013C+00 1/0 0/0 0/0 .text modeMoveUp__12daTogeTrap_cFv */ +void daTogeTrap_c::modeMoveUp() { + cLib_chaseF(&speedF, l_HIO.mMaxSpeed, l_HIO.mMaxSpeed / 30.0f); + if (cLib_addCalc(¤t.pos.y, home.pos.y, 1.0f, fopAcM_GetSpeedF(this), 1.0f) == 0.0f) { + dComIfGp_getVibration().StartShock(l_HIO.mVibration, 0xf, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_particle_set(0x8ad9, ¤t.pos, &shape_angle, 0); + for (int i = 0; i < 4; i++) { + mCyls[i].OffAtSetBit(); + } + if (dComIfGs_wolfeye_effect_check()) { + mIsWolfEye = true; + } + init_modeWait(); + } +} + +/* 80D188C0-80D188DC 000E40 001C+00 1/1 0/0 0/0 .text init_modeMoveDown__12daTogeTrap_cFv + */ +void daTogeTrap_c::init_modeMoveDown() { + fopAcM_SetSpeedF(this, l_HIO.mInitialDownSpeed); + this->mMode = MODE_MOVE_DOWN; +} + +/* 80D188DC-80D18994 000E5C 00B8+00 1/0 0/0 0/0 .text modeMoveDown__12daTogeTrap_cFv */ +void daTogeTrap_c::modeMoveDown() { + cLib_chaseF(&speedF, l_HIO.mMaxDownSpeed, l_HIO.mMaxDownSpeed / 30.0f); + if (cLib_addCalc(¤t.pos.y, home.pos.y - 300.0f, 1.0f, fopAcM_GetSpeedF(this), 1.0f) == 0.0f) { + for (int i = 0; i < 4; i++) { + mCyls[i].OffTgSetBit(); + mCyls[i].OffAtSetBit(); + } + init_modeWait(); + } +} + +/* 80D18994-80D18A5C 000F14 00C8+00 1/1 0/0 0/0 .text init_modeBreak__12daTogeTrap_cFv */ +void daTogeTrap_c::init_modeBreak() { + daPy_py_c* player = dComIfGp_getLinkPlayer(); + if (player->getSpinnerRideSpeed() >= l_HIO.mSpinnerSpeed && mpBgW != NULL) { + dComIfG_Bgsp().Release(mpBgW); + } + mDoAud_seStart(Z2SE_OBJ_TRAP_BREAK_STN, ¤t.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + this->mMode = MODE_BREAK; +} + +/* 80D18A5C-80D18BEC 000FDC 0190+00 1/0 0/0 0/0 .text modeBreak__12daTogeTrap_cFv */ +void daTogeTrap_c::modeBreak() { + dComIfGp_particle_set(0x8ada, ¤t.pos, &shape_angle, 0); + dComIfGp_particle_set(0x8adb, ¤t.pos, &shape_angle, 0); + dComIfGp_particle_set(0x8adc, ¤t.pos, &shape_angle, 0); + dComIfGp_particle_set(0x8add, ¤t.pos, &shape_angle, 0); + if (mSwBit != 0xff) { + fopAcM_onSwitch(this, mSwBit); + } + fopAcM_delete(this); +} + +/* 80D18BEC-80D18CA4 00116C 00B8+00 1/0 0/0 0/0 .text Draw__12daTogeTrap_cFv */ +int daTogeTrap_c::Draw() { + g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mModel, &tevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mModel); + if (mIsWolfEye) { + mDoExt_modelUpdateDL(mWolfEyeModel); + } + dComIfGd_setList(); + return 1; +} + +/* 80D18CA4-80D18CD4 001224 0030+00 1/0 0/0 0/0 .text Delete__12daTogeTrap_cFv */ +int daTogeTrap_c::Delete() { + dComIfG_resDelete(&mPhase, "P_Toge"); + + #ifdef DEBUG + l_HIO.removeHIO(); + #endif + + return 1; +} + +/* 80D18CD4-80D18D00 001254 002C+00 1/0 0/0 0/0 .text daTogeTrap_Draw__FP12daTogeTrap_c + */ +static int daTogeTrap_Draw(daTogeTrap_c* i_this) { + return i_this->Draw(); +} + +/* 80D18D00-80D18D20 001280 0020+00 1/0 0/0 0/0 .text daTogeTrap_Execute__FP12daTogeTrap_c */ +static int daTogeTrap_Execute(daTogeTrap_c* i_this) { + return i_this->MoveBGExecute(); +} + +/* 80D18D20-80D18D40 0012A0 0020+00 1/0 0/0 0/0 .text daTogeTrap_Delete__FP12daTogeTrap_c + */ +static int daTogeTrap_Delete(daTogeTrap_c* i_this) { + return i_this->MoveBGDelete(); +} + +/* 80D18D40-80D18D60 0012C0 0020+00 1/0 0/0 0/0 .text daTogeTrap_Create__FP10fopAc_ac_c + */ +static int daTogeTrap_Create(fopAc_ac_c* i_this) { + return ((daTogeTrap_c*)i_this)->create(); +} /* 80D18FD4-80D18FF4 -00001 0020+00 1/0 0/0 0/0 .data l_daTogeTrap_Method */ static actor_method_class l_daTogeTrap_Method = { - (process_method_func)daTogeTrap_Create__FP10fopAc_ac_c, - (process_method_func)daTogeTrap_Delete__FP12daTogeTrap_c, - (process_method_func)daTogeTrap_Execute__FP12daTogeTrap_c, + (process_method_func)daTogeTrap_Create, + (process_method_func)daTogeTrap_Delete, + (process_method_func)daTogeTrap_Execute, 0, - (process_method_func)daTogeTrap_Draw__FP12daTogeTrap_c, + (process_method_func)daTogeTrap_Draw, }; /* 80D18FF4-80D19024 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_TogeTrap */ @@ -262,337 +351,4 @@ extern actor_process_profile_definition g_profile_Obj_TogeTrap = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 80D19024-80D19030 000114 000C+00 2/2 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, -}; - -/* 80D19030-80D1903C 000120 000C+00 1/1 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, -}; - -/* 80D1903C-80D19048 00012C 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, -}; - -/* 80D19048-80D19054 000138 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, -}; - -/* 80D19054-80D1907C 000144 0028+00 1/1 0/0 0/0 .data __vt__12daTogeTrap_c */ -SECTION_DATA extern void* __vt__12daTogeTrap_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__12daTogeTrap_cFv, - (void*)Create__16dBgS_MoveBgActorFv, - (void*)Execute__12daTogeTrap_cFPPA3_A4_f, - (void*)Draw__12daTogeTrap_cFv, - (void*)Delete__12daTogeTrap_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; - -/* 80D1907C-80D19088 00016C 000C+00 2/2 0/0 0/0 .data __vt__16daTogeTrap_HIO_c */ -SECTION_DATA extern void* __vt__16daTogeTrap_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daTogeTrap_HIO_cFv, -}; - -/* 80D19088-80D19094 000178 000C+00 3/3 0/0 0/0 .data __vt__18fOpAcm_HIO_entry_c */ -SECTION_DATA extern void* __vt__18fOpAcm_HIO_entry_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18fOpAcm_HIO_entry_cFv, -}; - -/* 80D19094-80D190A0 000184 000C+00 4/4 0/0 0/0 .data __vt__14mDoHIO_entry_c */ -SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14mDoHIO_entry_cFv, -}; - -/* 80D17B6C-80D17BD0 0000EC 0064+00 1/1 0/0 0/0 .text __ct__16daTogeTrap_HIO_cFv */ -daTogeTrap_HIO_c::daTogeTrap_HIO_c() { - // NONMATCHING -} - -/* 80D17BD0-80D17C2C 000150 005C+00 1/0 0/0 0/0 .text __dt__18fOpAcm_HIO_entry_cFv */ -// fOpAcm_HIO_entry_c::~fOpAcm_HIO_entry_c() { -extern "C" void __dt__18fOpAcm_HIO_entry_cFv() { - // NONMATCHING -} - -/* 80D17C2C-80D17C74 0001AC 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */ -// mDoHIO_entry_c::~mDoHIO_entry_c() { -extern "C" void __dt__14mDoHIO_entry_cFv() { - // NONMATCHING -} - -/* 80D17C74-80D17D5C 0001F4 00E8+00 2/2 0/0 0/0 .text setBaseMtx__12daTogeTrap_cFv */ -void daTogeTrap_c::setBaseMtx() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D18F08-80D18F08 000070 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D18F08 = "P_Toge"; -#pragma pop - -/* 80D17D5C-80D17E14 0002DC 00B8+00 1/0 0/0 0/0 .text CreateHeap__12daTogeTrap_cFv */ -void daTogeTrap_c::CreateHeap() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D18EAC-80D18EDC 000014 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__12daTogeTrap_c */ -SECTION_RODATA u8 const daTogeTrap_c::mCcDObjInfo[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, - 0x00, 0x48, 0x00, 0x28, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D18EAC, &daTogeTrap_c::mCcDObjInfo); - -/* 80D18EDC-80D18EE0 000044 0004+00 1/2 0/0 0/0 .rodata @3780 */ -SECTION_RODATA static f32 const lit_3780 = 300.0f; -COMPILER_STRIP_GATE(0x80D18EDC, &lit_3780); - -/* 80D17E14-80D18008 000394 01F4+00 1/1 0/0 0/0 .text create__12daTogeTrap_cFv */ -void daTogeTrap_c::create() { - // NONMATCHING -} - -/* 80D18008-80D180D4 000588 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_CylFv */ -// dCcD_Cyl::~dCcD_Cyl() { -extern "C" void __dt__8dCcD_CylFv() { - // NONMATCHING -} - -/* 80D180D4-80D18158 000654 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */ -// dCcD_Cyl::dCcD_Cyl() { -extern "C" void __ct__8dCcD_CylFv() { - // NONMATCHING -} - -/* 80D18158-80D181A0 0006D8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80D181A0-80D181E8 000720 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80D181E8-80D18244 000768 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80D18244-80D1825C 0007C4 0018+00 1/1 0/0 0/0 .text - * rideCallBack__12daTogeTrap_cFP4dBgWP10fopAc_ac_cP10fopAc_ac_c */ -void daTogeTrap_c::rideCallBack(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) { - // NONMATCHING -} - -/* 80D1825C-80D182C8 0007DC 006C+00 1/0 0/0 0/0 .text Execute__12daTogeTrap_cFPPA3_A4_f - */ -void daTogeTrap_c::Execute(f32 (**param_0)[3][4]) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D18EE0-80D18EE4 000048 0004+00 0/1 0/0 0/0 .rodata @3940 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3940 = 60.0f; -COMPILER_STRIP_GATE(0x80D18EE0, &lit_3940); -#pragma pop - -/* 80D18EE4-80D18EE8 00004C 0004+00 0/1 0/0 0/0 .rodata @3941 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3941 = 290.0f; -COMPILER_STRIP_GATE(0x80D18EE4, &lit_3941); -#pragma pop - -/* 80D18EE8-80D18EEC 000050 0004+00 0/1 0/0 0/0 .rodata @3942 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3942 = 100.0f; -COMPILER_STRIP_GATE(0x80D18EE8, &lit_3942); -#pragma pop - -/* 80D18EEC-80D18EF0 000054 0004+00 0/1 0/0 0/0 .rodata @3943 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3943 = 150.0f; -COMPILER_STRIP_GATE(0x80D18EEC, &lit_3943); -#pragma pop - -/* 80D18EF0-80D18EF8 000058 0008+00 0/1 0/0 0/0 .rodata @3945 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3945[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D18EF0, &lit_3945); -#pragma pop - -/* 80D190A8-80D190B4 000008 000C+00 1/1 0/0 0/0 .bss @3647 */ -static u8 lit_3647[12]; - -/* 80D190B4-80D190D4 000014 0020+00 8/8 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[32]; - -/* 80D190D4-80D190D8 000034 0004+00 1/1 0/0 0/0 .bss None */ -static u8 data_80D190D4[4]; - -/* 80D182C8-80D185DC 000848 0314+00 1/1 0/0 0/0 .text moveMain__12daTogeTrap_cFv */ -void daTogeTrap_c::moveMain() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D18EF8-80D18EFC 000060 0004+00 1/1 0/0 0/0 .rodata @3975 */ -SECTION_RODATA static f32 const lit_3975 = 225.0f; -COMPILER_STRIP_GATE(0x80D18EF8, &lit_3975); - -/* 80D185DC-80D186B0 000B5C 00D4+00 2/2 0/0 0/0 .text playerAreaCheck__12daTogeTrap_cFv - */ -void daTogeTrap_c::playerAreaCheck() { - // NONMATCHING -} - -/* 80D186B0-80D186BC 000C30 000C+00 3/3 0/0 0/0 .text init_modeWait__12daTogeTrap_cFv */ -void daTogeTrap_c::init_modeWait() { - // NONMATCHING -} - -/* 80D186BC-80D186C0 000C3C 0004+00 1/0 0/0 0/0 .text modeWait__12daTogeTrap_cFv */ -void daTogeTrap_c::modeWait() { - /* empty function */ -} - -/* ############################################################################################## */ -/* 80D18EFC-80D18F00 000064 0004+00 3/5 0/0 0/0 .rodata @4006 */ -SECTION_RODATA static f32 const lit_4006 = 1.0f; -COMPILER_STRIP_GATE(0x80D18EFC, &lit_4006); - -/* 80D18F00-80D18F04 000068 0004+00 2/2 0/0 0/0 .rodata @4007 */ -SECTION_RODATA static f32 const lit_4007 = -1.0f; -COMPILER_STRIP_GATE(0x80D18F00, &lit_4007); - -/* 80D186C0-80D18784 000C40 00C4+00 1/1 0/0 0/0 .text init_modeMoveUp__12daTogeTrap_cFv - */ -void daTogeTrap_c::init_modeMoveUp() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D18F04-80D18F08 00006C 0004+00 0/2 0/0 0/0 .rodata @4036 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4036 = 30.0f; -COMPILER_STRIP_GATE(0x80D18F04, &lit_4036); -#pragma pop - -/* 80D18784-80D188C0 000D04 013C+00 1/0 0/0 0/0 .text modeMoveUp__12daTogeTrap_cFv */ -void daTogeTrap_c::modeMoveUp() { - // NONMATCHING -} - -/* 80D188C0-80D188DC 000E40 001C+00 1/1 0/0 0/0 .text init_modeMoveDown__12daTogeTrap_cFv - */ -void daTogeTrap_c::init_modeMoveDown() { - // NONMATCHING -} - -/* 80D188DC-80D18994 000E5C 00B8+00 1/0 0/0 0/0 .text modeMoveDown__12daTogeTrap_cFv */ -void daTogeTrap_c::modeMoveDown() { - // NONMATCHING -} - -/* 80D18994-80D18A5C 000F14 00C8+00 1/1 0/0 0/0 .text init_modeBreak__12daTogeTrap_cFv */ -void daTogeTrap_c::init_modeBreak() { - // NONMATCHING -} - -/* 80D18A5C-80D18BEC 000FDC 0190+00 1/0 0/0 0/0 .text modeBreak__12daTogeTrap_cFv */ -void daTogeTrap_c::modeBreak() { - // NONMATCHING -} - -/* 80D18BEC-80D18CA4 00116C 00B8+00 1/0 0/0 0/0 .text Draw__12daTogeTrap_cFv */ -void daTogeTrap_c::Draw() { - // NONMATCHING -} - -/* 80D18CA4-80D18CD4 001224 0030+00 1/0 0/0 0/0 .text Delete__12daTogeTrap_cFv */ -void daTogeTrap_c::Delete() { - // NONMATCHING -} - -/* 80D18CD4-80D18D00 001254 002C+00 1/0 0/0 0/0 .text daTogeTrap_Draw__FP12daTogeTrap_c - */ -static void daTogeTrap_Draw(daTogeTrap_c* param_0) { - // NONMATCHING -} - -/* 80D18D00-80D18D20 001280 0020+00 1/0 0/0 0/0 .text daTogeTrap_Execute__FP12daTogeTrap_c */ -static void daTogeTrap_Execute(daTogeTrap_c* param_0) { - // NONMATCHING -} - -/* 80D18D20-80D18D40 0012A0 0020+00 1/0 0/0 0/0 .text daTogeTrap_Delete__FP12daTogeTrap_c - */ -static void daTogeTrap_Delete(daTogeTrap_c* param_0) { - // NONMATCHING -} - -/* 80D18D40-80D18D60 0012C0 0020+00 1/0 0/0 0/0 .text daTogeTrap_Create__FP10fopAc_ac_c - */ -static void daTogeTrap_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80D18D60-80D18DA8 0012E0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80D18DA8-80D18E14 001328 006C+00 2/1 0/0 0/0 .text __dt__16daTogeTrap_HIO_cFv */ -daTogeTrap_HIO_c::~daTogeTrap_HIO_c() { - // NONMATCHING -} - -/* 80D18E14-80D18E84 001394 0070+00 0/0 1/0 0/0 .text __sinit_d_a_obj_togeTrap_cpp */ -void __sinit_d_a_obj_togeTrap_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80D18E14, __sinit_d_a_obj_togeTrap_cpp); -#pragma pop - /* 80D18F08-80D18F08 000070 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_tombo.cpp b/src/d/actor/d_a_obj_tombo.cpp index cf77cf74105..e814c61871a 100644 --- a/src/d/actor/d_a_obj_tombo.cpp +++ b/src/d/actor/d_a_obj_tombo.cpp @@ -8,7 +8,6 @@ #include "d/d_menu_insect.h" #include "d/d_cc_d.h" #include "d/d_com_inf_game.h" -#include "dol2asm.h" #include "f_pc/f_pc_name.h" #include "m_Do/m_Do_lib.h" @@ -28,7 +27,7 @@ public: context->genSlider("モデルスケール(メス)", &mMaleModelScale, 0.1f, 4.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // btk speed - context->genSlider("btkスピード", &field_0x10, 0.0f, 4.0f, 0, NULL, 0xffff, 0xffff, 0x200, + context->genSlider("btkスピード", &mBtkSpeed, 0.0f, 4.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); } #endif