diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index 1b868992ae4..4be03ad5eda 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -3639,6 +3639,9 @@ public: BOOL checkCanoeRideOwn(const fopAc_ac_c* param_0) const { return checkCanoeRide() && mRideAcKeep.getActorConst() == param_0; } + BOOL checkBoarRideOwn(const fopAc_ac_c* i_actorP) const { + return checkBoarRide() && mRideAcKeep.getActorConst() == i_actorP; + } bool checkWolfDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } bool checkWolfLieWaterIn() const { return mWaterY > current.pos.y + 20.5f; } diff --git a/include/d/actor/d_a_b_gg.h b/include/d/actor/d_a_b_gg.h index a269e6a3231..6c35f5dd09a 100644 --- a/include/d/actor/d_a_b_gg.h +++ b/include/d/actor/d_a_b_gg.h @@ -9,7 +9,7 @@ /** * @ingroup actors-enemies * @class daB_GG_c - * @brief Aeralfos + * @brief Aeralfos (Gargoyle) * * @details City in the Sky dungeon mini-boss. * diff --git a/include/d/actor/d_a_e_bs.h b/include/d/actor/d_a_e_bs.h index 7ed03eea640..6a6d5d65d94 100644 --- a/include/d/actor/d_a_e_bs.h +++ b/include/d/actor/d_a_e_bs.h @@ -9,7 +9,7 @@ /** * @ingroup actors-enemies * @class e_bs_class - * @brief Stalkin + * @brief Stalkin (Baby Stal) * * @details * diff --git a/include/d/actor/d_a_e_cr.h b/include/d/actor/d_a_e_cr.h index f55a3746559..85966add62e 100644 --- a/include/d/actor/d_a_e_cr.h +++ b/include/d/actor/d_a_e_cr.h @@ -9,7 +9,7 @@ /** * @ingroup actors-enemies * @class e_cr_class - * @brief Bombskit + * @brief Bombskit (Crazy Runner) * * @details * diff --git a/include/d/actor/d_a_e_fm.h b/include/d/actor/d_a_e_fm.h index 9a2ed1ee619..e4d949ff1cd 100644 --- a/include/d/actor/d_a_e_fm.h +++ b/include/d/actor/d_a_e_fm.h @@ -38,7 +38,7 @@ struct chain_s { /** * @ingroup actors-enemies * @class e_fm_class - * @brief Fyrus + * @brief Fyrus (Fire Man) * * @details * diff --git a/include/d/actor/d_a_e_gob.h b/include/d/actor/d_a_e_gob.h index ff71e3cd4e9..04b8137cd4e 100644 --- a/include/d/actor/d_a_e_gob.h +++ b/include/d/actor/d_a_e_gob.h @@ -10,7 +10,7 @@ /** * @ingroup actors-enemies * @class e_gob_class - * @brief Dangoro + * @brief Dangoro (Goron Boss) * * @details * diff --git a/include/d/actor/d_a_e_is.h b/include/d/actor/d_a_e_is.h index 24856c99a78..e82e6ef2fe1 100644 --- a/include/d/actor/d_a_e_is.h +++ b/include/d/actor/d_a_e_is.h @@ -9,9 +9,10 @@ /** * @ingroup actors-enemies * @class e_is_class - * @brief Armos Titan + * @brief Armos Titan (Idelia Statue) * - * @details Armos Titans are enemies from early, unreleased versions of the game. + * @details Armos Titans are enemies from early, unreleased versions of the game. + * The name Idelia Statue seems like it might be a reference to the anime Powered Armor Dorvack. * */ class e_is_class { diff --git a/include/d/actor/d_a_e_kk.h b/include/d/actor/d_a_e_kk.h index 350bf1e371f..3b52ffac904 100644 --- a/include/d/actor/d_a_e_kk.h +++ b/include/d/actor/d_a_e_kk.h @@ -11,7 +11,7 @@ /** * @ingroup actors-enemies * @class daE_KK_c - * @brief Chilfos + * @brief Chilfos (Koori no Kenshi) * * @details Enemy - Ice Knight * diff --git a/include/d/actor/d_a_e_mb.h b/include/d/actor/d_a_e_mb.h index d72eef47a2e..a26282caaba 100644 --- a/include/d/actor/d_a_e_mb.h +++ b/include/d/actor/d_a_e_mb.h @@ -8,7 +8,7 @@ /** * @ingroup actors-enemies * @class e_mb_class - * @brief Ook (Diababa Fight) + * @brief Ook - Diababa Fight (Monkey Boomerang) * * @details * diff --git a/include/d/actor/d_a_e_rb.h b/include/d/actor/d_a_e_rb.h index 8845e99567e..8b1a3208bbd 100644 --- a/include/d/actor/d_a_e_rb.h +++ b/include/d/actor/d_a_e_rb.h @@ -9,7 +9,7 @@ /** * @ingroup actors-enemies * @class e_rb_class - * @brief Leever + * @brief Leever (Riiba) * * @details * diff --git a/include/d/actor/d_a_e_rd.h b/include/d/actor/d_a_e_rd.h index 4c76cdb026f..d289c5f225c 100644 --- a/include/d/actor/d_a_e_rd.h +++ b/include/d/actor/d_a_e_rd.h @@ -172,7 +172,7 @@ public: /* 0x1297 */ s8 field_0x1297; /* 0x1298 */ s8 field_0x1298; /* 0x1299 */ u8 field_0x1299; - /* 0x129A */ s8 field_0x129a; + /* 0x129A */ s8 mBossMode; // 1: Eldin Field, 2 Eldin Bridge, 3 Lake Hylia Bridge, 4 ??? /* 0x129B */ u8 field_0x129b; /* 0x129C */ s8 field_0x129c; /* 0x12A0 */ int field_0x12a0; diff --git a/include/d/actor/d_a_e_th.h b/include/d/actor/d_a_e_th.h index 4fc76287531..a0ca9fb8ac4 100644 --- a/include/d/actor/d_a_e_th.h +++ b/include/d/actor/d_a_e_th.h @@ -17,7 +17,7 @@ struct th_ke_s { /** * @ingroup actors-enemies * @class e_th_class - * @brief Darkhammer + * @brief Darkhammer (Tekkyuuhei) * * @details * diff --git a/include/d/actor/d_a_e_wb.h b/include/d/actor/d_a_e_wb.h index 56e15385e88..b903127a77e 100644 --- a/include/d/actor/d_a_e_wb.h +++ b/include/d/actor/d_a_e_wb.h @@ -6,17 +6,68 @@ #include "SSystem/SComponent/c_phase.h" #include "d/d_cc_uty.h" -enum daE_wb_ACT { - /* 0x00 */ ACT_WAIT, - /* 0x15 */ ACT_S_DAMAGE = 0x15, - /* 0x65 */ ACT_PL_RIDE = 0x65, - /* 0x67 */ ACT_PL_RIDE_NOW = 0x67, +// copypasta, fix when actual names known +enum daE_WB_ANM { + ANM_APPEAR = 7, + ANM_ATTACK, + ANM_ATTACK_A, + ANM_ATTACK_B, + ANM_ATTACK_C, + ANM_BOMB_DAMAGE, + ANM_CORE_DAMAGE, + ANM_DAMAGE_WAIT, + ANM_DEAD, + ANM_LOOK_M, + ANM_NO_DAMAGE, + ANM_RETURN_01, + ANM_RETURN_02, + ANM_RUNAWAY, + ANM_TEST_MOTION, + ANM_TODOME, + ANM_WAIT_01, }; +enum daE_WB_ACT { + /* 0x00 */ ACT_WAIT, + /* 0x01 */ ACT_WAIT2, + /* 0x04 */ ACT_RIDE = 0x04, + /* 0x05 */ ACT_F_WAIT, + /* 0x06 */ ACT_C_F_RUN, + /* 0x07 */ ACT_A_RUN, + /* 0x08 */ ACT_B_WAIT, + /* 0x09 */ ACT_B_WAIT2, + /* 0x0A */ ACT_B_RUN, + /* 0x0B */ ACT_B_RUN2, + /* 0x0F */ ACT_B_IKKI = 0x0F, + /* 0x10 */ ACT_B_IKKI_END, + /* 0x11 */ ACT_B_IKKI2, + /* 0x12 */ ACT_B_IKKI2_END, + /* 0x13 */ ACT_B_LV9_END, + /* 0x15 */ ACT_S_DAMAGE = 0x15, + /* 0x16 */ ACT_DAMAGE, + /* 0x17 */ ACT_BG_DAMAGE, + /* 0x18 */ ACT_LR_DAMAGE, + /* 0x1E */ ACT_KIBA_START = 0x1E, + /* 0x1F */ ACT_KIBA_END, + /* 0x32 */ ACT_EVENT = 0x32, + /* 0x65 */ ACT_PL_RIDE = 0x65, + /* 0x66 */ ACT_PL_RIDE2, + /* 0x67 */ ACT_PL_RIDE_NOW, + /* 0x6E */ ACT_CRV_WAIT = 0x6E, +}; + +struct himo_s { + /* 807E1CCC */ ~himo_s(); + /* 807E1D2C */ himo_s(); + + /* 0x0 */ cXyz field_0x0[16]; +}; + + /** * @ingroup actors-enemies * @class e_wb_class - * @brief Bullbo + * @brief Bullbo (Wild Boar) * * @details * @@ -49,19 +100,19 @@ public: public: /* 0x05AC */ request_of_phase_process_class mPhase; - /* 0x05B4 */ s16 field_0x5b4; + /* 0x05B4 */ s16 mActionMode; /* 0x05B8 */ char* mResName; - /* 0x05BC */ u8 field_0x5bc; - /* 0x05BD */ u8 field_0x5bd; + /* 0x05BC */ u8 mParam; + /* 0x05BD */ u8 mParam2; /* 0x05BE */ u8 field_0x5be; /* 0x05BF */ bool field_0x5bf; /* 0x05C0 */ u8 field_0x5c0; /* 0x05C4 */ cXyz field_0x5c4; /* 0x05D0 */ cXyz field_0x5d0; - /* 0x05DC */ s16 field_0x5dc; + /* 0x05DC */ s16 mAngleTarget; /* 0x05DE */ s16 field_0x5de; /* 0x05E0 */ mDoExt_McaMorfSO* mpModelMorf; - /* 0x05E4 */ f32 field_0x5e4; + /* 0x05E4 */ f32 mPlaySpeed; /* 0x05E8 */ int mAnmID; /* 0x05EC */ Z2CreatureRide mZ2Ride; /* 0x0688 */ int field_0x688; @@ -69,13 +120,14 @@ public: /* 0x068E */ s16 field_0x68e; /* 0x0690 */ s16 mActionID; /* 0x0692 */ u16 field_0x692; - /* 0x0694 */ u32 field_0x694; - /* 0x0698 */ s16 field_0x698[4]; + /* 0x0694 */ int mShadowKey; + /* 0x0698 */ s16 field_0x698; + /* 0x069A */ s16 field_0x69a; + /* 0x069C */ s16 field_0x69c; + /* 0x069E */ s16 field_0x69e; /* 0x06A0 */ s16 field_0x6a0; /* 0x06A2 */ u8 field_0x6a2[0x6ae - 0x6a2]; - /* 0x06AE */ s16 field_0x6ae; - /* 0x06B0 */ s16 field_0x6b0; - /* 0x06B2 */ s16 field_0x6b2; + /* 0x06AE */ csXyz field_0x6ae; /* 0x06B4 */ u8 field_0x6b4[0x6b6 - 0x6b4]; /* 0x06B6 */ s16 field_0x6b6; /* 0x06B8 */ u8 field_0x6b8[0x6ba - 0x6b8]; @@ -84,17 +136,22 @@ public: /* 0x06BD */ u8 field_0x6bd; /* 0x06BE */ u16 field_0x6be; /* 0x06C0 */ s8 field_0x6c0; - /* 0x06C4 */ cXyz field_0x6c4; + /* 0x06C4 */ f32 field_0x6c4; + /* 0x06C8 */ int mBPathIdx; // The b_path indexer + /* 0x06CC */ int mBPathIdxIter; // The amount to change the b_path indexer by /* 0x06D0 */ s16 field_0x6d0; - /* 0x06D2 */ s16 field_0x6d2; + /* 0x06D2 */ s16 mTargetAngleStep; /* 0x06D4 */ s16 field_0x6d4; /* 0x06D6 */ s16 field_0x6d6; - /* 0x06D8 */ u8 field_0x6d8[0x6da - 0x6d8]; + /* 0x06D8 */ s16 field_0x6d8; /* 0x06DA */ s16 field_0x6da; /* 0x06DC */ s16 field_0x6dc; - /* 0x06DE */ u8 field_0x6de[0x6e4 - 0x6de]; + /* 0x06DE */ s16 field_0x6de; + /* 0x06E0 */ s16 field_0x6e0; + /* 0x06E2 */ s16 field_0x6e2; /* 0x06E4 */ u8 field_0x6e4; - /* 0x06E5 */ u8 field_0x6e5[0x79a - 0x6e5]; + /* 0x06E5 */ u8 field_0x6e5[0x6ec - 0x6e5]; + /* 0x06EC */ csXyz field_0x6ec[0x1d]; /* 0x079A */ s16 field_0x79a; /* 0x079C */ u8 field_0x79c; /* 0x079D */ s8 field_0x79d; @@ -107,7 +164,7 @@ public: /* 0x07A7 */ s8 field_0x7a7; /* 0x07A8 */ f32 field_0x7a8; /* 0x07AC */ dBgS_AcchCir field_0x7ac; - /* 0x07EC */ dBgS_Acch field_0x7ec; + /* 0x07EC */ dBgS_ObjAcch mAcch; /* 0x09C4 */ dCcD_Stts field_0x9c4; /* 0x0A00 */ dCcD_Sph field_0xa00[7]; /* 0x1288 */ dCcD_Sph field_0x1288; @@ -134,15 +191,13 @@ public: /* 0x142F */ s8 field_0x142f; /* 0x1430 */ s8 field_0x1430; /* 0x1432 */ s16 field_0x1432; - /* 0x1434 */ fpc_ProcID field_0x1434; // Some actor ID - /* 0x1438 */ cXyz field_0x1438; - /* 0x1444 */ cXyz field_0x1444; - /* 0x1450 */ u8 field_0x1450[0x15d0 - 0x1450]; - /* 0x15D0 */ mDoExt_3DlineMat1_c field_0x15d0; - /* 0x160C */ mDoExt_3DlineMat1_c field_0x160c; + /* 0x1434 */ fpc_ProcID field_0x1434; // Rider actor ID? + /* 0x1438 */ cXyz field_0x1438[2]; + /* 0x1450 */ himo_s field_0x1450[2]; + /* 0x15D0 */ mDoExt_3DlineMat1_c field_0x15d0[2]; /* 0x1648 */ mDoExt_3DlineMat1_c field_0x1648; /* 0x1684 */ f32 field_0x1684; - /* 0x1688 */ u8 field_0x1688; + /* 0x1688 */ s16 field_0x1688; /* 0x168A */ u16 field_0x168a; /* 0x168C */ f32 field_0x168c; /* 0x1690 */ f32 field_0x1690; @@ -180,15 +235,39 @@ public: STATIC_ASSERT(sizeof(e_wb_class) == 0x17EC); -struct himo_s { - /* 807E1CCC */ ~himo_s(); - /* 807E1D2C */ himo_s(); +class daE_WB_HIO_c : public JORReflexible { +public: + /* 807D248C */ daE_WB_HIO_c(); + /* 807E20DC */ virtual ~daE_WB_HIO_c() {}; + void genMessage(JORMContext*); + + /* 0x00 */ // vtable + /* 0x04 */ s8 field_0x04; + /* 0x08 */ f32 mBaseSize; + /* 0x0C */ f32 mLeaderSizeRatio; + /* 0x10 */ f32 mMovementSpeed; + /* 0x14 */ f32 mMaxSpeed; + /* 0x18 */ f32 mCalvaryBattleMaxSpeed; + /* 0x1C */ f32 mNormalSpeedVi; + /* 0x20 */ f32 mMediumSpeedVi; + /* 0x24 */ f32 mMaxSpeedVi; + /* 0x28 */ f32 mLeaderWalkingSpeed; + /* 0x2C */ f32 mLeaderMaxSpeed; + /* 0x30 */ f32 mLeaderCalvaryBattleMaxSpeed; + /* 0x34 */ f32 mSingleRiderSpeed; + /* 0x38 */ f32 mPlayerRecognitionDistance; + /* 0x3C */ f32 mPlayerMountedMaxSpeed; + /* 0x40 */ f32 mPlayerMountedMotionPlaybackSpeed; + /* 0x44 */ s16 mPlayerMountedDashTime; + /* 0x48 */ f32 mSearchIgnoreDistance1; + /* 0x4C */ f32 mSearchIgnoreDistance2; + /* 0x50 */ f32 mGuidanceDisplayDistance1; + /* 0x54 */ f32 mGuidanceDisplayDistance2; + /* 0x58 */ u8 field_0x58; + /* 0x59 */ u8 mNoReins; }; -class daE_WB_HIO_c { - /* 807D248C */ daE_WB_HIO_c(); - /* 807E20DC */ ~daE_WB_HIO_c(); -}; +STATIC_ASSERT(sizeof(daE_WB_HIO_c) == 0x5C); #endif /* D_A_E_WB_H */ diff --git a/include/d/actor/d_a_e_yk.h b/include/d/actor/d_a_e_yk.h index 5a4688ea5f0..8357e21fc92 100644 --- a/include/d/actor/d_a_e_yk.h +++ b/include/d/actor/d_a_e_yk.h @@ -10,7 +10,7 @@ #include "SSystem/SComponent/c_phase.h" #include "Z2AudioLib/Z2Creature.h" -#include "f_op/f_op_actor.h" +#include "f_op/f_op_actor_mng.h" #include "d/d_bg_s_acch.h" #include "d/d_cc_d.h" #include "d/d_cc_uty.h" @@ -37,7 +37,7 @@ enum daE_YK_Action { /** * @ingroup actors-enemies * @class e_yk_class - * @brief Twilight Keese + * @brief Twilight Keese (Yami Keese) * * @details * diff --git a/include/d/actor/d_a_npc_ks.h b/include/d/actor/d_a_npc_ks.h index 0975f3d1f7f..12a6d6e3351 100644 --- a/include/d/actor/d_a_npc_ks.h +++ b/include/d/actor/d_a_npc_ks.h @@ -9,7 +9,7 @@ /** * @ingroup actors-npcs * @class npc_ks_class - * @brief Monkey NPC + * @brief Monkey NPC (Kozaru) * * @details * diff --git a/include/d/actor/d_a_npc_tk.h b/include/d/actor/d_a_npc_tk.h index d6cc44b203e..000b1bf1cba 100644 --- a/include/d/actor/d_a_npc_tk.h +++ b/include/d/actor/d_a_npc_tk.h @@ -14,7 +14,7 @@ class J3DModel; /** * @ingroup actors-npcs * @class daNPC_TK_c - * @brief Hawk + * @brief Hawk (Taka) * * @details * diff --git a/include/d/actor/d_a_obj_batta.h b/include/d/actor/d_a_obj_batta.h index 908fc8ecac7..214ca977aac 100644 --- a/include/d/actor/d_a_obj_batta.h +++ b/include/d/actor/d_a_obj_batta.h @@ -9,7 +9,7 @@ /** * @ingroup actors-objects * @class daObjBATTA_c - * @brief Insect - Grasshopper + * @brief Insect - Grasshopper (Batta) * * @details * diff --git a/include/d/actor/d_a_obj_bemos.h b/include/d/actor/d_a_obj_bemos.h index 311b26e281a..1cf44a954b1 100644 --- a/include/d/actor/d_a_obj_bemos.h +++ b/include/d/actor/d_a_obj_bemos.h @@ -2,6 +2,10 @@ #define D_A_OBJ_BEMOS_H #include "f_op/f_op_actor_mng.h" +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_bg_w_base.h" +#include "d/d_cc_d.h" +#include "m_Do/m_Do_ext.h" /** * @ingroup actors-objects @@ -11,7 +15,7 @@ * @details * */ -class daObjBm_c : public fopAc_ac_c { +class daObjBm_c : public dBgS_MoveBgActor { public: class BgcSrc_c {}; @@ -28,6 +32,16 @@ public: static u8 M_wall_work[2576]; }; + u32 getSwNo3() { return fopAcM_GetParamBit(this, 16,8); } + u32 getMoveType() { return fopAcM_GetParamBit(this, 24, 4); } + s16 getHeadJoint() { return mHeadJntNo; } + s16 getBigGearJoint() { return mBigGearJntNo; } + s16 getSmallGear0Joint() { return mSmallGear0JntNo; } + s16 getSmallGear1Joint() { return mSmallGear1JntNo; } + s16 getSmallGear2Joint() { return mSmallGear2JntNo; } + s8 getSwNo() { return fopAcM_GetParamBit(this,8,8);} + s8 getSwNo2() { return fopAcM_GetParamBit(this,0,8);} + /* 80BAE36C */ void PPCallBack(fopAc_ac_c*, fopAc_ac_c*, s16, dBgW_Base::PushPullLabel); /* 80BAE5FC */ void initBaseMtx(); /* 80BAE68C */ void setBaseMtx(); @@ -76,8 +90,64 @@ public: /* 80BB2C8C */ int Delete(); static u8 const M_dir_base[8]; -private: - /* 0x568 */ u8 field_0x568[0x1258 - 0x568]; +// private: + /* 0x05A0 */ u8 field_0x5a0[0x8]; + /* 0x05A8 */ J3DModel* mpModel; + /* 0x05AC */ mDoExt_brkAnm* mpBrkAnm; + /* 0x05B0 */ mDoExt_baseAnm* mpBaseAnm; + /* 0x05B4 */ J3DModel* mpModel2; + /* 0x05B8 */ u8 field_0x5b8[0xa]; + /* 0x05C4 */ J3DModel* mpModel3; + /* 0x05C8 */ mDoExt_baseAnm* mpBaseAnm2; + /* 0x05CC */ u8 field_0x5cc[0x7e4 - 0x5cc]; + /* 0x07E4 */ dCcD_Stts mStts; + /* 0x0820 */ dCcD_Sph mSph; + /* 0x0958 */ dCcD_Cps mCps; + /* 0x0A9c */ dCcD_Cyl mCyl[4]; + /* 0x0F8C */ s16 mHeadJntNo; + /* 0x0F8E */ s16 mBigGearJntNo; + /* 0x0F90 */ s16 mSmallGear0JntNo; + /* 0x0F92 */ s16 mSmallGear1JntNo; + /* 0x0F94 */ s16 mSmallGear2JntNo; + /* 0x0F96 */ s16 field_0xf96; + /* 0x0F96 */ s16 field_0xf98; + /* 0x0F9A */ s16 field_0xf9a; + /* 0x0F9C */ s16 field_0xf9c; + /* 0x0F9E */ s16 field_0xf9e; + /* 0x0FA0 */ s16 field_0xfa0; + /* 0x0FA2 */ s16 field_0xfa2; + /* 0x0FA4 */ s16 field_0xfa4; + /* 0x0FA6 */ s16 field_0xfa6; + /* 0x0FA8 */ u8 field_0xfa8[0xfb4 - 0xfa8]; + /* 0x0FB4 */ J3DMaterial* mpMaterial; + /* 0x0FB8 */ cXyz field_0xfb8; + /* 0x0FC4 */ csXyz field_0xfc4; + /* 0x0FCA */ u8 field_0xfca[2]; + /* 0x0FCC */ u32 field_0xfcc; + /* 0x0FD0 */ u8 field_0xfd0[0xff0 - 0xfd0]; + /* 0x0FF0 */ f32 field_0xff0; + /* 0x0FF4 */ u8 field_0xff4[3]; + /* 0x0FF7 */ u8 field_0xff7; + /* 0x0FF8 */ f32 field_0xff8; + /* 0x0FFC */ f32 field_0xffc; + /* 0x1000 */ f32 field_0x1000; + /* 0x1004 */ u8 field_0x1004[0x100c - 0x1004]; + /* 0x100C */ f32 field_0x100c; + /* 0x1010 */ u8 field_0x1010[0x1038 - 0x1010]; + /* 0x1038 */ u8 field_0x1038; + /* 0x1039 */ u8 field_0x1039; + /* 0x103A */ u8 field_0x103a[0x10a0 - 0x103a]; + /* 0x10A0 */ cXyz field_0x10a0; + /* 0x10AC */ u8 field_0x10ac[0x10c0 - 0x10ac]; + /* 0x10C0 */ int field_0x10c0; + /* 0x10C4 */ s16 field_0x10c4[4]; + /* 0x10D4 */ u8 field_0x10cc[0x10d2 - 0x10cc]; + /* 0x10D2 */ u8 field_0x10d2; + /* 0x10D3 */ u8 field_0x10d3; + /* 0x10D4 */ u8 field_0x10d4[0x10e8 - 0x10d4]; + /* 0x10E8 */ f32 field_0x10e8; + /* 0x10EC */ f32 field_0x10ec; + /* 0x10F0 */ u8 field_0x10f0[0x1258 - 0x10f0]; }; STATIC_ASSERT(sizeof(daObjBm_c) == 0x1258); diff --git a/include/d/actor/d_a_obj_kamakiri.h b/include/d/actor/d_a_obj_kamakiri.h index 94004759d57..a455de44f66 100644 --- a/include/d/actor/d_a_obj_kamakiri.h +++ b/include/d/actor/d_a_obj_kamakiri.h @@ -10,7 +10,7 @@ /** * @ingroup actors-objects * @class daObjKAM_c - * @brief Insect - Mantis + * @brief Insect - Mantis (Kamakiri) * * @details * diff --git a/include/d/actor/d_a_obj_kanban2.h b/include/d/actor/d_a_obj_kanban2.h index f92d5c44aa3..ee66c423fd2 100644 --- a/include/d/actor/d_a_obj_kanban2.h +++ b/include/d/actor/d_a_obj_kanban2.h @@ -10,7 +10,7 @@ /** * @ingroup actors-objects * @class daObj_Kanban2_c - * @brief Sign 2 + * @brief Sign 2 (Shredded Sign) * * @details * diff --git a/include/d/actor/d_a_obj_katatsumuri.h b/include/d/actor/d_a_obj_katatsumuri.h index 791264888a4..f15b9e18340 100644 --- a/include/d/actor/d_a_obj_katatsumuri.h +++ b/include/d/actor/d_a_obj_katatsumuri.h @@ -10,7 +10,7 @@ /** * @ingroup actors-objects * @class daObjKAT_c - * @brief Insect - Snail + * @brief Insect - Snail (Katatsumuri) * * @details * diff --git a/include/d/actor/d_a_obj_so.h b/include/d/actor/d_a_obj_so.h index 5b43356ae74..077762083fa 100644 --- a/include/d/actor/d_a_obj_so.h +++ b/include/d/actor/d_a_obj_so.h @@ -9,7 +9,7 @@ /** * @ingroup actors-objects * @class obj_so_class - * @brief Monkey Cage + * @brief Monkey Cage (Saru Ori) * * @details * diff --git a/include/d/actor/d_a_obj_tombo.h b/include/d/actor/d_a_obj_tombo.h index f52fd5027e6..b3b7604bc92 100644 --- a/include/d/actor/d_a_obj_tombo.h +++ b/include/d/actor/d_a_obj_tombo.h @@ -9,7 +9,7 @@ /** * @ingroup actors-objects * @class daObjTOMBO_c - * @brief Insect - Dragonfly + * @brief Insect - Dragonfly (Tonbo) * * @details * diff --git a/src/d/actor/d_a_e_rd.cpp b/src/d/actor/d_a_e_rd.cpp index 759720fb021..4007ac30410 100644 --- a/src/d/actor/d_a_e_rd.cpp +++ b/src/d/actor/d_a_e_rd.cpp @@ -253,7 +253,7 @@ static fopAc_ac_c* get_pla(fopAc_ac_c* a_this) { /* 80504BD4-80504D28 000254 0154+00 36/36 0/0 0/0 .text anm_init__FP10e_rd_classifUcf */ static void anm_init(e_rd_class* i_this, int i_anmID, f32 i_morf, u8 i_mode, f32 i_speed) { if (i_this->field_0x680 == 0) { - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { if (i_anmID < 73) { i_this->mpModelMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_rdb", i_anmID), i_mode, i_morf, i_speed, 0.0f, -1.0f); @@ -425,7 +425,7 @@ static int daE_RD_Draw(e_rd_class* i_this) { g_env_light.settingTevStruct(0, &a_this->current.pos, &a_this->tevStr); g_env_light.setLightTevColorType_MAJI(model, &a_this->tevStr); - if (i_this->field_0x129a == 0 && i_this->field_0x968 != 0) { + if (i_this->mBossMode == 0 && i_this->field_0x968 != 0) { modelData = model->getModelData(); for (u16 i = 0; i < modelData->getMaterialNum(); i++) { matNode_p = modelData->getMaterialNodePointer(i); @@ -435,7 +435,7 @@ static int daE_RD_Draw(e_rd_class* i_this) { } } - if (i_this->field_0x129a == 3) { + if (i_this->mBossMode == 3) { modelData = model->getModelData(); matNode_p = modelData->getMaterialNodePointer(3); J3DShape* shape = matNode_p->getShape(); @@ -446,7 +446,7 @@ static int daE_RD_Draw(e_rd_class* i_this) { i_this->mpModelMorf->entryDL(); - if (i_this->field_0x129a == 0 && i_this->field_0x968 != 0) { + if (i_this->mBossMode == 0 && i_this->field_0x968 != 0) { modelData = model->getModelData(); for (u16 i = 0; i < modelData->getMaterialNum(); i++) { matNode_p = modelData->getMaterialNodePointer(i); @@ -469,7 +469,7 @@ static int daE_RD_Draw(e_rd_class* i_this) { } } - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { for (int i = 0; i < 14; i++) { if (i_this->mpBossArmorParts[i] != NULL) { g_env_light.setLightTevColorType_MAJI(i_this->mpBossArmorParts[i], &a_this->tevStr); @@ -684,18 +684,18 @@ static void ride_off(e_rd_class* i_this) { bullbo->mActionID = 0; } - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; } else if (bullbo->mActionID == 21) { - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; } else if ((bullbo->field_0x6be & 1) == 0) { - if (bullbo->mActionID == 6 && (bullbo->field_0x5b4 == 2 || bullbo->field_0x5b4 == 3)) { - bullbo->field_0x5b4 = 1; + if (bullbo->mActionID == 6 && (bullbo->mActionMode == 2 || bullbo->mActionMode == 3)) { + bullbo->mActionMode = 1; } else { - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; } bullbo->mActionID = 7; - bullbo->field_0x698[1] = cM_rndF(30.0f) + 80.0f; + bullbo->field_0x69a = cM_rndF(30.0f) + 80.0f; } } @@ -718,7 +718,7 @@ static void* s_wb_sub(void* i_actor, void* i_data) { if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_WB && ((e_wb_class*)i_actor)->mActionID != ACTION_DROP && ((e_wb_class*)i_actor)->mActionID != ACTION_DAMAGE && ((e_wb_class*)i_actor)->mActionID != ACTION_A_DAMAGE && ((e_wb_class*)i_actor)->mActionID != ACTION_STAND) { e_rd_class* i_this = (e_rd_class*)i_data; - if (i_this->field_0x129a == ((e_wb_class*)i_actor)->field_0x79d && + if (i_this->mBossMode == ((e_wb_class*)i_actor)->field_0x79d && (data_80519230 != 0 || (((e_wb_class*)i_actor)->field_0x6be & 3) != 3) && target_info_count < 10) { target_info[target_info_count] = (fopAc_ac_c*)i_actor; target_info_count++; @@ -1835,7 +1835,7 @@ static void e_rd_wb_search(e_rd_class* i_this) { } else { if (i_this->mMode >= 2 && bullbo->mActionID != 1) { bullbo->mActionID = 1; - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; } switch (i_this->mMode) { @@ -1977,7 +1977,7 @@ static void e_rd_wb_search(e_rd_class* i_this) { i_this->mAction = ACTION_WB_RIDE; i_this->mMode = 0; bullbo->mActionID = 4; - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; } } @@ -2006,29 +2006,29 @@ static void e_rd_wb_ride(e_rd_class* i_this) { switch (i_this->mMode) { case 0: i_this->mMode = 1; - if (i_this->field_0x129a == 0) { + if (i_this->mBossMode == 0) { anm_init(i_this, BCK_RD_JUMP_C, 1.0f, 0, 1.0f); } // fallthrough case 1: - if (i_this->mpModelMorf->isStop() || i_this->field_0x129a != 0) { - if (i_this->field_0x129a != 0) { - bullbo->field_0x5b4 = 0; + if (i_this->mpModelMorf->isStop() || i_this->mBossMode != 0) { + if (i_this->mBossMode != 0) { + bullbo->mActionMode = 0; i_this->mMode = 0; - if (i_this->field_0x129a == 3) { + if (i_this->mBossMode == 3) { bullbo->mActionID = 17; // Hyrule Field if (strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0) { - bullbo->field_0x5b4 = -100; + bullbo->mActionMode = -100; i_this->mAction = ACTION_IKKI2_START; } else { i_this->mAction = ACTION_WB_RUN; } - } else if (i_this->field_0x129a == 2) { + } else if (i_this->mBossMode == 2) { bullbo->mActionID = 15; i_this->mAction = ACTION_WB_RUN; - } else if (i_this->field_0x129a == 4) { + } else if (i_this->mBossMode == 4) { bullbo->mActionID = 19; i_this->mAction = ACTION_LV9_END; } else if (cDmr_SkipInfo == 0) { @@ -2042,7 +2042,7 @@ static void e_rd_wb_ride(e_rd_class* i_this) { } } else { bullbo->mActionID = 6; - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; i_this->mAction = ACTION_WB_RUN; i_this->mMode = 0; } @@ -2324,7 +2324,7 @@ static void e_rd_wb_run_B(e_rd_class* i_this) { dAttention_c* attention; if (bullbo != NULL) { - if (i_this->field_0x129a == 2 || i_this->field_0x129a == 3) { + if (i_this->mBossMode == 2 || i_this->mBossMode == 3) { fopAcM_OffStatus(a_this, 0); a_this->attention_info.flags = 0; } @@ -2385,11 +2385,13 @@ static void e_rd_wb_run_B(e_rd_class* i_this) { } } + if (fpcM_Search(s_wbrun_sub, i_this) != NULL && i_this->field_0x990[3] == 0) { i_this->field_0x6c2 = 1; i_this->field_0x990[3] = cM_rndF(100.0f) + 200.0f; } + // check if we need to jump a fence if ((bullbo->field_0x6be & 0x100) != 0) { i_this->mAction = ACTION_WB_BJUMP; i_this->mMode = 0; @@ -3791,7 +3793,7 @@ static void e_rd_ikki_end(e_rd_class* i_this) { bullbo->field_0x6be &= ~i_this->field_0x9be; i_this->field_0x9be = 0; bullbo->mActionID = 16; - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; bullbo->field_0x169e = 10; } @@ -3839,7 +3841,7 @@ static void e_rd_ikki2_end(e_rd_class* i_this) { anm_init(i_this, BCK_RD_RRUN_BACK, 0.0f, 0, 1.0f); i_this->mMode = 1; bullbo->mActionID = 18; - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; bullbo->field_0x169e = 90; mDoAud_bgmStop(30); } @@ -3923,7 +3925,7 @@ static void e_rd_lv9_end(e_rd_class* i_this) { e_rdb_class* king_bulblin = (e_rdb_class*)fpcM_Search(s_rdb_sub, i_this); if (king_bulblin != NULL && king_bulblin->mDemoMode == 14) { anm_init(i_this, e_rdb_class::BCK_RB_RNEIGH, 3.0f, 0, 1.0f); - bullbo->field_0x5b4++; + bullbo->mActionMode++; i_this->mMode = 4; } } @@ -4110,7 +4112,7 @@ static void damage_check(e_rd_class* i_this) { i_this->mStts.Move(); if (i_this->field_0x998 == 0) { - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { a_this->health = 100; } @@ -4118,7 +4120,7 @@ static void damage_check(e_rd_class* i_this) { if (i_this->field_0xd58[i].ChkTgHit() != 0) { i_this->field_0x998 = 6; i_this->mAtInfo.mpCollider = i_this->field_0xd58[i].GetTgHitObj(); - if (i_this->field_0x129a == 3) { + if (i_this->mBossMode == 3) { s16 sVar1 = a_this->shape_angle.y - i_this->mPlayerAngleY; at_power_check(&i_this->mAtInfo); if (i_this->mAtInfo.mpCollider->ChkAtType(AT_TYPE_ARROW) || i_this->mAtInfo.mpCollider->ChkAtType(AT_TYPE_BOMB)) { @@ -4139,7 +4141,7 @@ static void damage_check(e_rd_class* i_this) { } uVar1 = 3; - bullbo->field_0x698[3] = 100; + bullbo->field_0x69e = 100; dComIfGs_onSaveDunSwitch(7); } else { uVar1 = 2; @@ -4255,9 +4257,9 @@ static void damage_check(e_rd_class* i_this) { small_damage(i_this, i); i_this->field_0x998 = 3; } else { - if (i_this->field_0x129a != 0 && bullbo != NULL) { + if (i_this->mBossMode != 0 && bullbo != NULL) { i_this->field_0x998 = 20; - if (i_this->field_0x129a == 2) { + if (i_this->mBossMode == 2) { bullbo->field_0x79e++; if (bullbo->field_0x79e == 1) { a_this->health = 0; @@ -4316,7 +4318,7 @@ static void damage_check(e_rd_class* i_this) { i_this->mMode = 0; mDoAud_seStart(Z2SE_EN_RDB_V_FAINT, 0, 0, 0); bullbo->mActionID = 31; - bullbo->field_0x5b4 = 0; + bullbo->mActionMode = 0; mDoAud_bgmStop(30); return; } @@ -4958,7 +4960,7 @@ static void action(e_rd_class* i_this) { break; case ACTION_WB_RUN: - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { e_rd_wb_run_B(i_this); } else { e_rd_wb_run(i_this); @@ -5192,7 +5194,7 @@ static void action(e_rd_class* i_this) { MTXCopy(bullbo->mpModelMorf->getModel()->getAnmMtx(bullbo->field_0x688 + 16), *calc_mtx); } - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { sp25c.set(0.0f, BREG_F(4) + -65.0f, 0.0f); } else { sp25c.set(0.0f, BREG_F(4) + -45.0f, 0.0f); @@ -6258,7 +6260,7 @@ static int daE_RD_Execute(e_rd_class* i_this) { i_this->field_0x970++; - if (i_this->field_0x129a == 0) { + if (i_this->mBossMode == 0) { i_this->field_0x1297 = i_this->field_0x1298; } else { fopAc_ac_c* player = dComIfGp_getPlayer(0); @@ -6341,7 +6343,7 @@ static int daE_RD_Execute(e_rd_class* i_this) { if (!i_this->mObjAcch.ChkGroundHit()) { if (a_this->speed.y < -10.0f) { i_this->field_0xaf2++; - if (i_this->field_0xaf2 == 20 && i_this->field_0x129a == 0) { + if (i_this->field_0xaf2 == 20 && i_this->mBossMode == 0) { i_this->mSound.startCreatureVoice(Z2SE_EN_RD_V_DEATH, -1); } } @@ -6378,7 +6380,7 @@ static int daE_RD_Execute(e_rd_class* i_this) { mDoMtx_stack_c::ZrotM(a_this->shape_angle.z); f32 fVar1 = l_HIO.model_size * a_this->scale.x; - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { fVar1 *= l_HIO.field_0xc; } mDoMtx_stack_c::scaleM(fVar1, fVar1, fVar1); @@ -6409,7 +6411,7 @@ static int daE_RD_Execute(e_rd_class* i_this) { } } - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { if (i_this->mAnmID == e_rdb_class::BCK_RB_RCOMEON) { if (i_this->mpModelMorf->checkFrame(30.0f)) { i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_LAUGH, -1); @@ -6508,7 +6510,7 @@ static int daE_RD_Execute(e_rd_class* i_this) { spbc.set(-20000.0f, 200000.0f, 30000.0f); } - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { MTXCopy(model->getAnmMtx(AREG_S(9) + 6), *calc_mtx); } else { MTXCopy(model->getAnmMtx(13), *calc_mtx); @@ -6530,7 +6532,7 @@ static int daE_RD_Execute(e_rd_class* i_this) { a_this->attention_info.position = a_this->current.pos; a_this->attention_info.position.y += 190.0f; - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { a_this->attention_info.position.y += 120.0f; } } else { @@ -6538,10 +6540,10 @@ static int daE_RD_Execute(e_rd_class* i_this) { a_this->attention_info.position.y += 30.0f; } - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { f32 fVar2 = 60.0f; f32 fVar1 = 0.0f; - if (i_this->field_0x129a == 2) { + if (i_this->mBossMode == 2) { fVar2 = 90.0f; fVar1 = l_HIO.field_0x3c; } @@ -6580,13 +6582,13 @@ static int daE_RD_Execute(e_rd_class* i_this) { dComIfG_Ccsp()->Set(&i_this->field_0xd58[i]); - if (i_this->field_0x129a == 1 && i_this->field_0x9bc == 2) { + if (i_this->mBossMode == 1 && i_this->field_0x9bc == 2) { i_this->field_0xd58[i].OnTgNoHitMark(); } else { i_this->field_0xd58[i].OffTgNoHitMark(); } - if (i_this->field_0x129a == 3) { + if (i_this->mBossMode == 3) { for (int j = 0; j < 3; j++) { i_this->field_0xd58[j].SetTgType(0x2022); i_this->field_0xd58[j].OnTgNoHitMark(); @@ -6774,11 +6776,11 @@ static int daE_RD_Execute(e_rd_class* i_this) { 0x828E, }; - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { for (int i = 0; i < 14; i++) { if (i_this->mpBossArmorParts[i] != NULL) { if (i_this->field_0x70c[i] == 0) { - if (i_this->field_0x129a == 3) { + if (i_this->mBossMode == 3) { MTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(ikki2_boss_part_idx[i]), *calc_mtx); } else { MTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(boss_part_idx[i]), *calc_mtx); @@ -6864,7 +6866,7 @@ static int daE_RD_Execute(e_rd_class* i_this) { } } - if (i_this->field_0x129a == 0 && i_this->field_0x9bc == 0) { + if (i_this->mBossMode == 0 && i_this->field_0x9bc == 0) { fopAc_ac_c* player = dComIfGp_getPlayer(0); MTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(11), mDoMtx_stack_c::get()); mDoMtx_stack_c::multVecZero(&spa4); @@ -6921,7 +6923,7 @@ static void ride_game_actor_set(e_rd_class* i_this) { cXyz sp70, i_pos; csXyz i_angle; - OS_REPORT("E3 2005 ACTOR SET %d\n", i_this->field_0x129a); + OS_REPORT("E3 2005 ACTOR SET %d\n", i_this->mBossMode); static cXyz set_pos[6] = { cXyz(0.0f, 1500.0f, 2500.0f), cXyz(800.0f, 1500.0f, -4800.0f), @@ -6933,13 +6935,13 @@ static void ride_game_actor_set(e_rd_class* i_this) { dBgS_GndChk gnd_chk; int iVar1 = 6; - if (i_this->field_0x129a >= 2) { + if (i_this->mBossMode >= 2) { iVar1 = 1; } for (int i = 0; i < iVar1; i++) { u32 i_parameters; - if (i_this->field_0x129a == 1) { + if (i_this->mBossMode == 1) { cMtx_YrotS(*calc_mtx, player->shape_angle.y); sp70 = set_pos[i]; @@ -6954,15 +6956,15 @@ static void ride_game_actor_set(e_rd_class* i_this) { i_angle = player->shape_angle; i_angle.y += 0x4000; i_parameters = 0x80000005; - } else if (i_this->field_0x129a == 2) { + } else if (i_this->mBossMode == 2) { i_pos.set(34789.0f, -290.0f, -36177.0f); i_angle.set(0, 0, 0); i_parameters = 0x80000007; - } else if (i_this->field_0x129a == 3) { + } else if (i_this->mBossMode == 3) { i_pos.set(-93620.0f, -5750.0f, 49650.0f); i_angle.set(0, -0x8000, 0); i_parameters = 0x80000008; - } else if (i_this->field_0x129a == 4) { + } else if (i_this->mBossMode == 4) { i_pos = a_this->home.pos; i_angle = a_this->home.angle; i_parameters = 0x80000009; @@ -7012,7 +7014,7 @@ static int useHeapInit(fopAc_ac_c* a_this) { J3DModel* model; J3DModelData* modelData; - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { i_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes("E_rdb", e_rdb_class::BMDR_RB), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_rdb", e_rdb_class::BCK_RB_RWAIT), 2, 1.0f, 0, -1, &i_this->mSound, 0x80000, 0x11000084); @@ -7027,7 +7029,7 @@ static int useHeapInit(fopAc_ac_c* a_this) { model->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBack_B); } - if (i_this->field_0x129a == 1) { + if (i_this->mBossMode == 1) { i_this->mpMorfHornAnm = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_rdb", e_rdb_class::BMDR_RB_HORN), NULL, NULL, NULL, 2, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000084); if (i_this->mpMorfHornAnm == NULL || i_this->mpMorfHornAnm->getModel() == NULL) { @@ -7051,7 +7053,7 @@ static int useHeapInit(fopAc_ac_c* a_this) { }; for (int i = 0; i < 14; i++) { - if (i_this->field_0x129a == 3) { + if (i_this->mBossMode == 3) { if (i < 2) { modelData = (J3DModelData*)dComIfG_getObjectRes("E_rdb", ikki2_boss_part_bmd[i]); JUT_ASSERT(10672, modelData != 0); @@ -7062,7 +7064,7 @@ static int useHeapInit(fopAc_ac_c* a_this) { } else { i_this->field_0x70c[i] = 1; } - } else if (i_this->field_0x129a == 1 || i == 13) { + } else if (i_this->mBossMode == 1 || i == 13) { modelData = (J3DModelData*)dComIfG_getObjectRes("E_rdb", boss_part_bmd[i]); JUT_ASSERT(10687, modelData != 0); i_this->mpBossArmorParts[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); @@ -7169,13 +7171,13 @@ static cPhs__Step daE_RD_Create(fopAc_ac_c* a_this) { if (((i_this->field_0x5b6 == 4 || i_this->field_0x5b6 == 5) || i_this->field_0x5b6 == 11) || i_this->field_0x5b6 == 12) { if (i_this->field_0x5b6 == 4) { - i_this->field_0x129a = 1; + i_this->mBossMode = 1; } else if (i_this->field_0x5b6 == 5) { - i_this->field_0x129a = 2; + i_this->mBossMode = 2; } else if (i_this->field_0x5b6 == 11) { - i_this->field_0x129a = 3; + i_this->mBossMode = 3; } else if (i_this->field_0x5b6 == 12) { - i_this->field_0x129a = 4; + i_this->mBossMode = 4; } i_this->mResName = "E_rdb"; @@ -7209,7 +7211,7 @@ static cPhs__Step daE_RD_Create(fopAc_ac_c* a_this) { return cPhs_ERROR_e; } - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { boss = i_this; i_this->field_0x5b6 = 1; } @@ -7341,11 +7343,11 @@ static cPhs__Step daE_RD_Create(fopAc_ac_c* a_this) { a_this->home.angle.z = 0; u32 i_size; - if (i_this->field_0x129a == 1) { + if (i_this->mBossMode == 1) { i_size = 0xAD60; - } else if (i_this->field_0x129a == 2) { + } else if (i_this->mBossMode == 2) { i_size = 0x3C00; - } else if (i_this->field_0x129a == 3) { + } else if (i_this->mBossMode == 3) { i_size = 0x4400; } else { i_size = 0x4FF0; @@ -7356,7 +7358,7 @@ static cPhs__Step daE_RD_Create(fopAc_ac_c* a_this) { return cPhs_ERROR_e; } - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { ride_game_actor_set(i_this); } @@ -7393,7 +7395,7 @@ static cPhs__Step daE_RD_Create(fopAc_ac_c* a_this) { i_this->field_0xd58[i].Set(cc_sph_src); i_this->field_0xd58[i].SetStts(&i_this->mStts); - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { i_this->field_0xd58[i].SetTgType(0xD8FAFD3F); } } @@ -7417,7 +7419,7 @@ static cPhs__Step daE_RD_Create(fopAc_ac_c* a_this) { i_this->mSound.init(&a_this->current.pos, &a_this->eyePos, 3, 1); - if (i_this->field_0x129a != 0) { + if (i_this->mBossMode != 0) { i_this->mSound.setEnemyName("E_rdb"); } else { i_this->mSound.setEnemyName("E_rd"); @@ -7440,7 +7442,7 @@ static cPhs__Step daE_RD_Create(fopAc_ac_c* a_this) { // Lake Hylia or Hyrule Field fopAcM_OffStatus(a_this, fopAcM_STATUS_UNK_004000); } - } else if (i_this->field_0x129a != 4) { + } else if (i_this->mBossMode != 4) { fopAcM_OffStatus(a_this, fopAcM_STATUS_UNK_004000); } diff --git a/src/d/actor/d_a_e_wb.cpp b/src/d/actor/d_a_e_wb.cpp index 894467ddc77..9754a6d23fe 100644 --- a/src/d/actor/d_a_e_wb.cpp +++ b/src/d/actor/d_a_e_wb.cpp @@ -1,512 +1,21 @@ /** * @file d_a_e_wb.cpp - * -*/ - + * + */ + #include "d/dolzel_rel.h" - - #include "d/actor/d_a_e_wb.h" +#include "c/c_damagereaction.h" +#include "d/actor/d_a_alink.h" +#include "d/actor/d_a_e_rd.h" #include "d/d_com_inf_game.h" +#include "d/d_s_play.h" #include "dol2asm.h" +#include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_graphic.h" -// -// Forward References: -// - -extern "C" void __ct__12daE_WB_HIO_cFv(); -extern "C" static void anm_init__FP10e_wb_classifUcf(); -extern "C" static void nodeCallBack__FP8J3DJointi(); -extern "C" static void himo_control1__FP10e_wb_classP4cXyziSc(); -extern "C" void __dt__4cXyzFv(); -extern "C" static void himo_control2__FP10e_wb_classP4cXyziSc(); -extern "C" static void e_wb_lr_wall_check__FP10e_wb_class(); -extern "C" static void daE_WB_Draw__FP10e_wb_class(); -extern "C" static void e_wb_wall_check__FP10e_wb_class(); -extern "C" static void gake_check__FP10e_wb_class(); -extern "C" static void e_wb_saku_jump_check__FP10e_wb_class(); -extern "C" static void e_wb_saku_check_sub__FP10e_wb_classs(); -extern "C" static void e_wb_saku_check__FP10e_wb_class(); -extern "C" static void e_wb_wait__FP10e_wb_class(); -extern "C" static void e_wb_ride__FP10e_wb_class(); -extern "C" static void e_wb_pl_ride_now__FP10e_wb_class(); -extern "C" static void e_wb_pl_ride__FP10e_wb_class(); -extern "C" static void e_wb_f_wait__FP10e_wb_class(); -extern "C" static void pl_pass_check__FP10e_wb_classf(); -extern "C" static void e_wb_f_run__FP10e_wb_class(); -extern "C" static void s_wbstart_sub__FPvPv(); -extern "C" static void e_wb_b_wait__FP10e_wb_class(); -extern "C" static void e_wb_b_run2__FP10e_wb_class(); -extern "C" static void e_wb_b_wait2__FP10e_wb_class(); -extern "C" static void e_wb_b_run__FP10e_wb_class(); -extern "C" static void arrow_rd_set__FP10e_wb_class(); -extern "C" static void e_wb_b_ikki__FP10e_wb_class(); -extern "C" void __dt__5csXyzFv(); -extern "C" static void e_wb_b_ikki_end__FP10e_wb_class(); -extern "C" static void e_wb_b_ikki2__FP10e_wb_class(); -extern "C" static void e_wb_b_ikki2_end__FP10e_wb_class(); -extern "C" static void e_wb_b_lv9_end__FP10e_wb_class(); -extern "C" static void e_wb_a_run__FP10e_wb_class(); -extern "C" static void e_wb_s_damage__FP10e_wb_class(); -extern "C" static void e_wb_damage__FP10e_wb_class(); -extern "C" static void e_wb_bg_damage__FP10e_wb_class(); -extern "C" static void e_wb_lr_damage__FP10e_wb_class(); -extern "C" static void e_wb_kiba_start__FP10e_wb_class(); -extern "C" static void e_wb_kiba_end__FP10e_wb_class(); -extern "C" static void damage_check__FP10e_wb_class(); -extern "C" static void effect_set__FP10e_wb_class(); -extern "C" static void wb_rd_reset__FP10e_wb_class(); -extern "C" static void wb_c_rd_reset__FP10e_wb_class(); -extern "C" static void s_rddel_sub__FPvPv(); -extern "C" static void s_rdcount_sub__FPvPv(); -extern "C" static void s_rddel2_sub__FPvPv(); -extern "C" static void e_wb_crv_wait__FP10e_wb_class(); -extern "C" static void e_wb_c_run__FP10e_wb_class(); -extern "C" static void action__FP10e_wb_class(); -extern "C" static void s_wbZrevise_sub__FPvPv(); -extern "C" static void s_spd0_sub__FPvPv(); -extern "C" static void s_wbdel_sub__FPvPv(); -extern "C" static void s_rdArrowWait_sub__FPvPv(); -extern "C" static void cam_3d_morf__FP10e_wb_classf(); -extern "C" static void demo_camera__FP10e_wb_class(); -extern "C" void fadeIn__13mDoGph_gInf_cFfR8_GXColor(); -extern "C" void checkSkipEdge__14dEvt_control_cFv(); -extern "C" static void cM_scos__Fs(); -extern "C" static void cM_ssin__Fs(); -extern "C" static void anm_se_eff_set__FP10e_wb_class(); -extern "C" static void daE_WB_Execute__FP10e_wb_class(); -extern "C" static bool daE_WB_IsDelete__FP10e_wb_class(); -extern "C" static void daE_WB_Delete__FP10e_wb_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void daE_WB_Create__FP10fopAc_ac_c(); -extern "C" void __ct__19mDoExt_3DlineMat1_cFv(); -extern "C" void __dt__6himo_sFv(); -extern "C" void __ct__6himo_sFv(); -extern "C" void __dt__8cM3dGSphFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__8dCcD_SphFv(); -extern "C" void __ct__8dCcD_SphFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__12daE_WB_HIO_cFv(); -extern "C" void __sinit_d_a_e_wb_cpp(); -extern "C" void func_807E2238(); -extern "C" void func_807E2270(); -extern "C" static void func_807E22A8(); -extern "C" static void func_807E22B0(); -extern "C" static void dComIfGp_setHitMark__FUsP10fopAc_ac_cPC4cXyzPC5csXyzPC4cXyzUl(); -extern "C" void changeDemoPos0__9daPy_py_cFPC4cXyz(); -extern "C" void changeDemoMode__9daPy_py_cFUliis(); -extern "C" void changeDemoParam2__9daPy_py_cFs(); -extern "C" void fabsf__3stdFf(); -extern "C" void __ct__4cXyzFRC4cXyz(); -extern "C" static void cMtx_YrotS__FPA4_fs(); -extern "C" static void fopAcM_searchPlayerAngleY__FPC10fopAc_ac_c(fopAc_ac_c const* param_0); -extern "C" static void dComIfGs_onEventBit__FUs(u16); -extern "C" static void Z2GetAudioMgr__Fv(); -extern "C" void cancelOriginalDemo__9daPy_py_cFv(); -extern "C" static void dComIfGp_event_reset__Fv(); -extern "C" void changeOriginalDemo__9daPy_py_cFv(); -extern "C" static void daPy_getPlayerActorClass__Fv(); -extern "C" void __as__11actor_placeFRC11actor_place(); -extern "C" void __as__5csXyzFRC5csXyz(); -extern "C" void set__4cXyzFfff(); -extern "C" void onCondition__11dEvt_info_cFUs(); -extern "C" void checkCommandDemoAccrpt__11dEvt_info_cFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" static void fopAcM_SearchByName__Fs(s16); -extern "C" static void fopAcM_SearchByID__FUi(unsigned int); -extern "C" static daHorse_c* dComIfGp_getHorseActor__Fv(); -extern "C" static void dComIfGp_getPlayer__Fi(int); -extern "C" static void dComIfGp_getCamera__Fi(int); -extern "C" static void dComIfGp_getPlayerCameraID__Fi(int); -extern "C" static void dMsgObject_isTalkNowCheck__Fv(); -extern "C" void abs__4cXyzCFv(); -extern "C" static void cMtx_XrotM__FPA4_fs(); -extern "C" static void JMAFastSqrt__Ff(); -extern "C" static void dComIfGp_particle_set__FUlUsPC4cXyzPC5csXyzPC4cXyz(); -extern "C" void cancelOriginalDemo__9daHorse_cFv(); -extern "C" void __ct__10JAISoundIDFUl(u32* this_replacement, u32 param_0); -extern "C" static void dComIfGp_getVibration__Fv(); -extern "C" void __ct__4cXyzFfff(); -extern "C" void onDemoJumpDistance__9daHorse_cFff(); -extern "C" void __as__4cXyzFRC4cXyz(); -extern "C" void __apl__4cXyzFRC3Vec(); -extern "C" void multVec__14mDoMtx_stack_cFPC3VecP3Vec(Vec const* param_0, Vec* param_1); -extern "C" void YrotS__14mDoMtx_stack_cFs(s16); -extern "C" void changeDemoPos0__9daHorse_cFPC4cXyz(); -extern "C" void changeDemoMode__9daHorse_cFUli(); -extern "C" void setHorsePosAndAngle__9daHorse_cFPC4cXyzs(); -extern "C" void startCheckSkipEdge__14dEvt_control_cFPv(); -extern "C" static void dComIfGp_getEvent__Fv(); -extern "C" static void fpcM_Search__FPFPvPv_PvPv(void* (*param_0)(void*, void*), void* param_1); -extern "C" void changeOriginalDemo__9daHorse_cFv(); -extern "C" extern char const* const d_a_e_wb__stringBase0; - -// -// External References: -// - -extern "C" void fadeOut__13mDoGph_gInf_cFfR8_GXColor(); -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 transM__14mDoMtx_stack_cFfff(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff(); -extern "C" void play__16mDoExt_McaMorfSOFUlSc(); -extern "C" void entryDL__16mDoExt_McaMorfSOFv(); -extern "C" void modelCalc__16mDoExt_McaMorfSOFv(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void init__19mDoExt_3DlineMat1_cFUsUsP7ResTIMGi(); -extern "C" void update__19mDoExt_3DlineMat1_cFiR8_GXColorP12dKy_tevstr_c(); -extern "C" void setMat__26mDoExt_3DlineMatSortPacketFP18mDoExt_3DlineMat_c(); -extern "C" void cDmrNowMidnaTalk__Fv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_setStageLayer__FPv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc(); -extern "C" void fopAcM_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs(); -extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci(); -extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void fpcSch_JudgeForPName__FPvPv(); -extern "C" void fpcSch_JudgeByID__FPvPv(); -extern "C" void getLayerNo__14dComIfG_play_cFi(); -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 dComIfGp_setNextStage__FPCcsScScfUliScsii(); -extern "C" void dComIfGp_setNextStage__FPCcsScSc(); -extern "C" void dComIfGs_onOneZoneSwitch__Fii(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void onEventBit__11dSv_event_cFUs(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void dEv_noFinishSkipProc__FPvi(); -extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void getEmitter__Q213dPa_control_c7level_cFUl(); -extern "C" void setHitMark__13dPa_control_cFUsP10fopAc_ac_cPC4cXyzPC5csXyzPC4cXyzUl(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void -set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -extern "C" void StartQuake__12dVibration_cFii4cXyz(); -extern "C" void StopQuake__12dVibration_cFi(); -extern "C" void LineCross__4cBgSFP11cBgS_LinChk(); -extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); -extern "C" void GetActorPointer__4cBgSCFi(); -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__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__18dBgS_ObjGndChk_SplFv(); -extern "C" void __dt__18dBgS_ObjGndChk_SplFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Move__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void ChkAtHit__12dCcD_GObjInfFv(); -extern "C" void GetAtHitObj__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void ChkCoHit__12dCcD_GObjInfFv(); -extern "C" void GetCoHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph(); -extern "C" void def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c(); -extern "C" void at_power_check__FP11dCcU_AtInfo(); -extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo(); -extern "C" void getHorseReinHandPos__9daAlink_cFP4cXyzP4cXyz(); -extern "C" void checkHorseNotGrab__9daAlink_cCFv(); -extern "C" void Start__9dCamera_cFv(); -extern "C" void Stop__9dCamera_cFv(); -extern "C" void SetTrimSize__9dCamera_cFl(); -extern "C" void Set__9dCamera_cF4cXyz4cXyzsf(); -extern "C" void Reset__9dCamera_cF4cXyz4cXyzfs(); -extern "C" void Reset__9dCamera_cF4cXyz4cXyz(); -extern "C" void dCam_getControledAngleY__FP12camera_class(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_Sound_set__F4cXyziUii(); -extern "C" void dKy_change_colpat__FUc(); -extern "C" void dKy_pol_sound_get__FPC13cBgS_PolyInfo(); -extern "C" void getStatus__12dMsgObject_cFv(); -extern "C" void GetAc__8cCcD_ObjFv(); -extern "C" void SetGrp__10cCcD_ObjTgFUl(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ct__5csXyzFsss(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void cM_rndFX__Ff(); -extern "C" void SetPos__11cBgS_GndChkFPC3Vec(); -extern "C" void SetPos__11cBgS_GndChkFPC4cXyz(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGSphFRC4cXyz(); -extern "C" void SetR__8cM3dGSphFf(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_addCalc0__FPfff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void cLib_chaseF__FPfff(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void MtxPosition__FP4cXyzP4cXyz(); -extern "C" void MtxPush__Fv(); -extern "C" void MtxPull__Fv(); -extern "C" void func_80280808(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void bgmStart__8Z2SeqMgrFUlUll(); -extern "C" void bgmStop__8Z2SeqMgrFUll(); -extern "C" void subBgmStart__8Z2SeqMgrFUl(); -extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl(); -extern "C" void bgmStreamPlay__8Z2SeqMgrFv(); -extern "C" void bgmStreamStop__8Z2SeqMgrFUl(); -extern "C" void __ct__14Z2CreatureRideFv(); -extern "C" void init__14Z2CreatureRideFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void checkPass__12J3DFrameCtrlFf(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_20(); -extern "C" void _savegpr_21(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_20(); -extern "C" void _restgpr_21(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__19mDoExt_3DlineMat1_c[5]; -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Sph[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_SphAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -//extern "C" extern u8 struct_80450C98[4]; -extern "C" f32 mGroundY__11fopAcM_gc_c; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); -extern "C" void SetB_Close__14daObjCRVGATE_cFv(); -extern "C" void OpenSet__15daObjCRVSTEEL_cFff(); -extern "C" void CloseSet__15daObjCRVSTEEL_cFf(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 807E298C-807E2998 000000 000C+00 42/42 0/0 0/0 .rodata @3882 */ -SECTION_RODATA static u8 const lit_3882[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x807E298C, &lit_3882); - -/* 807E2998-807E299C 00000C 0004+00 0/2 0/0 0/0 .rodata @4440 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4440 = 6.0f / 5.0f; -COMPILER_STRIP_GATE(0x807E2998, &lit_4440); -#pragma pop - -/* 807E299C-807E29A0 000010 0004+00 0/1 0/0 0/0 .rodata @4441 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4441 = 3.5f; -COMPILER_STRIP_GATE(0x807E299C, &lit_4441); -#pragma pop - -/* 807E29A0-807E29A4 000014 0004+00 0/4 0/0 0/0 .rodata @4442 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4442 = 600.0f; -COMPILER_STRIP_GATE(0x807E29A0, &lit_4442); -#pragma pop - -/* 807E29A4-807E29A8 000018 0004+00 0/1 0/0 0/0 .rodata @4443 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4443 = 37.0f; -COMPILER_STRIP_GATE(0x807E29A4, &lit_4443); -#pragma pop - -/* 807E29A8-807E29AC 00001C 0004+00 0/10 0/0 0/0 .rodata @4444 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4444 = 50.0f; -COMPILER_STRIP_GATE(0x807E29A8, &lit_4444); -#pragma pop - -/* 807E29AC-807E29B0 000020 0004+00 1/20 0/0 0/0 .rodata @4445 */ -SECTION_RODATA static f32 const lit_4445 = 10.0f; -COMPILER_STRIP_GATE(0x807E29AC, &lit_4445); - -/* 807E29B0-807E29B4 000024 0004+00 0/11 0/0 0/0 .rodata @4446 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4446 = 40.0f; -COMPILER_STRIP_GATE(0x807E29B0, &lit_4446); -#pragma pop - -/* 807E29B4-807E29B8 000028 0004+00 0/1 0/0 0/0 .rodata @4447 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4447 = 54.0f; -COMPILER_STRIP_GATE(0x807E29B4, &lit_4447); -#pragma pop - -/* 807E29B8-807E29BC 00002C 0004+00 0/2 0/0 0/0 .rodata @4448 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4448 = 25.0f; -COMPILER_STRIP_GATE(0x807E29B8, &lit_4448); -#pragma pop - -/* 807E29BC-807E29C0 000030 0004+00 0/1 0/0 0/0 .rodata @4449 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4449 = 45.0f; -COMPILER_STRIP_GATE(0x807E29BC, &lit_4449); -#pragma pop - -/* 807E29C0-807E29C4 000034 0004+00 0/4 0/0 0/0 .rodata @4450 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4450 = 55.0f; -COMPILER_STRIP_GATE(0x807E29C0, &lit_4450); -#pragma pop - -/* 807E29C4-807E29C8 000038 0004+00 0/9 0/0 0/0 .rodata @4451 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4451 = 30.0f; -COMPILER_STRIP_GATE(0x807E29C4, &lit_4451); -#pragma pop - -/* 807E29C8-807E29CC 00003C 0004+00 0/1 0/0 0/0 .rodata @4452 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4452 = 4.0f / 5.0f; -COMPILER_STRIP_GATE(0x807E29C8, &lit_4452); -#pragma pop - -/* 807E29CC-807E29D0 000040 0004+00 0/6 0/0 0/0 .rodata @4453 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4453 = 500.0f; -COMPILER_STRIP_GATE(0x807E29CC, &lit_4453); -#pragma pop - -/* 807E29D0-807E29D4 000044 0004+00 0/1 0/0 0/0 .rodata @4454 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4454 = 3500.0f; -COMPILER_STRIP_GATE(0x807E29D0, &lit_4454); -#pragma pop - -/* 807E2F78-807E2F7C 000020 0004+00 1/1 0/0 0/0 .data l_color$4786 */ -SECTION_DATA static u8 l_color[4] = { - 0x14, - 0x0F, - 0x00, - 0xFF, -}; - -/* 807E2F7C-807E2F8C 000024 0010+00 1/1 0/0 0/0 .data chk_x$5015 */ -SECTION_DATA static u8 chk_x[16] = { - 0x46, 0x5E, 0xC4, 0x00, 0x47, 0x07, 0xD7, 0x00, 0xC6, 0xB2, 0xA0, 0x00, 0xC6, 0x35, 0xAC, 0x00, -}; - -/* 807E2F8C-807E2F9C 000034 0010+00 1/1 0/0 0/0 .data chk_z$5016 */ -SECTION_DATA static u8 chk_z[16] = { - 0x46, 0x9C, 0xD6, 0x00, 0xC6, 0x80, 0xA6, 0x00, 0x46, 0x19, 0x7C, 0x00, 0x46, 0xB0, 0x92, 0x00, -}; - -/* 807E2F9C-807E2FA4 000044 0006+02 1/1 0/0 0/0 .data yaa$5213 */ -SECTION_DATA static u8 yaa[6 + 2 /* padding */] = { - 0x00, - 0x00, - 0xF0, - 0x00, - 0x10, - 0x00, - /* padding */ - 0x00, - 0x00, -}; - -/* 807E2FA4-807E2FB0 00004C 000C+00 1/1 0/0 0/0 .data saku_bit$5214 */ -SECTION_DATA static u8 saku_bit[12] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, -}; - -/* 807E2FB0-807E2FDC -00001 002C+00 1/1 0/0 0/0 .data @6252 */ -SECTION_DATA static void* lit_6252[11] = { - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x100), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x10C), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x414), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x7D0), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x834), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x974), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x974), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x974), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x974), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x974), - (void*)(((char*)e_wb_b_run__FP10e_wb_class) + 0x870), -}; - /* 807E2FDC-807E2FE0 000084 0004+00 1/1 0/0 0/0 .data f_ya$6404 */ -SECTION_DATA static u8 f_ya[4] = { +static u8 f_ya[4] = { 0x80, 0x00, 0x00, @@ -514,1117 +23,1573 @@ SECTION_DATA static u8 f_ya[4] = { }; /* 807E2FE0-807E2FE4 000088 0004+00 1/1 0/0 0/0 .data f_id$6405 */ -SECTION_DATA static u8 f_id[4] = { +static u8 f_id[4] = { 0x82, 0xC7, 0x82, 0xC8, }; -/* 807E2FE4-807E3000 -00001 001C+00 1/1 0/0 0/0 .data @6893 */ -SECTION_DATA static void* lit_6893[7] = { - (void*)(((char*)e_wb_b_lv9_end__FP10e_wb_class) + 0x60), - (void*)(((char*)e_wb_b_lv9_end__FP10e_wb_class) + 0xD4), - (void*)(((char*)e_wb_b_lv9_end__FP10e_wb_class) + 0xF4), - (void*)(((char*)e_wb_b_lv9_end__FP10e_wb_class) + 0x138), - (void*)(((char*)e_wb_b_lv9_end__FP10e_wb_class) + 0x154), - (void*)(((char*)e_wb_b_lv9_end__FP10e_wb_class) + 0x174), - (void*)(((char*)e_wb_b_lv9_end__FP10e_wb_class) + 0x1CC), -}; - /* 807E3000-807E3008 0000A8 0008+00 0/1 0/0 0/0 .data footd$7448 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 footd[8] = { - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, +static int footd[2] = { + 6, + 10, }; -#pragma pop /* 807E3008-807E3010 0000B0 0008+00 0/1 0/0 0/0 .data footd_B$7449 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 footd_B[8] = { - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, +static int footd_B[2] = { + 6, + 10, }; -#pragma pop /* 807E3010-807E3018 0000B8 0006+02 0/1 0/0 0/0 .data w_eff_name$7501 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 w_eff_name[6 + 2 /* padding */] = { - 0x82, - 0x5B, - 0x82, - 0x5C, - 0x82, - 0x5D, - /* padding */ - 0x00, - 0x00, +static u16 w_eff_name[3] = { + 0x825B, + 0x825C, + 0x825D, }; -#pragma pop /* 807E3018-807E3020 0000C0 0006+02 0/1 0/0 0/0 .data w_eff_name2$7502 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 w_eff_name2[6 + 2 /* padding */] = { - 0x82, - 0x58, - 0x82, - 0x59, - 0x82, - 0x5A, - /* padding */ - 0x00, - 0x00, +static u16 w_eff_name2[3] = { + 0x8258, + 0x8259, + 0x825A, }; -#pragma pop /* 807E3020-807E3028 0000C8 0008+00 0/1 0/0 0/0 .data w_eff_id$7518 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 w_eff_id[8] = { - 0x01, 0xB8, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0xBB, -}; -#pragma pop - -/* 807E3028-807E3080 -00001 0058+00 1/1 0/0 0/0 .data @8136 */ -SECTION_DATA static void* lit_8136[22] = { - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0x168), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0x194), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0x260), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0x344), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0x424), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0x42C), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xBEC), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xB58), - (void*)(((char*)e_wb_c_run__FP10e_wb_class) + 0xB78), -}; - -/* 807E3080-807E323C -00001 01BC+00 1/1 0/0 0/0 .data @8377 */ -SECTION_DATA static void* lit_8377[111] = { - (void*)(((char*)action__FP10e_wb_class) + 0xAC), - (void*)(((char*)action__FP10e_wb_class) + 0xAC), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0xC8), - (void*)(((char*)action__FP10e_wb_class) + 0xD4), - (void*)(((char*)action__FP10e_wb_class) + 0xE0), - (void*)(((char*)action__FP10e_wb_class) + 0x128), - (void*)(((char*)action__FP10e_wb_class) + 0x134), - (void*)(((char*)action__FP10e_wb_class) + 0x140), - (void*)(((char*)action__FP10e_wb_class) + 0x14C), - (void*)(((char*)action__FP10e_wb_class) + 0x158), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x164), - (void*)(((char*)action__FP10e_wb_class) + 0x170), - (void*)(((char*)action__FP10e_wb_class) + 0x17C), - (void*)(((char*)action__FP10e_wb_class) + 0x188), - (void*)(((char*)action__FP10e_wb_class) + 0x194), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x1A0), - (void*)(((char*)action__FP10e_wb_class) + 0x1AC), - (void*)(((char*)action__FP10e_wb_class) + 0x1D0), - (void*)(((char*)action__FP10e_wb_class) + 0x1F4), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x218), - (void*)(((char*)action__FP10e_wb_class) + 0x224), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x230), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x258), - (void*)(((char*)action__FP10e_wb_class) + 0x264), - (void*)(((char*)action__FP10e_wb_class) + 0x24C), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x278), - (void*)(((char*)action__FP10e_wb_class) + 0x270), +static u16 w_eff_id[4] = { + 0x01B8, + 0x01B9, + 0x01BA, + 0x01BB, }; /* 807E323C-807E3240 0002E4 0004+00 1/1 0/0 0/0 .data key_eno$8737 */ -SECTION_DATA static u8 key_eno_8737[4] = { - 0x82, - 0x7A, - 0x82, - 0x7B, +static u16 key_eno_8737[2] = { + 0x827A, + 0x827B, }; /* 807E3240-807E3244 0002E8 0004+00 1/1 0/0 0/0 .data key_eno$8748 */ -SECTION_DATA static u8 key_eno_8748[4] = { - 0x82, - 0x7A, - 0x82, - 0x7B, -}; - -/* 807E3244-807E33CC -00001 0188+00 1/1 0/0 0/0 .data @9407 */ -SECTION_DATA static void* lit_9407[98] = { - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0xBC), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1C4), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x330), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x3BC), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x4A8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x4A8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x600), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x71C), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x99C), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0xA0C), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0xB18), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0xBB8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0xC94), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0xDBC), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0xFB8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x109C), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x10E8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1274), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x13D4), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1448), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x15C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1754), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x17F0), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1A08), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1B04), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1C30), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1D8C), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1E88), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x1F6C), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x2090), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x23D8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x24E8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x25DC), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x276C), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x290C), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x29C4), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x2AA8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x2B90), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x2C68), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x35C8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x2D98), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x2ED8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x3000), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x30B8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x32B4), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x33F8), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x3514), - (void*)(((char*)demo_camera__FP10e_wb_class) + 0x3564), +static u16 key_eno_8748[2] = { + 0x827A, + 0x827B, }; /* 807E33CC-807E33DC 000474 0010+00 1/1 0/0 0/0 .data foot_no$9903 */ -SECTION_DATA static u8 foot_no[16] = { - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x14, +static int foot_no[4] = { + 5, + 24, + 9, + 20, }; /* 807E33DC-807E33EC 000484 0010+00 1/1 0/0 0/0 .data foot_no_B$9904 */ -SECTION_DATA static u8 foot_no_B[16] = { - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x17, -}; +static int foot_no_B[4] = {5, 28, 9, 23}; /* 807E33EC-807E3404 000494 0018+00 0/1 0/0 0/0 .data pass_r$10268 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 pass_r[24] = { - 0x00, 0x00, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, - 0xC2, 0xC8, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00, 0xC2, 0xC8, 0x00, 0x00, +static f32 pass_r[6] = { + 0.0f, 3000.0f, 3000.0f, -100.0f, -150.0f, -100.0f, }; -#pragma pop /* 807E3404-807E341C 0004AC 0018+00 0/1 0/0 0/0 .data x_check_off$10269 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 x_check_off[24] = { - 0x44, 0x16, 0x00, 0x00, 0xC4, 0x48, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, +static f32 x_check_off[6] = { + 2300.0f, -3000.0f, 3000.0f, -300.0f, 0.0f, 300.0f, }; -#pragma pop /* 807E341C-807E345C 0004C4 0040+00 0/1 0/0 0/0 .data cc_sph_src$10277 */ -#pragma push -#pragma force_active on static dCcD_SrcSph cc_sph_src = { { - {0x0, {{0x0, 0x0, 0x0}, {0x486022, 0x3}, 0x75}}, // mObj - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf + {0x0, {{0x0, 0x0, 0x0}, {0x486022, 0x3}, 0x75}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf { - {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph - } // mSphAttr + {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph + } // mSphAttr }; -#pragma pop /* 807E345C-807E349C 000504 0040+00 0/1 0/0 0/0 .data at_sph_src$10278 */ -#pragma push -#pragma force_active on static dCcD_SrcSph at_sph_src = { { - {0x0, {{AT_TYPE_1000, 0x2, 0x1f}, {0x0, 0x0}, 0x0}}, // mObj - {dCcD_SE_HARD_BODY, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf + {0x0, {{AT_TYPE_1000, 0x2, 0x1f}, {0x0, 0x0}, 0x0}}, // mObj + {dCcD_SE_HARD_BODY, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf { - {{0.0f, 0.0f, 0.0f}, 35.0f} // mSph - } // mSphAttr -}; -#pragma pop - -/* 807E349C-807E34BC -00001 0020+00 1/0 0/0 0/0 .data l_daE_WB_Method */ -static actor_method_class l_daE_WB_Method = { - (process_method_func)daE_WB_Create__FP10fopAc_ac_c, - (process_method_func)daE_WB_Delete__FP10e_wb_class, - (process_method_func)daE_WB_Execute__FP10e_wb_class, - (process_method_func)daE_WB_IsDelete__FP10e_wb_class, - (process_method_func)daE_WB_Draw__FP10e_wb_class, -}; - -/* 807E34BC-807E34EC -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_WB */ -extern actor_process_profile_definition g_profile_E_WB = { - fpcLy_CURRENT_e, // mLayerID - 4, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_E_WB, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(e_wb_class), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 152, // mPriority - &l_daE_WB_Method, // sub_method - 0x00044100, // mStatus - fopAc_ENEMY_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 807E34EC-807E34F8 000594 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 807E34F8-807E3504 0005A0 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, -}; - -/* 807E3504-807E3510 0005AC 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, -}; - -/* 807E3510-807E3524 0005B8 0014+00 2/2 0/0 0/0 .data __vt__18mDoExt_3DlineMat_c */ -SECTION_DATA extern void* __vt__18mDoExt_3DlineMat_c[5] = { - (void*)NULL /* RTTI */, (void*)NULL, (void*)NULL, (void*)NULL, (void*)NULL, -}; - -/* 807E3524-807E3530 0005CC 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGSph */ -SECTION_DATA extern void* __vt__8cM3dGSph[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGSphFv, -}; - -/* 807E3530-807E353C 0005D8 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 807E353C-807E3560 0005E4 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_807E22B0, - (void*)NULL, - (void*)NULL, - (void*)func_807E22A8, -}; - -/* 807E3560-807E356C 000608 000C+00 2/2 0/0 0/0 .data __vt__12daE_WB_HIO_c */ -SECTION_DATA extern void* __vt__12daE_WB_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12daE_WB_HIO_cFv, + {{0.0f, 0.0f, 0.0f}, 35.0f} // mSph + } // mSphAttr }; /* 807D248C-807D2548 0000EC 00BC+00 1/1 0/0 0/0 .text __ct__12daE_WB_HIO_cFv */ daE_WB_HIO_c::daE_WB_HIO_c() { - // NONMATCHING + field_0x04 = -1; + mBaseSize = 1.2f; + mLeaderSizeRatio = 1.2f; + mMovementSpeed = 3.5f; + mPlayerRecognitionDistance = 600.0f; + mMaxSpeed = 37.0f; + mCalvaryBattleMaxSpeed = 50.0f; + mLeaderWalkingSpeed = 10.0f; + mLeaderMaxSpeed = 40.0f; + mLeaderCalvaryBattleMaxSpeed = 54.0f; + mNormalSpeedVi = 25.0f; + mMediumSpeedVi = 45.0f; + mMaxSpeedVi = 55.0f; + mSingleRiderSpeed = 50.0f; + mPlayerMountedMaxSpeed = 30.0f; + mPlayerMountedMotionPlaybackSpeed = 0.80000001f; + mPlayerMountedDashTime = 30; + mSearchIgnoreDistance1 = 500.0f; + mSearchIgnoreDistance2 = 500.0f; + mGuidanceDisplayDistance1 = 3500.0f; + mGuidanceDisplayDistance2 = 3500.0f; + field_0x58 = 0; + mNoReins = 0; } -/* ############################################################################################## */ -/* 807E29D4-807E29D8 000048 0004+00 3/31 0/0 0/0 .rodata @4476 */ -SECTION_RODATA static u8 const lit_4476[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x807E29D4, &lit_4476); - -/* 807E29D8-807E29DC 00004C 0004+00 1/7 0/0 0/0 .rodata @4477 */ -SECTION_RODATA static f32 const lit_4477 = -1.0f; -COMPILER_STRIP_GATE(0x807E29D8, &lit_4477); +#ifdef DEBUG +void daE_WB_HIO_c::genMessage(JORMContext* ctx) { + ctx->genLabel(" イノシシ", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("基本サイズ", &mBaseSize, 0.0f, 5.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("リーダーサイズ比", &mLeaderSizeRatio, 0.0f, 5.0, 0, NULL, 0xFFFF, 0xFFFF, 512, + 24); + ctx->genSlider("移動速度", &mMovementSpeed, 0.0f, 20.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("PL認識距離", &mPlayerRecognitionDistance, 0.0f, 2000.0f, 0, NULL, 0xFFFF, + 0xFFFF, 512, 24); + ctx->genSlider("最速度", &mMaxSpeed, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("騎馬戦最速", &mCalvaryBattleMaxSpeed, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, + 512, 24); + ctx->genSlider("歩き速(リ)", &mLeaderWalkingSpeed, 0.0f, 30.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, + 24); + ctx->genSlider("最速度(リ)", &mLeaderMaxSpeed, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, + 24); + ctx->genSlider("騎馬戦最(リ)", &mLeaderCalvaryBattleMaxSpeed, 0.0f, 100.0f, 0, NULL, 0xFFFF, + 0xFFFF, 512, 24); + ctx->genSlider("通常速(車)", &mNormalSpeedVi, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("中速度(車)", &mMediumSpeedVi, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("最速度(車)", &mMaxSpeedVi, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("一騎速", &mSingleRiderSpeed, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genCheckBox("手綱ナシ", &mNoReins, 1, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genLabel("", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genLabel(" プレイヤー騎乗時", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("最大速度", &mPlayerMountedMaxSpeed, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, + 24); + ctx->genSlider("モーション再生速度", &mPlayerMountedMotionPlaybackSpeed, 0.0f, 5.0f, 0, NULL, + 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("ダッシュ時間", &mPlayerMountedDashTime, 0.0f, 2000.0f, 0, NULL, 0xFFFF, 0xFFFF, + 512, 24); + ctx->genLabel("", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genLabel(" 以下 一騎討ち用", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("サーチ無視距離(1)", &mSearchIgnoreDistance1, 0.0f, 5000.0f, 0, NULL, 0xFFFF, + 0xFFFF, 512, 24); + ctx->genSlider("サーチ無視距離(2)", &mSearchIgnoreDistance2, 0.0f, 5000.0f, 0, NULL, 0xFFFF, + 0xFFFF, 512, 24); + ctx->genSlider("案内表示距離(1)", &mGuidanceDisplayDistance1, 0.0f, 5000.0f, 0, NULL, 0xFFFF, + 0xFFFF, 512, 24); + ctx->genSlider("案内表示距離(2)", &mGuidanceDisplayDistance2, 0.0f, 5000.0f, 0, NULL, 0xFFFF, + 0xFFFF, 512, 24); +} +#endif /* 807D2548-807D2610 0001A8 00C8+00 26/26 0/0 0/0 .text anm_init__FP10e_wb_classifUcf */ -static void anm_init(e_wb_class* param_0, int param_1, f32 param_2, u8 param_3, f32 param_4) { - // NONMATCHING +static void anm_init(e_wb_class* i_actor, int i_anmId, f32 i_morf, u8 i_attr, f32 i_rate) { + i_actor->mAnmID = i_anmId; + + if (i_actor->field_0x79d != 0 && i_actor->field_0x79d >= 2 && i_anmId == 0x20) { + i_anmId = 0x21; + } + + i_actor->mpModelMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes(i_actor->mResName, i_anmId), + i_attr, i_morf, i_rate, 0.0f, -1.0f); } /* 807D2610-807D27D4 000270 01C4+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ -static void nodeCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING +static int nodeCallBack(J3DJoint* i_joint, int param_1) { + if (param_1 == 0) { + int joint_no = i_joint->getJntNo(); + J3DModel* model = j3dSys.getModel(); + e_wb_class* bullbo_p = (e_wb_class*)model->getUserArea(); + + if (bullbo_p) { + MTXCopy(model->getAnmMtx(joint_no), *calc_mtx); + + if (joint_no == 0) { + cMtx_ZrotM(*calc_mtx, bullbo_p->field_0x79a); + } else if (joint_no == 2 || joint_no == bullbo_p->field_0x688 + 0xb) { + cMtx_YrotM(*calc_mtx, bullbo_p->field_0x6d8); + } else if (joint_no == 4 || joint_no == 8 || + (joint_no == 0x13 && bullbo_p->field_0x79d == 0) || + (joint_no == 0x17 && bullbo_p->field_0x79d == 0) || + (joint_no == 0x16 && bullbo_p->field_0x79d != 0) || + (joint_no == 0x1B && bullbo_p->field_0x79d != 0)) + { + cMtx_YrotM(*calc_mtx, bullbo_p->field_0x79a << 1); + } + + if (bullbo_p->field_0x79d && joint_no == 0xd) { + cMtx_YrotM(*calc_mtx, bullbo_p->field_0x6e0); + cMtx_XrotM(*calc_mtx, bullbo_p->field_0x6de); + cMtx_ZrotM(*calc_mtx, bullbo_p->field_0x6e2); + } + + model->setAnmMtx(joint_no, *calc_mtx); + MTXCopy(*calc_mtx, j3dSys.mCurrentMtx); + } + } + + return 1; } -/* ############################################################################################## */ -/* 807E29DC-807E29E0 000050 0004+00 1/7 0/0 0/0 .rodata @4638 */ -SECTION_RODATA static f32 const lit_4638 = 20.0f; -COMPILER_STRIP_GATE(0x807E29DC, &lit_4638); - -/* 807E29E0-807E29E4 000054 0004+00 0/2 0/0 0/0 .rodata @4639 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4639 = 2.0f / 5.0f; -COMPILER_STRIP_GATE(0x807E29E0, &lit_4639); -#pragma pop - -/* 807E29E4-807E29E8 000058 0004+00 0/3 0/0 0/0 .rodata @4640 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4640 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x807E29E4, &lit_4640); -#pragma pop - -/* 807E29E8-807E29EC 00005C 0004+00 0/10 0/0 0/0 .rodata @4641 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4641 = 15.0f; -COMPILER_STRIP_GATE(0x807E29E8, &lit_4641); -#pragma pop - -/* 807E29EC-807E29F0 000060 0004+00 3/33 0/0 0/0 .rodata @4642 */ -SECTION_RODATA static f32 const lit_4642 = 1.0f; -COMPILER_STRIP_GATE(0x807E29EC, &lit_4642); +/* 807E35B4-807E35B8 -00001 0004+00 3/7 0/0 0/0 .bss None */ +/* 807E35B4 0001+00 data_807E35B4 @1009 */ +/* 807E35B5 0001+00 data_807E35B5 None */ +/* 807E35B6 0001+00 data_807E35B6 None */ +/* 807E35B7 0001+00 data_807E35B7 None */ +static u8 lbl_244_bss_44; +static s8 lbl_244_bss_45; +static s8 lbl_244_bss_46; +static s8 lbl_244_bss_47; /* 807E35B8-807E35BC 000048 0004+00 1/2 0/0 0/0 .bss None */ -static u8 data_807E35B8[4]; - -/* 807E35BC-807E35C8 00004C 000C+00 0/1 0/0 0/0 .bss @4435 */ -#pragma push -#pragma force_active on -static u8 lit_4435[12]; -#pragma pop +static u8 lbl_244_bss_48; +static u8 lbl_244_bss_49; +static u8 lbl_244_bss_4a; +static u8 lbl_244_bss_4b; /* 807E35C8-807E3624 000058 005C+00 9/14 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[92]; +static daE_WB_HIO_c l_HIO; /* 807D27D4-807D2B48 000434 0374+00 1/1 0/0 0/0 .text himo_control1__FP10e_wb_classP4cXyziSc */ -static void himo_control1(e_wb_class* param_0, cXyz* param_1, int param_2, s8 param_3) { - // NONMATCHING -} +// NONMATCHING +static void himo_control1(e_wb_class* i_this, cXyz* i_pos, int i_idx, s8 param_3) { + fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; + cXyz sp60; + cXyz sp54; -/* 807D2B48-807D2B84 0007A8 003C+00 12/12 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING + int i; + s16 sp10; + s16 spE; + + cXyz* var_r30 = i_this->field_0x1450[i_idx].field_0x0; + var_r30[0] = *i_pos; + + cXyz sp48; + cMtx_YrotS(*calc_mtx, a_this->shape_angle.y); + cMtx_XrotM(*calc_mtx, a_this->shape_angle.x); + + sp60.x = 20.0f; + if (i_idx == 0) { + sp60.x *= -1.0f; + } + sp60.y = 0.0f; + sp60.z = 0.0f; + MtxPosition(&sp60, &sp48); + + cXyz sp3C; + cXyz sp30; + cXyz sp24; + + sp60.x = 0.0f; + sp60.y = i_this->field_0x1684; + sp60.z = sp60.y; + MtxPosition(&sp60, &sp30); + + if (a_this->speedF > 20.0f) { + sp60.x = i_this->field_0x1684 * 0.4f; + } else { + sp60.x = i_this->field_0x1684 * 0.1f; + } + + if (i_idx == 0) { + sp60.x *= -1.0f; + } + sp60.y = 0.0f; + sp60.z = 0.0f; + MtxPosition(&sp60, &sp24); + + sp60.x = 0.0f; + sp60.y = 0.0f; + if (param_3 != 0) { + sp60.z = 15.0f; + } else { + sp60.z = 20.0f; + } + + if (i_this->field_0x79d != 0) { + sp60.z *= l_HIO.mLeaderSizeRatio; + sp48 *= l_HIO.mLeaderSizeRatio; + sp30 *= l_HIO.mLeaderSizeRatio; + sp24 *= l_HIO.mLeaderSizeRatio; + } + + i = 1; + cXyz* var_r30_2 = var_r30 + 1; + for (; i < 16; i++, var_r30_2++) { + sp3C.x = sp30.x * cM_ssin(i_this->field_0x1688 + i * 6000); + sp3C.y = sp30.y * cM_ssin(i_this->field_0x1688 + i * 6000); + sp3C.z = sp30.z * cM_ssin(i_this->field_0x1688 + i * 6000); + + f32 var_f29 = 1.0f; + f32 var_f31 = sp24.x + (sp3C.x + ((var_r30_2[0].x - var_r30_2[-1].x) + (sp48.x * var_f29))); + f32 var_f28 = sp3C.y + ((var_r30_2[0].y - var_r30_2[-1].y) - 20.0f); + f32 var_f30 = sp24.z + (sp3C.z + ((var_r30_2[0].z - var_r30_2[-1].z) + (sp48.z * var_f29))); + + spE = (s16)cM_atan2s(var_f31, var_f30); + sp10 = -cM_atan2s(var_f28, JMAFastSqrt(var_f31 * var_f31 + var_f30 * var_f30)); + + cMtx_YrotS(*calc_mtx, spE); + cMtx_XrotM(*calc_mtx, sp10); + MtxPosition(&sp60, &sp54); + + var_r30_2[0].x = var_r30_2[-1].x + sp54.x; + var_r30_2[0].y = var_r30_2[-1].y + sp54.y; + var_r30_2[0].z = var_r30_2[-1].z + sp54.z; + } } /* 807D2B84-807D2D90 0007E4 020C+00 1/1 0/0 0/0 .text himo_control2__FP10e_wb_classP4cXyziSc */ -static void himo_control2(e_wb_class* param_0, cXyz* param_1, int param_2, s8 param_3) { - // NONMATCHING +static void himo_control2(e_wb_class* i_this, cXyz* i_pos, int i_idx, s8 param_3) { + fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; + cXyz sp30; + cXyz sp24; + + int i; + s16 sp10; + s16 spE; + himo_s* sp1C = &i_this->field_0x1450[i_idx]; + cXyz* temp_r31 = &sp1C->field_0x0[15]; + *temp_r31 = *i_pos; + + sp30.x = 0.0f; + sp30.y = 0.0f; + + if (param_3 != 0) { + sp30.z = 20.0f + YREG_F(7); + } else { + sp30.z = 15.0f + YREG_F(6); + } + + temp_r31--; + + for (i = 14; i >= 1; i--, temp_r31--) { + f32 temp_f31 = temp_r31[0].x - temp_r31[1].x; + f32 temp_f29 = temp_r31[0].y - temp_r31[1].y; + f32 temp_f30 = temp_r31[0].z - temp_r31[1].z; + spE = (s16)cM_atan2s(temp_f31, temp_f30); + sp10 = -cM_atan2s(temp_f29, JMAFastSqrt((temp_f31 * temp_f31) + (temp_f30 * temp_f30))); + + cMtx_YrotS(*calc_mtx, spE); + cMtx_XrotM(*calc_mtx, sp10); + MtxPosition(&sp30, &sp24); + + temp_r31[0].x = temp_r31[1].x + sp24.x; + temp_r31[0].y = temp_r31[1].y + sp24.y; + temp_r31[0].z = temp_r31[1].z + sp24.z; + } + + // this = ::mDoExt_3DineMat1_c::getPos((mDoExt_3DlineMat1_c *)(param_1 + param_3 * 0x3c + + // 0x1620),0); + temp_r31 = sp1C->field_0x0; + cXyz* var_r29 = i_this->field_0x15d0[i_idx].getPos(0); + for (int i = 0; i < 16; i++, var_r29++, temp_r31++) { + *var_r29 = *temp_r31; + } + + var_r29 = i_this->field_0x1648.getPos(0); + var_r29[i_idx] = i_this->field_0x1450[i_idx].field_0x0[15]; } -/* ############################################################################################## */ -/* 807E29F0-807E29F4 000064 0004+00 0/3 0/0 0/0 .rodata @4742 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4742 = 300.0f; -COMPILER_STRIP_GATE(0x807E29F0, &lit_4742); -#pragma pop - -/* 807E29F4-807E29F8 000068 0004+00 0/2 0/0 0/0 .rodata @4743 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4743 = -400.0f; -COMPILER_STRIP_GATE(0x807E29F4, &lit_4743); -#pragma pop - -/* 807E29F8-807E29FC 00006C 0004+00 0/5 0/0 0/0 .rodata @4744 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4744 = 400.0f; -COMPILER_STRIP_GATE(0x807E29F8, &lit_4744); -#pragma pop - /* 807D2D90-807D2F18 0009F0 0188+00 1/1 0/0 0/0 .text e_wb_lr_wall_check__FP10e_wb_class */ -static void e_wb_lr_wall_check(e_wb_class* param_0) { - // NONMATCHING +static int e_wb_lr_wall_check(e_wb_class* i_actor) { + e_wb_class* a_actor = (e_wb_class*)i_actor; + + dBgS_LinChk linChk; + cXyz pos1; + cXyz pos2; + cXyz pos3; + + pos2 = a_actor->current.pos; + pos2.y += 300.0f; + + cMtx_YrotS(*calc_mtx, a_actor->shape_angle.y); + pos1.x = -400.0f; + pos1.y = 300.0f; + pos1.z = 400.0f; + + MtxPosition(&pos1, &pos3); + pos3 += a_actor->current.pos; + linChk.Set(&pos2, &pos3, a_actor); + + if (dComIfG_Bgsp().LineCross(&linChk)) { + if (fopAcM_GetName(dComIfG_Bgsp().GetActorPointer(linChk)) == PROC_BG) { + return -1; + } + } + + pos1.x *= -1.0f; + MtxPosition(&pos1, &pos3); + pos3 += a_actor->current.pos; + + if (dComIfG_Bgsp().LineCross(&linChk)) { + if (fopAcM_GetName(dComIfG_Bgsp().GetActorPointer(linChk)) == PROC_BG) { + return 1; + } + } + + return 0; } -/* ############################################################################################## */ -/* 807E29FC-807E2A00 000070 0004+00 0/8 0/0 0/0 .rodata @4910 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4910 = 100.0f; -COMPILER_STRIP_GATE(0x807E29FC, &lit_4910); -#pragma pop - -/* 807E2A00-807E2A04 000074 0004+00 0/4 0/0 0/0 .rodata @4911 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4911 = 1000.0f; -COMPILER_STRIP_GATE(0x807E2A00, &lit_4911); -#pragma pop - -/* 807E2A04-807E2A08 000078 0004+00 0/3 0/0 0/0 .rodata @4912 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4912 = 800.0f; -COMPILER_STRIP_GATE(0x807E2A04, &lit_4912); -#pragma pop - -/* 807E2A08-807E2A0C 00007C 0004+00 0/2 0/0 0/0 .rodata @4913 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4913 = 80.0f; -COMPILER_STRIP_GATE(0x807E2A08, &lit_4913); -#pragma pop - -/* 807E2A0C-807E2A10 000080 0004+00 0/4 0/0 0/0 .rodata @4914 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4914 = -20.0f; -COMPILER_STRIP_GATE(0x807E2A0C, &lit_4914); -#pragma pop - -/* 807E2A10-807E2A14 000084 0004+00 0/1 0/0 0/0 .rodata @4915 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4915 = 47.0f; -COMPILER_STRIP_GATE(0x807E2A10, &lit_4915); -#pragma pop - -/* 807E2A14-807E2A1C 000088 0004+04 0/2 0/0 0/0 .rodata @4916 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4916[1 + 1 /* padding */] = { - 42.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x807E2A14, &lit_4916); -#pragma pop - -/* 807E2A1C-807E2A24 000090 0008+00 0/6 0/0 0/0 .rodata @4917 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4917[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x807E2A1C, &lit_4917); -#pragma pop - -/* 807E2A24-807E2A2C 000098 0008+00 0/6 0/0 0/0 .rodata @4918 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4918[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x807E2A24, &lit_4918); -#pragma pop - -/* 807E2A2C-807E2A34 0000A0 0008+00 0/6 0/0 0/0 .rodata @4919 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4919[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x807E2A2C, &lit_4919); -#pragma pop - -/* 807E2A34-807E2A38 0000A8 0004+00 0/4 0/0 0/0 .rodata @4920 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4920 = 60.0f; -COMPILER_STRIP_GATE(0x807E2A34, &lit_4920); -#pragma pop - /* 807D2F18-807D366C 000B78 0754+00 1/0 0/0 0/0 .text daE_WB_Draw__FP10e_wb_class */ -static void daE_WB_Draw(e_wb_class* param_0) { - // NONMATCHING +static int daE_WB_Draw(e_wb_class* i_this) { + static _GXColor l_color = { + 0x14, + 0x0F, + 0x00, + 0xFF, + }; + f32 fVar9; + int local_74; + int local_78; + + if (i_this->field_0x1430 != 0 || i_this->mActionID == ACT_EVENT) { + return 1; + } + + cXyz local_3c; + cXyz local_48; + + J3DModel* model = i_this->mpModelMorf->getModel(); + g_env_light.settingTevStruct(0, &i_this->current.pos, &i_this->tevStr); + g_env_light.setLightTevColorType_MAJI(model, &i_this->tevStr); + i_this->mpModelMorf->entryDL(); + + cXyz cStack_54; + cStack_54.set(i_this->current.pos.x, i_this->current.pos.y + 100.0f + BREG_F(0x12), + i_this->current.pos.z); + + if (i_this->field_0x79d != 0) { + fVar9 = i_this->scale.z * 800.0f; + } else { + fVar9 = i_this->scale.z * 1000.0f; + } + + fVar9 += BREG_F(0x13); + + i_this->mShadowKey = + dComIfGd_setShadow(i_this->mShadowKey, 1, model, &cStack_54, fVar9, 0.0f, + i_this->current.pos.y, i_this->mAcch.GetGroundH(), i_this->mAcch.m_gnd, + &i_this->tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + + if (l_HIO.mNoReins == 0) { + MTXCopy(model->getAnmMtx((i_this->field_0x688 + 0xb) + YREG_S(3)), *calc_mtx); + MtxPush(); + + s8 cVar7 = 0; + e_rd_class* pfVar4 = (e_rd_class*)fopAcM_SearchByID(i_this->field_0x1434); + + if ((i_this->field_0x6be & 1) != 0) { + if (pfVar4 && pfVar4->field_0x9bc == 2) { + if (i_this->field_0x7a2 == 0) { + model = pfVar4->mpModelMorf->getModel(); + cVar7 = 1; + } + } else { + if (daAlink_getAlinkActorClass()->checkBoarRideOwn(i_this)) { + if (!daAlink_getAlinkActorClass()->checkHorseNotGrab()) { + cVar7 = 1; + } + } + } + } + + local_3c.x = YREG_F(0) + 80.0f; + local_3c.y = YREG_F(1) - 20.0f; + + if (i_this->field_0x79d != 0) { + local_3c.z = YREG_F(2) + 42.0f; + } else { + local_3c.z = YREG_F(0xc) + 47.0f; + } + + MtxPosition(&local_3c, &local_48); + himo_control1(i_this, &local_48, 0, cVar7); + local_3c.z *= -1.0f; + MtxPull(); + MtxPosition(&local_3c, &local_48); + himo_control1(i_this, &local_48, 1, cVar7); + + if (cVar7 != 0) { + cXyz local_60; + + if (daAlink_getAlinkActorClass()->checkBoarRideOwn(i_this)) { + daAlink_getAlinkActorClass()->getHorseReinHandPos(&local_60, &local_48); + i_this->field_0x1438[0] = local_48; + i_this->field_0x1438[1] = local_60; + } else { + if (pfVar4->mBossMode != 0) { + local_78 = 0xf; + local_74 = 0x14; + } else { + local_78 = 0x13; + local_74 = 0x18; + } + + MTXCopy(model->getAnmMtx(local_74), *calc_mtx); + local_3c.x = PREG_F(0xd) + 15.0f; + local_3c.y = PREG_F(0xe); + local_3c.z = PREG_F(0xf); + MtxPosition(&local_3c, &local_48); + + MTXCopy(model->getAnmMtx(local_78), *calc_mtx); + local_3c.x = PREG_F(0x10) + 15.0f; + local_3c.y = PREG_F(0x11); + local_3c.z = PREG_F(0x12); + MtxPosition(&local_3c, &local_60); + } + + if (i_this->field_0x168c > 100.0f) { + i_this->field_0x1438[0] = local_48; + i_this->field_0x1438[1] = local_60; + + } else { + cLib_addCalc2(&i_this->field_0x1438[0].x, local_48.x, 1.0f, i_this->field_0x168c); + cLib_addCalc2(&i_this->field_0x1438[0].y, local_48.y, 1.0f, i_this->field_0x168c); + cLib_addCalc2(&i_this->field_0x1438[0].z, local_48.z, 1.0f, i_this->field_0x168c); + cLib_addCalc2(&i_this->field_0x1438[1].x, local_60.x, 1.0f, i_this->field_0x168c); + cLib_addCalc2(&i_this->field_0x1438[1].y, local_60.y, 1.0f, i_this->field_0x168c); + cLib_addCalc2(&i_this->field_0x1438[1].z, local_60.z, 1.0f, i_this->field_0x168c); + cLib_addCalc2(&i_this->field_0x168c, 1000.0f, 1.0f, 10.0f); + local_3c = i_this->field_0x1438[0] - local_48; + + if (local_3c.abs() > 500.0f) { + i_this->field_0x1438[0] = local_48; + i_this->field_0x1438[1] = local_60; + } + } + } else { + i_this->field_0x168c = 0.0f; + MTXCopy(model->getAnmMtx(i_this->field_0x688 + 0xe), *calc_mtx); + local_3c.x = YREG_F(3) + 50.0f; + local_3c.y = YREG_F(4) + 60.0f; + local_3c.z = YREG_F(5); + MtxPosition(&local_3c, &i_this->field_0x1438[0]); + i_this->field_0x1438[1] = i_this->field_0x1438[0]; + } + + himo_control2(i_this, &i_this->field_0x1438[0], 0, cVar7); + himo_control2(i_this, &i_this->field_0x1438[1], 1, cVar7); + i_this->field_0x15d0[0].update(0x10, l_color, &i_this->tevStr); + dComIfGd_set3DlineMat(&i_this->field_0x15d0[0]); + i_this->field_0x15d0[1].update(0x10, l_color, &i_this->tevStr); + dComIfGd_set3DlineMat(&i_this->field_0x15d0[1]); + i_this->field_0x1648.update(2, l_color, &i_this->tevStr); + dComIfGd_set3DlineMat(&i_this->field_0x1648); + } + + return 1; } -/* ############################################################################################## */ -/* 807E2A38-807E2A3C 0000AC 0004+00 0/1 0/0 0/0 .rodata @5004 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5004 = 120.0f; -COMPILER_STRIP_GATE(0x807E2A38, &lit_5004); -#pragma pop - -/* 807E2A3C-807E2A40 0000B0 0004+00 0/1 0/0 0/0 .rodata @5005 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5005 = 250.0f; -COMPILER_STRIP_GATE(0x807E2A3C, &lit_5005); -#pragma pop - -/* 807E2A40-807E2A44 0000B4 0004+00 0/3 0/0 0/0 .rodata @5006 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5006 = 200.0f; -COMPILER_STRIP_GATE(0x807E2A40, &lit_5006); -#pragma pop - /* 807D366C-807D387C 0012CC 0210+00 1/1 0/0 0/0 .text e_wb_wall_check__FP10e_wb_class */ -static void e_wb_wall_check(e_wb_class* param_0) { - // NONMATCHING +// NONMATCHING - stack issues, missing / wrong instructions +static int e_wb_wall_check(e_wb_class* i_this) { + e_wb_class* a_this = (e_wb_class*)i_this; + dBgS_LinChk linChk; + cXyz pos1; + cXyz pos2; + cXyz pos3; + + cMtx_YrotS(*calc_mtx, a_this->shape_angle.y); + pos1.x = 10.0f; + pos1.y = 120.0f; + pos1.z = BREG_F(8) + 250.0f; + + MtxPosition(&pos1, &pos3); + pos3 += a_this->current.pos; + pos2 = a_this->current.pos; + pos2.y += 200.0f; + + linChk.Set(&pos2, &pos3, a_this); + if (dComIfG_Bgsp().LineCross(&linChk)) { + if (fopAcM_GetName(dComIfG_Bgsp().GetActorPointer(linChk)) != PROC_BG) { + return 0; + } else { + cXyz pos4 = linChk.GetCross(); + pos1.x *= -1.0f; + MtxPosition(&pos4, &pos3); + pos3 += a_this->current.pos; + linChk.Set(&pos2, &pos3, a_this); + + if (dComIfG_Bgsp().LineCross(&linChk)) { + pos4 = linChk.GetCross(); + return 0; + } else { + pos4 = pos4 - pos3; + int tmp = cM_atan2s(pos1.x, pos1.z) + 0x4000 - a_this->shape_angle.y; + return tmp; + } + } + } else { + return 0; + } } -/* ############################################################################################## */ -/* 807E2A44-807E2A48 0000B8 0004+00 0/1 0/0 0/0 .rodata @5096 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5096 = -5000.0f; -COMPILER_STRIP_GATE(0x807E2A44, &lit_5096); -#pragma pop - -/* 807E2A48-807E2A4C 0000BC 0004+00 0/4 0/0 0/0 .rodata @5097 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5097 = 2000.0f; -COMPILER_STRIP_GATE(0x807E2A48, &lit_5097); -#pragma pop - -/* 807E2A4C-807E2A50 0000C0 0004+00 0/1 0/0 0/0 .rodata @5098 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5098 = -500.0f; -COMPILER_STRIP_GATE(0x807E2A4C, &lit_5098); -#pragma pop - /* 807D387C-807D3B94 0014DC 0318+00 1/1 0/0 0/0 .text gake_check__FP10e_wb_class */ -static void gake_check(e_wb_class* param_0) { - // NONMATCHING -} +static s8 gake_check(e_wb_class* a_this) { + e_wb_class* i_this = (e_wb_class*)a_this; + dBgS_GndChk dStack_70; + cXyz local_7c; + cXyz cStack_88; -/* ############################################################################################## */ -/* 807E2A50-807E2A54 0000C4 0004+00 0/5 0/0 0/0 .rodata @5175 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5175 = 150.0f; -COMPILER_STRIP_GATE(0x807E2A50, &lit_5175); -#pragma pop + static f32 chk_x[4] = {3606.25f, 3590.859375f, -3423.5f, -3466.6875f}; + static f32 chk_z[4] = {3901.375f, -3456.40625f, 3535.5f, 3984.5625f}; + + if (lbl_244_bss_46 != 0) { + if (!daAlink_getAlinkActorClass()->checkBoarRideOwn(i_this) && + i_this->current.pos.y < -5000.0f) + { + OS_REPORT(" WB NARAKU DOWN 2\n"); + fopAcM_delete(i_this); + return 0; + } + + for (int i = 0; i < 4; i++) { + local_7c.x = nREG_F(3) + chk_x[i] - i_this->current.pos.x; + local_7c.z = nREG_F(4) + chk_z[i] - i_this->current.pos.z; + s16 sVar1 = cM_atan2s(local_7c.x, local_7c.z) - i_this->shape_angle.y; + if (JMAFastSqrt(local_7c.x * local_7c.x + local_7c.z * local_7c.z) < + nREG_F(8) + 2000.0f) + { + if (sVar1 < 0x4000 && sVar1 > -0x4000) { + return 2; + } + + return -1; + } + } + } + + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + local_7c.x = 500.0f; + local_7c.y = 1000.0f; + local_7c.z = JREG_F(0) + 1000.0f; + MtxPosition(&local_7c, &cStack_88); + cStack_88 += i_this->current.pos; + dStack_70.SetPos(&cStack_88); + f32 ground_cross = dComIfG_Bgsp().GroundCross(&dStack_70); + + if (i_this->current.pos.y - ground_cross > 2000.0f) { + return 1; + } else { + local_7c.x = -500.0f; + MtxPosition(&local_7c, &cStack_88); + cStack_88 += i_this->current.pos; + dStack_70.SetPos(&cStack_88); + ground_cross = dComIfG_Bgsp().GroundCross(&dStack_70); + + if (i_this->current.pos.y - ground_cross > 2000.0f) { + return 1; + } else { + local_7c.x = 0.0f; + local_7c.y = 1000.0f; + local_7c.z = JREG_F(1) + 2000.0f; + MtxPosition(&local_7c, &cStack_88); + cStack_88 += i_this->current.pos; + dStack_70.SetPos(&cStack_88); + ground_cross = dComIfG_Bgsp().GroundCross(&dStack_70); + + if (i_this->current.pos.y - ground_cross > 2000.0f) { + return 1; + } else { + return 0; + } + } + } +} /* 807D3B94-807D3D94 0017F4 0200+00 1/1 0/0 0/0 .text e_wb_saku_jump_check__FP10e_wb_class */ -static void e_wb_saku_jump_check(e_wb_class* param_0) { - // NONMATCHING +// NONMATCHING - missing instruction / bad branch +static BOOL e_wb_saku_jump_check(e_wb_class* a_this) { + e_wb_class* i_this = (e_wb_class*)a_this; + dBgS_LinChk dStack_98; + cXyz local_a8; + cXyz cStack_b4; + cXyz cStack_c0; + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + cMtx_XrotM(*calc_mtx, i_this->shape_angle.x); + local_a8.x = 10.0f; + local_a8.y = 150.0f; + local_a8.z = KREG_F(8) + 500.0f; + MtxPosition(&local_a8, &cStack_c0); + cStack_c0 += i_this->current.pos; + cStack_b4 = i_this->current.pos; + cStack_b4.y += 100.0f; + dStack_98.Set(&cStack_b4, &cStack_c0, i_this); + + if (dComIfG_Bgsp().LineCross(&dStack_98)) { + cXyz cStack_cc(dStack_98.GetCross()); + cXyz cStack_d8; + + local_a8.x *= -1.0f; + MtxPosition(&local_a8, &cStack_c0); + cStack_c0 += i_this->current.pos; + dStack_98.Set(&cStack_b4, &cStack_c0, i_this); + + if (dComIfG_Bgsp().LineCross(&dStack_98)) { + cStack_d8 = dStack_98.GetCross(); + return 0; + } else { + local_a8 = cStack_d8 - cStack_cc; + s16 sVar1 = (cM_atan2s(local_a8.x, local_a8.z) + 0x4000) - i_this->shape_angle.y; + + if ((sVar1 > -0x3000) && (sVar1 < 0x3000)) { + return 1; + } + } + } + + return 0; } -/* ############################################################################################## */ -/* 807E2A54-807E2A5C 0000C8 0004+04 0/1 0/0 0/0 .rodata @5207 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5207[1 + 1 /* padding */] = { - 410.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x807E2A54, &lit_5207); -#pragma pop - -/* 807E2A5C-807E2A64 0000D0 0008+00 0/3 0/0 0/0 .rodata @5209 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5209[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x807E2A5C, &lit_5209); -#pragma pop - /* 807D3D94-807D3F2C 0019F4 0198+00 1/1 0/0 0/0 .text e_wb_saku_check_sub__FP10e_wb_classs */ -static void e_wb_saku_check_sub(e_wb_class* param_0, s16 param_1) { - // NONMATCHING +// NONMATCHING - float instruction ordering +static int e_wb_saku_check_sub(e_wb_class* i_this, s16 param_1) { + dBgS_GndChk dStack_90; + dBgS_LinChk dStack_100; + cXyz local_10c; + cXyz cStack_118; + cXyz cStack_124; + + f32 iVar2 = i_this->field_0x68e & 7; + f32 local_38 = 176.0f; + + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y + param_1); + local_10c.x = 0.0f; + local_10c.y = 2000.0f; + local_10c.z = iVar2 * 400.0f; + MtxPosition(&local_10c, &cStack_118); + cStack_118 += i_this->current.pos; + dStack_90.SetPos(&cStack_118); + cStack_118.y = dComIfG_Bgsp().GroundCross(&dStack_90) + 150.0f; + local_10c.x = 0.0f; + local_10c.y = 0.0f; + local_10c.z = 410.0f; + + MtxPosition(&local_10c, &cStack_124); + cStack_124 += cStack_118; + dStack_100.Set(&cStack_118, &cStack_124, i_this); + + if (dComIfG_Bgsp().LineCross(&dStack_100)) { + return 1; + } + + return 0; } /* 807D3F2C-807D3FB0 001B8C 0084+00 1/1 0/0 0/0 .text e_wb_saku_check__FP10e_wb_class */ -static void e_wb_saku_check(e_wb_class* param_0) { - // NONMATCHING +static int e_wb_saku_check(e_wb_class* i_this) { + int uVar2 = false; + static s16 yaa[3] = {0, -4096, 4096}; + static u32 saku_bit[3] = {1, 2, 4}; + + for (int i = 0; i < 3; i++) { + if (e_wb_saku_check_sub(i_this, yaa[i])) { + uVar2 |= saku_bit[i]; + } + } + + return uVar2; } -/* ############################################################################################## */ -/* 807E2A64-807E2A68 0000D8 0004+00 2/15 0/0 0/0 .rodata @5242 */ -SECTION_RODATA static f32 const lit_5242 = 3.0f; -COMPILER_STRIP_GATE(0x807E2A64, &lit_5242); - /* 807D3FB0-807D40A8 001C10 00F8+00 1/1 0/0 0/0 .text e_wb_wait__FP10e_wb_class */ -static void e_wb_wait(e_wb_class* param_0) { - // NONMATCHING +static void e_wb_wait(e_wb_class* i_this) { + switch (i_this->mActionMode) { + case 0: + anm_init(i_this, 0x25, 3.0f, 2, 1.0f); + i_this->mActionMode = 1; + case 1: + if (i_this->speedF > 15.0f) { + i_this->field_0x142c = 2; + i_this->mZ2Ride.startCreatureSoundLevel(Z2SE_EN_WB_L_SLIP, 0, -1); + } else { + anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); + i_this->mActionMode = 2; + i_this->field_0x6be |= 0x20; + } + case 2: + default: + cLib_addCalc0(&i_this->speedF, 1.0f, 1.0f); + } } /* 807D40A8-807D4110 001D08 0068+00 1/1 0/0 0/0 .text e_wb_ride__FP10e_wb_class */ -static void e_wb_ride(e_wb_class* param_0) { - // NONMATCHING +static void e_wb_ride(e_wb_class* i_this) { + switch (i_this->mActionMode) { + case 0: + anm_init(i_this, 0x1f, 3.0f, 0, 1.0f); + i_this->mActionMode = 1; + case 1: + default: + return; + } } /* 807D4110-807D4154 001D70 0044+00 1/1 0/0 0/0 .text e_wb_pl_ride_now__FP10e_wb_class */ -static void e_wb_pl_ride_now(e_wb_class* param_0) { - // NONMATCHING +static void e_wb_pl_ride_now(e_wb_class* i_this) { + if (i_this->mAnmID != 0x2a) { + anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); + } } -/* ############################################################################################## */ -/* 807E2A68-807E2A6C 0000DC 0004+00 0/12 0/0 0/0 .rodata @5441 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5441 = 2.0f; -COMPILER_STRIP_GATE(0x807E2A68, &lit_5441); -#pragma pop - -/* 807E2A6C-807E2A70 0000E0 0004+00 0/1 0/0 0/0 .rodata @5442 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5442 = 22.0f; -COMPILER_STRIP_GATE(0x807E2A6C, &lit_5442); -#pragma pop - -/* 807E2A70-807E2A74 0000E4 0004+00 0/1 0/0 0/0 .rodata @5443 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5443 = 1.0f / 100.0f; -COMPILER_STRIP_GATE(0x807E2A70, &lit_5443); -#pragma pop - -/* 807E2A74-807E2A78 0000E8 0004+00 0/6 0/0 0/0 .rodata @5444 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5444 = 1.5f; -COMPILER_STRIP_GATE(0x807E2A74, &lit_5444); -#pragma pop - -/* 807E2A78-807E2A7C 0000EC 0004+00 0/1 0/0 0/0 .rodata @5445 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5445 = 4500.0f; -COMPILER_STRIP_GATE(0x807E2A78, &lit_5445); -#pragma pop - -/* 807E2A7C-807E2A80 0000F0 0004+00 0/1 0/0 0/0 .rodata @5446 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5446 = -4500.0f; -COMPILER_STRIP_GATE(0x807E2A7C, &lit_5446); -#pragma pop - -/* 807E2A80-807E2A84 0000F4 0004+00 0/1 0/0 0/0 .rodata @5447 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5447 = -1.0f / 5.0f; -COMPILER_STRIP_GATE(0x807E2A80, &lit_5447); -#pragma pop - -/* 807E2A84-807E2A88 0000F8 0004+00 0/17 0/0 0/0 .rodata @5448 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5448 = 5.0f; -COMPILER_STRIP_GATE(0x807E2A84, &lit_5448); -#pragma pop - -/* 807E2A88-807E2A8C 0000FC 0004+00 0/8 0/0 0/0 .rodata @5449 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5449 = 0.5f; -COMPILER_STRIP_GATE(0x807E2A88, &lit_5449); -#pragma pop - -/* 807E2A8C-807E2A90 000100 0004+00 0/2 0/0 0/0 .rodata @5450 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5450 = 3.0f / 10.0f; -COMPILER_STRIP_GATE(0x807E2A8C, &lit_5450); -#pragma pop - -/* 807E2A90-807E2A94 000104 0004+00 0/1 0/0 0/0 .rodata @5451 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5451 = 7.0f / 10.0f; -COMPILER_STRIP_GATE(0x807E2A90, &lit_5451); -#pragma pop - -/* 807E2A94-807E2A98 000108 0004+00 0/4 0/0 0/0 .rodata @5452 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5452 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x807E2A94, &lit_5452); -#pragma pop - -/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_807E2F0C = "F_SP118"; -#pragma pop - /* 807D4154-807D48C0 001DB4 076C+00 1/1 0/0 0/0 .text e_wb_pl_ride__FP10e_wb_class */ -static void e_wb_pl_ride(e_wb_class* param_0) { - // NONMATCHING +static void e_wb_pl_ride(e_wb_class* i_this) { + f32 fVar11 = l_HIO.mCalvaryBattleMaxSpeed; + f32 fVar2; + + if (i_this->field_0x1432 != 0) { + if (i_this->field_0x1432 == 1) { + i_this->mActionID = ACT_PL_RIDE; + } + + if (i_this->mAnmID == 0x1b) { + if (!i_this->mpModelMorf->isStop()) { + if (i_this->mpModelMorf->checkFrame(22.0f) && + !i_this->mpModelMorf->checkFrame(42.0)) + { + return; + } + + cXyz cStack_7c(0.0f, 1.0f, 0.0f); + dComIfGp_getVibration().StartShock(5, 0x1f, cStack_7c); + return; + } + + anm_init(i_this, 0x20, 2.0f, 2, 2.0f); + i_this->speedF = 1.0; + } + + fVar11 = 50.0f; + + if ((i_this->field_0x1432 & 0xf) == 0) { + cXyz cStack_88(0.0f, 1.0f, 0.0f); + dComIfGp_getVibration().StartShock(3, 0x1f, cStack_88); + } + } + + if (i_this->mAnmID == 0x25) { + cLib_chaseF(&i_this->speedF, 0.0f, 2.0f); + if (i_this->speedF < 0.01f) { + anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); + } + + if (i_this->speedF > 10.0) { + i_this->field_0x142c = 2; + } + } else { + f32 stick_value = mDoCPd_c::getStickValue(0); + + if (daAlink_getAlinkActorClass()->checkHorseGetOffMode()) { + stick_value = 0.0f; + } + + f32 fVar1 = 1.5; + s16 stick_angle; + + if (i_this->mActionID == 0x65) { + stick_angle = mDoCPd_c::getStickAngle3D(0); + } else { + fVar2 = 1.0; + fVar1 = 10.0; + + if (!dComIfGp_event_runCheck()) { + stick_angle = mDoCPd_c::getStickAngle3D(0); + + if (fVar11 < 0.1f) { + stick_angle = -0x8000; + } + } else { + stick_angle = -0x8000; + } + } + + s16 angle_y = dCam_getControledAngleY(dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0))); + + angle_y -= 0x8000; + int iVar4 = 0; + s16 angle_delta = angle_y - i_this->current.angle.y; + + if (i_this->mActionID == 0x65) { + if (abs(angle_delta) < 0x6001) { + if (angle_delta < 0x2000) { + if (angle_delta < -0x1fff) { + iVar4 = 3; + } + } else { + iVar4 = 2; + } + } else { + iVar4 = 1; + } + } else if (angle_delta < 0x2000) { + if (angle_delta < -0x1fff) { + iVar4 = 3; + } + } else { + iVar4 = 2; + } + + if (i_this->field_0x142f == 2) { + if (i_this->speedF >= 0.1f) { + iVar4 = 1; + } else if (iVar4 == 0) { + fVar11 = 0.0; + } + + if (i_this->mActionID != ACT_PL_RIDE) { + i_this->mActionID = ACT_PL_RIDE; + i_this->field_0x1432 = 0; + + if (l_HIO.mNormalSpeedVi < i_this->speedF) { + i_this->speedF = l_HIO.mNormalSpeedVi; + } + } + } else if (i_this->field_0x142f && iVar4 == 1) { + fVar11 = 0.0f; + } + + // Bulblin Camp, Outside Arbiter's Grounds Room + if (strcmp(dComIfGp_getStartStageName(), "F_SP118") && fopAcM_GetRoomNo(i_this) == 3 && + dComIfGp_event_runCheck() || + dComIfGp_checkPlayerStatus0(0, 0x2000)) + { + fVar11 = 0.0f; + } + + i_this->mWaitRollAngle = 0; + if (iVar4 != 1 && fVar11 > 0.01f) { + s16 curr_angle_y = i_this->current.angle.y; + + if (i_this->mActionID == ACT_PL_RIDE) { + cLib_addCalcAngleS2(&i_this->current.angle.y, curr_angle_y, 4, 500); + i_this->mTargetAngleStep = 0; + } else { + s16 local_94 = 0; + s16 local_96 = KREG_S(3) + 0x40; + + if (iVar4 == 2) { + local_94 = KREG_S(2) + 0x300; + } else if (iVar4 == 3) { + local_94 = -KREG_S(2) + 0x300; + } else { + local_96 = KREG_S(4) + 0x10; + } + + cLib_addCalcAngleS2(&i_this->mTargetAngleStep, local_94, 4, local_96); + i_this->current.angle.y += i_this->mTargetAngleStep; + } + + i_this->mWaitRollAngle = i_this->current.angle.y - curr_angle_y; + f32 fVar10 = + i_this->mWaitRollAngle * TREG_S(7) - 8 * i_this->speedF / l_HIO.mBaseSize + 1.0f; + + if (fVar10 <= NREG_F(0x11) + 4500.0f) { + if (fVar10 < -NREG_F(0x11) + 4500.0f) + fVar10 = -NREG_F(0x11) + 4500.0f; + } else { + fVar10 = NREG_F(0x11) + 4500.0f; + } + + cLib_addCalcAngleS2(&i_this->field_0x79a, (s16)fVar10, 8, 0x140); + } + + if (i_this->speedF >= 0.01f) { + i_this->mWaitRollAngle = 0; + + if (fVar11 <= 0.01) { + cLib_chaseF(&i_this->speedF, 0.0f, 0.5); + + if (i_this->mAnmID == 0x20 && i_this->speedF < TREG_F(3) + 20.0f) { + anm_init(i_this, 0x2b, 0.0f, 2, 0.0f); + } + } else if (iVar4 == 1) { + if ((fVar11 * 0.3f < i_this->speedF && i_this->mAnmID != 0x25)) { + anm_init(i_this, 0x25, 0.0f, 2, 0.0f); + } + + cLib_chaseF(&i_this->speedF, 0.0f, 2.0f); + } else { + cLib_chaseF(&i_this->speedF, fVar11 * fVar2, fVar1); + + if (TREG_F(3) + 20.0f <= i_this->speedF) { + if (i_this->mAnmID != 0x20) { + anm_init(i_this, 0x20, 0.0f, 2, 0.0f); + } + } else if (i_this->mAnmID != 0x2b) { + anm_init(i_this, 0x2b, 0.0f, 2, 0.0f); + } + } + } else if (fVar2 <= 0.01f) { + fVar11 = fabsf(i_this->speedF); + + if (fVar11 >= 0.01f) { + cLib_chaseF(&i_this->speedF, 0.0f, 0.5f); + } else if (i_this->mAnmID != 0x2a) { + anm_init(i_this, 0x2a, 0.0f, 2, 0.0f); + } + } else if (iVar4 == 0) { + i_this->mWaitRollAngle = 0; + i_this->speedF = fVar1; + } else { + if (iVar4 == 1) { + i_this->mWaitRollAngle = 0; + cLib_chaseF(&i_this->speedF, fVar11 * fVar2 * -0.2f, 1.0f); + } + + if (i_this->mAnmID != 0x28) { + anm_init(i_this, 0x28, 0.0f, 2, 0.0f); + } + } + + if (i_this->mAnmID == 0x20) { + i_this->mpModelMorf->setPlaySpeed(BREG_F(0) + 0.4f + + (l_HIO.mPlayerMountedMaxSpeed * i_this->speedF) / + l_HIO.mPlayerMountedMotionPlaybackSpeed); + i_this->field_0x142c = 1; + i_this->field_0x6bd = 1; + } else if (i_this->mAnmID == 0x2b) { + i_this->mpModelMorf->setPlaySpeed(TREG_F(4) + 0.7f + + (TREG_F(5) + 0.05f) * i_this->speedF); + } + } } -/* ############################################################################################## */ -/* 807E2A98-807E2A9C 00010C 0004+00 0/5 0/0 0/0 .rodata @5511 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5511 = 1500.0f; -COMPILER_STRIP_GATE(0x807E2A98, &lit_5511); -#pragma pop - /* 807D48C0-807D4BDC 002520 031C+00 1/1 0/0 0/0 .text e_wb_f_wait__FP10e_wb_class */ -static void e_wb_f_wait(e_wb_class* param_0) { - // NONMATCHING +// NONMATCHING +static void e_wb_f_wait(e_wb_class* i_this) { + s16 angle = fopAcM_searchPlayerAngleY(i_this); + s16 new_angle; + + switch (i_this->mActionMode) { + case 0: + if (lbl_244_bss_45 != 0 && i_this->mParam2 == 1 || i_this->mParam == 1) { + i_this->mActionMode = 10; + anm_init(i_this, 0x28, 5.0f, 2, 1.5f); + + if (cM_rndF(1.0) < 0.5f) { + i_this->field_0x7a0 = 0x3000; + } else { + i_this->field_0x7a0 = -0x3000; + } + } + + break; + case 1: + anm_init(i_this, 0x28, 5.0f, 2, 1.5f); + i_this->mActionMode = 1; + i_this->field_0x6be |= 4; + + case 11: + cLib_addCalcAngleS2(&i_this->current.angle.y, angle, 8, 0x200); + i_this->field_0x6d0 = angle - i_this->current.angle.y; + + if (i_this->field_0x6d0 < 0x800 && i_this->field_0x6d0 > -0x800) { + if (i_this->field_0x142f != 1) { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + i_this->mActionID = 6; + i_this->mActionMode = 0; + i_this->field_0x5d0 = player->current.pos; + } + + if (i_this->mAnmID != 0x2a) { + anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); + } + } + break; + + case 6: + new_angle = angle + i_this->field_0x7a0; + + cLib_addCalcAngleS2(&i_this->current.angle.y, new_angle, 8, 0x200); + i_this->field_0x6d0 = new_angle - i_this->current.angle.y; + + if (i_this->field_0x6d0 < 0x800 && i_this->field_0x6d0 > -0x800) { + anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); + i_this->mActionMode = 11; + } + + case 2: + i_this->field_0x6d0 = i_this->field_0x7a0 - i_this->current.angle.y; + + if (i_this->field_0x6d0 > 0x1000 || i_this->field_0x6d0 < -0x1000) { + i_this->mActionMode = 10; + anm_init(i_this, 0x28, 5.0f, 2, 1.5f); + } + + cLib_addCalc0(&i_this->speedF, 1.0f, 2.0f); + + if (i_this->mActionMode >= 10) { + f32 dist = fopAcM_searchPlayerDistanceXZ(i_this); + + if (!(dist < 500.0f) && !(dist > 1500.0f)) { + if (!daPy_getPlayerActorClass()->checkHorseRide()) { + return; + } + + if (!(dComIfGp_getHorseActor()->speedF >= 30.0f)) { + return; + } + } + + if (i_this->field_0x142f == 0) { + i_this->mActionID = 6; + i_this->mActionMode = 0; + } + } + } } /* 807D4BDC-807D4C84 00283C 00A8+00 1/1 0/0 0/0 .text pl_pass_check__FP10e_wb_classf */ -static void pl_pass_check(e_wb_class* param_0, f32 param_1) { - // NONMATCHING +static bool pl_pass_check(e_wb_class* i_this, f32 param_1) { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + + cXyz pos_delta; + cXyz cStack_24; + + pos_delta = i_this->current.pos - player->current.pos; + + cMtx_YrotS(*calc_mtx, -player->shape_angle.y); + MtxPosition(&pos_delta, &cStack_24); + + return cStack_24.z > param_1; } -/* ############################################################################################## */ -/* 807E2A9C-807E2AA0 000110 0004+00 0/1 0/0 0/0 .rodata @5686 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5686 = 19.0f / 20.0f; -COMPILER_STRIP_GATE(0x807E2A9C, &lit_5686); -#pragma pop - -/* 807E2AA0-807E2AA4 000114 0004+00 0/1 0/0 0/0 .rodata @5687 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5687 = 27.0f / 20.0f; -COMPILER_STRIP_GATE(0x807E2AA0, &lit_5687); -#pragma pop - -/* 807E2AA4-807E2AA8 000118 0004+00 0/3 0/0 0/0 .rodata @5688 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5688 = 5000.0f; -COMPILER_STRIP_GATE(0x807E2AA4, &lit_5688); -#pragma pop - -/* 807E2AA8-807E2AAC 00011C 0004+00 0/1 0/0 0/0 .rodata @5689 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5689 = 13.0f / 10.0f; -COMPILER_STRIP_GATE(0x807E2AA8, &lit_5689); -#pragma pop - -/* 807E2AAC-807E2AB0 000120 0004+00 0/2 0/0 0/0 .rodata @5690 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5690 = 700.0f; -COMPILER_STRIP_GATE(0x807E2AAC, &lit_5690); -#pragma pop - /* 807D4C84-807D53AC 0028E4 0728+00 1/1 0/0 0/0 .text e_wb_f_run__FP10e_wb_class */ -static void e_wb_f_run(e_wb_class* param_0) { +static void e_wb_f_run(e_wb_class* i_this) { // NONMATCHING } /* 807D53AC-807D5408 00300C 005C+00 2/2 0/0 0/0 .text s_wbstart_sub__FPvPv */ -static void s_wbstart_sub(void* param_0, void* param_1) { - // NONMATCHING +static int s_wbstart_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_WB && + static_cast(i_actor)->field_0x79d == 0) + { + static_cast(i_actor)->field_0x7a6 = 1; + static_cast(i_actor)->field_0x7a7 = 1; + } + + return 0; } /* 807D5408-807D5634 003068 022C+00 1/1 0/0 0/0 .text e_wb_b_wait__FP10e_wb_class */ -static void e_wb_b_wait(e_wb_class* param_0) { +static void e_wb_b_wait(e_wb_class* i_this) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2AB0-807E2AB4 000124 0004+00 0/4 0/0 0/0 .rodata @5941 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5941 = 3000.0f; -COMPILER_STRIP_GATE(0x807E2AB0, &lit_5941); -#pragma pop - -/* 807E3624-807E3630 0000B4 000C+00 0/1 0/0 0/0 .bss @4746 */ -#pragma push -#pragma force_active on -static u8 lit_4746[12]; -#pragma pop - /* 807E3630-807E3690 0000C0 0060+00 1/4 0/0 0/0 .bss b_path */ -static u8 b_path[96]; - -/* 807E3690-807E369C 000120 000C+00 0/1 0/0 0/0 .bss @5743 */ -#pragma push -#pragma force_active on -static u8 lit_5743[12]; -#pragma pop +static cXyz b_path[8]; /* 807E369C-807E36FC 00012C 0060+00 2/3 0/0 0/0 .bss b_path2 */ -static u8 b_path2[96]; +static cXyz b_path2[8]; /* 807D5634-807D5EBC 003294 0888+00 1/1 0/0 0/0 .text e_wb_b_run2__FP10e_wb_class */ -static void e_wb_b_run2(e_wb_class* param_0) { - // NONMATCHING +static void e_wb_b_run2(e_wb_class* i_this) { + fopAc_ac_c* player_p = dComIfGp_getPlayer(0); + cXyz pos1; + cXyz pos2; + f32 dist = fopAcM_searchPlayerDistanceXZ(i_this); + f32 fVar10 = 0.0f; + f32 fVar1 = 1.0f; + s16 curr_angle = i_this->current.angle.y; + + switch (i_this->mActionMode) { + case 0: + anm_init(i_this, 0x1b, 3.0f, 0, 1.0f); + i_this->mActionMode = 1; + i_this->field_0x6be |= 8; + i_this->field_0x1684 = 40.0f; + i_this->mPlaySpeed = 1.0f; + break; + case 1: + if (i_this->mpModelMorf->checkFrame(3.0f) != 0) { + i_this->field_0x142d |= 2; + i_this->field_0x142c = 10; + } else { + if (i_this->mpModelMorf->checkFrame(15.0f) != 0) { + i_this->field_0x142d |= 3; + } + } + + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 0x20, 5.0f, 2, 1.0f); + i_this->mActionMode = 2; + cXyz loop_pos1; + cXyz loop_pos2; + int local_e0 = 0; + + for (int i = 1; i < 8; i++) { + loop_pos1 = b_path2[local_e0] - i_this->current.pos; + loop_pos2 = b_path2[i] - i_this->current.pos; + + if (loop_pos1.abs() > loop_pos2.abs()) { + local_e0 = i; + } + } + + i_this->mBPathIdx = local_e0; + i_this->field_0x698 = cM_rndF(100.0f) + 100.0f; + } + + break; + case 2: + i_this->field_0x6bd = 1; + + for (int i = 0; i < 8; i++) { + cMtx_YrotS(*calc_mtx, i << 0xd); + pos1.z = 3000.0f; + MtxPosition(&pos1, &pos2); + pos2 += player_p->current.pos; + b_path2[i] = pos2; + } + + pos1 = b_path2[i_this->mBPathIdx] - i_this->current.pos; + pos1.y = 0.0f; + + if (pos1.abs() < 600.0f) { + int local_ec = 1; + pos1 = b_path2[(i_this->mBPathIdx + 1) & 7] - i_this->current.pos; + + s16 tmp = i_this->current.angle.y - cM_atan2s(pos1.x, pos1.z); + + if (tmp < 0x4000 && tmp > -0x4000) { + i_this->mBPathIdx += local_ec; + } else { + i_this->mBPathIdx -= local_ec; + } + + i_this->mBPathIdx &= 7; + i_this->mTargetAngleStep = 0; + } + + pos1 = b_path2[i_this->mBPathIdx] - i_this->current.pos; + i_this->mAngleTarget = cM_atan2s(pos1.x, pos1.z); + + cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->mAngleTarget, 8, + i_this->mTargetAngleStep); + cLib_addCalcAngleS2(&i_this->mTargetAngleStep, 0x400, 1, 0x10); + + fVar1 = 3.0f; + fVar10 = l_HIO.mLeaderMaxSpeed; + i_this->field_0x142c = 1; + + if (i_this->field_0x698 == 0 && dist < 5000.0f) { + anm_init(i_this, 0x25, 3.0f, 2, 1.0f); + i_this->mActionMode = 3; + } + break; + case 3: + if (i_this->speedF > 15.0f) { + i_this->field_0x142c = 2; + } + + if (i_this->speedF < 1.0f) { + i_this->mActionID = ACT_B_WAIT; + i_this->mActionMode = 0; + return; + } + } + + cLib_addCalc2(&i_this->speedF, fVar10, 1.0f, fVar1); + cLib_addCalcAngleS2(&i_this->field_0x79a, -4 * (i_this->current.angle.y - curr_angle), 8, + 0x200); + i_this->mpModelMorf->setPlaySpeed(i_this->mPlaySpeed); + cLib_addCalc2(&i_this->mPlaySpeed, 1.0f, 1.0f, 0.1f); + + if (dist < 1000.0f) { + i_this->mActionID = ACT_B_RUN; + + if (i_this->mAnmID == 0x20) { + i_this->mActionMode = 2; + } else { + i_this->mActionMode = 0; + i_this->mZ2Ride.startCreatureVoice(Z2SE_EN_RDB_V_HOICK, -1); + } + } + + if (i_this->mActionMode < 3 && i_this->field_0x142f > 0) { + anm_init(i_this, 0x25, 3.0f, 2, 1.0f); + + if (i_this->speedF > 30.0f) + i_this->speedF = 30.0f; + + i_this->mActionMode = 3; + } } -/* ############################################################################################## */ -/* 807E2AB4-807E2AB8 000128 0004+00 0/3 0/0 0/0 .rodata @5977 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5977 = 4000.0f; -COMPILER_STRIP_GATE(0x807E2AB4, &lit_5977); -#pragma pop - /* 807D5EBC-807D6058 003B1C 019C+00 1/1 0/0 0/0 .text e_wb_b_wait2__FP10e_wb_class */ -static void e_wb_b_wait2(e_wb_class* param_0) { +static void e_wb_b_wait2(e_wb_class* i_this) { // NONMATCHING } /* 807D6058-807D6C2C 003CB8 0BD4+00 2/1 0/0 0/0 .text e_wb_b_run__FP10e_wb_class */ -static void e_wb_b_run(e_wb_class* param_0) { - // NONMATCHING +// NONMATCHING - float and general regalloc +static void e_wb_b_run(e_wb_class* i_this) { + fopAc_ac_c* player_p = dComIfGp_getPlayer(0); + cXyz pos1; + cXyz pos2; + f32 dist = fopAcM_searchPlayerDistanceXZ(i_this); + f32 speed_target = 0.0; + f32 speed_step = 1.0; + + if ((i_this->field_0x6be & 1) == 0) { + i_this->mActionID = 7; + i_this->mActionMode = 0; + } else { + s8 bVar11 = false; + f32 fVar14 = l_HIO.mLeaderCalvaryBattleMaxSpeed; + if (daPy_getPlayerActorClass()->checkHorseRide() && + dComIfGp_getHorseActor()->speedF >= 30.0f) + { + bVar11 = true; + } + + s16 sVar3 = i_this->current.angle.y; + f32 horse_speed = 1.0f; + s8 bVar4 = false; + + switch (i_this->mActionMode) { + case 0: + i_this->field_0x6be |= 8; + case 1: + i_this->field_0x1684 = 30.0f; + i_this->mPlaySpeed = 1.0f; + anm_init(i_this, 0x20, 5.0f, 2, 1.0f); + i_this->mActionMode = 2; + i_this->field_0x6be |= 0x10; + i_this->mZ2Ride.startCreatureSound(Z2SE_EN_WB_KICK_GROUND, 0, -1); + + if (i_this->field_0x68c != 0) { + cXyz loop_pos1; + cXyz loop_pos2; + int local_e4 = 0; + + for (int i = 1; i < 8; i++) { + loop_pos1 = b_path[local_e4] - i_this->current.pos; + loop_pos2 = b_path[i] - i_this->current.pos; + + if (loop_pos1.abs() > loop_pos2.abs()) { + local_e4 = i; + } + } + + i_this->mBPathIdx = local_e4; + + } else { + if (lbl_244_bss_45 == 1) { + i_this->mBPathIdx = 6; + } else { + i_this->mBPathIdx = 2; + } + + i_this->mBPathIdxIter = 1; + i_this->field_0x68c = 1; + } + break; + case 2: // link giving chase + i_this->field_0x6bd = 1; + pos1 = b_path[i_this->mBPathIdx] - i_this->current.pos; + pos1.y = 0.0; + + if (pos1.abs() < 800.0f) { + if (i_this->field_0x79e >= 4 && cM_rndF(1.0f) < 0.05f) { + i_this->mBPathIdxIter = cM_rndF(6.0f) + 1.0f; + } + + pos1 = b_path[(i_this->mBPathIdx + 1) & 7] - i_this->current.pos; + s16 angle = i_this->current.angle.y - cM_atan2s(pos1.x, pos1.z); + + if (angle < 0x4000 && angle > -0x4000) { + i_this->mBPathIdxIter = 1; + } else { + i_this->mBPathIdxIter = -1; + } + + OS_REPORT(" PT %d\n", i_this->mBPathIdx); + OS_REPORT(" DIR %d\n", i_this->mBPathIdxIter); + + i_this->mBPathIdx += i_this->mBPathIdxIter; + i_this->mBPathIdx &= 7; + bVar4 = true; + i_this->mTargetAngleStep = 0; + } else { + if (i_this->field_0x79f >= 3) { + i_this->field_0x79f = 0; + + if (cM_rndF(1.0f) < 0.5f) { + i_this->mBPathIdx += 3; + } else { + i_this->mBPathIdx -= 3; + } + + i_this->mBPathIdx &= 7; + bVar4 = true; + } + } + + pos1 = b_path[i_this->mBPathIdx] - i_this->current.pos; + i_this->mAngleTarget = cM_atan2s(pos1.x, pos1.z); + cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->mAngleTarget, 8, + i_this->mTargetAngleStep); + cLib_addCalcAngleS2(&i_this->mTargetAngleStep, 0x400, 1, 0x10); + + if (bVar11) { + // float regalloc + horse_speed = dComIfGp_getHorseActor()->speedF; + speed_target = l_HIO.mLeaderCalvaryBattleMaxSpeed; + + if (speed_target > horse_speed) { + speed_target = horse_speed; + } else { + if (speed_target < l_HIO.mLeaderMaxSpeed) { + speed_target = l_HIO.mLeaderMaxSpeed; + } + } + + if (fopAcM_searchPlayerDistanceXZ(i_this) < 2000.0f) { + speed_target *= 1.2f; + + if (i_this->speedF < l_HIO.mMaxSpeed) { + speed_step = 0.5f; + } else { + speed_step = 1.5f; + } + } + + horse_speed = i_this->speedF / 40.0f; + + if (horse_speed < 1.0f) + horse_speed = 1.0f; + + if (horse_speed > 1.2f) + horse_speed = 1.2f; + } else { + speed_step = 3.0; + speed_target = l_HIO.mLeaderMaxSpeed; + } + + if (dist > 6000.0f) { + i_this->mActionMode = 3; + i_this->field_0x698 = 0xd; + } + + i_this->field_0x142c = 1; + break; + case 3: + i_this->field_0x6bd = 1; + speed_target = l_HIO.mMaxSpeed; + speed_step = 3.0f; + + if (i_this->field_0x698 == 10) { + i_this->field_0x6be |= 0x20; + } + + if (i_this->field_0x698 == 0) { + i_this->mActionMode = 4; + anm_init(i_this, 0x25, 3.0f, 2, 1.0f); + } + + i_this->field_0x142c = 1; + break; + case 4: + if (i_this->speedF > 15.0f) { + i_this->field_0x142c = 2; + } + + if (i_this->speedF < 1.0f) { + i_this->mActionID = ACT_B_WAIT2; + i_this->mActionMode = 0; + } + + break; + case 10: // jumping a fence / hit wall + speed_target = l_HIO.mMaxSpeed; + speed_step = 3.0f; + int anm_id = i_this->mAnmID; + + if (anm_id == 0x18) { + if (i_this->speed.y < 10.0f) { + anm_init(i_this, 0x19, 10.0f, 0, 1.0f); + } + } else if (anm_id == 0x19) { + if (i_this->speed.y < -30.0f || i_this->mAcch.ChkGroundHit()) { + anm_init(i_this, 0x1a, 2.0f, 0, 1.0f); + i_this->field_0x142d |= 0xc; + i_this->field_0x142e = 1; + i_this->field_0x6be |= 0x200; + } + } else if (anm_id == 0x1a) { + i_this->field_0x142c = 1; + + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 0x20, 2.0f, 2, i_this->mPlaySpeed); + i_this->field_0x1684 = 30.0f; + i_this->mActionMode = 2; + } + } + } + + if (i_this->mActionMode < 10) { + cLib_addCalc2(&i_this->speedF, speed_target, 1.0f, speed_step); + cLib_addCalcAngleS2(&i_this->field_0x79a, -4 * (i_this->current.angle.y - sVar3), 8, + 0x200); + i_this->mpModelMorf->setPlaySpeed(i_this->mPlaySpeed); + cLib_addCalc2(&i_this->mPlaySpeed, speed_target, 1.0f, 0.1f); + + if (i_this->speedF >= 30.0f && i_this->mAcch.ChkGroundHit()) { + if (i_this->mAcch.ChkWallHit() || e_wb_saku_jump_check(i_this)) { + i_this->mActionMode = 10; + i_this->speed.y = 55.0f; + anm_init(i_this, 0x18, 2.0f, 0, 1.0f); + i_this->field_0x6be |= 0x100; + } + } + } + + if (bVar4) { + pos1.x = 0.0f; + pos1.y = 1000.0f; + + for (int i = 0; i < 8; i++) { + cMtx_YrotS(*calc_mtx, i << 0xd); + + if (lbl_244_bss_45 == 1) { + pos1.z = cM_rndF(3000.0f) + 12000.0f; + MtxPosition(&pos1, &pos2); + } else if (i_this->field_0x79e >= 4) { + pos1.z = cM_rndF(3000.0f) + 12000.0f; + MtxPosition(&pos1, &pos2); + pos2.x += -2989.0f; + pos2.z += 1364.0f; + } else { + pos1.z = cM_rndF(1000.0f) + 9000.0f; + MtxPosition(&pos1, &pos2); + pos2.x += 28108.0f; + pos2.z += 6640.0f; + } + + b_path[i] = pos2; + } + } + + if (i_this->field_0x142f > 0 && i_this->speedF > 30.0f) { + i_this->speedF = 30.0f; + } + } + return; } -/* ############################################################################################## */ -/* 807E2AB8-807E2ABC 00012C 0004+00 0/1 0/0 0/0 .rodata @6243 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6243 = 6.0f; -COMPILER_STRIP_GATE(0x807E2AB8, &lit_6243); -#pragma pop - -/* 807E2ABC-807E2AC0 000130 0004+00 0/0 0/0 0/0 .rodata @6244 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6244 = 6000.0f; -COMPILER_STRIP_GATE(0x807E2ABC, &lit_6244); -#pragma pop - -/* 807E2AC0-807E2AC4 000134 0004+00 0/2 0/0 0/0 .rodata @6245 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6245 = -30.0f; -COMPILER_STRIP_GATE(0x807E2AC0, &lit_6245); -#pragma pop - -/* 807E2AC4-807E2AC8 000138 0004+00 0/3 0/0 0/0 .rodata @6246 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6246 = 12000.0f; -COMPILER_STRIP_GATE(0x807E2AC4, &lit_6246); -#pragma pop - -/* 807E2AC8-807E2ACC 00013C 0004+00 0/0 0/0 0/0 .rodata @6247 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6247 = 9000.0f; -COMPILER_STRIP_GATE(0x807E2AC8, &lit_6247); -#pragma pop - -/* 807E2ACC-807E2AD0 000140 0004+00 0/0 0/0 0/0 .rodata @6248 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6248 = 28108.0f; -COMPILER_STRIP_GATE(0x807E2ACC, &lit_6248); -#pragma pop - -/* 807E2AD0-807E2AD4 000144 0004+00 0/0 0/0 0/0 .rodata @6249 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6249 = 6640.0f; -COMPILER_STRIP_GATE(0x807E2AD0, &lit_6249); -#pragma pop - -/* 807E2AD4-807E2AD8 000148 0004+00 0/1 0/0 0/0 .rodata @6250 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6250 = -2989.0f; -COMPILER_STRIP_GATE(0x807E2AD4, &lit_6250); -#pragma pop - -/* 807E2AD8-807E2ADC 00014C 0004+00 0/1 0/0 0/0 .rodata @6251 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6251 = 1364.0f; -COMPILER_STRIP_GATE(0x807E2AD8, &lit_6251); -#pragma pop - -/* 807E2ADC-807E2AE0 000150 0004+00 0/1 0/0 0/0 .rodata @6276 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6276 = 36460.0f; -COMPILER_STRIP_GATE(0x807E2ADC, &lit_6276); -#pragma pop - -/* 807E2AE0-807E2AE4 000154 0004+00 0/1 0/0 0/0 .rodata @6277 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6277 = 1040.0f; -COMPILER_STRIP_GATE(0x807E2AE0, &lit_6277); -#pragma pop - -/* 807E2AE4-807E2AE8 000158 0004+00 0/1 0/0 0/0 .rodata @6278 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6278 = -17020.0f; -COMPILER_STRIP_GATE(0x807E2AE4, &lit_6278); -#pragma pop - -/* 807E36FC-807E370C 00018C 000C+04 0/1 0/0 0/0 .bss @6258 */ -#pragma push -#pragma force_active on -static u8 lit_6258[12 + 4 /* padding */]; -#pragma pop - /* 807E370C-807E3718 00019C 000C+00 0/1 0/0 0/0 .bss arrow_rd_pos$6257 */ #pragma push #pragma force_active on @@ -1636,201 +1601,24 @@ static void arrow_rd_set(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2AE8-807E2AEC 00015C 0004+00 0/1 0/0 0/0 .rodata @6572 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6572 = 34789.0f; -COMPILER_STRIP_GATE(0x807E2AE8, &lit_6572); -#pragma pop - -/* 807E2AEC-807E2AF0 000160 0004+00 0/1 0/0 0/0 .rodata @6573 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6573 = -290.0f; -COMPILER_STRIP_GATE(0x807E2AEC, &lit_6573); -#pragma pop - -/* 807E2AF0-807E2AF4 000164 0004+00 0/1 0/0 0/0 .rodata @6574 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6574 = -36200.0f; -COMPILER_STRIP_GATE(0x807E2AF0, &lit_6574); -#pragma pop - -/* 807E2AF4-807E2AF8 000168 0004+00 0/1 0/0 0/0 .rodata @6575 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6575 = -16600.0f; -COMPILER_STRIP_GATE(0x807E2AF4, &lit_6575); -#pragma pop - -/* 807E2AF8-807E2AFC 00016C 0004+00 0/1 0/0 0/0 .rodata @6576 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6576 = 31.0f; -COMPILER_STRIP_GATE(0x807E2AF8, &lit_6576); -#pragma pop - -/* 807E2AFC-807E2B00 000170 0004+00 0/1 0/0 0/0 .rodata @6577 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6577 = 38.0f; -COMPILER_STRIP_GATE(0x807E2AFC, &lit_6577); -#pragma pop - -/* 807E2B00-807E2B04 000174 0004+00 0/1 0/0 0/0 .rodata @6578 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6578 = 65.0f; -COMPILER_STRIP_GATE(0x807E2B00, &lit_6578); -#pragma pop - -/* 807E2B04-807E2B08 000178 0004+00 0/1 0/0 0/0 .rodata @6579 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6579 = 108.0f; -COMPILER_STRIP_GATE(0x807E2B04, &lit_6579); -#pragma pop - -/* 807E2B08-807E2B0C 00017C 0004+00 0/1 0/0 0/0 .rodata @6580 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6580 = 82.0f; -COMPILER_STRIP_GATE(0x807E2B08, &lit_6580); -#pragma pop - -/* 807E2B0C-807E2B10 000180 0004+00 0/1 0/0 0/0 .rodata @6581 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6581 = 106.0f; -COMPILER_STRIP_GATE(0x807E2B0C, &lit_6581); -#pragma pop - -/* 807E2B10-807E2B14 000184 0004+00 0/1 0/0 0/0 .rodata @6582 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6582 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x807E2B10, &lit_6582); -#pragma pop - -/* 807E2B14-807E2B18 000188 0004+00 0/2 0/0 0/0 .rodata @6583 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6583 = 3.0f / 5.0f; -COMPILER_STRIP_GATE(0x807E2B14, &lit_6583); -#pragma pop - -/* 807E2B18-807E2B1C 00018C 0004+00 0/2 0/0 0/0 .rodata @6584 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6584 = 3.0f / 50.0f; -COMPILER_STRIP_GATE(0x807E2B18, &lit_6584); -#pragma pop - -/* 807E2B1C-807E2B20 000190 0004+00 0/3 0/0 0/0 .rodata @6585 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6585 = 10000.0f; -COMPILER_STRIP_GATE(0x807E2B1C, &lit_6585); -#pragma pop - -/* 807E2B20-807E2B24 000194 0004+00 0/2 0/0 0/0 .rodata @6586 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6586 = 35350.0f; -COMPILER_STRIP_GATE(0x807E2B20, &lit_6586); -#pragma pop - -/* 807E2B24-807E2B28 000198 0004+00 0/2 0/0 0/0 .rodata @6587 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6587 = 34243.0f; -COMPILER_STRIP_GATE(0x807E2B24, &lit_6587); -#pragma pop - -/* 807E2B28-807E2B2C 00019C 0004+00 0/3 0/0 0/0 .rodata @6588 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6588 = 34800.0f; -COMPILER_STRIP_GATE(0x807E2B28, &lit_6588); -#pragma pop - -/* 807E2B2C-807E2B30 0001A0 0004+00 0/1 0/0 0/0 .rodata @6589 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6589 = -300.0f; -COMPILER_STRIP_GATE(0x807E2B2C, &lit_6589); -#pragma pop - -/* 807E2B30-807E2B34 0001A4 0004+00 0/1 0/0 0/0 .rodata @6590 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6590 = -15150.0f; -COMPILER_STRIP_GATE(0x807E2B30, &lit_6590); -#pragma pop - -/* 807E2B34-807E2B38 0001A8 0004+00 0/2 0/0 0/0 .rodata @6591 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6591 = -37200.0f; -COMPILER_STRIP_GATE(0x807E2B34, &lit_6591); -#pragma pop - -/* 807E3718-807E3724 0001A8 000C+00 0/1 0/0 0/0 .bss @6279 */ -#pragma push -#pragma force_active on -static u8 lit_6279[12]; -#pragma pop - /* 807E3724-807E3730 0001B4 000C+00 0/2 0/0 0/0 .bss saku_p */ #pragma push #pragma force_active on static u8 saku_p[12]; #pragma pop -/* 807E3730-807E373C 0001C0 000C+00 0/1 0/0 0/0 .bss @6280 */ -#pragma push -#pragma force_active on -static u8 lit_6280[12]; -#pragma pop - /* 807E373C-807E3748 0001CC 000C+00 0/2 0/0 0/0 .bss saku_p2 */ #pragma push #pragma force_active on static u8 saku_p2[12]; #pragma pop -/* 807E3748-807E3758 0001D8 000C+04 0/1 0/0 0/0 .bss @6285 */ -#pragma push -#pragma force_active on -static u8 lit_6285[12 + 4 /* padding */]; -#pragma pop - -/* 807E3758-807E3764 0001E8 000C+00 0/1 0/0 0/0 .bss @6288 */ -#pragma push -#pragma force_active on -static u8 lit_6288[12]; -#pragma pop - /* 807E3764-807E377C 0001F4 0018+00 0/1 0/0 0/0 .bss ikki_pos$6284 */ #pragma push #pragma force_active on static u8 ikki_pos[24]; #pragma pop -/* 807E377C-807E378C 00020C 000C+04 0/1 0/0 0/0 .bss @6400 */ -#pragma push -#pragma force_active on -static u8 lit_6400[12 + 4 /* padding */]; -#pragma pop - -/* 807E378C-807E3798 00021C 000C+00 0/1 0/0 0/0 .bss @6403 */ -#pragma push -#pragma force_active on -static u8 lit_6403[12]; -#pragma pop - /* 807E3798-807E37B0 000228 0018+00 0/1 0/0 0/0 .bss f_pos$6399 */ #pragma push #pragma force_active on @@ -1842,72 +1630,11 @@ static void e_wb_b_ikki(e_wb_class* param_0) { // NONMATCHING } -/* 807D79B0-807D79EC 005610 003C+00 1/1 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - /* 807D79EC-807D7AD4 00564C 00E8+00 1/1 0/0 0/0 .text e_wb_b_ikki_end__FP10e_wb_class */ static void e_wb_b_ikki_end(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2B38-807E2B3C 0001AC 0004+00 0/2 0/0 0/0 .rodata @6816 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6816 = -93620.0f; -COMPILER_STRIP_GATE(0x807E2B38, &lit_6816); -#pragma pop - -/* 807E2B3C-807E2B40 0001B0 0004+00 0/1 0/0 0/0 .rodata @6817 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6817 = -5750.0f; -COMPILER_STRIP_GATE(0x807E2B3C, &lit_6817); -#pragma pop - -/* 807E2B40-807E2B44 0001B4 0004+00 0/1 0/0 0/0 .rodata @6818 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6818 = 48944.0f; -COMPILER_STRIP_GATE(0x807E2B40, &lit_6818); -#pragma pop - -/* 807E2B44-807E2B48 0001B8 0004+00 0/1 0/0 0/0 .rodata @6819 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6819 = 28423.0f; -COMPILER_STRIP_GATE(0x807E2B44, &lit_6819); -#pragma pop - -/* 807E2B48-807E2B4C 0001BC 0004+00 0/1 0/0 0/0 .rodata @6820 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6820 = 2500.0f; -COMPILER_STRIP_GATE(0x807E2B48, &lit_6820); -#pragma pop - -/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_807E2F14 = "RiderBoss"; -SECTION_DEAD static char const* const stringBase_807E2F1E = "action"; -#pragma pop - -/* 807E37B0-807E37C0 000240 000C+04 0/1 0/0 0/0 .bss @6612 */ -#pragma push -#pragma force_active on -static u8 lit_6612[12 + 4 /* padding */]; -#pragma pop - -/* 807E37C0-807E37CC 000250 000C+00 0/1 0/0 0/0 .bss @6615 */ -#pragma push -#pragma force_active on -static u8 lit_6615[12]; -#pragma pop - /* 807E37CC-807E37E4 00025C 0018+00 0/1 0/0 0/0 .bss ikki2_pos$6611 */ #pragma push #pragma force_active on @@ -1924,65 +1651,42 @@ static void e_wb_b_ikki2_end(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2B4C-807E2B50 0001C0 0004+00 0/1 0/0 0/0 .rodata @6887 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6887 = -7080.0f; -COMPILER_STRIP_GATE(0x807E2B4C, &lit_6887); -#pragma pop - -/* 807E2B50-807E2B54 0001C4 0004+00 0/1 0/0 0/0 .rodata @6888 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6888 = -6634.0f; -COMPILER_STRIP_GATE(0x807E2B50, &lit_6888); -#pragma pop - -/* 807E2B54-807E2B58 0001C8 0004+00 0/1 0/0 0/0 .rodata @6889 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6889 = -10008.0f; -COMPILER_STRIP_GATE(0x807E2B54, &lit_6889); -#pragma pop - -/* 807E2B58-807E2B5C 0001CC 0004+00 0/1 0/0 0/0 .rodata @6890 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6890 = -2729.0f; -COMPILER_STRIP_GATE(0x807E2B58, &lit_6890); -#pragma pop - /* 807D8648-807D88D8 0062A8 0290+00 2/1 0/0 0/0 .text e_wb_b_lv9_end__FP10e_wb_class */ static void e_wb_b_lv9_end(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2B5C-807E2B60 0001D0 0004+00 0/0 0/0 0/0 .rodata @6891 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6891 = -12682.0f; -COMPILER_STRIP_GATE(0x807E2B5C, &lit_6891); -#pragma pop - -/* 807E2B60-807E2B64 0001D4 0004+00 0/0 0/0 0/0 .rodata @6892 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6892 = -2701.0f; -COMPILER_STRIP_GATE(0x807E2B60, &lit_6892); -#pragma pop - -/* 807E2B64-807E2B68 0001D8 0004+00 0/1 0/0 0/0 .rodata @6914 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6914 = 7.0f / 5.0f; -COMPILER_STRIP_GATE(0x807E2B64, &lit_6914); -#pragma pop - /* 807D88D8-807D8A78 006538 01A0+00 1/1 0/0 0/0 .text e_wb_a_run__FP10e_wb_class */ -static void e_wb_a_run(e_wb_class* param_0) { - // NONMATCHING +static void e_wb_a_run(e_wb_class* i_this) { + s16 curr_angle_y = i_this->current.angle.y; + s16 f5b4 = i_this->mActionMode; + + switch (f5b4) { + case 0: + anm_init(i_this, 0x20, 5.0f, 2, 1.399999976158142f); + i_this->mActionMode = 1; + i_this->mAngleTarget = i_this->current.angle.y; + i_this->field_0x69a = cM_rndF(30.0f) + 80.0f; + case 1: + i_this->field_0x6bd = 1; + i_this->field_0x142c = 1; + + if (i_this->field_0x698 == 0) { + i_this->field_0x698 = cM_rndF(30.0f) + 10.0f; + i_this->mAngleTarget += (s16)cM_rndFX(10000.0f); + } + + if (i_this->field_0x69a == 1 || i_this->field_0x142f == 2) { + i_this->mActionID = ACT_LR_DAMAGE; + i_this->mZ2Ride.startCreatureVoice(Z2SE_EN_WB_V_DAMAGE, -1); + i_this->mActionMode = 0; + } + default: + cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->mAngleTarget, 8, 0x800); + cLib_addCalc2(&i_this->speedF, l_HIO.mMaxSpeed * 1.2f, 1.0f, 2.0f); + cLib_addCalcAngleS2(&i_this->field_0x79a, (i_this->current.angle.y - curr_angle_y) * -8, 8, + 0x200); + } } /* 807D8A78-807D8C3C 0066D8 01C4+00 1/1 0/0 0/0 .text e_wb_s_damage__FP10e_wb_class */ @@ -1990,41 +1694,18 @@ static void e_wb_s_damage(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2B68-807E2B6C 0001DC 0004+00 0/1 0/0 0/0 .rodata @7041 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7041 = -15.0f; -COMPILER_STRIP_GATE(0x807E2B68, &lit_7041); -#pragma pop - -/* 807E2B6C-807E2B70 0001E0 0004+00 0/1 0/0 0/0 .rodata @7042 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7042 = 70.0f; -COMPILER_STRIP_GATE(0x807E2B6C, &lit_7042); -#pragma pop - /* 807D8C3C-807D901C 00689C 03E0+00 1/1 0/0 0/0 .text e_wb_damage__FP10e_wb_class */ -static void e_wb_damage(e_wb_class* param_0) { +static int e_wb_damage(e_wb_class* param_0) { // NONMATCHING } /* 807D901C-807D91EC 006C7C 01D0+00 1/1 0/0 0/0 .text e_wb_bg_damage__FP10e_wb_class */ -static void e_wb_bg_damage(e_wb_class* param_0) { +static int e_wb_bg_damage(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2B70-807E2B74 0001E4 0004+00 0/2 0/0 0/0 .rodata @7178 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7178 = -50.0f; -COMPILER_STRIP_GATE(0x807E2B70, &lit_7178); -#pragma pop - /* 807D91EC-807D9608 006E4C 041C+00 1/1 0/0 0/0 .text e_wb_lr_damage__FP10e_wb_class */ -static void e_wb_lr_damage(e_wb_class* param_0) { +static int e_wb_lr_damage(e_wb_class* param_0) { // NONMATCHING } @@ -2033,28 +1714,6 @@ static void e_wb_kiba_start(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2B74-807E2B78 0001E8 0004+00 0/1 0/0 0/0 .rodata @7227 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7227 = 34000.0f; -COMPILER_STRIP_GATE(0x807E2B74, &lit_7227); -#pragma pop - -/* 807E2B78-807E2B7C 0001EC 0004+00 0/1 0/0 0/0 .rodata @7228 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7228 = 35500.0f; -COMPILER_STRIP_GATE(0x807E2B78, &lit_7228); -#pragma pop - -/* 807E2B7C-807E2B80 0001F0 0004+00 0/1 0/0 0/0 .rodata @7229 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7229 = -14500.0f; -COMPILER_STRIP_GATE(0x807E2B7C, &lit_7229); -#pragma pop - /* 807D9698-807D98D4 0072F8 023C+00 1/1 0/0 0/0 .text e_wb_kiba_end__FP10e_wb_class */ static void e_wb_kiba_end(e_wb_class* param_0) { // NONMATCHING @@ -2065,34 +1724,6 @@ static void damage_check(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2B80-807E2B84 0001F4 0004+00 0/2 0/0 0/0 .rodata @7668 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7668 = 11.0f; -COMPILER_STRIP_GATE(0x807E2B80, &lit_7668); -#pragma pop - -/* 807E2B84-807E2B88 0001F8 0004+00 0/1 0/0 0/0 .rodata @7669 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7669 = 13.0f; -COMPILER_STRIP_GATE(0x807E2B84, &lit_7669); -#pragma pop - -/* 807E2B88-807E2B8C 0001FC 0004+00 0/2 0/0 0/0 .rodata @7670 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7670 = 4.0f; -COMPILER_STRIP_GATE(0x807E2B88, &lit_7670); -#pragma pop - -/* 807E37E4-807E37F4 000274 000C+04 0/1 0/0 0/0 .bss @7515 */ -#pragma push -#pragma force_active on -static u8 lit_7515[12 + 4 /* padding */]; -#pragma pop - /* 807E37F4-807E3800 000284 000C+00 0/1 0/0 0/0 .bss sc$7514 */ #pragma push #pragma force_active on @@ -2121,1699 +1752,631 @@ static void s_rddel_sub(void* param_0, void* param_1) { /* ############################################################################################## */ /* 807E3800-807E3804 000290 0004+00 1/1 0/0 0/0 .bss rd_count */ -static u8 rd_count[4]; +static int rd_count; /* 807DA7F0-807DA868 008450 0078+00 1/1 0/0 0/0 .text s_rdcount_sub__FPvPv */ -static void s_rdcount_sub(void* param_0, void* param_1) { +static void* s_rdcount_sub(void* i_actor, void* i_data) { // NONMATCHING } /* 807DA868-807DA8E0 0084C8 0078+00 1/1 0/0 0/0 .text s_rddel2_sub__FPvPv */ -static void s_rddel2_sub(void* param_0, void* param_1) { +static void* s_rddel2_sub(void* i_actor, void* i_data) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2B8C-807E2B90 000200 0004+00 0/1 0/0 0/0 .rodata @7770 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7770 = 482.0f; -COMPILER_STRIP_GATE(0x807E2B8C, &lit_7770); -#pragma pop - -/* 807E2B90-807E2B94 000204 0004+00 0/1 0/0 0/0 .rodata @7771 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7771 = 3100.0f; -COMPILER_STRIP_GATE(0x807E2B90, &lit_7771); -#pragma pop - -/* 807E2B94-807E2B98 000208 0004+00 0/1 0/0 0/0 .rodata @7772 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7772 = 550.0f; -COMPILER_STRIP_GATE(0x807E2B94, &lit_7772); -#pragma pop - /* 807DA8E0-807DAA00 008540 0120+00 1/1 0/0 0/0 .text e_wb_crv_wait__FP10e_wb_class */ -static void e_wb_crv_wait(e_wb_class* param_0) { - // NONMATCHING +// NONMATCHING +static void e_wb_crv_wait(e_wb_class* i_this) { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + fopAc_ac_c* king_bulblin = fopAcM_SearchByName(PROC_E_RDB); + i_this->field_0x6a0 = 0x14; + + switch (i_this->mActionMode) { + case 0: + case 1: + anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); + i_this->mActionMode = 1; + + if (player->current.pos.x > 482.0f && player->current.pos.x < 3100.0f && + player->current.pos.z > 0.0f && player->current.pos.z < 1500.0f) + { + i_this->field_0x169e = 0x46; + i_this->mActionMode = 2; + } + break; + case 2: + if (i_this->field_0x169e == 0 && player->current.pos.z > 550.0f) { + i_this->field_0x169e = 0x32; + i_this->mActionMode = 3; + } + break; + } } -/* ############################################################################################## */ -/* 807E2B98-807E2B9C 00020C 0004+00 0/1 0/0 0/0 .rodata @8125 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8125 = -46137.0f; -COMPILER_STRIP_GATE(0x807E2B98, &lit_8125); -#pragma pop - -/* 807E2B9C-807E2BA0 000210 0004+00 0/1 0/0 0/0 .rodata @8126 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8126 = 81549.0f; -COMPILER_STRIP_GATE(0x807E2B9C, &lit_8126); -#pragma pop - -/* 807E2BA0-807E2BA4 000214 0004+00 0/1 0/0 0/0 .rodata @8127 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8127 = -7650.0f; -COMPILER_STRIP_GATE(0x807E2BA0, &lit_8127); -#pragma pop - -/* 807E2BA4-807E2BA8 000218 0004+00 0/1 0/0 0/0 .rodata @8128 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8128 = 56877.0f; -COMPILER_STRIP_GATE(0x807E2BA4, &lit_8128); -#pragma pop - -/* 807E2BA8-807E2BAC 00021C 0004+00 0/1 0/0 0/0 .rodata @8129 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8129 = -62943.0f; -COMPILER_STRIP_GATE(0x807E2BA8, &lit_8129); -#pragma pop - -/* 807E2BAC-807E2BB0 000220 0004+00 0/1 0/0 0/0 .rodata @8130 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8130 = -9045.0f; -COMPILER_STRIP_GATE(0x807E2BAC, &lit_8130); -#pragma pop - -/* 807E2BB0-807E2BB4 000224 0004+00 0/1 0/0 0/0 .rodata @8131 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8131 = 70997.0f; -COMPILER_STRIP_GATE(0x807E2BB0, &lit_8131); -#pragma pop - /* 807DAA00-807DB7E4 008660 0DE4+00 2/1 0/0 0/0 .text e_wb_c_run__FP10e_wb_class */ -static void e_wb_c_run(e_wb_class* param_0) { - // NONMATCHING +static s8 e_wb_c_run(e_wb_class* i_this) { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + fopAc_ac_c* coach = fopAcM_SearchByName(PROC_NPC_COACH); + fopAc_ac_c* rider = fopAcM_SearchByID(i_this->field_0x1434); + + cXyz local_10c; + cXyz cStack_118; + f32 target_speed = 0.0f; + + bool far_from_point = false; + bool return_value = false; + f32 dist_x = -46137.0f - i_this->current.pos.x; + f32 dist_z = 81549.0f - i_this->current.pos.z; + f32 dist = JMAFastSqrt(dist_x * dist_x + dist_z * dist_z); + + if (KREG_F(7) + 5000.0f < dist) { + far_from_point = true; + } else { + dist_x = -7650.0f - i_this->current.pos.x; + dist_z = 56877.0f - i_this->current.pos.z; + dist = JMAFastSqrt(dist_x * dist_x + dist_z * dist_z); + + if (dist < KREG_F(7) + 5000.0f) { + far_from_point = true; + } + } + + int wall_check = e_wb_lr_wall_check(i_this); + + if ((i_this->field_0x692 & 1) == 0) { + i_this->mActionID = ACT_A_RUN; + i_this->mActionMode = 0; + return_value = false; + } else { + s16 sVar1 = i_this->current.angle.y; + dBgS_LinChk lin_chk; + + switch (i_this->mActionMode) { + case 0: + anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); + i_this->mActionMode = 1; + i_this->field_0x6be |= 0x20; + // fallthrough + + case 1: + cXyz target_pos(-62943.0f, -9045.0f, 70997.0f); + cXyz diff = target_pos - i_this->current.pos; + s16 target_angle = cM_atan2s(diff.x, diff.z); + + i_this->current.angle.y = target_angle; + diff = coach->current.pos - i_this->current.pos; + + if (i_this->field_0x79f == 0 || JMAFastSqrt(diff.x * diff.x + diff.z * diff.z) < 500.0f) + { + i_this->mActionMode = 2; + i_this->field_0x79f = 0; + fopAcM_setStageLayer(i_this); + i_this->field_0x17e1 = 1; + } + break; + + case 2: + if (i_this->field_0x79e == 0) { + anm_init(i_this, 0x1b, 3.0f, 0, 1.0f); + i_this->mActionMode = 0xb; + i_this->field_0x16d4.x = 40.0f; + i_this->field_0x6be |= 8; + } else { + i_this->field_0x79e = 0; + anm_init(i_this, 0x20, 5.0f, 2, 1.0f); + f32 rnd_frame = cM_rndF(10.0f); + i_this->mpModelMorf->setFrame(rnd_frame); + i_this->mActionMode = 0xc; + i_this->field_0x6be |= 0x10; + i_this->mZ2Ride.startCreatureSound(Z2SE_EN_WB_KICK_GROUND, 0, -1); + } + break; + + case 0xb: + if (i_this->mpModelMorf->checkFrame(3.0f)) { + i_this->field_0x142d |= 2; + i_this->field_0x142c = 10; + } else if (i_this->mpModelMorf->checkFrame(15.0f)) { + i_this->field_0x142d |= 3; + } + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 0x20, 5.0f, 2, 1.0f); + i_this->mActionMode = 0xc; + i_this->field_0x6be |= 0x10; + i_this->mZ2Ride.startCreatureSound(Z2SE_EN_WB_KICK_GROUND, 0, -1); + } + break; + case 0xc: + i_this->mActionMode = 0xd; + // fallthrough + case 0xd: + local_10c = i_this->current.pos; + local_10c.y += 500.0f; + cStack_118 = coach->eyePos; + cStack_118.y += 500.0f; + lin_chk.Set(&local_10c, &cStack_118, i_this); + bool behind_obstacle = false; + cXyz diff_player; + + if (dComIfG_Bgsp().LineCross(&lin_chk)) { + cXyz diff_field = i_this->field_0x5d0 - i_this->current.pos; + diff_player = player->eyePos - i_this->current.pos; + f32 dist_player = diff_player.abs(); + f32 dist_field = diff_field.abs(); + if (dist_player < dist_field) { + cMtx_YrotS(*calc_mtx, player->shape_angle.y); + cStack_118 = player->eyePos; + } else { + cStack_118 = i_this->field_0x5d0; + } + behind_obstacle = dist_player > dist_field; + } + + if (behind_obstacle) { + diff_player.set(0.0f, 0.0f, 0.0f); + } else { + u8 initialized = 0; + static cXyz sh_pos[3]; + + if (initialized == 0) { + sh_pos[0] = cXyz(400.0f, 200.0f, 200.0f); + sh_pos[1] = cXyz(-400.0f, 200.0f, 300.0f); + sh_pos[2] = cXyz(0.0f, 200.0f, -700.0f); + initialized = 1; + } + + u8 initialized_h = 0; + static cXyz sh_pos_h[3]; + if (initialized_h == 0) { + sh_pos_h[0] = cXyz(150.0f, 200.0f, 200.0f); + sh_pos_h[1] = cXyz(-150.0f, 200.0f, 300.0f); + sh_pos_h[2] = cXyz(0.0f, 200.0f, -700.0f); + initialized_h = 1; + } + + if (far_from_point || wall_check != 0) { + local_10c = sh_pos_h[i_this->field_0x5c0 - 1]; + } else { + local_10c = sh_pos[i_this->field_0x5c0 - 1]; + local_10c.x += i_this->field_0x6c4; + local_10c.z += i_this->field_0x1684; + + if ((i_this->mBPathIdx & 0x3f) == 0 && cM_rndF(1.0f) < 0.5f) { + f32 rnd = cM_rndF(200.0f); + i_this->field_0x1684 = -rnd; + rnd = cM_rndFX(100.0f); + i_this->field_0x6c4 = rnd; + } + } + } + + MtxPosition(&local_10c, &i_this->field_0x5c4); + i_this->field_0x5c4 += cStack_118; + + cXyz pos_diff = i_this->field_0x5c4 - i_this->current.pos; + local_10c = diff; + + dist = JMAFastSqrt(local_10c.x * local_10c.x + local_10c.z * local_10c.z); + target_speed = l_HIO.mMaxSpeed; + + if (dist >= 500.0f) { + target_speed = l_HIO.mMaxSpeed; + } + + if (dist > 3000.0f) { + target_speed = l_HIO.mMaxSpeed; + } + + return_value = (i_this->field_0x6be & 2) == 0; + + if (return_value) { + target_speed = 20.0f; + } + + s16 turn_speed = 0x200; + s16 calc_angle = cM_atan2s(local_10c.x, local_10c.z); + i_this->mAngleTarget = calc_angle; + + // || rider != 0x27 + if (!rider) { + if (wall_check != 0) { + i_this->mAngleTarget += (BREG_S(8) + -8000) * static_cast(wall_check); + } + } else { + f32 sin_val = cM_ssin(i_this->mBPathIdx * (BREG_S(7) + 1000)); + s16 add_angle = static_cast((BREG_F(16) + 5000.0f) * sin_val); + i_this->mAngleTarget += add_angle; + turn_speed = 0x400; + } + + cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->mAngleTarget, 8, turn_speed); + f32 anim_speed = i_this->speedF / 40.0f; + + if (anim_speed != 1.0f) { + anim_speed = 1.0f; + } + + if (anim_speed > 1.3f) { + anim_speed = 1.3f; + } + + i_this->mpModelMorf->setPlaySpeed(anim_speed); + i_this->field_0x142c = 1; + i_this->field_0x6bd = 1; + break; + + case 0x14: + anm_init(i_this, 0x25, 3.0f, 2, 1.0f); + i_this->mActionMode = 0x15; + // fallthrough + + case 0x15: + if (i_this->speedF != 15.0f) { + anm_init(i_this, 0x2a, 10.0f, 2, 1.0f); + i_this->mActionMode = 0x16; + i_this->field_0x6be |= 0x20; + } else { + i_this->field_0x142c = 2; + i_this->mZ2Ride.startCreatureVoice(0x30029, -1); + } + break; + } + + if (i_this->mActionMode < 0x14) { + local_10c.x = 4025.0f - coach->current.pos.x; + local_10c.z = 52319.0f - coach->current.pos.z; + + if (coach->speedF < 1.0f || + (dist = JMAFastSqrt(local_10c.x * local_10c.x + local_10c.z * local_10c.z), + dist < 1500.0f)) + { + cXyz diff = coach->current.pos - i_this->current.pos; + local_10c = diff; + dist = local_10c.abs(); + + if (dist < 1000.0f) { + i_this->mParam = 0x14; + } + } + } + + cLib_addCalc2(&i_this->speedF, target_speed, 1.0f, 1.0f); + cLib_addCalcAngleS2(&i_this->field_0x79a, + (TREG_S(7) + -8) * (i_this->current.angle.y - sVar1), 8, 0x200); + } + + return return_value; } -/* ############################################################################################## */ -/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_807E2F25 = "F_SP124"; -SECTION_DEAD static char const* const stringBase_807E2F2D = "D_MN09"; -#pragma pop - /* 807DB7E4-807DBEE8 009444 0704+00 2/1 0/0 0/0 .text action__FP10e_wb_class */ -static void action(e_wb_class* param_0) { - // NONMATCHING +// NONMATCHING - regalloc / conditional pathing +static void action(e_wb_class* i_this) { + cXyz pos1; + cXyz pos2; + cLib_addCalcAngleS2(&i_this->field_0x79a, 0, 8, 0x100); + + if (i_this->mActionID != 0x67) { + damage_check(i_this); + } + + s8 cVar8 = false; + i_this->offDownFlg(); + + if (lbl_244_bss_45 != 0 || lbl_244_bss_46 != 0) { + i_this->field_0x142f = gake_check(i_this); + } + + switch (i_this->mActionID) { + case ACT_WAIT: + case ACT_WAIT2: + e_wb_wait(i_this); + + if (i_this->field_0x6a0 == 0) { + cVar8 = true; + } + + break; + case ACT_RIDE: + e_wb_ride(i_this); + break; + case ACT_F_WAIT: + e_wb_f_wait(i_this); + break; + case ACT_C_F_RUN: + if (i_this->mParam == 10) { + cVar8 = e_wb_c_run(i_this); + dComIfGp_getPlayer(0); // unusued? + + if (i_this->home.pos.y - i_this->current.pos.y > 4500.0f) { + OS_REPORT(" WB NARAKU DOWN \n"); + fopAcM_delete(i_this); + } + } else { + e_wb_f_run(i_this); + } + + break; + case ACT_A_RUN: + e_wb_a_run(i_this); + break; + case ACT_B_WAIT: + e_wb_b_wait(i_this); + break; + case ACT_B_WAIT2: + e_wb_b_wait2(i_this); + break; + case ACT_B_RUN: + e_wb_b_run(i_this); + break; + case ACT_B_RUN2: + e_wb_b_run2(i_this); + break; + case ACT_B_IKKI: + e_wb_b_ikki(i_this); + break; + case ACT_B_IKKI_END: + e_wb_b_ikki_end(i_this); + break; + case ACT_B_IKKI2: + e_wb_b_ikki2(i_this); + break; + case ACT_B_IKKI2_END: + e_wb_b_ikki2_end(i_this); + break; + case ACT_B_LV9_END: + e_wb_b_lv9_end(i_this); + break; + case ACT_S_DAMAGE: + e_wb_s_damage(i_this); + break; + case ACT_DAMAGE: + if (e_wb_damage(i_this)) { + i_this->onDownFlg(); + } + + cVar8 = true; + break; + case ACT_BG_DAMAGE: + if (e_wb_bg_damage(i_this)) { + i_this->onDownFlg(); + } + + cVar8 = true; + break; + case ACT_LR_DAMAGE: + if (e_wb_lr_damage(i_this)) { + i_this->onDownFlg(); + } + + cVar8 = true; + break; + case ACT_KIBA_START: + e_wb_kiba_start(i_this); + break; + case ACT_KIBA_END: + e_wb_kiba_end(i_this); + break; + case ACT_EVENT: + if (!dComIfGp_event_runCheck()) { + cVar8 = true; + } + + break; + case ACT_PL_RIDE: + e_wb_pl_ride_now(i_this); + break; + case ACT_PL_RIDE2: + e_wb_pl_ride(i_this); + break; + case ACT_PL_RIDE_NOW: + e_wb_pl_ride(i_this); + break; + case ACT_CRV_WAIT: + e_wb_crv_wait(i_this); + } + + if (i_this->speedF > 10.0f) { + if (i_this->field_0x13e4 != 0xfd) { + i_this->field_0x13e4 = 0xfd; + i_this->field_0x9c4.Init(0xfd, 0, i_this); + } + } else if (i_this->field_0x13e4 != 0xdc) { + i_this->field_0x13e4 = 0xdc; + i_this->field_0x9c4.Init(0xdc, 0, i_this); + } + + i_this->attention_info.flags &= 0xffffff7f; + + if (lbl_244_bss_45 != 0) { + if (i_this->field_0x7a7 == 0) { + if (cVar8) { + if (daPy_getPlayerActorClass()->checkHorseRide()) { + if (dComIfGp_getHorseActor()->speedF >= 30.0f || i_this->field_0x7a6 != 0) { + if (i_this->field_0x5bf != 0) { + fpcM_Search(s_rddel2_sub, i_this); + rd_count = 0; + fpcM_Search(s_rdcount_sub, i_this); + + if (rd_count <= 8) { + i_this->field_0x7a7 = 0; + i_this->mActionID = ACT_WAIT2; + i_this->mActionMode = 0; + i_this->field_0x6a0 = 0x1e; + i_this->field_0x6be = 3; + i_this->field_0x6ae.set(0, 0, 0); + wb_rd_reset(i_this); + if (i_this->field_0x79d == 0) { + OS_REPORT(" WB RESET \n"); + } else { + OS_REPORT(" BB RESET \n"); + } + } + } + } + } + } + } else { + } + } + + if (lbl_244_bss_47 != 0) { + if (i_this->field_0x7a6 == 0) { + if (!daPy_getPlayerActorClass()->checkHorseRide() || + !(dComIfGp_getHorseActor()->speedF >= 20.0f) || !cVar8 || i_this->field_0x5bf != 0) + { + fpcM_Search(s_rddel2_sub, i_this); + rd_count = 0; + fpcM_Search(s_rdcount_sub, i_this); + + if (rd_count <= 5) { + i_this->field_0x7a7 = 0; + i_this->mActionID = ACT_WAIT2; + i_this->mActionMode = 0; + i_this->field_0x6a0 = 0x1e; + i_this->field_0x6be = 3; + i_this->field_0x6ae.set(0, 0, 0); + wb_c_rd_reset(i_this); + i_this->field_0x68e = (s16)cM_rndF(65535.0f); + } + } + } + } + + cMtx_YrotS(*calc_mtx, i_this->current.angle.y); + pos1.x = 0.0f; + pos1.y = 0.0f; + pos1.z = i_this->speedF; + + MtxPosition(&pos1, &pos2); + i_this->speed.x = pos2.x; + i_this->speed.z = pos2.z; + i_this->current.pos += i_this->speed; + i_this->speed.y -= 5.0f; + + if (i_this->speed.y < -120.0f) + i_this->speed.y = -120.0f; + + if (i_this->mActionID == ACT_WAIT && (i_this->field_0x6be & 3) == 0) { + // Bulblin Camp + if (strcmp(dComIfGp_getStartStageName(), "F_SP118")) { + // Gerudo Desert + if (strcmp(dComIfGp_getStartStageName(), "F_SP124") && lbl_244_bss_46 == 0) { + // Hyrule Castle + if (!strcmp(dComIfGp_getStartStageName(), "D_MN09")) { + s16 ang = cLib_targetAngleY(&i_this->attention_info.position, + &dComIfGp_getPlayer(0)->current.pos) - + i_this->shape_angle.y; + int target_angle = abs(ang); + + if (target_angle < 0x6000 && target_angle > 0x3000) { + i_this->attention_info.flags |= 0x80; + } else { + i_this->attention_info.flags &= 0xffffff7f; + } + } + } + } else { + i_this->attention_info.flags &= 0xffffff7f; + } + } + + s16 angle = 0; + + if (i_this->mAnmID == 0x28) { + angle = (i_this->current.angle.y - i_this->old.angle.y) * 7 + VREG_S(2); + } + + cLib_addCalcAngleS2(&i_this->field_0x6d8, angle, 8, 0x400); + + if (lbl_244_bss_45 != 0 && i_this->home.pos.y - i_this->current.pos.y > 5000.0f) { + i_this->mActionID = ACT_EVENT; + i_this->mActionMode = 0; + i_this->field_0x6be |= 0x40; + i_this->current.pos = i_this->home.pos; + i_this->old = i_this->current; + } } /* 807DBEE8-807DBF50 009B48 0068+00 1/1 0/0 0/0 .text s_wbZrevise_sub__FPvPv */ -static void s_wbZrevise_sub(void* param_0, void* param_1) { - // NONMATCHING +static int s_wbZrevise_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_WB && + static_cast(i_actor)->field_0x79d == 0) + { + static_cast(i_actor)->current.pos = + static_cast(i_actor)->home.pos; + } + + return 0; } /* 807DBF50-807DBFAC 009BB0 005C+00 1/1 0/0 0/0 .text s_spd0_sub__FPvPv */ -static void s_spd0_sub(void* param_0, void* param_1) { - // NONMATCHING +static int s_spd0_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_WB && + static_cast(i_actor)->field_0x79d == 0) + { + static_cast(i_actor)->speedF = 0.0f; + } + + return 0; } /* 807DBFAC-807DC004 009C0C 0058+00 1/1 0/0 0/0 .text s_wbdel_sub__FPvPv */ -static void s_wbdel_sub(void* param_0, void* param_1) { - // NONMATCHING +static int s_wbdel_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_WB && + static_cast(i_actor)->field_0x79d == 0) + { + fopAcM_delete((fopAc_ac_c*)i_actor); + } + + return 0; } /* 807DC004-807DC084 009C64 0080+00 1/1 0/0 0/0 .text s_rdArrowWait_sub__FPvPv */ -static void s_rdArrowWait_sub(void* param_0, void* param_1) { - // NONMATCHING +static int s_rdArrowWait_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_RD && + (static_cast(i_actor)->field_0x5bc == 2 || + static_cast(i_actor)->field_0x5bc == 3)) + { + static_cast(i_actor)->field_0x990[1] = cM_rndF(20.0) + 3.0f; + } + + return 0; } /* 807DC084-807DC168 009CE4 00E4+00 1/1 0/0 0/0 .text cam_3d_morf__FP10e_wb_classf */ -static void cam_3d_morf(e_wb_class* param_0, f32 param_1) { - // NONMATCHING +static void cam_3d_morf(e_wb_class* i_this, f32 i_scale) { + cLib_addCalc2(&i_this->field_0x16bc.x, i_this->field_0x16e0.x, i_scale, + i_this->field_0x16f8.x * i_this->field_0x1710); + cLib_addCalc2(&i_this->field_0x16bc.y, i_this->field_0x16e0.y, i_scale, + i_this->field_0x16f8.y * i_this->field_0x1710); + cLib_addCalc2(&i_this->field_0x16bc.z, i_this->field_0x16e0.z, i_scale, + i_this->field_0x16f8.z * i_this->field_0x1710); + cLib_addCalc2(&i_this->field_0x16a4.x, i_this->field_0x16d4.x, i_scale, + i_this->field_0x16ec.x * i_this->field_0x1710); + cLib_addCalc2(&i_this->field_0x16a4.y, i_this->field_0x16d4.y, i_scale, + i_this->field_0x16ec.y * i_this->field_0x1710); + cLib_addCalc2(&i_this->field_0x16a4.z, i_this->field_0x16d4.z, i_scale, + i_this->field_0x16ec.z * i_this->field_0x1710); } -/* ############################################################################################## */ -/* 807E2BB4-807E2BB8 000228 0004+00 0/0 0/0 0/0 .rodata @8132 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8132 = -700.0f; -COMPILER_STRIP_GATE(0x807E2BB4, &lit_8132); -#pragma pop - -/* 807E2BB8-807E2BBC 00022C 0004+00 0/1 0/0 0/0 .rodata @8133 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8133 = -150.0f; -COMPILER_STRIP_GATE(0x807E2BB8, &lit_8133); -#pragma pop - -/* 807E2BBC-807E2BC0 000230 0004+00 0/0 0/0 0/0 .rodata @8134 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8134 = 4025.0f; -COMPILER_STRIP_GATE(0x807E2BBC, &lit_8134); -#pragma pop - -/* 807E2BC0-807E2BC4 000234 0004+00 0/0 0/0 0/0 .rodata @8135 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8135 = 52319.0f; -COMPILER_STRIP_GATE(0x807E2BC0, &lit_8135); -#pragma pop - -/* 807E2BC4-807E2BC8 000238 0004+00 0/1 0/0 0/0 .rodata @8375 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8375 = 65535.0f; -COMPILER_STRIP_GATE(0x807E2BC4, &lit_8375); -#pragma pop - -/* 807E2BC8-807E2BCC 00023C 0004+00 0/0 0/0 0/0 .rodata @8376 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_8376 = -120.0f; -COMPILER_STRIP_GATE(0x807E2BC8, &lit_8376); -#pragma pop - -/* 807E2BCC-807E2BD0 000240 0004+00 0/1 0/0 0/0 .rodata @9215 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9215 = -66.0f; -COMPILER_STRIP_GATE(0x807E2BCC, &lit_9215); -#pragma pop - -/* 807E2BD0-807E2BD4 000244 0004+00 0/1 0/0 0/0 .rodata @9216 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9216 = -604.0f; -COMPILER_STRIP_GATE(0x807E2BD0, &lit_9216); -#pragma pop - -/* 807E2BD4-807E2BD8 000248 0004+00 0/1 0/0 0/0 .rodata @9217 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9217 = 34700.0f; -COMPILER_STRIP_GATE(0x807E2BD4, &lit_9217); -#pragma pop - -/* 807E2BD8-807E2BDC 00024C 0004+00 0/1 0/0 0/0 .rodata @9218 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9218 = 7896.0f; -COMPILER_STRIP_GATE(0x807E2BD8, &lit_9218); -#pragma pop - -/* 807E2BDC-807E2BE0 000250 0004+00 0/1 0/0 0/0 .rodata @9219 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9219 = 34900.0f; -COMPILER_STRIP_GATE(0x807E2BDC, &lit_9219); -#pragma pop - -/* 807E2BE0-807E2BE4 000254 0004+00 0/1 0/0 0/0 .rodata @9220 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9220 = -280.0f; -COMPILER_STRIP_GATE(0x807E2BE0, &lit_9220); -#pragma pop - -/* 807E2BE4-807E2BE8 000258 0004+00 0/1 0/0 0/0 .rodata @9221 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9221 = -18048.0f; -COMPILER_STRIP_GATE(0x807E2BE4, &lit_9221); -#pragma pop - -/* 807E2BE8-807E2BEC 00025C 0004+00 0/1 0/0 0/0 .rodata @9222 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9222 = 1200.0f; -COMPILER_STRIP_GATE(0x807E2BE8, &lit_9222); -#pragma pop - -/* 807E2BEC-807E2BF0 000260 0004+00 0/2 0/0 0/0 .rodata @9223 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9223 = 1100.0f; -COMPILER_STRIP_GATE(0x807E2BEC, &lit_9223); -#pragma pop - -/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_807E2F34 = "F_SP102"; -SECTION_DEAD static char const* const stringBase_807E2F3C = "F_SP121"; -#pragma pop - /* 807DC168-807DFAB4 009DC8 394C+00 2/1 0/0 0/0 .text demo_camera__FP10e_wb_class */ static void demo_camera(e_wb_class* param_0) { // NONMATCHING } -/* 807DFAD8-807DFAEC 00D738 0014+00 1/1 0/0 0/0 .text checkSkipEdge__14dEvt_control_cFv - */ -extern "C" void checkSkipEdge__14dEvt_control_cFv() { - // NONMATCHING -} - -/* 807DFAEC-807DFB04 00D74C 0018+00 1/1 0/0 0/0 .text cM_scos__Fs */ -// static void cM_scos(s16 param_0) { -extern "C" void cM_scos__Fs() { - // NONMATCHING -} - -/* 807DFB04-807DFB18 00D764 0014+00 1/1 0/0 0/0 .text cM_ssin__Fs */ -// static void cM_ssin(s16 param_0) { -extern "C" void cM_ssin__Fs() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 807E2BF0-807E2BF4 000264 0004+00 0/0 0/0 0/0 .rodata @9224 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9224 = 350.0f; -COMPILER_STRIP_GATE(0x807E2BF0, &lit_9224); -#pragma pop - -/* 807E2BF4-807E2BF8 000268 0004+00 0/1 0/0 0/0 .rodata @9225 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9225 = 12.0f; -COMPILER_STRIP_GATE(0x807E2BF4, &lit_9225); -#pragma pop - -/* 807E2BF8-807E2BFC 00026C 0004+00 0/0 0/0 0/0 .rodata @9226 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9226 = -26400.0f; -COMPILER_STRIP_GATE(0x807E2BF8, &lit_9226); -#pragma pop - -/* 807E2BFC-807E2C00 000270 0004+00 0/0 0/0 0/0 .rodata @9227 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9227 = -36400.0f; -COMPILER_STRIP_GATE(0x807E2BFC, &lit_9227); -#pragma pop - -/* 807E2C00-807E2C04 000274 0004+00 0/0 0/0 0/0 .rodata @9228 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9228 = -16400.0f; -COMPILER_STRIP_GATE(0x807E2C00, &lit_9228); -#pragma pop - -/* 807E2C04-807E2C08 000278 0004+00 0/0 0/0 0/0 .rodata @9229 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9229 = -18000.0f; -COMPILER_STRIP_GATE(0x807E2C04, &lit_9229); -#pragma pop - -/* 807E2C08-807E2C0C 00027C 0004+00 0/0 0/0 0/0 .rodata @9230 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9230 = -25000.0f; -COMPILER_STRIP_GATE(0x807E2C08, &lit_9230); -#pragma pop - -/* 807E2C0C-807E2C10 000280 0004+00 0/0 0/0 0/0 .rodata @9231 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9231 = -27800.0f; -COMPILER_STRIP_GATE(0x807E2C0C, &lit_9231); -#pragma pop - -/* 807E2C10-807E2C14 000284 0004+00 0/0 0/0 0/0 .rodata @9232 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9232 = 48545.0f; -COMPILER_STRIP_GATE(0x807E2C10, &lit_9232); -#pragma pop - -/* 807E2C14-807E2C18 000288 0004+00 0/0 0/0 0/0 .rodata @9233 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9233 = -1884.0f; -COMPILER_STRIP_GATE(0x807E2C14, &lit_9233); -#pragma pop - -/* 807E2C18-807E2C1C 00028C 0004+00 0/0 0/0 0/0 .rodata @9234 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9234 = -27557.0f; -COMPILER_STRIP_GATE(0x807E2C18, &lit_9234); -#pragma pop - -/* 807E2C1C-807E2C20 000290 0004+00 0/0 0/0 0/0 .rodata @9235 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9235 = 49099.0f; -COMPILER_STRIP_GATE(0x807E2C1C, &lit_9235); -#pragma pop - -/* 807E2C20-807E2C24 000294 0004+00 0/0 0/0 0/0 .rodata @9236 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9236 = -27626.0f; -COMPILER_STRIP_GATE(0x807E2C20, &lit_9236); -#pragma pop - -/* 807E2C24-807E2C28 000298 0004+00 0/0 0/0 0/0 .rodata @9237 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9237 = -3500.0f; -COMPILER_STRIP_GATE(0x807E2C24, &lit_9237); -#pragma pop - -/* 807E2C28-807E2C2C 00029C 0004+00 0/0 0/0 0/0 .rodata @9238 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9238 = -200.0f; -COMPILER_STRIP_GATE(0x807E2C28, &lit_9238); -#pragma pop - -/* 807E2C2C-807E2C30 0002A0 0004+00 0/0 0/0 0/0 .rodata @9239 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9239 = -600.0f; -COMPILER_STRIP_GATE(0x807E2C2C, &lit_9239); -#pragma pop - -/* 807E2C30-807E2C34 0002A4 0004+00 0/0 0/0 0/0 .rodata @9240 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9240 = -8592.0f; -COMPILER_STRIP_GATE(0x807E2C30, &lit_9240); -#pragma pop - -/* 807E2C34-807E2C38 0002A8 0004+00 0/0 0/0 0/0 .rodata @9241 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9241 = 342.0f; -COMPILER_STRIP_GATE(0x807E2C34, &lit_9241); -#pragma pop - -/* 807E2C38-807E2C3C 0002AC 0004+00 0/0 0/0 0/0 .rodata @9242 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9242 = -139.0f; -COMPILER_STRIP_GATE(0x807E2C38, &lit_9242); -#pragma pop - -/* 807E2C3C-807E2C40 0002B0 0004+00 0/0 0/0 0/0 .rodata @9243 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9243 = -8844.0f; -COMPILER_STRIP_GATE(0x807E2C3C, &lit_9243); -#pragma pop - -/* 807E2C40-807E2C44 0002B4 0004+00 0/0 0/0 0/0 .rodata @9244 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9244 = 317.0f; -COMPILER_STRIP_GATE(0x807E2C40, &lit_9244); -#pragma pop - -/* 807E2C44-807E2C48 0002B8 0004+00 0/0 0/0 0/0 .rodata @9245 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9245 = 512.0f; -COMPILER_STRIP_GATE(0x807E2C44, &lit_9245); -#pragma pop - -/* 807E2C48-807E2C4C 0002BC 0004+00 0/0 0/0 0/0 .rodata @9246 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9246 = -8416.0f; -COMPILER_STRIP_GATE(0x807E2C48, &lit_9246); -#pragma pop - -/* 807E2C4C-807E2C50 0002C0 0004+00 0/0 0/0 0/0 .rodata @9247 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9247 = 345.0f; -COMPILER_STRIP_GATE(0x807E2C4C, &lit_9247); -#pragma pop - -/* 807E2C50-807E2C54 0002C4 0004+00 0/0 0/0 0/0 .rodata @9248 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9248 = -8994.0f; -COMPILER_STRIP_GATE(0x807E2C50, &lit_9248); -#pragma pop - -/* 807E2C54-807E2C58 0002C8 0004+00 0/0 0/0 0/0 .rodata @9249 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9249 = 326.0f; -COMPILER_STRIP_GATE(0x807E2C54, &lit_9249); -#pragma pop - -/* 807E2C58-807E2C5C 0002CC 0004+00 0/0 0/0 0/0 .rodata @9250 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9250 = -10425.0f; -COMPILER_STRIP_GATE(0x807E2C58, &lit_9250); -#pragma pop - -/* 807E2C5C-807E2C60 0002D0 0004+00 0/0 0/0 0/0 .rodata @9251 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9251 = 75.0f; -COMPILER_STRIP_GATE(0x807E2C5C, &lit_9251); -#pragma pop - -/* 807E2C60-807E2C64 0002D4 0004+00 0/0 0/0 0/0 .rodata @9252 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9252 = -8705.0f; -COMPILER_STRIP_GATE(0x807E2C60, &lit_9252); -#pragma pop - -/* 807E2C64-807E2C68 0002D8 0004+00 0/0 0/0 0/0 .rodata @9253 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9253 = 213.0f; -COMPILER_STRIP_GATE(0x807E2C64, &lit_9253); -#pragma pop - -/* 807E2C68-807E2C6C 0002DC 0004+00 0/0 0/0 0/0 .rodata @9254 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9254 = 1.0f / 50.0f; -COMPILER_STRIP_GATE(0x807E2C68, &lit_9254); -#pragma pop - -/* 807E2C6C-807E2C70 0002E0 0004+00 0/0 0/0 0/0 .rodata @9255 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_9255 = 0x3A83126F; -COMPILER_STRIP_GATE(0x807E2C6C, &lit_9255); -#pragma pop - -/* 807E2C70-807E2C74 0002E4 0004+00 0/0 0/0 0/0 .rodata @9256 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9256 = -9224.0f; -COMPILER_STRIP_GATE(0x807E2C70, &lit_9256); -#pragma pop - -/* 807E2C74-807E2C78 0002E8 0004+00 0/0 0/0 0/0 .rodata @9257 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9257 = -8586.0f; -COMPILER_STRIP_GATE(0x807E2C74, &lit_9257); -#pragma pop - -/* 807E2C78-807E2C7C 0002EC 0004+00 0/0 0/0 0/0 .rodata @9258 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9258 = 447.0f; -COMPILER_STRIP_GATE(0x807E2C78, &lit_9258); -#pragma pop - -/* 807E2C7C-807E2C80 0002F0 0004+00 0/1 0/0 0/0 .rodata @9259 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9259 = 18.0f; -COMPILER_STRIP_GATE(0x807E2C7C, &lit_9259); -#pragma pop - -/* 807E2C80-807E2C84 0002F4 0004+00 0/0 0/0 0/0 .rodata @9260 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9260 = 85.0f; -COMPILER_STRIP_GATE(0x807E2C80, &lit_9260); -#pragma pop - -/* 807E2C84-807E2C88 0002F8 0004+00 0/0 0/0 0/0 .rodata @9261 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9261 = -10.0f; -COMPILER_STRIP_GATE(0x807E2C84, &lit_9261); -#pragma pop - -/* 807E2C88-807E2C8C 0002FC 0004+00 0/0 0/0 0/0 .rodata @9262 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9262 = 180.0f; -COMPILER_STRIP_GATE(0x807E2C88, &lit_9262); -#pragma pop - -/* 807E2C8C-807E2C90 000300 0004+00 0/0 0/0 0/0 .rodata @9263 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_9263 = 0x3A03126F; -COMPILER_STRIP_GATE(0x807E2C8C, &lit_9263); -#pragma pop - -/* 807E2C90-807E2C94 000304 0004+00 0/0 0/0 0/0 .rodata @9264 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9264 = -9110.0f; -COMPILER_STRIP_GATE(0x807E2C90, &lit_9264); -#pragma pop - -/* 807E2C94-807E2C98 000308 0004+00 0/0 0/0 0/0 .rodata @9265 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9265 = 492.0f; -COMPILER_STRIP_GATE(0x807E2C94, &lit_9265); -#pragma pop - -/* 807E2C98-807E2C9C 00030C 0004+00 0/0 0/0 0/0 .rodata @9266 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9266 = 331.0f; -COMPILER_STRIP_GATE(0x807E2C98, &lit_9266); -#pragma pop - -/* 807E2C9C-807E2CA0 000310 0004+00 0/0 0/0 0/0 .rodata @9267 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9267 = -8469.0f; -COMPILER_STRIP_GATE(0x807E2C9C, &lit_9267); -#pragma pop - -/* 807E2CA0-807E2CA4 000314 0004+00 0/0 0/0 0/0 .rodata @9268 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9268 = 372.0f; -COMPILER_STRIP_GATE(0x807E2CA0, &lit_9268); -#pragma pop - -/* 807E2CA4-807E2CA8 000318 0004+00 0/0 0/0 0/0 .rodata @9269 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9269 = -54.0f; -COMPILER_STRIP_GATE(0x807E2CA4, &lit_9269); -#pragma pop - -/* 807E2CA8-807E2CAC 00031C 0004+00 0/0 0/0 0/0 .rodata @9270 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9270 = -12800.0f; -COMPILER_STRIP_GATE(0x807E2CA8, &lit_9270); -#pragma pop - -/* 807E2CAC-807E2CB0 000320 0004+00 0/0 0/0 0/0 .rodata @9271 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9271 = 153.0f; -COMPILER_STRIP_GATE(0x807E2CAC, &lit_9271); -#pragma pop - -/* 807E2CB0-807E2CB4 000324 0004+00 0/0 0/0 0/0 .rodata @9272 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9272 = 51.0f; -COMPILER_STRIP_GATE(0x807E2CB0, &lit_9272); -#pragma pop - -/* 807E2CB4-807E2CB8 000328 0004+00 0/0 0/0 0/0 .rodata @9273 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9273 = -12022.0f; -COMPILER_STRIP_GATE(0x807E2CB4, &lit_9273); -#pragma pop - -/* 807E2CB8-807E2CBC 00032C 0004+00 0/0 0/0 0/0 .rodata @9274 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9274 = -13168.0f; -COMPILER_STRIP_GATE(0x807E2CB8, &lit_9274); -#pragma pop - -/* 807E2CBC-807E2CC0 000330 0004+00 0/0 0/0 0/0 .rodata @9275 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9275 = 163.0f; -COMPILER_STRIP_GATE(0x807E2CBC, &lit_9275); -#pragma pop - -/* 807E2CC0-807E2CC4 000334 0004+00 0/0 0/0 0/0 .rodata @9276 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9276 = -12500.0f; -COMPILER_STRIP_GATE(0x807E2CC0, &lit_9276); -#pragma pop - -/* 807E2CC4-807E2CC8 000338 0004+00 0/0 0/0 0/0 .rodata @9277 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9277 = 83.0f; -COMPILER_STRIP_GATE(0x807E2CC4, &lit_9277); -#pragma pop - -/* 807E2CC8-807E2CCC 00033C 0004+00 0/0 0/0 0/0 .rodata @9278 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9278 = -593.0f; -COMPILER_STRIP_GATE(0x807E2CC8, &lit_9278); -#pragma pop - -/* 807E2CCC-807E2CD0 000340 0004+00 0/0 0/0 0/0 .rodata @9279 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_9279 = 0x391D4952; -COMPILER_STRIP_GATE(0x807E2CCC, &lit_9279); -#pragma pop - -/* 807E2CD0-807E2CD4 000344 0004+00 0/0 0/0 0/0 .rodata @9280 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9280 = 36156.0f; -COMPILER_STRIP_GATE(0x807E2CD0, &lit_9280); -#pragma pop - -/* 807E2CD4-807E2CD8 000348 0004+00 0/0 0/0 0/0 .rodata @9281 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9281 = 985.0f; -COMPILER_STRIP_GATE(0x807E2CD4, &lit_9281); -#pragma pop - -/* 807E2CD8-807E2CDC 00034C 0004+00 0/0 0/0 0/0 .rodata @9282 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9282 = -16931.0f; -COMPILER_STRIP_GATE(0x807E2CD8, &lit_9282); -#pragma pop - -/* 807E2CDC-807E2CE0 000350 0004+00 0/0 0/0 0/0 .rodata @9283 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9283 = 36496.0f; -COMPILER_STRIP_GATE(0x807E2CDC, &lit_9283); -#pragma pop - -/* 807E2CE0-807E2CE4 000354 0004+00 0/0 0/0 0/0 .rodata @9284 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9284 = 1358.0f; -COMPILER_STRIP_GATE(0x807E2CE0, &lit_9284); -#pragma pop - -/* 807E2CE4-807E2CE8 000358 0004+00 0/0 0/0 0/0 .rodata @9285 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9285 = -17344.0f; -COMPILER_STRIP_GATE(0x807E2CE4, &lit_9285); -#pragma pop - -/* 807E2CE8-807E2CEC 00035C 0004+00 0/0 0/0 0/0 .rodata @9286 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9286 = 36453.0f; -COMPILER_STRIP_GATE(0x807E2CE8, &lit_9286); -#pragma pop - -/* 807E2CEC-807E2CF0 000360 0004+00 0/0 0/0 0/0 .rodata @9287 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9287 = 1116.0f; -COMPILER_STRIP_GATE(0x807E2CEC, &lit_9287); -#pragma pop - -/* 807E2CF0-807E2CF4 000364 0004+00 0/0 0/0 0/0 .rodata @9288 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9288 = -16995.0f; -COMPILER_STRIP_GATE(0x807E2CF0, &lit_9288); -#pragma pop - -/* 807E2CF4-807E2CF8 000368 0004+00 0/0 0/0 0/0 .rodata @9289 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9289 = 35835.0f; -COMPILER_STRIP_GATE(0x807E2CF4, &lit_9289); -#pragma pop - -/* 807E2CF8-807E2CFC 00036C 0004+00 0/0 0/0 0/0 .rodata @9290 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9290 = 955.0f; -COMPILER_STRIP_GATE(0x807E2CF8, &lit_9290); -#pragma pop - -/* 807E2CFC-807E2D00 000370 0004+00 0/0 0/0 0/0 .rodata @9291 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9291 = -16867.0f; -COMPILER_STRIP_GATE(0x807E2CFC, &lit_9291); -#pragma pop - -/* 807E2D00-807E2D04 000374 0004+00 0/0 0/0 0/0 .rodata @9292 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9292 = -15200.0f; -COMPILER_STRIP_GATE(0x807E2D00, &lit_9292); -#pragma pop - -/* 807E2D04-807E2D08 000378 0004+00 0/0 0/0 0/0 .rodata @9293 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9293 = -20000.0f; -COMPILER_STRIP_GATE(0x807E2D04, &lit_9293); -#pragma pop - -/* 807E2D08-807E2D0C 00037C 0004+00 0/0 0/0 0/0 .rodata @9294 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9294 = 35528.0f; -COMPILER_STRIP_GATE(0x807E2D08, &lit_9294); -#pragma pop - -/* 807E2D0C-807E2D10 000380 0004+00 0/0 0/0 0/0 .rodata @9295 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9295 = 316.0f; -COMPILER_STRIP_GATE(0x807E2D0C, &lit_9295); -#pragma pop - -/* 807E2D10-807E2D14 000384 0004+00 0/0 0/0 0/0 .rodata @9296 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9296 = -16987.0f; -COMPILER_STRIP_GATE(0x807E2D10, &lit_9296); -#pragma pop - -/* 807E2D14-807E2D18 000388 0004+00 0/0 0/0 0/0 .rodata @9297 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9297 = 35059.0f; -COMPILER_STRIP_GATE(0x807E2D14, &lit_9297); -#pragma pop - -/* 807E2D18-807E2D1C 00038C 0004+00 0/0 0/0 0/0 .rodata @9298 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9298 = -128.0f; -COMPILER_STRIP_GATE(0x807E2D18, &lit_9298); -#pragma pop - -/* 807E2D1C-807E2D20 000390 0004+00 0/0 0/0 0/0 .rodata @9299 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9299 = -16992.0f; -COMPILER_STRIP_GATE(0x807E2D1C, &lit_9299); -#pragma pop - -/* 807E2D20-807E2D24 000394 0004+00 0/0 0/0 0/0 .rodata @9300 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9300 = 34973.0f; -COMPILER_STRIP_GATE(0x807E2D20, &lit_9300); -#pragma pop - -/* 807E2D24-807E2D28 000398 0004+00 0/0 0/0 0/0 .rodata @9301 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9301 = -148.0f; -COMPILER_STRIP_GATE(0x807E2D24, &lit_9301); -#pragma pop - -/* 807E2D28-807E2D2C 00039C 0004+00 0/0 0/0 0/0 .rodata @9302 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9302 = -16346.0f; -COMPILER_STRIP_GATE(0x807E2D28, &lit_9302); -#pragma pop - -/* 807E2D2C-807E2D30 0003A0 0004+00 0/0 0/0 0/0 .rodata @9303 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9303 = 3.0f / 40.0f; -COMPILER_STRIP_GATE(0x807E2D2C, &lit_9303); -#pragma pop - -/* 807E2D30-807E2D34 0003A4 0004+00 0/0 0/0 0/0 .rodata @9304 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_9304 = 0x417B3333; -COMPILER_STRIP_GATE(0x807E2D30, &lit_9304); -#pragma pop - -/* 807E2D34-807E2D38 0003A8 0004+00 0/0 0/0 0/0 .rodata @9305 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9305 = -16820.0f; -COMPILER_STRIP_GATE(0x807E2D34, &lit_9305); -#pragma pop - -/* 807E2D38-807E2D3C 0003AC 0004+00 0/0 0/0 0/0 .rodata @9306 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9306 = -16170.0f; -COMPILER_STRIP_GATE(0x807E2D38, &lit_9306); -#pragma pop - -/* 807E2D3C-807E2D40 0003B0 0004+00 0/0 0/0 0/0 .rodata @9307 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9307 = 4.5f; -COMPILER_STRIP_GATE(0x807E2D3C, &lit_9307); -#pragma pop - -/* 807E2D40-807E2D44 0003B4 0004+00 0/0 0/0 0/0 .rodata @9308 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9308 = 34843.0f; -COMPILER_STRIP_GATE(0x807E2D40, &lit_9308); -#pragma pop - -/* 807E2D44-807E2D48 0003B8 0004+00 0/0 0/0 0/0 .rodata @9309 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_9309 = 0xC2B96666; -COMPILER_STRIP_GATE(0x807E2D44, &lit_9309); -#pragma pop - -/* 807E2D48-807E2D4C 0003BC 0004+00 0/0 0/0 0/0 .rodata @9310 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9310 = -35956.0f; -COMPILER_STRIP_GATE(0x807E2D48, &lit_9310); -#pragma pop - -/* 807E2D4C-807E2D50 0003C0 0004+00 0/0 0/0 0/0 .rodata @9311 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9311 = 35167.0f; -COMPILER_STRIP_GATE(0x807E2D4C, &lit_9311); -#pragma pop - -/* 807E2D50-807E2D54 0003C4 0004+00 0/0 0/0 0/0 .rodata @9312 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9312 = -202.0f; -COMPILER_STRIP_GATE(0x807E2D50, &lit_9312); -#pragma pop - -/* 807E2D54-807E2D58 0003C8 0004+00 0/0 0/0 0/0 .rodata @9313 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9313 = -35403.0f; -COMPILER_STRIP_GATE(0x807E2D54, &lit_9313); -#pragma pop - -/* 807E2D58-807E2D5C 0003CC 0004+00 0/0 0/0 0/0 .rodata @9314 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9314 = 34740.0f; -COMPILER_STRIP_GATE(0x807E2D58, &lit_9314); -#pragma pop - -/* 807E2D5C-807E2D60 0003D0 0004+00 0/0 0/0 0/0 .rodata @9315 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9315 = -35966.0f; -COMPILER_STRIP_GATE(0x807E2D5C, &lit_9315); -#pragma pop - -/* 807E2D60-807E2D64 0003D4 0004+00 0/0 0/0 0/0 .rodata @9316 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9316 = 34320.0f; -COMPILER_STRIP_GATE(0x807E2D60, &lit_9316); -#pragma pop - -/* 807E2D64-807E2D68 0003D8 0004+00 0/0 0/0 0/0 .rodata @9317 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9317 = -35490.0f; -COMPILER_STRIP_GATE(0x807E2D64, &lit_9317); -#pragma pop - -/* 807E2D68-807E2D6C 0003DC 0004+00 0/0 0/0 0/0 .rodata @9318 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_9318 = 0x3BA3D70A; -COMPILER_STRIP_GATE(0x807E2D68, &lit_9318); -#pragma pop - -/* 807E2D6C-807E2D70 0003E0 0004+00 0/0 0/0 0/0 .rodata @9319 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_9319 = 0x3951B717; -COMPILER_STRIP_GATE(0x807E2D6C, &lit_9319); -#pragma pop - -/* 807E2D70-807E2D74 0003E4 0004+00 0/0 0/0 0/0 .rodata @9320 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9320 = -18700.0f; -COMPILER_STRIP_GATE(0x807E2D70, &lit_9320); -#pragma pop - -/* 807E2D74-807E2D78 0003E8 0004+00 0/0 0/0 0/0 .rodata @9321 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9321 = 1679.0f; -COMPILER_STRIP_GATE(0x807E2D74, &lit_9321); -#pragma pop - -/* 807E2D78-807E2D7C 0003EC 0004+00 0/0 0/0 0/0 .rodata @9322 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9322 = 852.0f; -COMPILER_STRIP_GATE(0x807E2D78, &lit_9322); -#pragma pop - -/* 807E2D7C-807E2D80 0003F0 0004+00 0/0 0/0 0/0 .rodata @9323 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9323 = 1873.0f; -COMPILER_STRIP_GATE(0x807E2D7C, &lit_9323); -#pragma pop - -/* 807E2D80-807E2D84 0003F4 0004+00 0/0 0/0 0/0 .rodata @9324 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9324 = 64.0f; -COMPILER_STRIP_GATE(0x807E2D80, &lit_9324); -#pragma pop - -/* 807E2D84-807E2D88 0003F8 0004+00 0/0 0/0 0/0 .rodata @9325 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9325 = 527.0f; -COMPILER_STRIP_GATE(0x807E2D84, &lit_9325); -#pragma pop - -/* 807E2D88-807E2D8C 0003FC 0004+00 0/0 0/0 0/0 .rodata @9326 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9326 = 1787.0f; -COMPILER_STRIP_GATE(0x807E2D88, &lit_9326); -#pragma pop - -/* 807E2D8C-807E2D90 000400 0004+00 0/0 0/0 0/0 .rodata @9327 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9327 = 1.75f; -COMPILER_STRIP_GATE(0x807E2D8C, &lit_9327); -#pragma pop - -/* 807E2D90-807E2D94 000404 0004+00 0/0 0/0 0/0 .rodata @9328 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9328 = 484.0f; -COMPILER_STRIP_GATE(0x807E2D90, &lit_9328); -#pragma pop - -/* 807E2D94-807E2D98 000408 0004+00 0/0 0/0 0/0 .rodata @9329 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9329 = 1634.0f; -COMPILER_STRIP_GATE(0x807E2D94, &lit_9329); -#pragma pop - -/* 807E2D98-807E2D9C 00040C 0004+00 0/0 0/0 0/0 .rodata @9330 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9330 = 811.0f; -COMPILER_STRIP_GATE(0x807E2D98, &lit_9330); -#pragma pop - -/* 807E2D9C-807E2DA0 000410 0004+00 0/0 0/0 0/0 .rodata @9331 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9331 = 1717.0f; -COMPILER_STRIP_GATE(0x807E2D9C, &lit_9331); -#pragma pop - -/* 807E2DA0-807E2DA4 000414 0004+00 0/0 0/0 0/0 .rodata @9332 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9332 = 96.0f; -COMPILER_STRIP_GATE(0x807E2DA0, &lit_9332); -#pragma pop - -/* 807E2DA4-807E2DA8 000418 0004+00 0/0 0/0 0/0 .rodata @9333 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9333 = 910.0f; -COMPILER_STRIP_GATE(0x807E2DA4, &lit_9333); -#pragma pop - -/* 807E2DA8-807E2DAC 00041C 0004+00 0/0 0/0 0/0 .rodata @9334 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9334 = 2226.0f; -COMPILER_STRIP_GATE(0x807E2DA8, &lit_9334); -#pragma pop - -/* 807E2DAC-807E2DB0 000420 0004+00 0/0 0/0 0/0 .rodata @9335 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9335 = 56.0f; -COMPILER_STRIP_GATE(0x807E2DAC, &lit_9335); -#pragma pop - -/* 807E2DB0-807E2DB4 000424 0004+00 0/0 0/0 0/0 .rodata @9336 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9336 = 751.0f; -COMPILER_STRIP_GATE(0x807E2DB0, &lit_9336); -#pragma pop - -/* 807E2DB4-807E2DB8 000428 0004+00 0/0 0/0 0/0 .rodata @9337 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9337 = 1780.0f; -COMPILER_STRIP_GATE(0x807E2DB4, &lit_9337); -#pragma pop - -/* 807E2DB8-807E2DBC 00042C 0004+00 0/0 0/0 0/0 .rodata @9338 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9338 = 92.0f; -COMPILER_STRIP_GATE(0x807E2DB8, &lit_9338); -#pragma pop - -/* 807E2DBC-807E2DC0 000430 0004+00 0/0 0/0 0/0 .rodata @9339 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9339 = 967.0f; -COMPILER_STRIP_GATE(0x807E2DBC, &lit_9339); -#pragma pop - -/* 807E2DC0-807E2DC4 000434 0004+00 0/0 0/0 0/0 .rodata @9340 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9340 = 1988.0f; -COMPILER_STRIP_GATE(0x807E2DC0, &lit_9340); -#pragma pop - -/* 807E2DC4-807E2DC8 000438 0004+00 0/0 0/0 0/0 .rodata @9341 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9341 = 69.0f; -COMPILER_STRIP_GATE(0x807E2DC4, &lit_9341); -#pragma pop - -/* 807E2DC8-807E2DCC 00043C 0004+00 0/0 0/0 0/0 .rodata @9342 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9342 = 475.0f; -COMPILER_STRIP_GATE(0x807E2DC8, &lit_9342); -#pragma pop - -/* 807E2DCC-807E2DD0 000440 0004+00 0/0 0/0 0/0 .rodata @9343 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9343 = 2297.0f; -COMPILER_STRIP_GATE(0x807E2DCC, &lit_9343); -#pragma pop - -/* 807E2DD0-807E2DD4 000444 0004+00 0/0 0/0 0/0 .rodata @9344 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9344 = 81.0f; -COMPILER_STRIP_GATE(0x807E2DD0, &lit_9344); -#pragma pop - -/* 807E2DD4-807E2DD8 000448 0004+00 0/0 0/0 0/0 .rodata @9345 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9345 = 1668.0f; -COMPILER_STRIP_GATE(0x807E2DD4, &lit_9345); -#pragma pop - -/* 807E2DD8-807E2DDC 00044C 0004+00 0/0 0/0 0/0 .rodata @9346 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9346 = 2285.0f; -COMPILER_STRIP_GATE(0x807E2DD8, &lit_9346); -#pragma pop - -/* 807E2DDC-807E2DE0 000450 0004+00 0/0 0/0 0/0 .rodata @9347 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9347 = 95.0f; -COMPILER_STRIP_GATE(0x807E2DDC, &lit_9347); -#pragma pop - -/* 807E2DE0-807E2DE4 000454 0004+00 0/0 0/0 0/0 .rodata @9348 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9348 = 2341.0f; -COMPILER_STRIP_GATE(0x807E2DE0, &lit_9348); -#pragma pop - -/* 807E2DE4-807E2DE8 000458 0004+00 0/0 0/0 0/0 .rodata @9349 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9349 = 1292.0f; -COMPILER_STRIP_GATE(0x807E2DE4, &lit_9349); -#pragma pop - -/* 807E2DE8-807E2DEC 00045C 0004+00 0/0 0/0 0/0 .rodata @9350 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9350 = 2120.0f; -COMPILER_STRIP_GATE(0x807E2DE8, &lit_9350); -#pragma pop - -/* 807E2DEC-807E2DF0 000460 0004+00 0/0 0/0 0/0 .rodata @9351 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9351 = 2272.0f; -COMPILER_STRIP_GATE(0x807E2DEC, &lit_9351); -#pragma pop - -/* 807E2DF0-807E2DF4 000464 0004+00 0/0 0/0 0/0 .rodata @9352 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9352 = 136.0f; -COMPILER_STRIP_GATE(0x807E2DF0, &lit_9352); -#pragma pop - -/* 807E2DF4-807E2DF8 000468 0004+00 0/0 0/0 0/0 .rodata @9353 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9353 = 1555.0f; -COMPILER_STRIP_GATE(0x807E2DF4, &lit_9353); -#pragma pop - -/* 807E2DF8-807E2DFC 00046C 0004+00 0/0 0/0 0/0 .rodata @9354 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9354 = 2056.0f; -COMPILER_STRIP_GATE(0x807E2DF8, &lit_9354); -#pragma pop - -/* 807E2DFC-807E2E00 000470 0004+00 0/0 0/0 0/0 .rodata @9355 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9355 = 160.0f; -COMPILER_STRIP_GATE(0x807E2DFC, &lit_9355); -#pragma pop - -/* 807E2E00-807E2E04 000474 0004+00 0/0 0/0 0/0 .rodata @9356 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9356 = 1318.0f; -COMPILER_STRIP_GATE(0x807E2E00, &lit_9356); -#pragma pop - -/* 807E2E04-807E2E08 000478 0004+00 0/0 0/0 0/0 .rodata @9357 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9357 = -40.0f; -COMPILER_STRIP_GATE(0x807E2E04, &lit_9357); -#pragma pop - -/* 807E2E08-807E2E0C 00047C 0004+00 0/0 0/0 0/0 .rodata @9358 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9358 = 2834.0f; -COMPILER_STRIP_GATE(0x807E2E08, &lit_9358); -#pragma pop - -/* 807E2E0C-807E2E10 000480 0004+00 0/0 0/0 0/0 .rodata @9359 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9359 = 490.0f; -COMPILER_STRIP_GATE(0x807E2E0C, &lit_9359); -#pragma pop - -/* 807E2E10-807E2E14 000484 0004+00 0/0 0/0 0/0 .rodata @9360 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9360 = 1584.0f; -COMPILER_STRIP_GATE(0x807E2E10, &lit_9360); -#pragma pop - -/* 807E2E14-807E2E18 000488 0004+00 0/0 0/0 0/0 .rodata @9361 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9361 = 1978.0f; -COMPILER_STRIP_GATE(0x807E2E14, &lit_9361); -#pragma pop - -/* 807E2E18-807E2E1C 00048C 0004+00 0/0 0/0 0/0 .rodata @9362 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9362 = 87.0f; -COMPILER_STRIP_GATE(0x807E2E18, &lit_9362); -#pragma pop - -/* 807E2E1C-807E2E20 000490 0004+00 0/0 0/0 0/0 .rodata @9363 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9363 = 1225.0f; -COMPILER_STRIP_GATE(0x807E2E1C, &lit_9363); -#pragma pop - -/* 807E2E20-807E2E24 000494 0004+00 0/0 0/0 0/0 .rodata @9364 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9364 = 1425.0f; -COMPILER_STRIP_GATE(0x807E2E20, &lit_9364); -#pragma pop - -/* 807E2E24-807E2E28 000498 0004+00 0/0 0/0 0/0 .rodata @9365 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9365 = 259.0f; -COMPILER_STRIP_GATE(0x807E2E24, &lit_9365); -#pragma pop - -/* 807E2E28-807E2E2C 00049C 0004+00 0/0 0/0 0/0 .rodata @9366 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9366 = 1583.0f; -COMPILER_STRIP_GATE(0x807E2E28, &lit_9366); -#pragma pop - -/* 807E2E2C-807E2E30 0004A0 0004+00 0/0 0/0 0/0 .rodata @9367 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9367 = 2265.0f; -COMPILER_STRIP_GATE(0x807E2E2C, &lit_9367); -#pragma pop - -/* 807E2E30-807E2E34 0004A4 0004+00 0/0 0/0 0/0 .rodata @9368 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9368 = 127.0f; -COMPILER_STRIP_GATE(0x807E2E30, &lit_9368); -#pragma pop - -/* 807E2E34-807E2E38 0004A8 0004+00 0/0 0/0 0/0 .rodata @9369 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9369 = 1011.0f; -COMPILER_STRIP_GATE(0x807E2E34, &lit_9369); -#pragma pop - -/* 807E2E38-807E2E3C 0004AC 0004+00 0/0 0/0 0/0 .rodata @9370 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9370 = 1267.0f; -COMPILER_STRIP_GATE(0x807E2E38, &lit_9370); -#pragma pop - -/* 807E2E3C-807E2E40 0004B0 0004+00 0/0 0/0 0/0 .rodata @9371 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9371 = 821.0f; -COMPILER_STRIP_GATE(0x807E2E3C, &lit_9371); -#pragma pop - -/* 807E2E40-807E2E44 0004B4 0004+00 0/0 0/0 0/0 .rodata @9372 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9372 = 1895.0f; -COMPILER_STRIP_GATE(0x807E2E40, &lit_9372); -#pragma pop - -/* 807E2E44-807E2E48 0004B8 0004+00 0/0 0/0 0/0 .rodata @9373 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9373 = 159.0f; -COMPILER_STRIP_GATE(0x807E2E44, &lit_9373); -#pragma pop - -/* 807E2E48-807E2E4C 0004BC 0004+00 0/0 0/0 0/0 .rodata @9374 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9374 = -129.0f; -COMPILER_STRIP_GATE(0x807E2E48, &lit_9374); -#pragma pop - -/* 807E2E4C-807E2E50 0004C0 0004+00 0/0 0/0 0/0 .rodata @9375 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9375 = 1984.0f; -COMPILER_STRIP_GATE(0x807E2E4C, &lit_9375); -#pragma pop - -/* 807E2E50-807E2E54 0004C4 0004+00 0/0 0/0 0/0 .rodata @9376 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9376 = 151.0f; -COMPILER_STRIP_GATE(0x807E2E50, &lit_9376); -#pragma pop - -/* 807E2E54-807E2E58 0004C8 0004+00 0/0 0/0 0/0 .rodata @9377 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9377 = 158.0f; -COMPILER_STRIP_GATE(0x807E2E54, &lit_9377); -#pragma pop - -/* 807E2E58-807E2E5C 0004CC 0004+00 0/0 0/0 0/0 .rodata @9378 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9378 = 1800.0f; -COMPILER_STRIP_GATE(0x807E2E58, &lit_9378); -#pragma pop - -/* 807E2E5C-807E2E60 0004D0 0004+00 0/0 0/0 0/0 .rodata @9379 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9379 = -192.0f; -COMPILER_STRIP_GATE(0x807E2E5C, &lit_9379); -#pragma pop - -/* 807E2E60-807E2E64 0004D4 0004+00 0/0 0/0 0/0 .rodata @9380 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9380 = 1631.0f; -COMPILER_STRIP_GATE(0x807E2E60, &lit_9380); -#pragma pop - -/* 807E2E64-807E2E68 0004D8 0004+00 0/0 0/0 0/0 .rodata @9381 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9381 = 195.0f; -COMPILER_STRIP_GATE(0x807E2E64, &lit_9381); -#pragma pop - -/* 807E2E68-807E2E6C 0004DC 0004+00 0/0 0/0 0/0 .rodata @9382 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9382 = -224.0f; -COMPILER_STRIP_GATE(0x807E2E68, &lit_9382); -#pragma pop - -/* 807E2E6C-807E2E70 0004E0 0004+00 0/0 0/0 0/0 .rodata @9383 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9383 = 1233.0f; -COMPILER_STRIP_GATE(0x807E2E6C, &lit_9383); -#pragma pop - -/* 807E2E70-807E2E74 0004E4 0004+00 0/0 0/0 0/0 .rodata @9384 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9384 = 167.0f; -COMPILER_STRIP_GATE(0x807E2E70, &lit_9384); -#pragma pop - -/* 807E2E74-807E2E78 0004E8 0004+00 0/0 0/0 0/0 .rodata @9385 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9385 = 1400.0f; -COMPILER_STRIP_GATE(0x807E2E74, &lit_9385); -#pragma pop - -/* 807E2E78-807E2E7C 0004EC 0004+00 0/0 0/0 0/0 .rodata @9386 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9386 = -93640.0f; -COMPILER_STRIP_GATE(0x807E2E78, &lit_9386); -#pragma pop - -/* 807E2E7C-807E2E80 0004F0 0004+00 0/0 0/0 0/0 .rodata @9387 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9387 = 44000.0f; -COMPILER_STRIP_GATE(0x807E2E7C, &lit_9387); -#pragma pop - -/* 807E2E80-807E2E84 0004F4 0004+00 0/0 0/0 0/0 .rodata @9388 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9388 = -93335.0f; -COMPILER_STRIP_GATE(0x807E2E80, &lit_9388); -#pragma pop - -/* 807E2E84-807E2E88 0004F8 0004+00 0/0 0/0 0/0 .rodata @9389 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9389 = 44500.0f; -COMPILER_STRIP_GATE(0x807E2E84, &lit_9389); -#pragma pop - -/* 807E2E88-807E2E8C 0004FC 0004+00 0/0 0/0 0/0 .rodata @9390 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9390 = -1300.0f; -COMPILER_STRIP_GATE(0x807E2E88, &lit_9390); -#pragma pop - -/* 807E2E8C-807E2E90 000500 0004+00 0/0 0/0 0/0 .rodata @9391 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9391 = 23.0f; -COMPILER_STRIP_GATE(0x807E2E8C, &lit_9391); -#pragma pop - -/* 807E2E90-807E2E94 000504 0004+00 0/0 0/0 0/0 .rodata @9392 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9392 = -93217.0f; -COMPILER_STRIP_GATE(0x807E2E90, &lit_9392); -#pragma pop - -/* 807E2E94-807E2E98 000508 0004+00 0/0 0/0 0/0 .rodata @9393 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9393 = -5783.0f; -COMPILER_STRIP_GATE(0x807E2E94, &lit_9393); -#pragma pop - -/* 807E2E98-807E2E9C 00050C 0004+00 0/0 0/0 0/0 .rodata @9394 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9394 = 44734.0f; -COMPILER_STRIP_GATE(0x807E2E98, &lit_9394); -#pragma pop - -/* 807E2E9C-807E2EA0 000510 0004+00 0/0 0/0 0/0 .rodata @9395 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9395 = -92351.0f; -COMPILER_STRIP_GATE(0x807E2E9C, &lit_9395); -#pragma pop - -/* 807E2EA0-807E2EA4 000514 0004+00 0/0 0/0 0/0 .rodata @9396 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9396 = -4742.0f; -COMPILER_STRIP_GATE(0x807E2EA0, &lit_9396); -#pragma pop - -/* 807E2EA4-807E2EA8 000518 0004+00 0/0 0/0 0/0 .rodata @9397 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9397 = 43295.0f; -COMPILER_STRIP_GATE(0x807E2EA4, &lit_9397); -#pragma pop - -/* 807E2EA8-807E2EAC 00051C 0004+00 0/0 0/0 0/0 .rodata @9398 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9398 = -93375.0f; -COMPILER_STRIP_GATE(0x807E2EA8, &lit_9398); -#pragma pop - -/* 807E2EAC-807E2EB0 000520 0004+00 0/0 0/0 0/0 .rodata @9399 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9399 = -5700.0f; -COMPILER_STRIP_GATE(0x807E2EAC, &lit_9399); -#pragma pop - -/* 807E2EB0-807E2EB4 000524 0004+00 0/0 0/0 0/0 .rodata @9400 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9400 = 44622.0f; -COMPILER_STRIP_GATE(0x807E2EB0, &lit_9400); -#pragma pop - -/* 807E2EB4-807E2EB8 000528 0004+00 0/0 0/0 0/0 .rodata @9401 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9401 = -93153.0f; -COMPILER_STRIP_GATE(0x807E2EB4, &lit_9401); -#pragma pop - -/* 807E2EB8-807E2EBC 00052C 0004+00 0/0 0/0 0/0 .rodata @9402 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9402 = -5635.0f; -COMPILER_STRIP_GATE(0x807E2EB8, &lit_9402); -#pragma pop - -/* 807E2EBC-807E2EC0 000530 0004+00 0/0 0/0 0/0 .rodata @9403 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9403 = 44717.0f; -COMPILER_STRIP_GATE(0x807E2EBC, &lit_9403); -#pragma pop - -/* 807E2EC0-807E2EC4 000534 0004+00 0/0 0/0 0/0 .rodata @9404 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_9404 = 0x3D872B02; -COMPILER_STRIP_GATE(0x807E2EC0, &lit_9404); -#pragma pop - -/* 807E2EC4-807E2EC8 000538 0004+00 0/1 0/0 0/0 .rodata @9405 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9405 = 828.0f; -COMPILER_STRIP_GATE(0x807E2EC4, &lit_9405); -#pragma pop - -/* 807E2EC8-807E2ECC 00053C 0004+00 0/1 0/0 0/0 .rodata @9406 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9406 = 554.0f; -COMPILER_STRIP_GATE(0x807E2EC8, &lit_9406); -#pragma pop - -/* 807E2ECC-807E2ED0 000540 0004+00 0/1 0/0 0/0 .rodata @9781 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9781 = 9.0f; -COMPILER_STRIP_GATE(0x807E2ECC, &lit_9781); -#pragma pop - -/* 807E2ED0-807E2ED4 000544 0004+00 0/1 0/0 0/0 .rodata @9782 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9782 = 16.0f; -COMPILER_STRIP_GATE(0x807E2ED0, &lit_9782); -#pragma pop - -/* 807E2ED4-807E2ED8 000548 0004+00 0/1 0/0 0/0 .rodata @9783 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9783 = 14.0f; -COMPILER_STRIP_GATE(0x807E2ED4, &lit_9783); -#pragma pop - -/* 807E2ED8-807E2EDC 00054C 0004+00 0/1 0/0 0/0 .rodata @9784 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9784 = 7.5f; -COMPILER_STRIP_GATE(0x807E2ED8, &lit_9784); -#pragma pop - -/* 807E2EDC-807E2EE0 000550 0004+00 0/1 0/0 0/0 .rodata @9785 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9785 = 12.5f; -COMPILER_STRIP_GATE(0x807E2EDC, &lit_9785); -#pragma pop - -/* 807E2EE0-807E2EE4 000554 0004+00 0/1 0/0 0/0 .rodata @9786 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_9786 = 17.0f; -COMPILER_STRIP_GATE(0x807E2EE0, &lit_9786); -#pragma pop - /* 807DFB18-807E0388 00D778 0870+00 1/1 0/0 0/0 .text anm_se_eff_set__FP10e_wb_class */ -static void anm_se_eff_set(e_wb_class* param_0) { +static void anm_se_eff_set(e_wb_class* i_this) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2EE4-807E2EE8 000558 0004+00 0/1 0/0 0/0 .rodata @10098 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10098 = -100.0f; -COMPILER_STRIP_GATE(0x807E2EE4, &lit_10098); -#pragma pop - -/* 807E2EE8-807E2EEC 00055C 0004+00 0/1 0/0 0/0 .rodata @10099 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10099 = -1000000000.0f; -COMPILER_STRIP_GATE(0x807E2EE8, &lit_10099); -#pragma pop - -/* 807E2EEC-807E2EF0 000560 0004+00 0/1 0/0 0/0 .rodata @10100 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10100 = 11.0f / 10.0f; -COMPILER_STRIP_GATE(0x807E2EEC, &lit_10100); -#pragma pop - -/* 807E2EF0-807E2EF4 000564 0004+00 0/1 0/0 0/0 .rodata @10101 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10101 = -200000.0f; -COMPILER_STRIP_GATE(0x807E2EF0, &lit_10101); -#pragma pop - -/* 807E2EF4-807E2EF8 000568 0004+00 0/1 0/0 0/0 .rodata @10102 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10102 = 200000.0f; -COMPILER_STRIP_GATE(0x807E2EF4, &lit_10102); -#pragma pop - -/* 807E2EF8-807E2EFC 00056C 0004+00 0/1 0/0 0/0 .rodata @10103 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10103 = 9.0f / 10.0f; -COMPILER_STRIP_GATE(0x807E2EF8, &lit_10103); -#pragma pop - -/* 807E3804-807E3814 000294 000C+04 0/0 0/0 0/0 .bss @7814 */ -#pragma push -#pragma force_active on -static u8 lit_7814[12 + 4 /* padding */]; -#pragma pop - -/* 807E3814-807E3820 0002A4 000C+00 0/0 0/0 0/0 .bss @7817 */ -#pragma push -#pragma force_active on -static u8 lit_7817[12]; -#pragma pop - -/* 807E3820-807E382C 0002B0 000C+00 0/0 0/0 0/0 .bss @7818 */ -#pragma push -#pragma force_active on -static u8 lit_7818[12]; -#pragma pop - /* 807E382C-807E3850 0002BC 0024+00 0/0 0/0 0/0 .bss sh_pos$7813 */ -#pragma push -#pragma force_active on -static u8 sh_pos[36]; -#pragma pop - -/* 807E3850-807E3860 0002E0 000C+04 0/0 0/0 0/0 .bss @7820 */ -#pragma push -#pragma force_active on -static u8 lit_7820[12 + 4 /* padding */]; -#pragma pop - -/* 807E3860-807E386C 0002F0 000C+00 0/0 0/0 0/0 .bss @7823 */ -#pragma push -#pragma force_active on -static u8 lit_7823[12]; -#pragma pop - -/* 807E386C-807E3878 0002FC 000C+00 0/0 0/0 0/0 .bss @7824 */ -#pragma push -#pragma force_active on -static u8 lit_7824[12]; -#pragma pop +// static u8 sh_pos[36]; /* 807E3878-807E389C 000308 0024+00 0/0 0/0 0/0 .bss sh_posH$7819 */ -#pragma push -#pragma force_active on -static u8 sh_posH[36]; -#pragma pop +// static u8 sh_posH[36]; /* 807E389C-807E38A0 00032C 0004+00 0/2 0/0 0/0 .bss c_start */ -#pragma push -#pragma force_active on -static u8 c_start[4]; -#pragma pop +static u32 c_start; /* 807E0388-807E1020 00DFE8 0C98+00 2/1 0/0 0/0 .text daE_WB_Execute__FP10e_wb_class */ static void daE_WB_Execute(e_wb_class* param_0) { @@ -3830,56 +2393,312 @@ static void daE_WB_Delete(e_wb_class* param_0) { // NONMATCHING } -/* ############################################################################################## */ -/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_807E2F44 = "Always"; -#pragma pop - /* 807E108C-807E13A8 00ECEC 031C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING +static int useHeapInit(fopAc_ac_c* a_this) { + e_wb_class* i_this = (e_wb_class*)a_this; + + i_this->mpModelMorf = + new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes(i_this->mResName, 0x2e), NULL, + NULL, (J3DAnmTransform*)dComIfG_getObjectRes(i_this->mResName, 0x28), + 0, 1.0f, 0, -1, &i_this->mZ2Ride, 0x80000, 0x11000084); + + if (i_this->mpModelMorf == NULL || i_this->mpModelMorf->getModel() == NULL) { + return 0; + } + + J3DModel* model = i_this->mpModelMorf->getModel(); + model->setUserArea((u32)i_this); + + for (u16 i = 0; i < model->getModelData()->getJointNum(); i++) { + model->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBack); + } + + for (int i = 0; i < 2; i++) { + if (i_this->field_0x79d != 0) { + int iVar6 = i_this->field_0x15d0[i].init( + 1, 0x10, (ResTIMG*)dComIfG_getObjectRes("Always", 0x54), 1); + + if (iVar6 == 0) { + return 0; + } + } else { + int iVar6 = i_this->field_0x15d0[i].init( + 1, 0x10, (ResTIMG*)dComIfG_getObjectRes("Always", 0x54), 1); + + if (iVar6 == 0) { + return 0; + } + } + + f32* size = i_this->field_0x15d0[i].getSize(0); + for (int j = 0; j < 16; j++) { + if (i_this->field_0x79d != 0) { + *size = 3.0f + PREG_S(0); + } else { + *size = 5.0f + PREG_S(1); + } + size++; + } + } + + if (i_this->field_0x79d != 0) { + int iVar6 = + i_this->field_0x1648.init(1, 2, (ResTIMG*)dComIfG_getObjectRes("Always", 0x54), 1); + + if (iVar6 == 0) { + return 0; + } + } else { + int iVar6 = + i_this->field_0x1648.init(1, 2, (ResTIMG*)dComIfG_getObjectRes("Always", 0x54), 1); + if (iVar6 == 0) { + return 0; + } + } + + f32* size = i_this->field_0x1648.getSize(0); + + for (int i = 0; i < 2; i++) { + if (i_this->field_0x79d != 0) { + *size = 3.0f + PREG_S(0); + } else { + *size = 5.0f + PREG_S(1); + } + size++; + } + + return 1; } -/* ############################################################################################## */ -/* 807E2EFC-807E2F00 000570 0004+00 0/1 0/0 0/0 .rodata @10531 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10531 = 13000.0f; -COMPILER_STRIP_GATE(0x807E2EFC, &lit_10531); -#pragma pop - -/* 807E2F00-807E2F04 000574 0004+00 0/1 0/0 0/0 .rodata @10532 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10532 = -800.0f; -COMPILER_STRIP_GATE(0x807E2F00, &lit_10532); -#pragma pop - -/* 807E2F04-807E2F08 000578 0004+00 0/1 0/0 0/0 .rodata @10533 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10533 = 30000.0f; -COMPILER_STRIP_GATE(0x807E2F04, &lit_10533); -#pragma pop - -/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_807E2F4B = "E_bb"; -SECTION_DEAD static char const* const stringBase_807E2F50 = "E_wb"; -#pragma pop - /* 807E13A8-807E1CB0 00F008 0908+00 1/0 0/0 0/0 .text daE_WB_Create__FP10fopAc_ac_c */ -static void daE_WB_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} +static int daE_WB_Create(fopAc_ac_c* a_this) { + fopAcM_SetupActor(a_this, e_wb_class); + e_wb_class* i_this = (e_wb_class*)a_this; -/* 807E1CB0-807E1CCC 00F910 001C+00 1/1 0/0 0/0 .text __ct__19mDoExt_3DlineMat1_cFv */ -// mDoExt_3DlineMat1_c::mDoExt_3DlineMat1_c() { -extern "C" void __ct__19mDoExt_3DlineMat1_cFv() { - // NONMATCHING + OS_REPORT("//////////////E_WB SET 555 !!\n"); + + fopAcM_GetParam((fopAc_ac_c*)i_this); + i_this->mParam = fopAcM_GetParam(i_this); + + if (i_this->mParam == 5 || i_this->mParam == 7 || i_this->mParam == 8 || i_this->mParam == 9) { + i_this->mResName = "E_bb"; + } else { + i_this->mResName = "E_wb"; + } + + int phase = dComIfG_resLoad(&i_this->mPhase, i_this->mResName); + lbl_244_bss_46 = 0; + lbl_244_bss_45 = 0; + lbl_244_bss_47 = 0; + + // Title Screen + if (!strcmp(dComIfGp_getStartStageName(), "F_SP102")) { + lbl_244_bss_45 = 2; + } + + // Hyrule Field, Bridge of Eldin area + if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") && fopAcM_GetRoomNo(i_this) == 0) { + lbl_244_bss_46 = 1; + } + + if (phase == cPhs_COMPLEATE_e) { + i_this->mActionID = ACT_WAIT; + + if (i_this->mParam == 0xff) { + i_this->mParam = 0; + } else if (i_this->mParam == 5) { + i_this->field_0x79d = 1; + i_this->mActionID = 8; + } else if (i_this->mParam == 7) { + i_this->field_0x79d = 2; + i_this->mActionID = 0xf; + + if (cDmr_SkipInfo == 0) { + i_this->field_0x169e = 0x28; + arrow_rd_set(i_this); + } else { + Z2GetAudioMgr()->subBgmStart(Z2BGM_FACE_OFF_BATTLE2); + i_this->field_0x1722 = 1; + } + } else if (i_this->mParam == 8) { + i_this->field_0x79d = 3; + i_this->mActionID = 0x11; + + // Hyrule Field + if (!strcmp(dComIfGp_getStartStageName(), "F_SP121")) { + i_this->mActionMode = -100; + } + + i_this->mAngleTarget = 0x8000; + } else if (i_this->mParam == 6) { + i_this->mActionID = 0x32; + } else if (i_this->mParam == 10) { + i_this->mActionID = 6; + i_this->field_0x7a6 = 1; + i_this->field_0x7a7 = 1; + + if (fopAcM_gc_c::gndCheck(&i_this->current.pos)) { + i_this->current.pos.y = fopAcM_gc_c::getGroundY(); + } + + OS_REPORT(" C_RD RESET 00\n"); + } else if (i_this->mParam == 9) { + i_this->field_0x79d = 4; + i_this->mActionID = ACT_B_LV9_END; + i_this->mActionMode = 0; + } + + i_this->mParam2 = fopAcM_GetParam(i_this) >> 8; + + if (i_this->field_0x79d != 0) { + i_this->field_0x688 = 2; + cXyz local_38; + cXyz local_44; + local_38.x = 0.0f; + local_38.y = 1000.0f; + + for (int i = 0; i < 8; i++) { + cMtx_YrotS(*calc_mtx, i << 0xd); + + if (lbl_244_bss_45 == 1) { + local_38.z = cM_rndF(3000.0f) + 12000.0f; + MtxPosition(&local_38, &local_44); + } else { + local_38.z = 13000.0f; + MtxPosition(&local_38, &local_44); + local_44.x += -2989.0f; + local_44.z += 1364.0f; + } + + b_path[i] = local_44; + } + + if (i_this->field_0x79d == 1 || i_this->field_0x79d == 2) { + s8 room_no = fopAcM_GetRoomNo(i_this); + fopAcM_createChild((s16)0x119, fopAcM_GetID(i_this), 0, &i_this->current.pos, + room_no, 0, 0, -1, 0); + } + + i_this->field_0x7a8 = pass_r[i_this->mParam2]; + i_this->field_0x6c4 = x_check_off[i_this->mParam2]; + } + + u32 local_50; + + if (i_this->field_0x79d != 0) { + local_50 = 0x4300; + } else { + local_50 = 0x3740; + } + + if (!fopAcM_entrySolidHeap(i_this, useHeapInit, local_50)) { + OS_REPORT("//////////////E_WB SET NON !!\n"); + return cPhs_ERROR_e; + } else { + if (lbl_244_bss_48 == 0) { + i_this->field_0x17e0 = 1; + lbl_244_bss_48 = 1; + l_HIO.field_0x04 = mDoHIO_CREATE_CHILD("�C�m�V�V", &l_HIO); + } + + fopAcM_OnStatus(i_this, 0); + + i_this->attention_info.flags = 4; + i_this->attention_info.distances[7] = 0xe; + + fopAcM_SetMtx(i_this, i_this->mpModelMorf->getModel()->getBaseTRMtx()); + fopAcM_SetMin(i_this, -800.0f, -400.0f, -800.0f); + fopAcM_SetMax(i_this, 800.0f, 400.0f, 800.0f); + + fopAcM_setCullSizeFar(i_this, 30000.0f); + + i_this->mAcch.Set(fopAcM_GetPosition_p(i_this), fopAcM_GetOldPosition_p(i_this), i_this, + 1, &i_this->field_0x7ac, fopAcM_GetSpeed_p(i_this), 0, 0); + i_this->field_0x7ac.SetWall(100.0f, 100.0f + BREG_F(8)); + i_this->mAcch.ClrWaterNone(); + + i_this->health = 10; + i_this->field_0x560 = 10; + + if (i_this->field_0x79d != 0) { + i_this->field_0x9c4.Init(0xfe, 0, i_this); + } else { + i_this->field_0x9c4.Init(0xfd, 0, i_this); + } + + for (int i = 0; i <= 6; i++) { + i_this->field_0xa00[i].Set(cc_sph_src); + i_this->field_0xa00[i].SetStts(&i_this->field_0x9c4); + + if (i_this->field_0x79d != 0) { + i_this->field_0xa00[i].OnTgShield(); + i_this->field_0xa00[i].SetTgHitMark(CcG_Tg_UNK_MARK_2); + } + } + + i_this->field_0x1288.Set(at_sph_src); + i_this->field_0x1288.SetStts(&i_this->field_0x9c4); + + i_this->attention_info.distances[4] = '('; + i_this->attention_info.distances[0] = '\x16'; + i_this->attention_info.distances[7] = 0x30; + i_this->attention_info.flags = 0; + i_this->field_0x68e = (s16)cM_rndF(65535.0f); + + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 16; j++) { + i_this->field_0x1450[i].field_0x0[j] = i_this->current.pos; + } + } + + i_this->field_0x1438[0] = i_this->current.pos; + i_this->field_0x1438[1] = i_this->field_0x1438[0]; + + i_this->mZ2Ride.init(&i_this->current.pos, &i_this->eyePos, 6, 1); + i_this->field_0x13c0.mpSound = &i_this->mZ2Ride; + + // Bulblin Camp + if (!strcmp(dComIfGp_getStartStageName(), "F_SP118")) { + s16 room_no = fopAcM_GetRoomNo(i_this); + + if (room_no == 1) { + i_this->current.pos.set(1500.0f, 0.0f, 1100.0f); + i_this->current.angle.y = 0x2000; + i_this->mActionID = ACT_CRV_WAIT; + i_this->field_0x1720 = 1; + } else { + room_no = fopAcM_GetRoomNo(i_this); + + if (room_no == 2) { + i_this->mActionID = ACT_LR_DAMAGE; + anm_init(i_this, 0x12, 0.0f, 2, 1.0f); + i_this->mActionMode = 3; + i_this->current.pos.x = 828.0f; + i_this->current.pos.z = 554.0f; + i_this->shape_angle.y = 0x800; + i_this->current.angle.y = 0x800; + i_this->field_0x1720 = 1; + } + } + } + + if (i_this->mParam == 10) { + lbl_244_bss_47 = 1; + } + + fopAcM_setCullSizeFar(i_this, 30000.0f); + i_this->mSpeedRate = l_HIO.mSearchIgnoreDistance2; + c_start = 1; + daE_WB_Execute(i_this); + c_start = 0; + + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[88])) { + i_this->field_0x79e = 1; + } + } + } + + return phase; } /* 807E1CCC-807E1D2C 00F92C 0060+00 1/1 0/0 0/0 .text __dt__6himo_sFv */ @@ -3892,535 +2711,27 @@ himo_s::himo_s() { // NONMATCHING } -/* 807E1D74-807E1DBC 00F9D4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */ -// cM3dGSph::~cM3dGSph() { -extern "C" void __dt__8cM3dGSphFv() { - // NONMATCHING -} - -/* 807E1DBC-807E1E04 00FA1C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 807E1E04-807E1ED0 00FA64 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_SphFv */ -// dCcD_Sph::~dCcD_Sph() { -extern "C" void __dt__8dCcD_SphFv() { - // NONMATCHING -} - -/* 807E1ED0-807E1F54 00FB30 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_SphFv */ -// dCcD_Sph::dCcD_Sph() { -extern "C" void __ct__8dCcD_SphFv() { - // NONMATCHING -} - -/* 807E1F54-807E1FB0 00FBB4 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 807E1FB0-807E2020 00FC10 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 807E2020-807E2090 00FC80 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 807E2090-807E2094 00FCF0 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 807E2094-807E20DC 00FCF4 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 807E20DC-807E2124 00FD3C 0048+00 2/1 0/0 0/0 .text __dt__12daE_WB_HIO_cFv */ -daE_WB_HIO_c::~daE_WB_HIO_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 807E2F08-807E2F0C 00057C 0004+00 0/1 0/0 0/0 .rodata @10638 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_10638 = -14900.0f; -COMPILER_STRIP_GATE(0x807E2F08, &lit_10638); -#pragma pop - -/* 807E2124-807E2238 00FD84 0114+00 0/0 1/0 0/0 .text __sinit_d_a_e_wb_cpp */ -void __sinit_d_a_e_wb_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x807E2124, __sinit_d_a_e_wb_cpp); -#pragma pop - -/* 807E2238-807E2270 00FE98 0038+00 1/1 0/0 0/0 .text __arraydtor$5742 */ -void func_807E2238() { - // NONMATCHING -} - -/* 807E2270-807E22A8 00FED0 0038+00 1/1 0/0 0/0 .text __arraydtor$4745 */ -void func_807E2270() { - // NONMATCHING -} - -/* 807E22A8-807E22B0 00FF08 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_807E22A8() { - // NONMATCHING -} - -/* 807E22B0-807E22B8 00FF10 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_807E22B0() { - // NONMATCHING -} - -/* 807E22B8-807E2318 00FF18 0060+00 1/1 0/0 0/0 .text - * dComIfGp_setHitMark__FUsP10fopAc_ac_cPC4cXyzPC5csXyzPC4cXyzUl */ -extern "C" void dComIfGp_setHitMark__FUsP10fopAc_ac_cPC4cXyzPC5csXyzPC4cXyzUl() { - // NONMATCHING -} - -/* 807E2318-807E2334 00FF78 001C+00 1/1 0/0 0/0 .text changeDemoPos0__9daPy_py_cFPC4cXyz - */ -extern "C" void changeDemoPos0__9daPy_py_cFPC4cXyz() { - // NONMATCHING -} - -/* 807E2334-807E2348 00FF94 0014+00 1/1 0/0 0/0 .text changeDemoMode__9daPy_py_cFUliis */ -extern "C" void changeDemoMode__9daPy_py_cFUliis() { - // NONMATCHING -} - -/* 807E2348-807E2350 -00001 0008+00 0/0 0/0 0/0 .text changeDemoParam2__9daPy_py_cFs */ -/* void daPy_py_c::changeDemoParam2(s16 param_0) { - //*(u16*)(((u8*)this) + 1546) this->field_0x60a = (u16)(param_0); -} */ - -/* 807E2350-807E235C 00FFB0 000C+00 1/1 0/0 0/0 .text fabsf__3stdFf */ -extern "C" void fabsf__3stdFf() { - // NONMATCHING -} - -/* 807E235C-807E2378 00FFBC 001C+00 1/1 0/0 0/0 .text __ct__4cXyzFRC4cXyz */ -// cXyz::cXyz(cXyz const& param_0) { -extern "C" void __ct__4cXyzFRC4cXyz() { - // NONMATCHING -} - -/* 807E2378-807E2398 00FFD8 0020+00 1/1 0/0 0/0 .text cMtx_YrotS__FPA4_fs */ -extern "C" void cMtx_YrotS__FPA4_fs() { - // NONMATCHING -} - -/* 807E2398-807E23C4 00FFF8 002C+00 1/1 0/0 0/0 .text fopAcM_searchPlayerAngleY__FPC10fopAc_ac_c - */ -static void fopAcM_searchPlayerAngleY__FPC10fopAc_ac_c(fopAc_ac_c const* param_0) { - // NONMATCHING -} - -/* 807E23C4-807E23F4 010024 0030+00 1/1 0/0 0/0 .text dComIfGs_onEventBit__FUs */ -extern "C" void dComIfGs_onEventBit__FUs(u16) { - // NONMATCHING -} - -/* 807E23F4-807E2404 010054 0010+00 1/1 0/0 0/0 .text Z2GetAudioMgr__Fv */ -// static void Z2GetAudioMgr() { -extern "C" void Z2GetAudioMgr__Fv() { - // NONMATCHING -} - -/* 807E2404-807E2418 010064 0014+00 1/1 0/0 0/0 .text cancelOriginalDemo__9daPy_py_cFv */ -extern "C" void cancelOriginalDemo__9daPy_py_cFv() { - // NONMATCHING -} - -/* 807E2418-807E2444 010078 002C+00 1/1 0/0 0/0 .text dComIfGp_event_reset__Fv */ -extern "C" void dComIfGp_event_reset__Fv() { - // NONMATCHING -} - -/* 807E2444-807E2458 0100A4 0014+00 1/1 0/0 0/0 .text changeOriginalDemo__9daPy_py_cFv */ -extern "C" void changeOriginalDemo__9daPy_py_cFv() { - // NONMATCHING -} - -/* 807E2458-807E2468 0100B8 0010+00 1/1 0/0 0/0 .text daPy_getPlayerActorClass__Fv */ -extern "C" void daPy_getPlayerActorClass__Fv() { - // NONMATCHING -} - -/* 807E2468-807E24AC 0100C8 0044+00 1/1 0/0 0/0 .text __as__11actor_placeFRC11actor_place - */ -//void actor_place::operator=(actor_place const& param_0) { -extern "C" void __as__11actor_placeFRC11actor_place() { - // NONMATCHING -} - -/* 807E24AC-807E24C8 01010C 001C+00 1/1 0/0 0/0 .text __as__5csXyzFRC5csXyz */ -// void csXyz::operator=(csXyz const& param_0) { -extern "C" void __as__5csXyzFRC5csXyz() { - // NONMATCHING -} - -/* 807E24C8-807E24D8 010128 0010+00 1/1 0/0 0/0 .text set__4cXyzFfff */ -// void cXyz::set(f32 param_0, f32 param_1, f32 param_2) { -extern "C" void set__4cXyzFfff() { - // NONMATCHING -} - -/* 807E24D8-807E24E8 010138 0010+00 1/1 0/0 0/0 .text onCondition__11dEvt_info_cFUs */ -extern "C" void onCondition__11dEvt_info_cFUs() { - // NONMATCHING -} - -/* 807E24E8-807E24FC 010148 0014+00 1/1 0/0 0/0 .text checkCommandDemoAccrpt__11dEvt_info_cFv */ -// bool dEvt_info_c::checkCommandDemoAccrpt() { -extern "C" void checkCommandDemoAccrpt__11dEvt_info_cFv() { - // NONMATCHING -} - -/* 807E24FC-807E2500 01015C 0004+00 4/4 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 807E2500-807E2530 010160 0030+00 1/1 0/0 0/0 .text fopAcM_SearchByName__Fs */ -extern "C" void fopAcM_SearchByName__Fs(s16) { - // NONMATCHING -} - -/* 807E2530-807E2560 010190 0030+00 1/1 0/0 0/0 .text fopAcM_SearchByID__FUi */ -extern "C" void fopAcM_SearchByID__FUi(unsigned int) { - // NONMATCHING -} - -/* 807E2560-807E2570 0101C0 0010+00 1/1 0/0 0/0 .text dComIfGp_getHorseActor__Fv */ -extern "C" daHorse_c* dComIfGp_getHorseActor__Fv() { - // NONMATCHING -} - -/* 807E2570-807E2588 0101D0 0018+00 1/1 0/0 0/0 .text dComIfGp_getPlayer__Fi */ -extern "C" void dComIfGp_getPlayer__Fi(int) { - // NONMATCHING -} - -/* 807E2588-807E25A0 0101E8 0018+00 1/1 0/0 0/0 .text dComIfGp_getCamera__Fi */ -extern "C" void dComIfGp_getCamera__Fi(int) { - // NONMATCHING -} - -/* 807E25A0-807E25BC 010200 001C+00 1/1 0/0 0/0 .text dComIfGp_getPlayerCameraID__Fi */ -extern "C" void dComIfGp_getPlayerCameraID__Fi(int) { - // NONMATCHING -} - -/* 807E25BC-807E25EC 01021C 0030+00 1/1 0/0 0/0 .text dMsgObject_isTalkNowCheck__Fv */ -extern "C" void dMsgObject_isTalkNowCheck__Fv() { - // NONMATCHING -} - -/* 807E25EC-807E2700 01024C 0114+00 1/1 0/0 0/0 .text abs__4cXyzCFv */ -// void cXyz::abs() const { -extern "C" void abs__4cXyzCFv() { - // NONMATCHING -} - -/* 807E2700-807E2720 010360 0020+00 1/1 0/0 0/0 .text cMtx_XrotM__FPA4_fs */ -// static void cMtx_XrotM(f32 (*param_0)[4], s16 param_1) { -extern "C" void cMtx_XrotM__FPA4_fs() { - // NONMATCHING -} - -/* 807E2720-807E273C 010380 001C+00 1/1 0/0 0/0 .text JMAFastSqrt__Ff */ -//static void JMAFastSqrt(f32 param_0) { -static asm void JMAFastSqrt__Ff() { - // NONMATCHING -} - -/* 807E273C-807E27BC 01039C 0080+00 1/1 0/0 0/0 .text - * dComIfGp_particle_set__FUlUsPC4cXyzPC5csXyzPC4cXyz */ -extern "C" void dComIfGp_particle_set__FUlUsPC4cXyzPC5csXyzPC4cXyz() { - // NONMATCHING -} - -/* 807E27BC-807E27D0 01041C 0014+00 1/1 0/0 0/0 .text cancelOriginalDemo__9daHorse_cFv */ -extern "C" void cancelOriginalDemo__9daHorse_cFv() { - // NONMATCHING -} - -/* 807E27D0-807E27D8 -00001 0008+00 0/0 0/0 0/0 .text __ct__10JAISoundIDFUl */ -extern "C" void __ct__10JAISoundIDFUl(u32* this_replacement, u32 param_0) { - *(u32*)this_replacement = (u32)(param_0); -} - -/* 807E27D8-807E27E8 010438 0010+00 1/1 0/0 0/0 .text dComIfGp_getVibration__Fv */ -extern "C" void dComIfGp_getVibration__Fv() { - // NONMATCHING -} - -/* 807E27E8-807E27F8 010448 0010+00 1/1 0/0 0/0 .text __ct__4cXyzFfff */ -// cXyz::cXyz(f32 param_0, f32 param_1, f32 param_2) { -extern "C" void __ct__4cXyzFfff() { - // NONMATCHING -} - -/* 807E27F8-807E2808 010458 0010+00 1/1 0/0 0/0 .text onDemoJumpDistance__9daHorse_cFff - */ -void daHorse_c::onDemoJumpDistance(f32 param_0, f32 param_1) { - // NONMATCHING -} - -/* 807E2808-807E2824 010468 001C+00 1/1 0/0 0/0 .text __as__4cXyzFRC4cXyz */ -// void cXyz::operator=(cXyz const& param_0) { -extern "C" void __as__4cXyzFRC4cXyz() { - // NONMATCHING -} - -/* 807E2824-807E2858 010484 0034+00 1/1 0/0 0/0 .text __apl__4cXyzFRC3Vec */ -// void cXyz::operator+=(Vec const& param_0) { -extern "C" void __apl__4cXyzFRC3Vec() { - // NONMATCHING -} - -/* 807E2858-807E288C 0104B8 0034+00 1/1 0/0 0/0 .text multVec__14mDoMtx_stack_cFPC3VecP3Vec */ -void multVec__14mDoMtx_stack_cFPC3VecP3Vec(Vec const* param_0, Vec* param_1) { - // NONMATCHING -} - -/* 807E288C-807E28B8 0104EC 002C+00 1/1 0/0 0/0 .text YrotS__14mDoMtx_stack_cFs */ -void YrotS__14mDoMtx_stack_cFs(s16 param_0) { - // NONMATCHING -} - -/* 807E28B8-807E28D4 010518 001C+00 1/1 0/0 0/0 .text changeDemoPos0__9daHorse_cFPC4cXyz - */ -void daHorse_c::changeDemoPos0(cXyz const* param_0) { - // NONMATCHING -} - -/* 807E28D4-807E28E0 010534 000C+00 1/1 0/0 0/0 .text changeDemoMode__9daHorse_cFUli */ -extern "C" void changeDemoMode__9daHorse_cFUli() { - // NONMATCHING -} - -/* 807E28E0-807E2908 010540 0028+00 1/1 0/0 0/0 .text setHorsePosAndAngle__9daHorse_cFPC4cXyzs */ -/* void daHorse_c::setHorsePosAndAngle(cXyz const* param_0, s16 param_1) { - // NONMATCHING -} */ - -/* 807E2908-807E2934 010568 002C+00 1/1 0/0 0/0 .text startCheckSkipEdge__14dEvt_control_cFPv */ -extern "C" void startCheckSkipEdge__14dEvt_control_cFPv() { - // NONMATCHING -} - -/* 807E2934-807E2944 010594 0010+00 1/1 0/0 0/0 .text dComIfGp_getEvent__Fv */ -extern "C" void dComIfGp_getEvent__Fv() { - // NONMATCHING -} - -/* 807E2944-807E2964 0105A4 0020+00 1/1 0/0 0/0 .text fpcM_Search__FPFPvPv_PvPv */ -static void fpcM_Search__FPFPvPv_PvPv(void* (*param_0)(void*, void*), void* param_1) { - // NONMATCHING -} - -/* 807E2964-807E2978 0105C4 0014+00 1/1 0/0 0/0 .text changeOriginalDemo__9daHorse_cFv */ -extern "C" void changeOriginalDemo__9daHorse_cFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 807E38A0-807E38A4 000330 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_807E38A0[4]; -#pragma pop - -/* 807E38A4-807E38A8 000334 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_807E38A4[4]; -#pragma pop - -/* 807E38A8-807E38AC 000338 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_807E38A8[4]; -#pragma pop - -/* 807E38AC-807E38B0 00033C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_807E38AC[4]; -#pragma pop - -/* 807E38B0-807E38B4 000340 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_807E38B0[4]; -#pragma pop - -/* 807E38B4-807E38B8 000344 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_807E38B4[4]; -#pragma pop - -/* 807E38B8-807E38BC 000348 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_807E38B8[4]; -#pragma pop - -/* 807E38BC-807E38C0 00034C 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_807E38BC[4]; -#pragma pop - -/* 807E38C0-807E38C4 000350 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_807E38C0[4]; -#pragma pop - -/* 807E38C4-807E38C8 000354 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_807E38C4[4]; -#pragma pop - -/* 807E38C8-807E38CC 000358 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_807E38C8[4]; -#pragma pop - -/* 807E38CC-807E38D0 00035C 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_807E38CC[4]; -#pragma pop - -/* 807E38D0-807E38D4 000360 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_807E38D0[4]; -#pragma pop - -/* 807E38D4-807E38D8 000364 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_807E38D4[4]; -#pragma pop - -/* 807E38D8-807E38DC 000368 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_807E38D8[4]; -#pragma pop - -/* 807E38DC-807E38E0 00036C 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_807E38DC[4]; -#pragma pop - -/* 807E38E0-807E38E4 000370 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_807E38E0[4]; -#pragma pop - -/* 807E38E4-807E38E8 000374 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_807E38E4[4]; -#pragma pop - -/* 807E38E8-807E38EC 000378 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_807E38E8[4]; -#pragma pop - -/* 807E38EC-807E38F0 00037C 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_807E38EC[4]; -#pragma pop - -/* 807E38F0-807E38F4 000380 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_807E38F0[4]; -#pragma pop - -/* 807E38F4-807E38F8 000384 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_807E38F4[4]; -#pragma pop - -/* 807E38F8-807E38FC 000388 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_807E38F8[4]; -#pragma pop - -/* 807E38FC-807E3900 00038C 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_807E38FC[4]; -#pragma pop - -/* 807E3900-807E3904 000390 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_807E3900[4]; -#pragma pop - -/* 807E3904-807E3908 000394 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JAUSectionHeap> */ -#pragma push -#pragma force_active on -static u8 data_807E3904[4]; -#pragma pop - -/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 807E349C-807E34BC -00001 0020+00 1/0 0/0 0/0 .data l_daE_WB_Method */ +static actor_method_class l_daE_WB_Method = { + (process_method_func)daE_WB_Create, (process_method_func)daE_WB_Delete, + (process_method_func)daE_WB_Execute, (process_method_func)daE_WB_IsDelete, + (process_method_func)daE_WB_Draw, +}; + +/* 807E34BC-807E34EC -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_WB */ +extern actor_process_profile_definition g_profile_E_WB = { + fpcLy_CURRENT_e, // mLayerID + 4, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_E_WB, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(e_wb_class), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 152, // mPriority + &l_daE_WB_Method, // sub_method + 0x00044100, // mStatus + fopAc_ENEMY_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; diff --git a/src/d/actor/d_a_e_yk.cpp b/src/d/actor/d_a_e_yk.cpp index 3a0a15b09f2..08263f6e1de 100644 --- a/src/d/actor/d_a_e_yk.cpp +++ b/src/d/actor/d_a_e_yk.cpp @@ -18,13 +18,15 @@ /** * @class daE_YK_HIO_c * @brief Shadow Keese Host Input Output class. - * + * */ -class daE_YK_HIO_c { +class daE_YK_HIO_c : public JORReflexible { public: /* 8080482C */ daE_YK_HIO_c(); /* 808077E0 */ virtual ~daE_YK_HIO_c() {} + void genMessage(JORMContext*); + /* 0x00 */ // vtable /* 0x04 */ s8 field_0x04; ///< @brief Initialized to -1, appears unused. /* 0x08 */ f32 mModelScale; ///< @brief Base model scale factor (default: 1.0). /* 0x0C */ f32 mFlySpeed; ///< @brief Base flying speed (default: 15.0). @@ -33,12 +35,6 @@ public: /* 0x18 */ f32 mChargeSpeed; ///< @brief Speed when charging at player (default: 40.0). }; -/* 80807EF8-80807EFC 000008 0004+00 2/2 0/0 0/0 .bss None */ -static u8 data_80807EF8; - -/* 80807F08-80807F24 000018 001C+00 9/9 0/0 0/0 .bss l_HIO */ -static daE_YK_HIO_c l_HIO; - /** * @brief Constructor for Shadow Keese HIO (Host Input Output) configuration class * @@ -58,6 +54,24 @@ daE_YK_HIO_c::daE_YK_HIO_c() { mChargeSpeed = 40.0f; } +/* 80807EF8-80807EFC 000008 0004+00 2/2 0/0 0/0 .bss None */ +static u8 data_80807EF8; + +/* 80807F08-80807F24 000018 001C+00 9/9 0/0 0/0 .bss l_HIO */ +static daE_YK_HIO_c l_HIO; + +#ifdef DEBUG +void daE_YK_HIO_c::genMessage(JORMContext* ctx) { + ctx->genLabel("闇キース", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("基本サイズ", &mModelScale, 0.0f, 3.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x512, 24); + ctx->genSlider("飛行速度", &mFlySpeed, 0.0f, 50.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("戦闘開始範囲", &mAttackRange, 0.0f, 600.0f,0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("戦闘速度", &mCruiseSpeed, 0.0f, 50.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); + ctx->genSlider("突進速度", &mChargeSpeed, 0.0f, 50.0f, 0, NULL, 0xFFFF, 0xFFFF, 512, 24); +} +#endif + + /** * @brief Makes a Shadow Keese disappear with effects and item drops * diff --git a/src/d/actor/d_a_obj_bemos.cpp b/src/d/actor/d_a_obj_bemos.cpp index 079a6ff52c6..f9149ea2676 100644 --- a/src/d/actor/d_a_obj_bemos.cpp +++ b/src/d/actor/d_a_obj_bemos.cpp @@ -9,6 +9,8 @@ #include "d/d_cc_d.h" #include "dol2asm.h" #include "d/d_camera.h" +#include "d/d_com_inf_game.h" +#include "SSystem/SComponent/c_lib.h" // // Forward References: @@ -253,28 +255,104 @@ extern "C" void __register_global_object(); /* 80BAE36C-80BAE4A8 0000EC 013C+00 1/1 0/0 0/0 .text * PPCallBack__9daObjBm_cFP10fopAc_ac_cP10fopAc_ac_csQ29dBgW_Base13PushPullLabel */ -void daObjBm_c::PPCallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1, s16 param_2, +// NONMATCHING +void daObjBm_c::PPCallBack(fopAc_ac_c* param_0, fopAc_ac_c* i_actorP, s16 param_2, dBgW_Base::PushPullLabel param_3) { - // NONMATCHING + int tmp = cLib_checkBit((int)param_2, 3); + u32 l_swNo3 = getSwNo3(); + u32 l_moveType = getMoveType(); + + if (tmp && !fopAcM_isSwitch(this,l_swNo3)) { + int tmp2 = cLib_checkBit(tmp,2); + s16 angle = param_2; + + if (tmp2) { + angle -= -0x8000; + } + + angle -= home.angle.y; + + JUT_PANIC(513,"0"); + + field_0x10c0 = param_2; + + if (angle >= -0x2000 && angle < 0x2000) { + tmp = 0; + } else { + if (angle >= 0x2000 && angle < 0x6000) { + tmp = 1; + } else { + if (angle < 0x6000 && angle < -0x6000) { + tmp = 2; + } else { + tmp = 3; + } + } + } + + if (l_moveType != 0 || tmp == 0) { + for (int i = 0; i < 4; i++) { + if (tmp == 1) { + field_0x10c4[i] = field_0x10c4[i]+1; + } else { + field_0x10c4[i] = 0; + } + } + + field_0x10d2 = 1; + } + } } /* 80BAE4A8-80BAE5FC 000228 0154+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ -static void nodeCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING +// NONMATCHING +static int nodeCallBack(J3DJoint* param_0, int param_1) { + if (param_1 == 0) { + u16 jnt_no = param_0->getJntNo(); + J3DModel* model = j3dSys.getModel(); + daObjBm_c* beamos = (daObjBm_c*)model->getUserArea(); + cMtx_copy(model->getAnmMtx(jnt_no), mDoMtx_stack_c::get()); + + if (jnt_no == beamos->getHeadJoint()) { + mDoMtx_stack_c::XrotM(beamos->field_0xf96 + (beamos->field_0x1000 * cM_scos(beamos->field_0x1000 * beamos->field_0xff0))); + } else { + if (jnt_no == beamos->getBigGearJoint()) { + mDoMtx_stack_c::XrotM(beamos->field_0xf9a); + } else { + if (jnt_no == beamos->getSmallGear0Joint()) { + mDoMtx_stack_c::XrotM(beamos->field_0xf9e); + } else { + if (jnt_no == beamos->getSmallGear1Joint()) { + mDoMtx_stack_c::XrotM(beamos->field_0xfa2); + } else { + if (jnt_no == beamos->getSmallGear2Joint()) { + mDoMtx_stack_c::XrotM(beamos->field_0xfa6); + } + } + } + } + } + + cMtx_copy(mDoMtx_stack_c::get(),model->getAnmMtx(jnt_no)); + } } /* ############################################################################################## */ /* 80BB37B8-80BB37C4 000000 000C+00 13/13 0/0 0/0 .rodata l_eye_offset */ -SECTION_RODATA static u8 const l_eye_offset[12] = { - 0x00, 0x00, 0x00, 0x00, 0x43, 0xA5, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, +SECTION_RODATA static f32 const l_eye_offset[4] = { + 0.0f, + 330.0f, + 75.0f, }; COMPILER_STRIP_GATE(0x80BB37B8, &l_eye_offset); /* 80BB37C4-80BB37D0 00000C 000C+00 0/1 0/0 0/0 .rodata l_high_beam_offset */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_high_beam_offset[12] = { - 0x00, 0x00, 0x00, 0x00, 0x43, 0x7F, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, +SECTION_RODATA static f32 const l_high_beam_offset[4] = { + 0.0f, + 255.0f, + 65.0f, }; COMPILER_STRIP_GATE(0x80BB37C4, &l_high_beam_offset); #pragma pop @@ -282,8 +360,10 @@ COMPILER_STRIP_GATE(0x80BB37C4, &l_high_beam_offset); /* 80BB37D0-80BB37DC 000018 000C+00 0/1 0/0 0/0 .rodata l_mid_beam_offset */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_mid_beam_offset[12] = { - 0x00, 0x00, 0x00, 0x00, 0x43, 0x4D, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, +SECTION_RODATA static f32 const l_mid_beam_offset[3] = { + 0.0f, + 205.0f, + 65.0f, }; COMPILER_STRIP_GATE(0x80BB37D0, &l_mid_beam_offset); #pragma pop @@ -291,17 +371,28 @@ COMPILER_STRIP_GATE(0x80BB37D0, &l_mid_beam_offset); /* 80BB37DC-80BB37E8 000024 000C+00 0/1 0/0 0/0 .rodata l_low_beam_offset */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_low_beam_offset[12] = { - 0x00, 0x00, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, +SECTION_RODATA static f32 const l_low_beam_offset[3] = { + 0.0f, + 160.0f, + 65.0f, }; COMPILER_STRIP_GATE(0x80BB37DC, &l_low_beam_offset); #pragma pop /* 80BB37E8-80BB3818 000030 0030+00 1/1 0/0 0/0 .rodata l_craw_offset */ -SECTION_RODATA static u8 const l_craw_offset[48] = { - 0xC2, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xBE, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC2, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xBE, 0x00, 0x00, +SECTION_RODATA static f32 const l_craw_offset[12] = { + -95.0f, + 0.0f, + 0.0f, + 95.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + -95.0f, + 0.0f, + 0.0f, + 95.0f, }; COMPILER_STRIP_GATE(0x80BB37E8, &l_craw_offset); @@ -321,18 +412,40 @@ COMPILER_STRIP_GATE(0x80BB3824, &lit_3934); /* 80BAE5FC-80BAE68C 00037C 0090+00 1/1 0/0 0/0 .text initBaseMtx__9daObjBm_cFv */ void daObjBm_c::initBaseMtx() { - // NONMATCHING + field_0x10a0.set(0.5f, 0.5f, 1.0f); + mpModel->setBaseScale(scale); + mpModel3->setBaseScale(scale); + mpModel2->setBaseScale(field_0x10a0); + setBaseMtx(); } /* 80BAE68C-80BAE778 00040C 00EC+00 2/2 0/0 0/0 .text setBaseMtx__9daObjBm_cFv */ void daObjBm_c::setBaseMtx() { - // NONMATCHING + mDoMtx_stack_c::transS(current.pos.x,current.pos.y,current.pos.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); + mDoMtx_stack_c::scaleM(1.0f,1.0f,1.0f); + PSMTXCopy(mDoMtx_stack_c::get(),mBgMtx); + +#if DEBUG + field_0x10e8 = 0.0f; // change to l_HIO + field_0x10ec = 0.0f; // change to l_HIO +#endif + + mpModel2->setBaseScale(field_0x10a0); + mDoMtx_stack_c::transS(field_0xfb8); + mDoMtx_stack_c::ZXYrotM(field_0xfc4); + mpModel2->setBaseTRMtx(mDoMtx_stack_c::get()); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(home.angle); + mpModel3->setBaseTRMtx(mDoMtx_stack_c::get()); } /* ############################################################################################## */ /* 80BB3828-80BB3830 000070 0008+00 2/4 0/0 0/0 .rodata @4106 */ SECTION_RODATA static u8 const lit_4106[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x43, 0x30, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x80BB3828, &lit_4106); @@ -360,48 +473,58 @@ SECTION_DATA static void* l_eye_matName = (void*)(((char*)&d_a_obj_bemos__string /* 80BB3A9C-80BB3AA0 -00001 0004+00 0/1 0/0 0/0 .data l_head_joint */ #pragma push #pragma force_active on -SECTION_DATA static void* l_head_joint = (void*)(((char*)&d_a_obj_bemos__stringBase0) + 0xD); +SECTION_DATA static char* l_head_joint = "head"; #pragma pop /* 80BB3AA0-80BB3AA4 -00001 0004+00 0/1 0/0 0/0 .data l_bigGear_joint */ #pragma push #pragma force_active on -SECTION_DATA static void* l_bigGear_joint = (void*)(((char*)&d_a_obj_bemos__stringBase0) + 0x12); +SECTION_DATA static char* l_bigGear_joint = "cogRed"; #pragma pop /* 80BB3AA4-80BB3AA8 -00001 0004+00 0/1 0/0 0/0 .data l_smallGear0_joint */ #pragma push #pragma force_active on -SECTION_DATA static void* l_smallGear0_joint = (void*)(((char*)&d_a_obj_bemos__stringBase0) + 0x19); +SECTION_DATA static char* l_smallGear0_joint = "cogBlue"; #pragma pop /* 80BB3AA8-80BB3AAC -00001 0004+00 0/1 0/0 0/0 .data l_smallGear1_joint */ #pragma push #pragma force_active on -SECTION_DATA static void* l_smallGear1_joint = (void*)(((char*)&d_a_obj_bemos__stringBase0) + 0x21); +SECTION_DATA static char* l_smallGear1_joint = "cogGreen"; #pragma pop /* 80BB3AAC-80BB3AB0 -00001 0004+00 0/1 0/0 0/0 .data l_smallGear2_joint */ #pragma push #pragma force_active on -SECTION_DATA static void* l_smallGear2_joint = (void*)(((char*)&d_a_obj_bemos__stringBase0) + 0x2A); +SECTION_DATA static char* l_smallGear2_joint = "cogYellow"; #pragma pop /* 80BB3AB0-80BB3AC4 00003C 0014+00 0/2 0/0 0/0 .data l_joint_table */ #pragma push #pragma force_active on -SECTION_DATA static u8 l_joint_table[20] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +SECTION_DATA static char* l_joint_table[5] = { + l_head_joint, + l_bigGear_joint, + l_smallGear0_joint, + l_smallGear1_joint, + l_smallGear2_joint, }; #pragma pop /* 80BB3AC4-80BB3ADC 000050 0018+00 0/1 0/0 0/0 .data l_cull_box */ #pragma push #pragma force_active on -SECTION_DATA static u8 l_cull_box[24] = { - 0xC4, 0x96, 0x00, 0x00, 0xC2, 0xC8, 0x00, 0x00, 0xC4, 0x96, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x44, 0x96, 0x00, 0x00, +SECTION_DATA static Vec l_cull_box[2] = { + {-1200.0f, + -100.0f, + -1200.0f + }, + { + 1200.0f, + 400.0f, + 1200.0f + }, }; #pragma pop @@ -457,7 +580,77 @@ static dCcD_SrcCyl l_cyl_src = { /* 80BAE778-80BAEADC 0004F8 0364+00 1/0 0/0 0/0 .text Create__9daObjBm_cFv */ int daObjBm_c::Create() { - // NONMATCHING + fopAcM_SetMtx(this,mpModel->getBaseTRMtx()); + mStts.Init(0xff, 0xff, this); + mSph.Set(l_sph_src); + mSph.SetStts(&mStts); + mCps.Set(l_cps_src); + mCps.SetStts(&mStts); + + for (int i = 0; i < 4; i++) { + mCyl[i].Set(l_cyl_src); + mCyl[i].SetStts(&mStts); + } + + fopAcM_setCullSizeBox(this,l_cull_box[0].x,l_cull_box[0].y,l_cull_box[0].z,l_cull_box[1].x, l_cull_box[1].y, l_cull_box[1].z); + JUTNameTab* joint_name = mpModel->getModelData()->getJointTree().getJointName(); + for (int i = 0; i < 5; i++) { + if ( mpModel->getModelData()->getJointNum() <= i) break; + if (!strcmp(joint_name->getName(i), l_joint_table[2])) { + mHeadJntNo = i; + mpModel->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBack); + } + } + + mpModel->setUserArea((u32)this); + JUTNameTab* material_name = mpModel->getModelData()->getMaterialTable().getMaterialName(); + + u32 uVar12 = 0; + while( true ) { + if ( mpModel->getModelData()->getMaterialNum() <= uVar12) break; + if (strcmp(material_name->getName(uVar12),"bmEye") == 0) { + mpMaterial = mpModel->getModelData()->getMaterialNodePointer(uVar12); + } + uVar12 = uVar12 + 1; + } + +#if DEBUG + if (field_0xfcc == 0) { + OSReport_Error("ブ[モス]。苔のマテリアルがありません"); + return 0; + } +#endif + + // (**(code **)(*(int *)(this + 0x10a0) + 0x14))(this + 0x1080,this + 0x1068,1); + // (**(code **)(*(int *)(this + 0x10d0) + 0x14))(this + 0x10b0,this + 0x1074,1); + + field_0x1039 = 1; + + if (fopAcM_isSwitch(this,getSwNo2())) { + field_0xff7 = 0x0; + + if (getMoveType() != 1) { + mpBaseAnm2->setFrame(mpBaseAnm2->getEndFrame()); + } + + initActionObjBemos(); + } else { + initActionEnBemos(); + if (getSwNo() != -1) { + if (fopAcM_isSwitch(this,getSwNo())) { + field_0xff7 = 0; + initActionSwWait(); + } + } + field_0xff7 = 1; + J3DAnmTevRegKey* model_data = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Obj_bm", 0x14); + mpBrkAnm->init(mpModel->getModelData(),model_data,1,2,1.0f,0,-1); + mpBaseAnm->setFrame(mpBaseAnm->getEndFrame()); + initActionWarning(); + } + + initBaseMtx(); + return 1; } /* ############################################################################################## */ diff --git a/src/d/d_a_horse_static.cpp b/src/d/d_a_horse_static.cpp index 305377c267c..2740058c899 100644 --- a/src/d/d_a_horse_static.cpp +++ b/src/d/d_a_horse_static.cpp @@ -10,18 +10,18 @@ #include "d/actor/d_a_tag_hstop.h" BOOL e_wb_class::checkWait() { - return field_0x5b4 == 0x2A; + return mActionMode == 0x2A; } void e_wb_class::setPlayerRideNow() { mActionID = ACT_PL_RIDE_NOW; - field_0x5b4 = 0; + mActionMode = 0; field_0x6be |= 3; } void e_wb_class::setPlayerRide() { mActionID = ACT_PL_RIDE; - field_0x5b4 = 0; + mActionMode = 0; field_0x6be |= 3; mZ2Ride.setLinkRiding(true); @@ -34,7 +34,7 @@ void e_wb_class::getOff() { field_0x692 = 0; } - field_0x5b4 = 0; + mActionMode = 0; field_0x6be &= ~3; mZ2Ride.setLinkRiding(false); } @@ -44,12 +44,12 @@ BOOL e_wb_class::checkDownDamage() { } BOOL e_wb_class::checkNormalRideMode() const { - return mActionID != 0x66 || field_0x5b4 < 1; + return mActionID != 0x66 || mActionMode < 1; } void e_wb_class::setRunRideMode() { if (mActionID == ACT_PL_RIDE) { - field_0x5b4 = 0; + mActionMode = 0; mActionID = ACT_S_DAMAGE; field_0x692 = 0x65; }