From c94fe2280a139876d5a4a56e065d696d31808b29 Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Tue, 27 May 2025 05:45:55 -0400 Subject: [PATCH] d_a_e_rdb (King Bulblin) work (#2452) * Started on d_a_e_rdb * Small work on damage_check * Work on demo_camera and started on execute function * All functions worked on * PR cleanup --- include/d/actor/d_a_e_rdb.h | 105 +- include/d/actor/d_a_e_wb.h | 2 +- src/d/actor/d_a_e_rdb.cpp | 3992 +++++++++++++++++------------------ 3 files changed, 1988 insertions(+), 2111 deletions(-) diff --git a/include/d/actor/d_a_e_rdb.h b/include/d/actor/d_a_e_rdb.h index af644795865..7474620c7af 100644 --- a/include/d/actor/d_a_e_rdb.h +++ b/include/d/actor/d_a_e_rdb.h @@ -1,5 +1,9 @@ #ifndef D_A_E_RDB_H #define D_A_E_RDB_H +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" +#include "d/d_cc_uty.h" +#include "d/d_msg_flow.h" #include "f_op/f_op_actor_mng.h" /** @@ -10,17 +14,106 @@ * @details * */ -class e_rdb_class : public fopEn_enemy_c { - /* 8076AA0C */ e_rdb_class(); -private: - /* 0x5ac */ u8 field_0x5ac[0x1154 - 0x5ac]; +class e_rdb_class { +public: + /* 8076AA0C */ e_rdb_class() {}; + + /* 0x0000 */ fopEn_enemy_c enemy; + /* 0x05ac */ request_of_phase_process_class mPhase; + /* 0x05B4 */ s16 mMode; + /* 0x05B6 */ u8 field_0x5b6; + /* 0x05B7 */ u8 field_0x5b7[0x5c8 - 0x5b7]; + /* 0x05C8 */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x05CC */ f32 field_0x5cc; + /* 0x05D0 */ Z2CreatureEnemy mSound; + /* 0x0674 */ int mAnm; + /* 0x0678 */ J3DModel* field_0x678; + /* 0x067C */ s16 field_0x67c; + /* 0x067E */ s16 mAction; + /* 0x0680 */ s8 field_0x680; + /* 0x0681 */ u8 field_0x681[0x684 - 0x681]; + /* 0x0684 */ cXyz field_0x684; + /* 0x0690 */ cXyz field_0x690; + /* 0x069C */ csXyz field_0x69c; + /* 0x06A2 */ s16 field_0x6a2; + /* 0x06A4 */ s16 field_0x6a4; + /* 0x06A6 */ u8 field_0x6a6[0x6a8 - 0x6a6]; + /* 0x06A8 */ s16 field_0x6a8; + /* 0x06AA */ u8 field_0x6aa[0x6ac - 0x6aa]; + /* 0x06AC */ f32 mDistToPlayer; + /* 0x06B0 */ s16 mAngleToPlayer; + /* 0x06B2 */ u8 field_0x6b2[2]; + /* 0x06B4 */ u32 mShadowKey; + /* 0x06B8 */ s16 field_0x6b8[4]; + /* 0x06C0 */ s16 field_0x6c0; + /* 0x06C2 */ s16 field_0x6c2; + /* 0x06C4 */ s8 field_0x6c4; + /* 0x06C5 */ s8 field_0x6c5; + /* 0x06C6 */ s8 field_0x6c6; + /* 0x06C7 */ s8 field_0x6c7; + /* 0x06C8 */ s8 field_0x6c8; + /* 0x06C9 */ u8 field_0x6c9[0x6ca - 0x6c9]; + /* 0x06CA */ s16 field_0x6ca; + /* 0x06CC */ s16 field_0x6cc; + /* 0x06CE */ s16 field_0x6ce; + /* 0x06D0 */ s16 field_0x6d0; + /* 0x06D2 */ s16 field_0x6d2; + /* 0x06D4 */ f32 field_0x6d4; + /* 0x06D8 */ s8 field_0x6d8; + /* 0x06D9 */ u8 field_0x6d9[0x6dc - 0x6d9]; + /* 0x06DC */ f32 mBlend; + /* 0x06E0 */ f32 field_0x6e0; + /* 0x06E4 */ f32 field_0x6e4; + /* 0x06E8 */ s16 field_0x6e8; + /* 0x06EA */ u8 field_0x6ea[0x6ec - 0x6ea]; + /* 0x06EC */ u32 field_0x6ec; + /* 0x06F0 */ dBgS_AcchCir mAcchCir; + /* 0x0730 */ dBgS_ObjAcch mAcch; + /* 0x0908 */ dCcD_Stts mStts; + /* 0x0944 */ dCcD_Sph field_0x944[3]; + /* 0x0CEC */ dCcD_Cyl field_0xcec; + /* 0x0E28 */ dCcD_Stts mStts2; + /* 0x0E64 */ dCcD_Sph field_0xe64; + /* 0x0F9C */ dCcU_AtInfo mAtInfo; + /* 0x0FC0 */ cXyz field_0xfc0; + /* 0x0FCC */ s8 field_0xfcc; + /* 0x0FCD */ s8 field_0xfcd; + /* 0x0FCE */ u8 field_0xfce; + /* 0x0FCF */ s8 field_0xfcf; + /* 0x0FD0 */ u32 field_0xfd0[2]; + /* 0x0FD8 */ u8 field_0xfd8[0xfe4 - 0xfd8]; + /* 0x0FE4 */ s8 field_0xfe4; + /* 0x0FE5 */ s8 field_0xfe5; + /* 0x0FE6 */ s8 field_0xfe6; + /* 0x0FE7 */ u8 field_0xfe7; + /* 0x0FE8 */ u32 field_0xfe8[24]; + /* 0x1048 */ u32 field_0x1048[24]; + /* 0x10A8 */ s16 mDemoMode; + /* 0x10AA */ s16 field_0x10aa; + /* 0x10AC */ cXyz mDemoCamEye; + /* 0x10B8 */ cXyz mDemoCamCenter; + /* 0x10C4 */ cXyz field_0x10c4; + /* 0x10D0 */ cXyz field_0x10d0; + /* 0x10DC */ cXyz field_0x10dc; + /* 0x10E8 */ cXyz field_0x10e8; + /* 0x10F4 */ f32 mDemoCamFovy; + /* 0x10F8 */ f32 field_0x10f8; + /* 0x10FC */ u8 field_0x10fc[0x1104 - 0x10fc]; + /* 0x1104 */ s8 field_0x1104; + /* 0x1105 */ u8 field_0x1105[0x1108 - 0x1105]; + /* 0x1108 */ dMsgFlow_c mMsgFlow; }; STATIC_ASSERT(sizeof(e_rdb_class) == 0x1154); -class daE_RDB_HIO_c { +class daE_RDB_HIO_c: public JORReflexible { +public: /* 807650CC */ daE_RDB_HIO_c(); - /* 8076AF64 */ ~daE_RDB_HIO_c(); + /* 8076AF64 */ virtual ~daE_RDB_HIO_c() {}; + + void genMessage(JORMContext*); + /* 0x04 */ s8 field_0x4; + /* 0x08 */ f32 field_0x8; }; diff --git a/include/d/actor/d_a_e_wb.h b/include/d/actor/d_a_e_wb.h index d4b002a5630..8d2b1f6d2a8 100644 --- a/include/d/actor/d_a_e_wb.h +++ b/include/d/actor/d_a_e_wb.h @@ -47,7 +47,7 @@ public: return NULL; } -private: +public: /* 0x05AC */ request_of_phase_process_class mPhase; /* 0x05B4 */ s16 field_0x5b4; /* 0x05B8 */ char* mResName; diff --git a/src/d/actor/d_a_e_rdb.cpp b/src/d/actor/d_a_e_rdb.cpp index 6122dab4db0..235c532b2b9 100644 --- a/src/d/actor/d_a_e_rdb.cpp +++ b/src/d/actor/d_a_e_rdb.cpp @@ -4,391 +4,1911 @@ */ #include "d/actor/d_a_e_rdb.h" +#include "d/actor/d_a_e_wb.h" #include "d/d_cc_d.h" -#include "dol2asm.h" #include "d/d_camera.h" -UNK_REL_DATA; +#include "d/d_msg_object.h" +#include "m_Do/m_Do_graphic.h" +#include "d/actor/d_a_e_rd.h" +#include "c/c_damagereaction.h" #include "f_op/f_op_actor_enemy.h" +#include "Z2AudioLib/Z2Instances.h" +UNK_REL_DATA; -// -// Forward References: -// - -extern "C" void __ct__13daE_RDB_HIO_cFv(); -extern "C" static void anm_init__FP11e_rdb_classifUcf(); -extern "C" static void nodeCallBack__FP8J3DJointi(); -extern "C" static void daE_RDB_Draw__FP11e_rdb_class(); -extern "C" static void mtx_to_posAngle__FPA4_fP4cXyzP5csXyz(); -extern "C" static void player_way_check__FP11e_rdb_class(); -extern "C" static void e_rdb_wait__FP11e_rdb_class(); -extern "C" static void e_rdb_fight__FP11e_rdb_class(); -extern "C" static void getPolyColor__FR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf(); -extern "C" static void e_rdb_attack__FP11e_rdb_class(); -extern "C" static void e_rdb_spin_attack__FP11e_rdb_class(); -extern "C" static void e_rdb_defence__FP11e_rdb_class(); -extern "C" static void e_rdb_damage__FP11e_rdb_class(); -extern "C" static void e_rdb_end__FP11e_rdb_class(); -extern "C" static void e_rdb_start__FP11e_rdb_class(); -extern "C" static void damage_check__FP11e_rdb_class(); -extern "C" static void shot_s_sub__FPvPv(); -extern "C" static void action__FP11e_rdb_class(); -extern "C" static void cam_3d_morf__FP11e_rdb_classf(); -extern "C" static void cam_spd_set__FP11e_rdb_class(); -extern "C" static void demo_camera__FP11e_rdb_class(); -extern "C" static void anm_se_set__FP11e_rdb_class(); -extern "C" static void daE_RDB_Execute__FP11e_rdb_class(); -extern "C" static bool daE_RDB_IsDelete__FP11e_rdb_class(); -extern "C" static void daE_RDB_Delete__FP11e_rdb_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void daE_RDB_Create__FP10fopAc_ac_c(); -extern "C" void __ct__11e_rdb_classFv(); -extern "C" void __dt__8cM3dGSphFv(); -extern "C" void __dt__8cM3dGCylFv(); -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 __dt__10cCcD_GSttsFv(); -extern "C" void __dt__13daE_RDB_HIO_cFv(); -extern "C" void __sinit_d_a_e_rdb_cpp(); -extern "C" static void func_8076AFE8(); -extern "C" static void func_8076AFF0(); -extern "C" void __dt__4cXyzFv(); -extern "C" extern char const* const d_a_e_rdb__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 mDoMtx_MtxToRot__FPA4_CfP5csXyz(); -extern "C" void transM__14mDoMtx_stack_cFfff(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -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 mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -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_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc(); -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_searchActorDistance__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 fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void fpcSch_JudgeForPName__FPvPv(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void dComIfGs_offOneZoneSwitch__Fii(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void onTbox__12dSv_memBit_cFi(); -extern "C" void onDungeonItem__12dSv_memBit_cFi(); -extern "C" void isDungeonItem__12dSv_memBit_cCFi(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void dEv_noFinishSkipProc__FPvi(); -extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii(); -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 addReal__21dDlst_shadowControl_cFUlP8J3DModel(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -extern "C" void ChkPolySafe__4cBgSFRC13cBgS_PolyInfo(); -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 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 ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph(); -extern "C" void StartCAt__8dCcD_SphFR4cXyz(); -extern "C" void MoveCAt__8dCcD_SphFR4cXyz(); -extern "C" void cc_pl_cut_bit_get__Fv(); -extern "C" void def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c(); -extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo(); -extern "C" void Start__9dCamera_cFv(); -extern "C" void Stop__9dCamera_cFv(); -extern "C" void SetTrimSize__9dCamera_cFl(); -extern "C" void Set__9dCamera_cF4cXyz4cXyzfs(); -extern "C" void Reset__9dCamera_cF4cXyz4cXyz(); -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_custom_colset__FUcUcf(); -extern "C" void dKy_pol_eff_prim_get__FPC13cBgS_PolyInfoP8_GXColor(); -extern "C" void dKy_pol_eff_env_get__FPC13cBgS_PolyInfoP8_GXColor(); -extern "C" void dKy_pol_eff2_prim_get__FPC13cBgS_PolyInfoP8_GXColor(); -extern "C" void dKy_pol_eff2_env_get__FPC13cBgS_PolyInfoP8_GXColor(); -extern "C" void dKy_pol_eff_alpha_get__FPC13cBgS_PolyInfo(); -extern "C" void dKy_pol_eff_ratio_get__FPC13cBgS_PolyInfo(); -extern "C" void dKy_pol_eff2_alpha_get__FPC13cBgS_PolyInfo(); -extern "C" void dKy_pol_eff2_ratio_get__FPC13cBgS_PolyInfo(); -extern "C" void dKy_darkworld_check__Fv(); -extern "C" void getStatus__12dMsgObject_cFv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); -extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); -extern "C" void remove__10dMsgFlow_cFv(); -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 __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -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 MtxPosition__FP4cXyzP4cXyz(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void subBgmStart__8Z2SeqMgrFUl(); -extern "C" void subBgmStop__8Z2SeqMgrFv(); -extern "C" void setDemoName__11Z2StatusMgrFPc(); -extern "C" void __ct__15Z2CreatureEnemyFv(); -extern "C" void init__15Z2CreatureEnemyFP3VecP3VecP3VecUcUcUc(); -extern "C" void setLinkSearch__15Z2CreatureEnemyFb(); -extern "C" void setEnemyName__15Z2CreatureEnemyFPCc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void checkPass__12J3DFrameCtrlFf(); -extern "C" void __construct_array(); -extern "C" void _savegpr_19(); -extern "C" void _savegpr_20(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_23(); -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_19(); -extern "C" void _restgpr_20(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_23(); -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__8dCcD_Sph[36]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_SphAttr[25]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" u8 m_midnaActor__9daPy_py_c[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 8076B488-8076B48C 00002C 0004+00 1/3 0/0 0/0 .rodata @4028 */ -SECTION_RODATA static f32 const lit_4028 = 31.0f / 20.0f; -COMPILER_STRIP_GATE(0x8076B488, &lit_4028); - -/* 8076B730-8076B738 000038 0006+02 1/1 0/0 0/0 .data ap_name$4291 */ -SECTION_DATA static u8 ap_name_4291[6 + 2 /* padding */] = { - 0x8A, - 0x5C, - 0x8A, - 0x5D, - 0x8A, - 0x5E, - /* padding */ - 0x00, - 0x00, +enum Action { + ACTION_START, + ACTION_WAIT, + ACTION_FIGHT, + ACTION_ATTACK, + ACTION_SPIN_ATTACK, + ACTION_DEFENCE, + ACTION_DAMAGE, + ACTION_END, }; -/* 8076B738-8076B73C 000040 0004+00 1/1 0/0 0/0 .data ap_name$4373 */ -SECTION_DATA static u8 ap_name_4373[4] = { - 0x8A, - 0x5F, - 0x8A, - 0x60, -}; +/* 807650CC-807650F0 0000EC 0024+00 1/1 0/0 0/0 .text __ct__13daE_RDB_HIO_cFv */ +daE_RDB_HIO_c::daE_RDB_HIO_c() { + field_0x4 = -1; + field_0x8 = 1.55f; +} -/* 8076B73C-8076B798 -00001 005C+00 1/1 0/0 0/0 .data @4656 */ -SECTION_DATA static void* lit_4656[23] = { - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x8C), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0xC0), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x228), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x24C), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x298), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x2A0), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x30C), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x434), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x344), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x398), - (void*)(((char*)e_rdb_end__FP11e_rdb_class) + 0x424), -}; +/* 807650F0-8076519C 000110 00AC+00 9/9 0/0 0/0 .text anm_init__FP11e_rdb_classifUcf */ +static void anm_init(e_rdb_class* i_this, int i_index, f32 i_morf, u8 i_attr, f32 i_rate) { + i_this->mpModelMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_rdb", i_index), i_attr, i_morf, i_rate, 0.0f, -1.0f); + i_this->mAnm = i_index; +} -/* 8076B798-8076B7D0 -00001 0038+00 1/1 0/0 0/0 .data @4730 */ -SECTION_DATA static void* lit_4730[14] = { - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x6C), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x374), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x8C), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0xC0), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0xC8), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0xF0), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x374), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x168), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x374), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x374), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x17C), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x188), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x220), - (void*)(((char*)e_rdb_start__FP11e_rdb_class) + 0x330), -}; +/* 8076519C-80765314 0001BC 0178+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ +static int nodeCallBack(J3DJoint* i_joint, int param_2) { + s16 sVar1; + if (param_2 == 0) { + int jntNo = i_joint->getJntNo(); + J3DModel* model = j3dSys.getModel(); + e_rdb_class* rdb_p = (e_rdb_class*)model->getUserArea(); + if (rdb_p != NULL) { + PSMTXCopy(model->getAnmMtx(jntNo), *calc_mtx); + if (jntNo == 1 || jntNo == 2) { + cMtx_XrotM(*calc_mtx, rdb_p->field_0x6ca / 8); -/* 8076B7D0-8076B7F0 -00001 0020+00 1/1 0/0 0/0 .data @5169 */ -SECTION_DATA static void* lit_5169[8] = { - (void*)(((char*)action__FP11e_rdb_class) + 0x88), - (void*)(((char*)action__FP11e_rdb_class) + 0x9C), - (void*)(((char*)action__FP11e_rdb_class) + 0xAC), - (void*)(((char*)action__FP11e_rdb_class) + 0xBC), - (void*)(((char*)action__FP11e_rdb_class) + 0xD0), - (void*)(((char*)action__FP11e_rdb_class) + 0xE4), - (void*)(((char*)action__FP11e_rdb_class) + 0xF8), - (void*)(((char*)action__FP11e_rdb_class) + 0x108), -}; + if (jntNo == 1) { + cMtx_XrotM(*calc_mtx, rdb_p->field_0x6d0); + } -/* 8076B7F0-8076B830 -00001 0040+00 1/1 0/0 0/0 .data @5653 */ -SECTION_DATA static void* lit_5653[16] = { - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xB98), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0x68), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0x114), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0x340), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xB98), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xB98), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xB98), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xB98), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xB98), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xB98), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0x3D4), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0x4B8), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0x774), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0x854), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xA58), - (void*)(((char*)demo_camera__FP11e_rdb_class) + 0xAA8), -}; + cMtx_ZrotM(*calc_mtx, -(rdb_p->field_0x6cc / 8)); + } else if (jntNo == 5 || jntNo == 6) { + cMtx_YrotM(*calc_mtx, rdb_p->field_0x6d2 - rdb_p->field_0x6ca / 3); + cMtx_ZrotM(*calc_mtx, -(rdb_p->field_0x6cc / 8)); + } -/* 8076B830-8076B870 000138 0040+00 0/1 0/0 0/0 .data cc_sph_src$6434 */ -#pragma push -#pragma force_active on -static dCcD_SrcSph cc_sph_src = { - { - {0x0, {{0x0, 0x0, 0x0}, {0xd8fafdbf, 0x3}, 0x0}}, // mObj - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x102}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf - { - {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph - } // mSphAttr -}; -#pragma pop + model->setAnmMtx(jntNo, *calc_mtx); + PSMTXCopy(*calc_mtx, J3DSys::mCurrentMtx); + } + } -/* 8076B870-8076B8B0 000178 0040+00 0/1 0/0 0/0 .data at_sph_src$6435 */ -#pragma push -#pragma force_active on -static dCcD_SrcSph at_sph_src = { - { - {0x0, {{AT_TYPE_CSTATUE_SWING, 0xc, 0xd}, {0xd8fafdbf, 0x3}, 0x0}}, // mObj - {dCcD_SE_METAL, 0x0, 0x2, 0x0, 0x0}, // mGObjAt - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x102}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf - { - {{0.0f, 0.0f, 0.0f}, 35.0f} // mSph - } // mSphAttr -}; -#pragma pop + return 1; +} -/* 8076B8B0-8076B8F4 0001B8 0044+00 0/1 0/0 0/0 .data co_cyl_src$6444 */ -#pragma push -#pragma force_active on -static dCcD_SrcCyl co_cyl_src = { - { - {0x0, {{0x0, 0x0, 0x0}, {0x0, 0x0}, 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}, // mCenter - 100.0f, // mRadius - 200.0f // mHeight - } // mCyl -}; -#pragma pop +/* 80765314-80765600 000334 02EC+00 1/0 0/0 0/0 .text daE_RDB_Draw__FP11e_rdb_class */ +static int daE_RDB_Draw(e_rdb_class* i_this) { + J3DMaterial* material; + if (i_this->field_0xfe6 != 0) { + return 1; + } + + J3DModel* model = i_this->mpModelMorf->getModel(); + g_env_light.settingTevStruct(0, &i_this->enemy.current.pos, &i_this->enemy.tevStr); + + if (i_this->field_0xfcf == 0) { + g_env_light.setLightTevColorType_MAJI(model, &i_this->enemy.tevStr); + + for (u16 i = 3; i <= 4; i++) { + J3DShape* shape = model->getModelData()->getMaterialNodePointer(i)->getShape(); + if (shape != NULL) { + shape->hide(); + } + } + + for (u16 i = 0; i <= 1; i++) { + material = model->getModelData()->getMaterialNodePointer(i); + material->getTevColor(0)->r = i_this->field_0x6e0; + material->getTevColor(0)->g = i_this->field_0x6e0; + material->getTevColor(0)->b = i_this->field_0x6e0; + } + + i_this->mpModelMorf->entryDL(); + } + + if (i_this->field_0xfcf != 1 && i_this->field_0x680 != 0) { + g_env_light.setLightTevColorType_MAJI(i_this->field_0x678, &i_this->enemy.tevStr); + + material = i_this->field_0x678->getModelData()->getMaterialNodePointer(0); + material->getTevColor(0)->r = i_this->field_0x6e0; + material->getTevColor(0)->g = i_this->field_0x6e0; + material->getTevColor(0)->b = i_this->field_0x6e0; + mDoExt_modelUpdateDL(i_this->field_0x678); + } + + if (i_this->field_0xfcf == 0) { + cXyz shadow_pos; + shadow_pos.set(i_this->enemy.current.pos.x, i_this->enemy.current.pos.y + 100.0f, i_this->enemy.current.pos.z); + + f32 fVar1 = 1700.0f; + if (i_this->mAction == 7) { + fVar1 = 2700.0f; + } + + i_this->mShadowKey = dComIfGd_setShadow(i_this->mShadowKey, 1, model, &shadow_pos, fVar1, 0.0f, + i_this->enemy.current.pos.y, i_this->mAcch.GetGroundH(), i_this->mAcch.m_gnd, + &i_this->enemy.tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + if (i_this->field_0x678 != NULL) { + dComIfGd_addRealShadow(i_this->mShadowKey, i_this->field_0x678); + } + } + + return 1; +} + +/* 80765600-8076563C 000620 003C+00 1/1 0/0 0/0 .text mtx_to_posAngle__FPA4_fP4cXyzP5csXyz */ +static void mtx_to_posAngle(Mtx param_1, cXyz* param_2, csXyz* param_3) { + mDoMtx_multVecZero(param_1, param_2); + mDoMtx_MtxToRot(param_1, param_3); +} + +/* 8076563C-80765678 00065C 003C+00 1/1 0/0 0/0 .text player_way_check__FP11e_rdb_class */ +static int player_way_check(e_rdb_class* i_this) { + s16 sVar1 = i_this->enemy.shape_angle.y - dComIfGp_getPlayer(0)->shape_angle.y; + if (sVar1 < 0x4000 && sVar1 > -0x4000) { + return 0; + } + + return 1; +} + +/* 80765678-807658E0 000698 0268+00 1/1 0/0 0/0 .text e_rdb_wait__FP11e_rdb_class */ +static void e_rdb_wait(e_rdb_class* i_this) { + s16 sVar1 = i_this->enemy.shape_angle.y - i_this->mAngleToPlayer; + f32 fVar1 = 0.0f; + + switch (i_this->mMode) { + case 0: + anm_init(i_this, 69 ,10.0f ,2, 1.0f); + i_this->mMode = 1; + i_this->field_0x6b8[0] = cM_rndF(10.0f) + 20.0f; + // fallthrough + case 1: + if (i_this->mAnm == 68) { + if (sVar1 < 512 && sVar1 > -512) { + anm_init(i_this, 69, 5.0f, 2, 1.0f); + } + } else if (sVar1 > 512 || sVar1 < -512) { + anm_init(i_this, 68, 5.0f, 2, 1.0f); + } + + if (i_this->mDistToPlayer < 350.0f) { + if (i_this->mAnm != 68) { + anm_init(i_this, 68, 5.0f, 2, 1.0f); + } + i_this->mMode = 2; + } + break; + + case 2: + fVar1 = -2.0f; + if (i_this->mDistToPlayer > 400.0f) { + i_this->mMode = 1; + } + } + + cLib_addCalc2(&i_this->enemy.speedF, fVar1, 1.0f, 3.0f); + cLib_addCalcAngleS2(&i_this->enemy.current.angle.y, i_this->mAngleToPlayer, 2, 512); + i_this->field_0x6c8 = 1; + fVar1 = 420.0f; + if (i_this->field_0xfcc >= 2 && strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + fVar1 = 820.0f; + } + + if (i_this->mDistToPlayer > fVar1) { + i_this->mAction = 2; + i_this->mMode = 0; + } else if (i_this->mDistToPlayer < fVar1 && i_this->field_0x6b8[0] == 0) { + if (i_this->field_0xfcc >= 2 && strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + i_this->mAction = 4; + } else { + i_this->mAction = 3; + } + + i_this->mMode = 0; + } +} + +/* 807658E0-80765A98 000900 01B8+00 1/1 0/0 0/0 .text e_rdb_fight__FP11e_rdb_class */ +static void e_rdb_fight(e_rdb_class* i_this) { + f32 fVar1 = 0.0f; + + switch (i_this->mMode) { + case 0: + anm_init(i_this, 70, 10.0f, 2, 1.0f); + i_this->mMode = 1; + i_this->field_0x5cc = 1.0f; + // fallthrough + case 1: + if (i_this->mAnm == 70) { + fVar1 = 3.0f; + if (i_this->mDistToPlayer > 700.0f) { + anm_init(i_this, 64, 10.0f, 2, 1.0f); + } + } else { + fVar1 = 10.0f; + if (i_this->mDistToPlayer < 600.0f) { + i_this->field_0x5cc = 3.0f; + anm_init(i_this, 70, 10.0f, 2, i_this->field_0x5cc); + fVar1 = 3.0f; + } + } + } + + i_this->mpModelMorf->setPlaySpeed(i_this->field_0x5cc); + cLib_addCalc2(&i_this->enemy.speedF, fVar1 * i_this->field_0x5cc, 1.0f, i_this->field_0x5cc * 3.0f); + cLib_addCalc2(&i_this->field_0x5cc, 1.0f, 1.0f, 0.1f); + cLib_addCalcAngleS2(&i_this->enemy.current.angle.y, i_this->mAngleToPlayer, 2, 512); + fVar1 = 0.0f; + + if (i_this->field_0xfcc >= 2 && strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + fVar1 = 400.0f; + } + + if (i_this->mDistToPlayer < fVar1 + 400.0f) { + i_this->mAction = 1; + i_this->mMode = 0; + } + + i_this->field_0x6c8 = 1; +} + +/* 80765A98-80765B70 000AB8 00D8+00 2/2 0/0 0/0 .text getPolyColor__FR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf */ +static int getPolyColor(cBgS_PolyInfo& i_polyInfo, int param_2, _GXColor* p_effPrim, + _GXColor* p_effEnv, u8* p_alpha, f32* p_ratio) { + if (dComIfG_Bgsp().ChkPolySafe(i_polyInfo) == 0) { + return 0; + } + + if (param_2 == 0) { + dKy_pol_eff_prim_get(&i_polyInfo, p_effPrim); + dKy_pol_eff_env_get(&i_polyInfo, p_effEnv); + *p_alpha = dKy_pol_eff_alpha_get(&i_polyInfo); + *p_ratio = dKy_pol_eff_ratio_get(&i_polyInfo); + } else { + dKy_pol_eff2_prim_get(&i_polyInfo, p_effPrim); + dKy_pol_eff2_env_get(&i_polyInfo, p_effEnv); + *p_alpha = dKy_pol_eff2_alpha_get(&i_polyInfo); + *p_ratio = dKy_pol_eff2_ratio_get(&i_polyInfo); + } + + return 1; +} + +/* 80765B70-80765E70 000B90 0300+00 1/1 0/0 0/0 .text e_rdb_attack__FP11e_rdb_class */ +static void e_rdb_attack(e_rdb_class* i_this) { + // NONMATCHING + static u16 ap_name[3] = { + 0x8A5C, + 0x8A5D, + 0x8A5E, + }; + + int frame = i_this->mpModelMorf->getFrame(); + + switch (i_this->mMode) { + case 0: + if (cM_rndF(1.0f) < 0.5f) { + anm_init(i_this, 7, 5.0f, 0, 1.0f); + i_this->mMode = 1; + } else { + anm_init(i_this, 8, 5.0f, 0, 1.0f); + i_this->mMode = 2; + } + break; + + case 1: + if (frame > 63 && frame < 73) { + i_this->field_0x6c4 = 1; + } + + if (frame == 68) { + u8 i_alpha; + f32 i_ratio; + _GXColor i_effPrim, i_effEnv; + if (getPolyColor(i_this->mAcch.m_gnd, 0, &i_effPrim, &i_effEnv, &i_alpha, &i_ratio) != 0) { + cXyz i_scale(1.55f, 1.55f, 1.55); + + for (int i = 0; i <= 2; i++) { + if (i == 0) { + dComIfGp_particle_setColor(ap_name[i], &i_this->enemy.current.pos, &i_this->enemy.tevStr, + &i_effPrim, &i_effEnv, i_ratio, i_alpha, &i_this->enemy.shape_angle, + &i_scale, NULL, -1, NULL); + } else { + dComIfGp_particle_set(ap_name[i], &i_this->enemy.current.pos, &i_this->enemy.shape_angle, &i_scale); + } + } + } + + dComIfGp_getVibration().StartShock(6, 31, cXyz(0.0f, 1.0f, 0.0f)); + i_this->mSound.startCreatureExtraSound(Z2SE_EN_RDB_ATTACK01_HIT, 0, -1); + } + + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = 1; + i_this->mMode = 0; + } + break; + + case 2: + if (frame > 61 && frame < 72) { + i_this->field_0x6c4 = 1; + } + + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = 1; + i_this->mMode = 0; + } + } + + cLib_addCalc0(&i_this->enemy.speedF, 1.0f, 3.0f); + i_this->field_0x6c8 = 1; +} + +/* 80765E70-80766188 000E90 0318+00 1/1 0/0 0/0 .text e_rdb_spin_attack__FP11e_rdb_class */ +static void e_rdb_spin_attack(e_rdb_class* i_this) { + // NONMATCHING + static u16 ap_name[2] = { + 0x8A5F, + 0x8A60, + }; + + mDoExt_McaMorfSO* p_modelMorf = i_this->mpModelMorf; + int iVar1 = 0; + + switch (i_this->mMode) { + case 0: + anm_init(i_this, 11, 5.0f, 0, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_ATTACK, -1); + i_this->mMode = 1; + break; + + case 1: + if (!p_modelMorf->isStop()) break; + + anm_init(i_this,10, 0.0f, 2, 1.0f); + i_this->mMode = 2; + i_this->field_0x6b8[0] = 102; + // fallthrough + case 2: + i_this->field_0x6c4 = 2; + i_this->mSound.startCreatureExtraSoundLevel(Z2SE_EN_RDB_ATTACK03, 0, -1); + i_this->enemy.current.angle.y += 7000; + i_this->enemy.shape_angle.y = i_this->enemy.current.angle.y; + i_this->field_0x6e4 = 5.0f; + i_this->field_0x6e8 = i_this->mAngleToPlayer + (u16)-0x8000; + iVar1 = 1; + if (i_this->field_0x6b8[0] == 0) { + anm_init(i_this, 9, 0.0f, 0, 1.0f); + i_this->mMode = 3; + } + break; + + case 3: + if (!p_modelMorf->isStop()) break; + + i_this->mAction = 1; + i_this->mMode = 0; + break; + } + + cLib_addCalc0(&i_this->enemy.speedF, 1.0f, 3.0f); + u8 i_alpha; + f32 i_ratio; + _GXColor i_effPrim, i_effEnv; + if (iVar1 != 0 && getPolyColor(i_this->mAcch.m_gnd, 0, &i_effPrim, &i_effEnv, &i_alpha, &i_ratio) != 0) { + cXyz i_scale(1.55f, 1.55f, 1.55f); + for (int i = 0; i <= 1; i++) { + if (i == 0) { + i_this->field_0xfd0[i] = dComIfGp_particle_setColor(i_this->field_0xfd0[i], ap_name[i], &i_this->enemy.current.pos, &i_this->enemy.tevStr, + &i_effPrim, &i_effEnv, i_ratio, i_alpha, &i_this->enemy.shape_angle, + &i_scale, NULL, -1, NULL); + } else { + i_this->field_0xfd0[i] = dComIfGp_particle_set(i_this->field_0xfd0[i], ap_name[i], + &i_this->enemy.current.pos, &i_this->enemy.shape_angle, &i_scale); + } + } + } +} + +/* 80766188-80766294 0011A8 010C+00 1/1 0/0 0/0 .text e_rdb_defence__FP11e_rdb_class */ +static int e_rdb_defence(e_rdb_class* i_this) { + i_this->field_0x6c6 = 1; + i_this->field_0x6c0 = 3; + int frame = i_this->mpModelMorf->getFrame(); + switch (i_this->mMode) { + case 0: + if (i_this->mAnm != 25) { + anm_init(i_this, 25, 3.0f, 0, 1.0f); + } else { + if (frame > 15) { + i_this->mpModelMorf->setFrame(0.0f); + } + } + + i_this->mMode = 1; + break; + + case 1: + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = 1; + i_this->mMode = 0; + } + break; + + } + + cLib_addCalc0(&i_this->enemy.speedF, 1.0f, 3.0f); + i_this->field_0x6c8 = 1; + + return 1; +} + +/* 80766294-807665B4 0012B4 0320+00 1/1 0/0 0/0 .text e_rdb_damage__FP11e_rdb_class */ +static void e_rdb_damage(e_rdb_class* i_this) { + int frame = i_this->mpModelMorf->getFrame(); + int iVar1; + switch (i_this->mMode) { + case 0: + iVar1 = cM_rndF(4.99f); + if (iVar1 == 0) { + anm_init(i_this, 14, 2.0f, 0, 1.0f); + } else if (iVar1 == 1) { + anm_init(i_this, 15, 2.0f, 0, 1.0f); + } else if (iVar1 == 2) { + anm_init(i_this, 16, 2.0f, 0, 1.0f); + } else if (iVar1 == 3) { + anm_init(i_this, 12, 2.0f, 0, 1.0f); + } else if (iVar1 == 4) { + anm_init(i_this, 13, 2.0f, 0, 1.0f); + } + + i_this->mMode = 1; + break; + + case 1: + if (i_this->field_0x6b8[3] != 0) { + i_this->enemy.onHeadLockFlg(); + } + + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = 1; + i_this->mMode = 0; + i_this->field_0xfcd = 0; + } + break; + + case 10: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 19, 5.0f, 2, 1.0f); + i_this->field_0x6b8[0] = 60; + i_this->mMode = 11; + } + break; + + case 11: + if (i_this->field_0x6b8[0] == 0) { + i_this->field_0x6c0 = 50; + if (i_this->field_0xfcc >= 2 && strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + i_this->mAction = 4; + i_this->mMode = 0; + } else { + anm_init(i_this, 18, 5.0f, 0, 1.0f); + i_this->mMode = 12; + } + } + break; + + case 12: + if (frame >= 25 && frame <= 35) { + cLib_addCalcAngleS2(&i_this->enemy.current.angle.y, i_this->mAngleToPlayer, 2, 0x1000); + } + + if (frame >= 35 && frame <= 42) { + i_this->field_0x6c4 = 1; + } + + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = 1; + i_this->mMode = 0; + i_this->field_0x6c0 = 10; + } + } + + cLib_addCalc0(&i_this->enemy.speedF, 1.0f, 3.0f); +} + +/* 807665B4-80766A1C 0015D4 0468+00 2/1 0/0 0/0 .text e_rdb_end__FP11e_rdb_class */ +static void e_rdb_end(e_rdb_class* i_this) { + // NONMATCHING + fopAc_ac_c* player = dComIfGp_getPlayer(0); + e_wb_class* actor = (e_wb_class*)fopAcM_SearchByName(PROC_E_WB); + int frame = i_this->mpModelMorf->getFrame(); + cXyz sp40; + f32 fVar1 = 0.0f; + + switch(i_this->mMode) { + case 0: + anm_init(i_this, 20, 2.0f, 0, 1.0f); + i_this->mMode = 1; + if (actor != NULL) { + actor->field_0x169e = 60; + } + break; + + case 1: + if (frame == 3) { + PSMTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(15), *calc_mtx); + mtx_to_posAngle(*calc_mtx, &i_this->field_0x684, &i_this->field_0x69c); + i_this->field_0x680 = 2; + cMtx_YrotS(*calc_mtx, i_this->enemy.shape_angle.y); + sp40.x = 10.0f; + sp40.y = 25.0f; + sp40.z = -10.0f; + MtxPosition(&sp40, &i_this->field_0x690); + i_this->field_0x6a4 = 200; + i_this->field_0x6a2 = 700; + } + + if (frame == 141) { + fopAcM_effSmokeSet1(&i_this->field_0xfd0[0], &i_this->field_0xfd0[1], &i_this->enemy.eyePos, &i_this->enemy.shape_angle, 2.5f, &i_this->enemy.tevStr, 1); + dComIfGp_getVibration().StartShock(2, 31, cXyz(0.0f, 1.0f, 0.0f)); + i_this->mSound.startCreatureSound(Z2SE_CM_BODYFALL_L, 0, -1); + } + + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 22, 2.0f, 2, 1.0f); + i_this->mMode = 2; + } + break; + + case 3: + anm_init(i_this, 21, 5.0f, 0, 1.0f); + i_this->mMode = 4; + break; + + case 4: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 23, 3.0f, 2, 1.0f); + i_this->mMode = 5; + } + break; + + case 5: + fVar1 = 5.0f; + break; + + case 10: + if ((((actor->mActionID == 102 && actor->speedF > 40.0f) && player->current.pos.x > 1470.0f && player->current.pos.x < 2130.0f)) && + ((player->current.pos.z < 200.0f) && (player->shape_angle.y > 0x7000 || player->shape_angle.y < -0x7000))) { + actor->field_0x169e = 80; + i_this->mMode = 11; + } + // fallthrough + case 11: + i_this->field_0x6c0 = 10; + i_this->enemy.current.pos.y = i_this->enemy.home.pos.y + 5000.0f; + i_this->enemy.speed.y = 0.0f; + i_this->field_0xfcf = 2; + fopAcM_OffStatus(&i_this->enemy, 0x100); + break; + + case 20: + anm_init(i_this, 26, 2.0f, 0, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_LV9_END01, -1); + i_this->mMode = 21; + i_this->mDemoMode = 10; + break; + + case 21: + if (frame == 12) { + i_this->field_0x680 = 0; + } + + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 27, 3.0f, 0, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_LV9_END02, -1); + i_this->mMode = 22; + } + break; + + case 22: + if (frame == 50) { + i_this->field_0x1104 = 1; + } + } + + cLib_addCalc2(&i_this->enemy.speedF, fVar1, 1.0f, 3.0f); + +} + +/* 80766A1C-80766DB4 001A3C 0398+00 2/1 0/0 0/0 .text e_rdb_start__FP11e_rdb_class */ +static void e_rdb_start(e_rdb_class* i_this) { + // NONMATCHING + int frame = i_this->mpModelMorf->getFrame(); + f32 fVar1 = 0.0f; + i_this->field_0x6c0 = 3; + + switch(i_this->mMode) { + case 0: + anm_init(i_this, 69, 10.0f, 2, 1.0f); + i_this->mMode = 1; + break; + + case 2: + i_this->field_0xfcf = 0; + if (i_this->field_0x6b8[0] == 0) { + anm_init(i_this, 70, 10.0f, 2, 1.0f); + i_this->mMode = 3; + } + break; + + case 3: + fVar1 = 3.0f; + break; + + case 4: + anm_init(i_this, 31, 10.0f, 0, 1.0f); + i_this->mMode = 5; + i_this->field_0x6d8 = 3; + break; + + case 5: + if ((frame >= 128 && frame <= 142) || (frame >= 166 && frame <= 175)) { + fVar1 = 10.0f; + } + + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 69, 10.0f,2, 1.0f); + i_this->mMode = 6; + } + break; + + case 7: + i_this->mAction = 2; + i_this->mMode = 0; + break; + + case 10: + i_this->mMode = 11; + break; + + case 11: + i_this->enemy.current.pos.y = i_this->enemy.home.pos.y + 20000.0f; + i_this->enemy.speed.y = 0.0f; + + if (fopAcM_searchPlayerDistanceXZ(&i_this->enemy) < 500.0f) { + i_this->mMode = 12; + anm_init(i_this, 29, fVar1, 0, 1.0f); + i_this->mSound.startCreatureSound(Z2SE_EN_RDB_LV9_OP, 0, -1); + i_this->mDemoMode = 1; + i_this->enemy.current.pos.y = i_this->enemy.home.pos.y + 2000.0f; + } + break; + + case 12: + if (i_this->mAcch.ChkGroundHit()) { + anm_init(i_this, 30, 0.0f, 0, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_LV9_OP, -1); + i_this->mMode = 13; + dComIfGp_getVibration().StartShock(8, 79, cXyz(0.0f, 1.0f, 0.0f)); + + mDoAud_seStart(Z2SE_OBJ_FM_DIRTFALL, 0, 0, 0); + i_this->mSound.startCreatureSound(Z2SE_EN_FM_DOWN, 0, -1); + fopAcM_effSmokeSet1(&i_this->field_0xfd0[0], &i_this->field_0xfd0[1], &i_this->enemy.current.pos, &i_this->enemy.shape_angle, 3.5f, &i_this->enemy.tevStr, 1); + } + break; + + case 13: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 69, 5.0f, 2, 1.0f); + } + } + + i_this->enemy.speedF = fVar1; +} + +/* 80766DB4-80767294 001DD4 04E0+00 1/1 0/0 0/0 .text damage_check__FP11e_rdb_class */ +static void damage_check(e_rdb_class* i_this) { + // NONMATCHING + fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->enemy; + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + if (i_this->field_0x6c2 == 0 && i_this->field_0xe64.ChkTgHit() != 0 && i_this->field_0xe64.ChkTgShield() != 0) { + def_se_set(&i_this->mSound, i_this->field_0xe64.GetTgHitObj(), 40, NULL); + i_this->field_0x6c2 = 8; + i_this->field_0x6c0 = 8; + i_this->field_0x6e4 = 12.0f; + i_this->field_0x6e8 = a_this->shape_angle.y; + } + + i_this->mStts.Move(); + + u32 i_soundID = 0; + s8 bVar2 = 0; + if (i_this->field_0x6c0 == 0) { + for (int i = 0; i <= 2; i = i + 1) { + if (i_this->field_0x944[i].ChkTgHit() != 0) { + i_this->mAtInfo.mpCollider = i_this->field_0x944[i].GetTgHitObj(); + cc_at_check(&i_this->enemy, &i_this->mAtInfo); + OS_REPORT("E_rdb HP %d\n", i_this->health); + if (i_this->mAtInfo.mAttackPower != 0) { + cXyz sp2c(1.0f, 1.0f, 1.0f); + u16 uVar1; + if (i_this->mAtInfo.mHitStatus != 0) { + uVar1 = 3; + } else { + uVar1 = 1; + } + + cXyz sp38, sp44; + cMtx_YrotS(*calc_mtx, i_this->mAngleToPlayer); + if (i_this->mAnm == 17 || i_this->mAnm == 19) { + sp44.x = 0.0f; + sp44.y = 120.0f; + sp44.z = 190.0f; + MtxPosition(&sp44, &sp38); + sp38 += a_this->current.pos; + } else if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_HEAD_JUMP) { + sp38 = a_this->eyePos; + sp38.y += 100.0f; + } else { + sp44.x = 0.0f; + sp44.y = 150.0f; + sp44.z = 100.0f; + MtxPosition(&sp44, &sp38); + sp38 += a_this->current.pos; + } + + dComIfGp_setHitMark(uVar1, a_this, &sp38, NULL, &sp2c, 0); + if (a_this->health <= 0) { + bVar2 = 1; + break; + } + } + + i_this->field_0x6ec |= i_this->mAtInfo.mHitBit; + s8 bVar1 = 0; + if (i_this->field_0x6c7 != 0) { + i_this->field_0x6c7 = 0; + } + + if (player->getCutType() == daPy_py_c::CUT_TYPE_JUMP && player->checkCutJumpCancelTurn()) { + i_this->field_0x6c0 = 3; + i_this->field_0x6c7 = 1; + } else { + i_this->field_0x6c0 = 6; + } + + if ((i_this->mAction != 6 || i_this->mMode < 10) && (daPy_getPlayerActorClass()->getCutCount() >= 4 || bVar1)) { + int iVar1; + if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + iVar1 = 6; + } else { + iVar1 = 4; + } + + if (i_this->field_0xfcc >= iVar1) { + bVar2 = 1; + } else { + anm_init(i_this, 17, 5.0f, 0, 1.0f); + i_this->mAction = 6; + i_this->mMode = 10; + i_this->field_0x6c0 = 20; + i_this->field_0xfcc++; + i_soundID = Z2SE_EN_RDB_V_DAMAGE; + } + } else if (i_this->mAction == 6 && i_this->mMode >= 10) { + i_this->field_0x6ce = 15; + if ((s16)(a_this->shape_angle.y - i_this->mAngleToPlayer) > 0) { + i_this->field_0x6d4 = 1.0f; + } else { + i_this->field_0x6d4 = -1.0f; + } + i_soundID = Z2SE_EN_RDB_V_DAMAGE; + } else { + i_this->mAction = 6; + i_this->mMode = 0; + if (i_this->mAtInfo.mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK) != 0) { + i_this->field_0x6b8[4] = 30; + i_this->field_0x6c0 = 30; + i_soundID = Z2SE_EN_RDB_V_AWAKE; + } else { + i_this->field_0x6b8[4] = 0; + i_soundID = Z2SE_EN_RDB_V_DAMAGE; + } + + i_this->field_0xfcd++; + if (i_this->field_0xfcd >= 4) { + i_this->field_0x6c0 = 60; + } + } + + if (a_this->health <= 1) { + i_this->field_0x944[i].SetTgHitMark((CcG_Tg_HitMark )3); + } + + break; + } + } + } + + if (bVar2 != 0) { + i_this->mAction = 7; + i_this->field_0xfcd = 0; + if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + i_this->mMode = 20; + } else { + i_this->mMode = 0; + } + + i_this->field_0x6c0 = 1000; + i_soundID = Z2SE_EN_RDB_V_ED_DEMO_DOWN; + + Z2GetAudioMgr()->subBgmStop(); + } + + if (i_soundID != 0) { + i_this->mSound.startCreatureVoice(i_soundID, -1); + } +} + +/* 80767294-80767428 0022B4 0194+00 1/1 0/0 0/0 .text shot_s_sub__FPvPv */ +static void* shot_s_sub(void* i_actor, void* i_data) { + if ((fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_ARROW) && (fopAcM_GetParam(i_actor) == 1 || fopAcM_GetParam(i_actor) == 2)) { + cXyz sp28 = static_cast(i_data)->current.pos - static_cast(i_actor)->current.pos; + if (sp28.abs() < 1000.0f) { + return i_actor; + } + } + + return NULL; +} + +UNK_REL_BSS; + +/* 8076BA04-8076BA08 -00001 0004+00 2/2 0/0 0/0 .bss None */ +/* 8076BA04 0001+00 data_8076BA04 @1009 */ +/* 8076BA05 0003+00 data_8076BA05 None */ +// static u8 struct_8076BA04[4]; + +static u8 lbl_224_bss_45; + +/* 8076BA14-8076BA20 000054 000C+00 3/4 0/0 0/0 .bss l_HIO */ +static daE_RDB_HIO_c l_HIO; + +/* 80767428-80767CD0 002448 08A8+00 2/1 0/0 0/0 .text action__FP11e_rdb_class */ +static void action(e_rdb_class* i_this) { + // NONMATCHING + fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->enemy; + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + cXyz sp44, sp50; + i_this->field_0x6c8 = 0; + i_this->mDistToPlayer = fopAcM_searchPlayerDistance(a_this); + i_this->mAngleToPlayer = fopAcM_searchPlayerAngleY(a_this); + + damage_check(i_this); + s8 sVar1 = 0; + s8 sVar2 = 1; + char sVar3 = 1; + + switch (i_this->mAction) { + case ACTION_START: + e_rdb_start(i_this); + sVar2 = 0; + sVar3 = 0; + break; + + case ACTION_WAIT: + e_rdb_wait(i_this); + sVar1 = 1; + break; + + case ACTION_FIGHT: + e_rdb_fight(i_this); + sVar1 = 1; + break; + + case ACTION_ATTACK: + e_rdb_attack(i_this); + sVar1 = 1; + sVar3 = 0; + break; + + case ACTION_SPIN_ATTACK: + e_rdb_spin_attack(i_this); + sVar1 = 1; + sVar3 = 0; + break; + + case ACTION_DEFENCE: + sVar3 = e_rdb_defence(i_this); + sVar1 = 1; + break; + + case ACTION_DAMAGE: + e_rdb_damage(i_this); + sVar3 = 0; + break; + + case ACTION_END: + e_rdb_end(i_this); + sVar3 = 0; + } + + if (sVar1) { + i_this->mSound.setLinkSearch(true); + } else { + i_this->mSound.setLinkSearch(false); + } + + if (sVar2) { + fopAcM_OnStatus(a_this, 0); + a_this->attention_info.flags = 4; + } else { + fopAcM_OffStatus(a_this, 0); + a_this->attention_info.flags = 0; + } + + if (sVar3) { + int iVar1 = 0; + if (daPy_getPlayerActorClass()->checkHookshotShootReturnMode() && !daPy_getPlayerActorClass()->checkHookshotReturnMode()) { + iVar1 = 1; + } else if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0 && fpcM_Search(shot_s_sub,i_this) != NULL) { + iVar1 = 1; + } + + if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + cXyz* ironBallCenterPos = player->getIronBallCenterPos(); + if ((player->current.pos - *ironBallCenterPos).abs() > 200.0f && (a_this->current.pos - *ironBallCenterPos).abs() < 500.0f && + (dComIfGp_checkPlayerStatus0(0, 0x400) == 0) && (!daPy_getPlayerActorClass()->checkIronBallReturn()) && + (!daPy_getPlayerActorClass()->checkIronBallGroundStop())) { + iVar1 = 2; + } + } + + int bVar1 = 0; + if ((strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0 && player->getCutType() == daPy_py_c::CUT_TYPE_GUARD_ATTACK) || + (daPy_getPlayerActorClass()->getCutAtFlg() != 0 && player->getCutType() != daPy_py_c::CUT_TYPE_HEAD_JUMP)) { + bVar1 = 1; + } + + if ((iVar1 != 0 && player_way_check(i_this) != 0) || ((i_this->mDistToPlayer < 500.0f && player_way_check(i_this) != 0 && bVar1) && + (player->checkNowWolf() || (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) || (i_this->field_0x6ec & cc_pl_cut_bit_get()) != 0))) { + i_this->mAction = ACTION_DEFENCE; + i_this->mMode = 0; + i_this->field_0x6c0 = 3; + } + } + + cLib_addCalcAngleS2(&a_this->shape_angle.y, a_this->current.angle.y, 2, 0x1000); + cLib_addCalcAngleS2(&a_this->shape_angle.x, a_this->current.angle.x, 2, 0x1000); + cLib_addCalcAngleS2(&a_this->shape_angle.z, a_this->current.angle.z, 2, 0x1000); + a_this->gravity = -5.0f; + + cMtx_YrotS(*calc_mtx, a_this->current.angle.y); + sp44.x = 0.0f; + sp44.y = 0.0f; + sp44.z = a_this->speedF * (l_HIO.field_0x8 / 1.44f); + MtxPosition(&sp44, &sp50); + a_this->speed.x = sp50.x; + a_this->speed.z = sp50.z; + a_this->current.pos += a_this->speed; + a_this->speed.y += a_this->gravity; + if (a_this->speed.y < -80.0f) { + a_this->speed.y = -80.0f; + } + + if (i_this->field_0x6e4 > 0.1f) { + sp44.x = 0.0f; + sp44.y = 0.0f; + sp44.z = -i_this->field_0x6e4; + cMtx_YrotS(*calc_mtx, i_this->field_0x6e8); + MtxPosition(&sp44, &sp50); + a_this->current.pos += sp50; + cLib_addCalc0(&i_this->field_0x6e4, 1.0f, 3.0f); + } + + s16 sVar5 = 0; + s16 sVar6 = 0; + cXyz sp5c = player->eyePos; + if (i_this->field_0x6c8 != 0) { + sp44 = sp5c - a_this->current.pos; + sp44.y += -150.0f; + sVar5 = cM_atan2s(sp44.x, sp44.z) - a_this->shape_angle.y; + sVar6 = a_this->shape_angle.x + cM_atan2s(sp44.y, JMAFastSqrt(sp44.x * sp44.x + sp44.z * sp44.z)); + + if (sVar5 > 0x3E80) { + sVar5 = 16000; + } else if (sVar5 < -16000) { + sVar5 = -16000; + } + + if (sVar6 > 0x3E80) { + sVar6 = 16000; + } else if (sVar6 < -16000) { + sVar6 = -16000; + } + } + + cLib_addCalcAngleS2(&i_this->field_0x6ca, sVar5, 2, 0x1000); + cLib_addCalcAngleS2(&i_this->field_0x6cc, sVar6, 2, 0x1000); + if (i_this->field_0x6ce != 0) { + i_this->field_0x6ce--; + i_this->field_0x6d0 = i_this->field_0x6ce * cM_ssin(i_this->field_0x6ce * 12000) * 50.0f; + i_this->field_0x6d2 = i_this->field_0x6d4 * (i_this->field_0x6ce * cM_ssin(i_this->field_0x6ce * 5000)) * 600.0f; + } + + cXyz sp68(1.5f, 1.5f, 1.5f); + setMidnaBindEffect(a_this, &i_this->mSound, &a_this->eyePos, &sp68); +} + +/* 80767CD0-80767DB4 002CF0 00E4+00 1/1 0/0 0/0 .text cam_3d_morf__FP11e_rdb_classf */ +static void cam_3d_morf(e_rdb_class* i_this, f32 i_scale) { + cLib_addCalc2(&i_this->mDemoCamCenter.x, i_this->field_0x10d0.x, i_scale, i_this->field_0x10e8.x * i_this->field_0x10f8); + cLib_addCalc2(&i_this->mDemoCamCenter.y, i_this->field_0x10d0.y, i_scale, i_this->field_0x10e8.y * i_this->field_0x10f8); + cLib_addCalc2(&i_this->mDemoCamCenter.z, i_this->field_0x10d0.z, i_scale, i_this->field_0x10e8.z * i_this->field_0x10f8); + cLib_addCalc2(&i_this->mDemoCamEye.x, i_this->field_0x10c4.x, i_scale, i_this->field_0x10dc.x * i_this->field_0x10f8); + cLib_addCalc2(&i_this->mDemoCamEye.y, i_this->field_0x10c4.y, i_scale, i_this->field_0x10dc.y * i_this->field_0x10f8); + cLib_addCalc2(&i_this->mDemoCamEye.z, i_this->field_0x10c4.z, i_scale, i_this->field_0x10dc.z * i_this->field_0x10f8); +} + +/* 80767DB4-80767E54 002DD4 00A0+00 1/1 0/0 0/0 .text cam_spd_set__FP11e_rdb_class */ +static void cam_spd_set(e_rdb_class* i_this) { + i_this->field_0x10dc.x = fabsf(i_this->field_0x10c4.x - i_this->mDemoCamEye.x); + i_this->field_0x10dc.y = fabsf(i_this->field_0x10c4.y - i_this->mDemoCamEye.y); + i_this->field_0x10dc.z = fabsf(i_this->field_0x10c4.z - i_this->mDemoCamEye.z); + i_this->field_0x10e8.x = fabsf(i_this->field_0x10d0.x - i_this->mDemoCamCenter.x); + i_this->field_0x10e8.y = fabsf(i_this->field_0x10d0.y - i_this->mDemoCamCenter.y); + i_this->field_0x10e8.z = fabsf(i_this->field_0x10d0.z - i_this->mDemoCamCenter.z); + i_this->field_0x10f8 = 0.0f; +} + +/* 80767E54-80768B90 002E74 0D3C+00 2/1 0/0 0/0 .text demo_camera__FP11e_rdb_class */ +static void demo_camera(e_rdb_class* i_this) { + // NONMATCHING + fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->enemy; + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + cXyz sp28, sp34, sp40, sp4c; + s8 sVar1 = 0; + + switch (i_this->mDemoMode) { + case 1: + if (!a_this->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(a_this, 2, 0xffff, 0); + a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + return; + } + + camera->mCamera.Stop(); + i_this->mDemoMode = 2; + i_this->field_0x10aa = 0; + i_this->mDemoCamFovy = 55.0f; + camera->mCamera.SetTrimSize(3); + player->changeOriginalDemo(); + dComIfGp_getEvent().startCheckSkipEdge(i_this); + Z2GetAudioMgr()->setDemoName("force_start"); + // fallthrough + case 2: + cMtx_YrotS(*calc_mtx, a_this->shape_angle.y); + sp28.x = 0.0f; + sp28.y = 150.0f; + sp28.z = 330.0f; + MtxPosition(&sp28, &sp40); + sp40.x += a_this->current.pos.x; + sp40.z += a_this->current.pos.z; + sp40.y = 140.0f; + sp4c.x = a_this->current.pos.x; + sp4c.z = a_this->current.pos.z; + sp4c.y = a_this->eyePos.y - 20.0f; + if (i_this->field_0x10aa != 0) { + i_this->mDemoCamCenter = sp4c; + i_this->mDemoCamEye = sp40; + } else { + i_this->mDemoCamEye = sp40; + cLib_addCalc2(&i_this->mDemoCamCenter.x, sp4c.x, 0.2f, 100.0f); + cLib_addCalc2(&i_this->mDemoCamCenter.y, sp4c.y, 0.2f, 100.0f); + cLib_addCalc2(&i_this->mDemoCamCenter.z, sp4c.z, 0.2f, 100.0f); + } + + cMtx_YrotS(*calc_mtx, a_this->shape_angle.y); + sp28.x = 0.0f; + sp28.y = 50.0f; + sp28.z = 600.0f; + MtxPosition(&sp28, &sp34); + sp34.x += a_this->current.pos.x; + sp34.z += a_this->current.pos.z; + sp34.y = 50.0f; + player->setPlayerPosAndAngle(&sp34, i_this->mAngleToPlayer + (u16)-0x8000, 0); + if (i_this->field_0x10aa >= 170) { + if (i_this->field_0x10aa == 170) { + i_this->mMsgFlow.init(a_this, 0x389, 0, NULL); + } + + if (i_this->mMsgFlow.doFlow(a_this, NULL, 0) != 0 && i_this->field_0x10aa >= 0x168) { + i_this->mDemoMode = 3; + i_this->field_0x10aa = 0; + i_this->field_0x10d0.set(-7627.0f, 153.0f, -5371.0f); + i_this->field_0x10c4.set(-7470.0f, 144.0f, -5071.0f); + cam_spd_set(i_this); + } + } + break; + + case 3: + if (i_this->field_0x10aa >= 20) { + cam_3d_morf(i_this, 0.2f); + cLib_addCalc2(&i_this->field_0x10f8, 0.03f, 1.0f, 0.003f); + if (i_this->field_0x10aa == 60) { + player->changeDemoMode(23, 1, 2, 0); + } + + if (i_this->field_0x10aa == 130) { + sVar1 = 1; + i_this->mAction = ACTION_WAIT; + i_this->mMode = 10; + Z2GetAudioMgr()->subBgmStart(Z2BGM_FACE_OFF_BATTLE3); + } + } + break; + + case 10: + if (!a_this->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(a_this, 2, 0xffff, 0); + a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + return; + } + + camera->mCamera.Stop(); + i_this->mDemoMode = 11; + i_this->field_0x10aa = 0; + i_this->mDemoCamFovy = 55.0f; + camera->mCamera.SetTrimSize(3); + + player->changeOriginalDemo(); + a_this->current = a_this->home; + a_this->shape_angle = a_this->current.angle; + Z2GetAudioMgr()->setDemoName("force_start"); + // fallthrough + case 11: + cMtx_YrotS(*calc_mtx, a_this->shape_angle.y); + sp28.x = 50.0f; + sp28.y = 0.0f; + sp28.z = 230.0f; + MtxPosition(&sp28, &sp40); + sp40.x += a_this->current.pos.x; + sp40.z += a_this->current.pos.z; + sp40.y = 220.0f; + if (i_this->field_0x10aa >= 328) { + PSMTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(21), *calc_mtx); + sp28.x = 30.0f; + sp28.y = 20.0f; + sp28.z = 0.0f; + MtxPosition(&sp28, &sp4c); + } else { + sp4c.x = a_this->current.pos.x; + sp4c.z = a_this->current.pos.z; + sp4c.y = a_this->eyePos.y; + if (sp4c.y < 190.0f) { + sp4c.y = 190.0f; + } + } + + if (i_this->field_0x10aa == 0) { + i_this->mDemoCamCenter = sp4c; + i_this->mDemoCamEye = sp40; + } else { + i_this->mDemoCamEye = sp40; + cLib_addCalc2(&i_this->mDemoCamCenter.x, sp4c.x, 0.2f, 10.0f); + cLib_addCalc2(&i_this->mDemoCamCenter.y, sp4c.y, 0.2f, 10.0f); + cLib_addCalc2(&i_this->mDemoCamCenter.z, sp4c.z, 0.2f, 10.0f); + } + + cMtx_YrotS(*calc_mtx, a_this->shape_angle.y); + sp28.x = 0.0f; + sp28.y = 50.0f; + sp28.z = 300.0f; + MtxPosition(&sp28, &sp34); + sp34.x += a_this->current.pos.x; + sp34.z += a_this->current.pos.z; + sp34.y = 50.0f; + player->setPlayerPosAndAngle(&sp34, i_this->mAngleToPlayer + (u16)-0x8000, 0); + + if (i_this->field_0x10aa >= 360) { + if (i_this->field_0x10aa == 360) { + i_this->mMsgFlow.init(a_this, 0x388, 0, NULL); + } + + int iVar1 = 0; + if (i_this->field_0x10aa >= 9000) { + i_this->mMsgFlow.remove(); + iVar1 = 1; + } + + if (i_this->mMsgFlow.doFlow(a_this, NULL, 0) != 0 && i_this->field_0x10aa >= 400) { + iVar1 = 1; + } + + if (iVar1 != 0) { + daPy_getPlayerActorClass()->changeDemoMode(11, 32, 0, 0); + i_this->mDemoMode = 12; + i_this->field_0x10aa = 0; + i_this->field_0xfe5 = 1; + dComIfGs_onTbox(3); + } + } + break; + + case 12: + sp4c.x = player->current.pos.x; + sp4c.y = player->current.pos.y + 145.0f; + sp4c.z = player->current.pos.z; + cLib_addCalc2(&i_this->mDemoCamCenter.x, sp4c.x, 0.2f, 10.0f); + cLib_addCalc2(&i_this->mDemoCamCenter.y, sp4c.y, 0.2f, 10.0f); + cLib_addCalc2(&i_this->mDemoCamCenter.z, sp4c.z, 0.2f, 10.0f); + cLib_addCalc2(&i_this->mDemoCamEye.y, 170.0f, 0.2f, 10.0f); + cLib_addCalc2(&i_this->mDemoCamFovy, 70.0f, 0.05f, 0.25f); + if (i_this->field_0x10aa > 69 && !dMsgObject_isTalkNowCheck()) { + i_this->mDemoMode = 13; + i_this->field_0x10aa = 0; + mDoGph_gInf_c::fadeOut(0.05f, g_blackColor); + i_this->field_0xfe6 = 1; + dComIfGs_offOneZoneSwitch(15, -1); + } + break; + + case 13: + if (i_this->field_0x10aa == 40) { + cXyz sp58(-7080.0f, 50.0f, -6634.0f); + sp28.x = -10008.0f - sp58.x; + sp28.z = -2729.0f - sp58.z; + csXyz i_angle(0, cM_atan2s(sp28.x, sp28.z), 0); + sp58 = a_this->current.pos; + sp58.y += 2000.0f; + fopAcM_create(PROC_E_RD, 12, &sp58, fopAcM_GetRoomNo(a_this), &i_angle, NULL, -1); + sp34.set(-7530.0f, 50.0f, -5451.0f); + player->setPlayerPosAndAngle(&sp34, 0xffffa0c5, 0); + i_this->mDemoCamCenter.set(-7661.0f, 323.0f, -5684.0f); + i_this->mDemoCamEye.set(-7382.0f, 185.0f, -5360.0f); + i_this->mDemoCamFovy = 55.0f; + daPy_getPlayerActorClass()->changeDemoMode(1, 1, 0, 0); + } + + if (i_this->field_0x10aa >= 40) { + e_rd_class* bulblin_p = (e_rd_class*)fopAcM_SearchByName(PROC_E_RD); + if (bulblin_p != NULL) { + a_this->current.pos = bulblin_p->current.pos; + a_this->eyePos = bulblin_p->eyePos; + } + } + + if (i_this->field_0x10aa == 50) { + mDoGph_gInf_c::fadeOut(-0.05f, g_blackColor); + } + + if (i_this->field_0x10aa >= 220) { + if (i_this->field_0x10aa == 220) { + i_this->mMsgFlow.init(a_this, 0x388, 0, NULL); + } + + if (i_this->mMsgFlow.doFlow(a_this, NULL, 0) != 0 && i_this->field_0x10aa >= 300) { + i_this->mDemoMode = 14; + i_this->field_0x10aa = 0; + } + } + break; + + case 14: + if (i_this->field_0x10aa >= 65) { + i_this->field_0x10d0.set(-7738.0f, 185.0f, -5086.0f); + i_this->field_0x10c4.set(-7382.0f, 185.0f, -5360.0f); + cam_spd_set(i_this); + i_this->mDemoMode = 15; + i_this->field_0x10aa = 0; + } + break; + + case 15: + cam_3d_morf(i_this, 0.1f); + cLib_addCalc2(&i_this->field_0x10f8, 0.05f, 1.0f, 0.005f); + if (i_this->field_0x10aa >= 40) { + cLib_addCalc2(&i_this->mDemoCamFovy, 25.0f, 0.05f, 0.5f); + } + + if (i_this->field_0x10aa == 179) { + player->setPlayerPosAndAngle(&player->current.pos, 0xffffd952, 0); + } + + if (i_this->field_0x10aa == 180) { + sVar1 = 1; + fopAcM_delete(a_this); + fopAcM_delete(fopAcM_SearchByName(PROC_E_RD)); + fopAcM_delete(fopAcM_SearchByName(PROC_E_WB)); + dComIfGs_onStageMiddleBoss(); + int swBit = fopAcM_GetParam(a_this) >> 24; + if (swBit != 0xFF) { + dComIfGs_onSwitch(swBit, fopAcM_GetRoomNo(a_this)); + } + } + } + + if (i_this->mDemoMode > 0 && i_this->mDemoMode < 10) { + if (dComIfGp_getEvent().checkSkipEdge()) { + sVar1 = 1; + i_this->mAction = ACTION_WAIT; + i_this->mMode = 10; + Z2GetAudioMgr()->subBgmStart(Z2BGM_FACE_OFF_BATTLE3); + } + } + + if (sVar1) { + Z2GetAudioMgr()->setDemoName("force_end"); + camera->mCamera.Reset(i_this->mDemoCamCenter, i_this->mDemoCamEye); + camera->mCamera.Start(); + camera->mCamera.SetTrimSize(0); + dComIfGp_event_reset(); + daPy_getPlayerActorClass()->cancelOriginalDemo(); + i_this->mDemoMode = 0; + } + + if (i_this->mDemoMode > 0) { + cXyz i_center = i_this->mDemoCamCenter; + cXyz i_eye = i_this->mDemoCamEye; + camera->mCamera.Set(i_center, i_eye, i_this->mDemoCamFovy, 0); + i_this->field_0x10aa++; + if (i_this->field_0x10aa > 10000) { + i_this->field_0x10aa = 10000; + } + } +} + +/* 80768B90-80769324 003BB0 0794+00 1/1 0/0 0/0 .text anm_se_set__FP11e_rdb_class */ +static void anm_se_set(e_rdb_class* i_this) { + if (i_this->mAnm == 70) { + if (i_this->mpModelMorf->checkFrame(29.0f) || i_this->mpModelMorf->checkFrame(59.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_RDB_FOOTNOTE, 0, -1); + } + } else if (i_this->mAnm == 64) { + if (i_this->mpModelMorf->checkFrame(2.0f) || i_this->mpModelMorf->checkFrame(17.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_RDB_FOOTNOTE, 0, -1); + } + } else if (i_this->mAnm == 68) { + if (i_this->mpModelMorf->checkFrame(15.0f) || i_this->mpModelMorf->checkFrame(35.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_RDB_FOOTNOTE, 0, -1); + } + } else if (i_this->mAnm == 7) { + if (i_this->mpModelMorf->checkFrame(0.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_ATTACK, -1); + } else if (i_this->mpModelMorf->checkFrame(58.0f)) { + i_this->mSound.startCreatureExtraSound(Z2SE_EN_RDB_ATTACK01, 0, -1); + } + } else if (i_this->mAnm == 8) { + if (i_this->mpModelMorf->checkFrame(0.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_ATTACK, -1); + } else if (i_this->mpModelMorf->checkFrame(61.0f)) { + i_this->mSound.startCreatureExtraSound(Z2SE_EN_RDB_ATTACK02, 0, -1); + } else if (i_this->mpModelMorf->checkFrame(110.0f)) { + i_this->mSound.startCreatureExtraSound(Z2SE_EN_RDB_ATTACK02B, 0, -1); + } + } else if (i_this->mAnm == 9) { + if (i_this->mpModelMorf->checkFrame(4.0f) || i_this->mpModelMorf->checkFrame(50.5f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_RDB_FOOTNOTE, 0, -1); + } + } else if (i_this->mAnm == 17) { + if (i_this->mpModelMorf->checkFrame(0.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_DAMAGE, -1); + } else if (i_this->mpModelMorf->checkFrame(31.0f)) { + i_this->mSound.startCreatureSound(Z2SE_CM_BODYFALL_M, 0, -1); + } + } else if (i_this->mAnm == 18) { + if (i_this->mpModelMorf->checkFrame(0.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_ED_DEMO_DOWNUP, -1); + } else if (i_this->mpModelMorf->checkFrame(35.0f)) { + i_this->mSound.startCreatureExtraSound(Z2SE_EN_RDB_ATTACK02, 0, -1); + } else if (i_this->mpModelMorf->checkFrame(52.0f)) { + i_this->mSound.startCreatureExtraSound(Z2SE_EN_RDB_ATTACK02B, 0, -1); + } else if (i_this->mpModelMorf->checkFrame(77.0f)) { + i_this->mSound.startCreatureSound(Z2SE_CM_BODYFALL_M, 0, -1); + } + } else if (i_this->mAnm == 32) { + if (i_this->mpModelMorf->checkFrame(11.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_PUSH, -1); + } + } else if (i_this->mAnm == 31) { + if (i_this->mpModelMorf->checkFrame(0.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_OP_DEMO_SWING, -1); + i_this->mSound.startCreatureExtraSound(Z2SE_EN_RDB_OP_DEMO_SWING, 0, -1); + } else if ((i_this->mpModelMorf->checkFrame(83.0f) || i_this->mpModelMorf->checkFrame(124.0f)) || + ((i_this->mpModelMorf->checkFrame(142.0f) || i_this->mpModelMorf->checkFrame(176.0f)))) { + i_this->mSound.startCreatureSound(Z2SE_EN_RDB_FOOTNOTE, 0, -1); + } + } else if (i_this->mAnm == 21) { + if (i_this->mpModelMorf->checkFrame(11.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_ED_DEMO_DOWNUP, -1); + } + } else if (i_this->mAnm == 23) { + if (i_this->mpModelMorf->checkFrame(13.0f) || i_this->mpModelMorf->checkFrame(39.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_RDB_V_ED_DEMO_WALK, -1); + } else if (i_this->mpModelMorf->checkFrame(12.0f) || ((i_this->mpModelMorf->checkFrame(18.0f) || i_this->mpModelMorf->checkFrame(36.0f)) || + i_this->mpModelMorf->checkFrame(43.0f))) { + i_this->mSound.startCreatureSound(Z2SE_EN_RDB_ED_FOOTNOTE, 0, -1); + } + } +} + +static s8 gap_05_0000006C_bss; + +/* 8076BB44-8076BC68 000184 0120+04 0/1 0/0 0/0 .bss fire_eff_pos$5931 */ +// static cXyz fire_eff_pos[24]; + +/* 80769324-8076A418 004344 10F4+00 2/1 0/0 0/0 .text daE_RDB_Execute__FP11e_rdb_class */ +static int daE_RDB_Execute(e_rdb_class* i_this) { + // NONMATCHING + fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->enemy; + if (i_this->field_0xfe6 != 0) { + demo_camera(i_this); + return 1; + } else { + if (cDmrNowMidnaTalk()) { + return 1; + } + + cXyz sp64, sp70, sp7c; + + i_this->field_0x67c++; + + for (int i = 0; i < 4; i++) { + if (i_this->field_0x6b8[i] != 0) { + i_this->field_0x6b8[i]--; + } + } + + if (i_this->field_0x6c0 != 0) { + i_this->field_0x6c0--; + } + + if (i_this->field_0x6c2 != 0) { + i_this->field_0x6c2--; + } + + a_this->offHeadLockFlg(); + action(i_this); + + i_this->mAcch.CrrPos(dComIfG_Bgsp()); + mDoMtx_stack_c::transS(a_this->current.pos.x, a_this->current.pos.y, a_this->current.pos.z); + mDoMtx_stack_c::YrotM(a_this->shape_angle.y); + mDoMtx_stack_c::XrotM(a_this->shape_angle.x); + mDoMtx_stack_c::ZrotM(a_this->shape_angle.z); + f32 fVar1 = l_HIO.field_0x8 * a_this->scale.x; + mDoMtx_stack_c::scaleM(fVar1, fVar1, fVar1); + + J3DModel* model = i_this->mpModelMorf->getModel(); + model->setBaseTRMtx(mDoMtx_stack_c::get()); + anm_se_set(i_this); + i_this->mpModelMorf->play(0, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this))); + i_this->mpModelMorf->modelCalc(); + PSMTXCopy(model->getAnmMtx(6), *calc_mtx); + sp64.set(20.0f, 0.0f, 0.0f); + MtxPosition(&sp64, &a_this->eyePos); + a_this->attention_info.position = a_this->eyePos; + a_this->attention_info.position.y += 30.0f; + + cXyz sp88(0.0f, 0.0f, 0.0f); + if (i_this->field_0x6c0 != 0) { + sp88.set(-20000.0f, 12000.0f, 30000.0f); + } + i_this->field_0x944[0].SetC(a_this->eyePos + sp88); + i_this->field_0x944[0].SetR(35.0f); + + sp64.set(0.0f, 0.0f, 0.0f); + PSMTXCopy(model->getAnmMtx(2), *calc_mtx); + MtxPosition(&sp64, &sp70); + i_this->field_0x944[1].SetC(sp70 + sp88); + i_this->field_0x944[1].SetR(l_HIO.field_0x8 * 40.0f); + + sp64.set(0.0f, 0.0f, 0.0f); + PSMTXCopy(model->getAnmMtx(22), *calc_mtx); + MtxPosition(&sp64, &sp70); + i_this->field_0x944[2].SetC(sp70 + sp88); + i_this->field_0x944[2].SetR(l_HIO.field_0x8 * 50.0f); + + for (int i = 0; i <= 2; i++) { + dComIfG_Ccsp()->Set(&i_this->field_0x944[i]); + } + + cMtx_YrotS(*calc_mtx, a_this->shape_angle.y); + sp64.x = 0.0f; + sp64.y = 0.0f; + sp64.z = 40.0f; + MtxPosition(&sp64, &sp70); + sp70 += a_this->current.pos; + + i_this->field_0xcec.SetC(sp70); + i_this->field_0xcec.SetR(100.0f); + i_this->field_0xcec.SetH(200.0f); + dComIfG_Ccsp()->Set(&i_this->field_0xcec); + + if (i_this->field_0x680 == 1) { + PSMTXCopy(model->getAnmMtx(15), *calc_mtx); + i_this->field_0x678->setBaseTRMtx(*calc_mtx); + } else if (i_this->field_0x680 >= 2) { + i_this->field_0x684 += i_this->field_0x690; + i_this->field_0x690.y -= 5.0f; + if (i_this->field_0x684.y <= 5.0f) { + i_this->field_0x684.y = 5.0f; + if (i_this->field_0x680 == 2) { + i_this->field_0x690.x *= 0.2f; + i_this->field_0x690.y = 20.0f; + i_this->field_0x690.z *= 0.2f; + i_this->field_0x680 = 3; + i_this->field_0x6a4 = 0; + i_this->field_0x6a2 = 0; + } else { + i_this->field_0x690.x = 0.0f; + i_this->field_0x690.y = 0.0f; + i_this->field_0x690.z = 0.0f; + } + + i_this->field_0x69c.x += i_this->field_0x6a2; + if (i_this->field_0x69c.x >= 0x4000) { + if (i_this->field_0x680 == 3) { + i_this->field_0x680 = 4; + i_this->field_0x69c.x = 0x4000; + i_this->field_0x6a2 = -0x600; + i_this->field_0x6a8 = 30; + i_this->mSound.startCreatureSound(Z2SE_OBJ_KEYLOCK_BOUND, 0, -1); + sp70.set(2834.0f, 0.0f, 993.0f); + fopAcM_effSmokeSet1(&i_this->field_0xfd0[0], &i_this->field_0xfd0[1], &sp70, NULL, 1.5f, &a_this->tevStr, 1); + i_this->field_0xfc0 = i_this->field_0x684; + i_this->mSound.startCreatureExtraSound(Z2SE_EN_RDB_DEMO_ONO_LAND, 0, -1); + } else if (i_this->field_0x680 == 4) { + i_this->field_0x680 = 5; + i_this->field_0x69c.x = 0x4000; + i_this->field_0x6a2 = -0x300; + } else { + i_this->field_0x69c.x = 0x4000; + } + } + + cLib_addCalcAngleS2(&i_this->field_0x6a2, 0x800, 1, 0x100); + } else { + i_this->field_0x69c.y += i_this->field_0x6a4; + i_this->field_0x69c.x += i_this->field_0x6a2; + } + + mDoMtx_stack_c::transS(i_this->field_0x684.x, i_this->field_0x684.y, i_this->field_0x684.z); + mDoMtx_stack_c::YrotM(i_this->field_0x69c.y); + mDoMtx_stack_c::XrotM(i_this->field_0x69c.x); + mDoMtx_stack_c::ZrotM(i_this->field_0x69c.z); + mDoMtx_stack_c::transM(0.0f, -80.0f, 0.0f); + + s16 sVar1 = 0; + if (i_this->field_0x6a8 != 0) { + // int iVar1 = i_this->field_0x6a8 * cM_ssin(i_this->field_0x6a8 * 7000) * 200.0f; + sVar1 = i_this->field_0x6a8 * cM_ssin(i_this->field_0x6a8 * 7000) * 200.0f; + i_this->field_0x6a8--; + } + + mDoMtx_stack_c::YrotM(sVar1); + mDoMtx_stack_c::scaleM(fVar1, fVar1, fVar1); + i_this->field_0x678->setBaseTRMtx(mDoMtx_stack_c::get()); + } + + if (i_this->field_0x6c4 != 0) { + sp64.set(0.0f, -150.0f, 0.0f); + MtxPosition(&sp64, &sp70); + i_this->field_0xfc0 = sp70; + + if (i_this->field_0x6c5 == 0) { + i_this->field_0x6c5 = 1; + i_this->field_0xe64.StartCAt(sp70); + } else { + i_this->field_0xe64.MoveCAt(sp70); + } + + i_this->field_0xe64.SetR(l_HIO.field_0x8 * 100.0f); + i_this->field_0x6c4 = 0; + i_this->field_0xe64.OnAtSetBit(); + i_this->field_0x6c6 = 2; + } else { + i_this->field_0x6c5 = 0; + i_this->field_0xe64.OffAtSetBit(); + } + + if (i_this->field_0x6c6 != 0) { + if (i_this->field_0x6c6 == 1) { + sp64.set(0.0f, -60.0f, 10.0f); + MtxPosition(&sp64, &sp70); + i_this->field_0xe64.SetC(sp70); + i_this->field_0xe64.SetR(l_HIO.field_0x8 * 50.0f); + } + + i_this->field_0x6c6 = 0; + i_this->field_0xe64.OnTgSetBit(); + } else { + sp70.x += -10000.0f; + i_this->field_0xe64.SetC(sp70); + } + dComIfG_Ccsp()->Set(&i_this->field_0xe64); + + demo_camera(i_this); + + if (strcmp(dComIfGp_getStartStageName(), "T_DESER") == 0 || strcmp(dComIfGp_getStartStageName(), "F_SP118") == 0) { + f32 fVar2 = 0.0f; + f32 fVar3 = 0.05f; + s8 sVar2 = i_this->field_0x6d8; + if (sVar2 == 0) { + dKy_custom_colset(0, 8, i_this->mBlend); + } else if (sVar2 == 1) { + dKy_custom_colset(0, 8, i_this->mBlend); + fVar2 = 1.0f; + fVar3 = 0.1f; + } else if (sVar2 == 2) { + i_this->mBlend = 0.0f; + dKy_custom_colset(9, 8, i_this->mBlend); + } else if (sVar2 == 3) { + dKy_custom_colset(9, 10, i_this->mBlend); + fVar2 = 1.0f; + fVar3 = 0.02f; + } else if (sVar2 == 4) { + dKy_custom_colset(11, 10, i_this->mBlend); + fVar2 = 0.0f; + fVar3 = 0.019999999552965164f; + } else { + fVar2 = 0.0f; + } + + cLib_addCalc2(&i_this->mBlend, fVar2, 1.0f, fVar3); + } + + if (gap_05_0000006C_bss == 0) { + static cXyz fire_eff_pos[24] = { + cXyz(2573.0f, 370.0f, 2200.0f), + cXyz(2901.0f, 600.0f, 2200.0f), + cXyz(3100.0f, 222.0f, 1888.0f), + cXyz(1900.0f, 555.0f, 2200.0f), + cXyz(3100.0f, 600.0f, 1600.0f), + cXyz(1783.0f, 355.0f, 2200.0f), + cXyz(1555.0f, 200.0f, 2200.0f), + cXyz(3100.0f, 350.0f, 1332.0f), + cXyz(3100.0f, 550.0f, 1070.0f), + cXyz(1375.0f, 600.0f, 2200.0f), + cXyz(3100.0f, 250.0f, 850.0f), + cXyz(1165.0f, 430.0f, 2200.0f), + cXyz(3100.0f, 450.0f, 450.0f), + cXyz(3100.0f, 600.0f, 200.0f), + cXyz(700.0f, 260.0f, 2200.0f), + cXyz(3100.0f, 300.0f, -150.0f), + cXyz(500.0f, 522.0f, 1888.0f), + cXyz(500.0f, 300.0f, 1632.0f), + cXyz(500.0f, 400.0f, 1332.0f), + cXyz(500.0f, 550.0f, 1070.0f), + cXyz(500.0f, 350.0f, 850.0f), + cXyz(500.0f, 550.0f, 450.0f), + cXyz(500.0f, 300.0f, 200.0f), + cXyz(500.0f, 600.0f, -150.0f), + }; + + gap_05_0000006C_bss = 1; + + + if (i_this->field_0xfe4 != 0) { + csXyz cStack_c0(0, 0, 0); + int i = 0; + for (; i < i_this->field_0xfe4; i++) { + if (fire_eff_pos[i].x == 3100.0f) { + cStack_c0.y = -0x4000; + } else if (fire_eff_pos[i].x == 500.0f) { + cStack_c0.y = 0x4000; + } else { + cStack_c0.y = -0x8000; + } + + i_this->field_0xfe8[i] = dComIfGp_particle_set(i_this->field_0xfe8[i], 0x85C2, &fire_eff_pos[i], &cStack_c0, NULL); + i_this->field_0x1048[i] = dComIfGp_particle_set(i_this->field_0x1048[i], 0x85C3, &fire_eff_pos[i], &cStack_c0, NULL); + + Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_CRVN_BURNING, &fire_eff_pos[i], 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } + + if ((i_this->field_0x67c & 15) == 0 && i < 24) { + i_this->field_0xfe4 = i + 1; + } + } + } + + cXyz i_pos(a_this->eyePos); + i_pos.y += 180.0f; + a_this->setHeadLockPos(&i_pos); + return 1; + } +} + +/* 8076A418-8076A420 005438 0008+00 1/0 0/0 0/0 .text daE_RDB_IsDelete__FP11e_rdb_class */ +static int daE_RDB_IsDelete(e_rdb_class* i_this) { + return 1; +} + +/* 8076A420-8076A488 005440 0068+00 1/0 0/0 0/0 .text daE_RDB_Delete__FP11e_rdb_class */ +static int daE_RDB_Delete(e_rdb_class* i_this) { + fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; + fopAcM_GetID(i_this); + dComIfG_resDelete(&i_this->mPhase, "E_rdb"); + if (i_this->field_0xfce != 0) { + lbl_224_bss_45 = 0; + + #ifdef DEBUG + mDoHIO_deleteChild(l_HIO.field_0x4); + #endif + } + + if (a_this->heap != NULL) { + i_this->mpModelMorf->stopZelAnime(); + } + + return 1; +} + +/* 8076A488-8076A5FC 0054A8 0174+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +static int useHeapInit(fopAc_ac_c* actor) { + e_rdb_class* i_this = (e_rdb_class*)actor; + i_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes("E_rdb", 83), NULL, NULL, + (J3DAnmTransform*)dComIfG_getObjectRes("E_rdb", 69), + 2, 1.0f, 0, -1, &i_this->mSound, 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_idx = 0; i_idx < model->getModelData()->getJointNum(); i_idx++) { + model->getModelData()->getJointNodePointer(i_idx)->setCallBack(nodeCallBack); + } + + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_rdb", 85); + JUT_ASSERT(2827, modelData != 0); + i_this->field_0x678 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (i_this->field_0x678 != NULL) { + return 1; + } + + return 0; +} + +/* 8076A5FC-8076AA0C 00561C 0410+00 1/0 0/0 0/0 .text daE_RDB_Create__FP10fopAc_ac_c */ +static int daE_RDB_Create(fopAc_ac_c* actor) { + static dCcD_SrcSph cc_sph_src = { + { + {0x0, {{0x0, 0x0, 0x0}, {0xd8fafdbf, 0x3}, 0x0}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x102}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph + } // mSphAttr + }; + + static dCcD_SrcSph at_sph_src = { + { + {0x0, {{AT_TYPE_CSTATUE_SWING, 0xc, 0xd}, {0xd8fafdbf, 0x3}, 0x0}}, // mObj + {dCcD_SE_METAL, 0x0, 0x2, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x102}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {{0.0f, 0.0f, 0.0f}, 35.0f} // mSph + } // mSphAttr + }; + + static dCcD_SrcCyl co_cyl_src = { + { + {0x0, {{0x0, 0x0, 0x0}, {0x0, 0x0}, 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}, // mCenter + 100.0f, // mRadius + 200.0f // mHeight + } // mCyl + }; + + e_rdb_class* i_this = (e_rdb_class*)actor; + fopAcM_SetupActor(actor, e_rdb_class); + + int phase = dComIfG_resLoad(&i_this->mPhase, "E_rdb"); + i_this->field_0x5b6 = fopAcM_GetParam(actor); + if (phase == cPhs_COMPLEATE_e) { + OS_REPORT("E_rdb PARAM %x\n", fopAcM_GetParam(actor)); + if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0 && dComIfGs_isStageMiddleBoss()) { + return cPhs_ERROR_e; + } + + int i_no = fopAcM_GetParam(actor) >> 24; + if (i_no != 0xFF) { + if (dComIfGs_isSwitch(i_no, fopAcM_GetRoomNo(actor))) { + return cPhs_ERROR_e; + } + } + + if (!fopAcM_entrySolidHeap(actor, useHeapInit, 0x3C00)) { + OS_REPORT("//////////////E_RDB SET NON !!\n"); + return cPhs_ERROR_e; + } + + i_this->mAction = ACTION_WAIT; + i_this->mMode = 0; + + if (lbl_224_bss_45 == 0) { + i_this->field_0xfce = 1; + lbl_224_bss_45 = 1; + l_HIO.field_0x4 = -1; + } + + fopAcM_SetMtx(actor, i_this->mpModelMorf->getModel()->getBaseTRMtx()); + fopAcM_SetMin(actor, -200.0f, -200.0f, -200.0f); + fopAcM_SetMax(actor, 200.0f, 200.0f, 200.0f); + i_this->mAcch.Set(fopAcM_GetPosition_p(actor), fopAcM_GetOldPosition_p(actor), actor, 1, &i_this->mAcchCir, + fopAcM_GetSpeed_p(actor), NULL, NULL); + i_this->mAcchCir.SetWall(50.0f, 150.0f); + + if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + actor->health = 900; + actor->field_0x560 = 900; + } else { + actor->health = 600; + actor->field_0x560 = 600; + } + + i_this->mStts.Init(200, 0, actor); + + for (int i = 0; i <= 2; i++) { + i_this->field_0x944[i].Set(cc_sph_src); + i_this->field_0x944[i].SetStts(&i_this->mStts); + i_this->field_0x944[i].OnTgNoHitMark(); + } + + i_this->mStts2.Init(0xFF, 0, actor); + i_this->field_0xe64.Set(at_sph_src); + i_this->field_0xe64.SetStts(&i_this->mStts2); + i_this->field_0xe64.OnTgShield(); + i_this->field_0xe64.SetTgHitMark((CcG_Tg_HitMark)2); + i_this->field_0xe64.SetAtSpl((dCcG_At_Spl)11); + + i_this->field_0xcec.Set(co_cyl_src); + i_this->field_0xcec.SetStts(&i_this->mStts2); + + i_this->mSound.init(&actor->current.pos, &actor->eyePos, &i_this->field_0xfc0, 3, 1, 1); + i_this->mSound.setEnemyName("E_rdb"); + i_this->mAtInfo.mpSound = &i_this->mSound; + i_this->mAtInfo.mPowerType = 6; + + if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) { + i_this->mAction = ACTION_START; + i_this->mMode = 10; + actor->current.pos.set(-7625.0f, 50.0f, -5825.0f); + actor->current.angle.y = 0; + actor->old = actor->current; + actor->home = actor->current; + } else if (i_this->field_0x5b6 == 0xFF) { + i_this->field_0xfcf = 1; + i_this->mAction = ACTION_START; + actor->current.angle.y = 26000; + i_this->field_0x6e0 = -50.0f; + } else { + i_this->mAction = ACTION_WAIT; + } + + i_this->field_0x680 = 1; + daE_RDB_Execute(i_this); + } + + return phase; +} + +AUDIO_INSTANCES /* 8076B8F4-8076B914 -00001 0020+00 1/0 0/0 0/0 .data l_daE_RDB_Method */ static actor_method_class l_daE_RDB_Method = { - (process_method_func)daE_RDB_Create__FP10fopAc_ac_c, - (process_method_func)daE_RDB_Delete__FP11e_rdb_class, - (process_method_func)daE_RDB_Execute__FP11e_rdb_class, - (process_method_func)daE_RDB_IsDelete__FP11e_rdb_class, - (process_method_func)daE_RDB_Draw__FP11e_rdb_class, + (process_method_func)daE_RDB_Create, + (process_method_func)daE_RDB_Delete, + (process_method_func)daE_RDB_Execute, + (process_method_func)daE_RDB_IsDelete, + (process_method_func)daE_RDB_Draw, }; /* 8076B914-8076B944 -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_RDB */ @@ -408,1739 +1928,3 @@ extern actor_process_profile_definition g_profile_E_RDB = { fopAc_ENEMY_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 8076B944-8076B950 00024C 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, -}; - -/* 8076B950-8076B95C 000258 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, -}; - -/* 8076B95C-8076B968 000264 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, -}; - -/* 8076B968-8076B974 000270 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, -}; - -/* 8076B974-8076B980 00027C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 8076B980-8076B98C 000288 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, -}; - -/* 8076B98C-8076B9B0 000294 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_8076AFF0, - (void*)NULL, - (void*)NULL, - (void*)func_8076AFE8, -}; - -/* 8076B9B0-8076B9BC 0002B8 000C+00 2/2 0/0 0/0 .data __vt__13daE_RDB_HIO_c */ -SECTION_DATA extern void* __vt__13daE_RDB_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daE_RDB_HIO_cFv, -}; - -/* 807650CC-807650F0 0000EC 0024+00 1/1 0/0 0/0 .text __ct__13daE_RDB_HIO_cFv */ -daE_RDB_HIO_c::daE_RDB_HIO_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B48C-8076B490 000030 0004+00 1/3 0/0 0/0 .rodata @4042 */ -SECTION_RODATA static f32 const lit_4042 = -1.0f; -COMPILER_STRIP_GATE(0x8076B48C, &lit_4042); - -/* 8076B6C4-8076B6C4 000268 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8076B6C4 = "E_rdb"; -#pragma pop - -/* 807650F0-8076519C 000110 00AC+00 9/9 0/0 0/0 .text anm_init__FP11e_rdb_classifUcf */ -static void anm_init(e_rdb_class* param_0, int param_1, f32 param_2, u8 param_3, f32 param_4) { - // NONMATCHING -} - -/* 8076519C-80765314 0001BC 0178+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ -static void nodeCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B490-8076B494 000034 0004+00 0/1 0/0 0/0 .rodata @4169 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4169 = 1700.0f; -COMPILER_STRIP_GATE(0x8076B490, &lit_4169); -#pragma pop - -/* 8076B494-8076B498 000038 0004+00 0/1 0/0 0/0 .rodata @4170 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4170 = 2700.0f; -COMPILER_STRIP_GATE(0x8076B494, &lit_4170); -#pragma pop - -/* 80765314-80765600 000334 02EC+00 1/0 0/0 0/0 .text daE_RDB_Draw__FP11e_rdb_class */ -static void daE_RDB_Draw(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 80765600-8076563C 000620 003C+00 1/1 0/0 0/0 .text mtx_to_posAngle__FPA4_fP4cXyzP5csXyz */ -static void mtx_to_posAngle(f32 (*param_0)[4], cXyz* param_1, csXyz* param_2) { - // NONMATCHING -} - -/* 8076563C-80765678 00065C 003C+00 1/1 0/0 0/0 .text player_way_check__FP11e_rdb_class - */ -static void player_way_check(e_rdb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B498-8076B49C 00003C 0004+00 0/4 0/0 0/0 .rodata @4228 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4228 = 10.0f; -COMPILER_STRIP_GATE(0x8076B498, &lit_4228); -#pragma pop - -/* 8076B49C-8076B4A0 000040 0004+00 0/3 0/0 0/0 .rodata @4229 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4229 = 20.0f; -COMPILER_STRIP_GATE(0x8076B49C, &lit_4229); -#pragma pop - -/* 8076B4A0-8076B4A4 000044 0004+00 0/6 0/0 0/0 .rodata @4230 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4230 = 5.0f; -COMPILER_STRIP_GATE(0x8076B4A0, &lit_4230); -#pragma pop - -/* 8076B4A4-8076B4A8 000048 0004+00 0/2 0/0 0/0 .rodata @4231 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4231 = 350.0f; -COMPILER_STRIP_GATE(0x8076B4A4, &lit_4231); -#pragma pop - -/* 8076B4A8-8076B4AC 00004C 0004+00 0/1 0/0 0/0 .rodata @4232 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4232 = -2.0f; -COMPILER_STRIP_GATE(0x8076B4A8, &lit_4232); -#pragma pop - -/* 8076B4AC-8076B4B0 000050 0004+00 0/3 0/0 0/0 .rodata @4233 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4233 = 400.0f; -COMPILER_STRIP_GATE(0x8076B4AC, &lit_4233); -#pragma pop - -/* 8076B4B0-8076B4B4 000054 0004+00 0/7 0/0 0/0 .rodata @4234 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4234 = 3.0f; -COMPILER_STRIP_GATE(0x8076B4B0, &lit_4234); -#pragma pop - -/* 8076B4B4-8076B4B8 000058 0004+00 0/1 0/0 0/0 .rodata @4235 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4235 = 420.0f; -COMPILER_STRIP_GATE(0x8076B4B4, &lit_4235); -#pragma pop - -/* 8076B4B8-8076B4BC 00005C 0004+00 0/1 0/0 0/0 .rodata @4236 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4236 = 820.0f; -COMPILER_STRIP_GATE(0x8076B4B8, &lit_4236); -#pragma pop - -/* 8076B6C4-8076B6C4 000268 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8076B6CA = "D_MN09"; -#pragma pop - -/* 80765678-807658E0 000698 0268+00 1/1 0/0 0/0 .text e_rdb_wait__FP11e_rdb_class */ -static void e_rdb_wait(e_rdb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B4BC-8076B4C0 000060 0004+00 0/2 0/0 0/0 .rodata @4263 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4263 = 700.0f; -COMPILER_STRIP_GATE(0x8076B4BC, &lit_4263); -#pragma pop - -/* 8076B4C0-8076B4C4 000064 0004+00 0/3 0/0 0/0 .rodata @4264 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4264 = 600.0f; -COMPILER_STRIP_GATE(0x8076B4C0, &lit_4264); -#pragma pop - -/* 8076B4C4-8076B4C8 000068 0004+00 0/2 0/0 0/0 .rodata @4265 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4265 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x8076B4C4, &lit_4265); -#pragma pop - -/* 807658E0-80765A98 000900 01B8+00 1/1 0/0 0/0 .text e_rdb_fight__FP11e_rdb_class */ -static void e_rdb_fight(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 80765A98-80765B70 000AB8 00D8+00 2/2 0/0 0/0 .text - * getPolyColor__FR13cBgS_PolyInfoiP8_GXColorP8_GXColorPUcPf */ -static void getPolyColor(cBgS_PolyInfo& param_0, int param_1, _GXColor* param_2, - _GXColor* param_3, u8* param_4, f32* param_5) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B4C8-8076B4CC 00006C 0004+00 0/1 0/0 0/0 .rodata @4352 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4352 = 0.5f; -COMPILER_STRIP_GATE(0x8076B4C8, &lit_4352); -#pragma pop - -/* 80765B70-80765E70 000B90 0300+00 1/1 0/0 0/0 .text e_rdb_attack__FP11e_rdb_class */ -static void e_rdb_attack(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 80765E70-80766188 000E90 0318+00 1/1 0/0 0/0 .text e_rdb_spin_attack__FP11e_rdb_class - */ -static void e_rdb_spin_attack(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 80766188-80766294 0011A8 010C+00 1/1 0/0 0/0 .text e_rdb_defence__FP11e_rdb_class */ -static void e_rdb_defence(e_rdb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B4CC-8076B4D0 000070 0004+00 0/1 0/0 0/0 .rodata @4540 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4540 = 0x409FAE14; -COMPILER_STRIP_GATE(0x8076B4CC, &lit_4540); -#pragma pop - -/* 8076B4D0-8076B4D4 000074 0004+00 0/3 0/0 0/0 .rodata @4541 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4541 = 2.0f; -COMPILER_STRIP_GATE(0x8076B4D0, &lit_4541); -#pragma pop - -/* 80766294-807665B4 0012B4 0320+00 1/1 0/0 0/0 .text e_rdb_damage__FP11e_rdb_class */ -static void e_rdb_damage(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 807665B4-80766A1C 0015D4 0468+00 2/1 0/0 0/0 .text e_rdb_end__FP11e_rdb_class */ -static void e_rdb_end(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 80766A1C-80766DB4 001A3C 0398+00 2/1 0/0 0/0 .text e_rdb_start__FP11e_rdb_class */ -static void e_rdb_start(e_rdb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B4D4-8076B4D8 000078 0004+00 0/0 0/0 0/0 .rodata @4647 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4647 = 25.0f; -COMPILER_STRIP_GATE(0x8076B4D4, &lit_4647); -#pragma pop - -/* 8076B4D8-8076B4DC 00007C 0004+00 0/0 0/0 0/0 .rodata @4648 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4648 = -10.0f; -COMPILER_STRIP_GATE(0x8076B4D8, &lit_4648); -#pragma pop - -/* 8076B4DC-8076B4E0 000080 0004+00 0/0 0/0 0/0 .rodata @4649 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4649 = 2.5f; -COMPILER_STRIP_GATE(0x8076B4DC, &lit_4649); -#pragma pop - -/* 8076B4E0-8076B4E4 000084 0004+00 0/1 0/0 0/0 .rodata @4650 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4650 = 40.0f; -COMPILER_STRIP_GATE(0x8076B4E0, &lit_4650); -#pragma pop - -/* 8076B4E4-8076B4E8 000088 0004+00 0/0 0/0 0/0 .rodata @4651 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4651 = 1470.0f; -COMPILER_STRIP_GATE(0x8076B4E4, &lit_4651); -#pragma pop - -/* 8076B4E8-8076B4EC 00008C 0004+00 0/0 0/0 0/0 .rodata @4652 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4652 = 2130.0f; -COMPILER_STRIP_GATE(0x8076B4E8, &lit_4652); -#pragma pop - -/* 8076B4EC-8076B4F0 000090 0004+00 0/2 0/0 0/0 .rodata @4653 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4653 = 200.0f; -COMPILER_STRIP_GATE(0x8076B4EC, &lit_4653); -#pragma pop - -/* 8076B4F0-8076B4F4 000094 0004+00 0/0 0/0 0/0 .rodata @4654 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4654 = 5000.0f; -COMPILER_STRIP_GATE(0x8076B4F0, &lit_4654); -#pragma pop - -/* 8076B4F4-8076B4F8 000098 0004+00 0/0 0/0 0/0 .rodata @4725 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4725 = 20000.0f; -COMPILER_STRIP_GATE(0x8076B4F4, &lit_4725); -#pragma pop - -/* 8076B4F8-8076B4FC 00009C 0004+00 0/1 0/0 0/0 .rodata @4726 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4726 = 500.0f; -COMPILER_STRIP_GATE(0x8076B4F8, &lit_4726); -#pragma pop - -/* 8076B4FC-8076B500 0000A0 0004+00 0/0 0/0 0/0 .rodata @4727 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4727 = 2000.0f; -COMPILER_STRIP_GATE(0x8076B4FC, &lit_4727); -#pragma pop - -/* 8076B500-8076B504 0000A4 0004+00 0/0 0/0 0/0 .rodata @4728 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4728 = 3.5f; -COMPILER_STRIP_GATE(0x8076B500, &lit_4728); -#pragma pop - -/* 8076B504-8076B508 0000A8 0004+00 0/2 0/0 0/0 .rodata @4853 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4853 = 12.0f; -COMPILER_STRIP_GATE(0x8076B504, &lit_4853); -#pragma pop - -/* 8076B508-8076B50C 0000AC 0004+00 0/1 0/0 0/0 .rodata @4854 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4854 = 120.0f; -COMPILER_STRIP_GATE(0x8076B508, &lit_4854); -#pragma pop - -/* 8076B50C-8076B510 0000B0 0004+00 0/1 0/0 0/0 .rodata @4855 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4855 = 190.0f; -COMPILER_STRIP_GATE(0x8076B50C, &lit_4855); -#pragma pop - -/* 8076B510-8076B514 0000B4 0004+00 0/3 0/0 0/0 .rodata @4856 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4856 = 150.0f; -COMPILER_STRIP_GATE(0x8076B510, &lit_4856); -#pragma pop - -/* 80766DB4-80767294 001DD4 04E0+00 1/1 0/0 0/0 .text damage_check__FP11e_rdb_class */ -static void damage_check(e_rdb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B514-8076B518 0000B8 0004+00 0/1 0/0 0/0 .rodata @4904 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4904 = 1000.0f; -COMPILER_STRIP_GATE(0x8076B514, &lit_4904); -#pragma pop - -/* 80767294-80767428 0022B4 0194+00 1/1 0/0 0/0 .text shot_s_sub__FPvPv */ -static void shot_s_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B9C8-8076B9CC 000008 0001+03 1/1 0/0 0/0 .bss @1109 */ -static u8 lit_1109[1 + 3 /* padding */]; - -/* 8076B9CC-8076B9D0 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */ -#pragma push -#pragma force_active on -static u8 lit_1107[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9D0-8076B9D4 000010 0001+03 0/0 0/0 0/0 .bss @1105 */ -#pragma push -#pragma force_active on -static u8 lit_1105[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9D4-8076B9D8 000014 0001+03 0/0 0/0 0/0 .bss @1104 */ -#pragma push -#pragma force_active on -static u8 lit_1104[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9D8-8076B9DC 000018 0001+03 0/0 0/0 0/0 .bss @1099 */ -#pragma push -#pragma force_active on -static u8 lit_1099[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9DC-8076B9E0 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */ -#pragma push -#pragma force_active on -static u8 lit_1097[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9E0-8076B9E4 000020 0001+03 0/0 0/0 0/0 .bss @1095 */ -#pragma push -#pragma force_active on -static u8 lit_1095[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9E4-8076B9E8 000024 0001+03 0/0 0/0 0/0 .bss @1094 */ -#pragma push -#pragma force_active on -static u8 lit_1094[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9E8-8076B9EC 000028 0001+03 0/0 0/0 0/0 .bss @1057 */ -#pragma push -#pragma force_active on -static u8 lit_1057[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9EC-8076B9F0 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */ -#pragma push -#pragma force_active on -static u8 lit_1055[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9F0-8076B9F4 000030 0001+03 0/0 0/0 0/0 .bss @1053 */ -#pragma push -#pragma force_active on -static u8 lit_1053[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9F4-8076B9F8 000034 0001+03 0/0 0/0 0/0 .bss @1052 */ -#pragma push -#pragma force_active on -static u8 lit_1052[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9F8-8076B9FC 000038 0001+03 0/0 0/0 0/0 .bss @1014 */ -#pragma push -#pragma force_active on -static u8 lit_1014[1 + 3 /* padding */]; -#pragma pop - -/* 8076B9FC-8076BA00 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */ -#pragma push -#pragma force_active on -static u8 lit_1012[1 + 3 /* padding */]; -#pragma pop - -/* 8076BA00-8076BA04 000040 0001+03 0/0 0/0 0/0 .bss @1010 */ -#pragma push -#pragma force_active on -static u8 lit_1010[1 + 3 /* padding */]; -#pragma pop - -/* 8076BA04-8076BA08 -00001 0004+00 2/2 0/0 0/0 .bss None */ -/* 8076BA04 0001+00 data_8076BA04 @1009 */ -/* 8076BA05 0003+00 data_8076BA05 None */ -static u8 struct_8076BA04[4]; - -/* 8076BA08-8076BA14 000048 000C+00 1/1 0/0 0/0 .bss @4023 */ -static u8 lit_4023[12]; - -/* 8076BA14-8076BA20 000054 000C+00 3/4 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[12]; - -/* 80767428-80767CD0 002448 08A8+00 2/1 0/0 0/0 .text action__FP11e_rdb_class */ -static void action(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 80767CD0-80767DB4 002CF0 00E4+00 1/1 0/0 0/0 .text cam_3d_morf__FP11e_rdb_classf */ -static void cam_3d_morf(e_rdb_class* param_0, f32 param_1) { - // NONMATCHING -} - -/* 80767DB4-80767E54 002DD4 00A0+00 1/1 0/0 0/0 .text cam_spd_set__FP11e_rdb_class */ -static void cam_spd_set(e_rdb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B518-8076B51C 0000BC 0004+00 0/0 0/0 0/0 .rodata @5163 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5163 = -5.0f; -COMPILER_STRIP_GATE(0x8076B518, &lit_5163); -#pragma pop - -/* 8076B51C-8076B520 0000C0 0004+00 0/0 0/0 0/0 .rodata @5164 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5164 = 36.0f / 25.0f; -COMPILER_STRIP_GATE(0x8076B51C, &lit_5164); -#pragma pop - -/* 8076B520-8076B524 0000C4 0004+00 0/1 0/0 0/0 .rodata @5165 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5165 = -80.0f; -COMPILER_STRIP_GATE(0x8076B520, &lit_5165); -#pragma pop - -/* 8076B524-8076B528 0000C8 0004+00 0/1 0/0 0/0 .rodata @5166 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5166 = -150.0f; -COMPILER_STRIP_GATE(0x8076B524, &lit_5166); -#pragma pop - -/* 8076B528-8076B52C 0000CC 0004+00 0/3 0/0 0/0 .rodata @5167 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5167 = 50.0f; -COMPILER_STRIP_GATE(0x8076B528, &lit_5167); -#pragma pop - -/* 8076B52C-8076B534 0000D0 0004+04 0/1 0/0 0/0 .rodata @5168 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5168[1 + 1 /* padding */] = { - 1.5f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x8076B52C, &lit_5168); -#pragma pop - -/* 8076B534-8076B53C 0000D8 0008+00 0/1 0/0 0/0 .rodata @5171 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5171[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8076B534, &lit_5171); -#pragma pop - -/* 8076B53C-8076B540 0000E0 0004+00 0/1 0/0 0/0 .rodata @5616 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5616 = 55.0f; -COMPILER_STRIP_GATE(0x8076B53C, &lit_5616); -#pragma pop - -/* 8076B540-8076B544 0000E4 0004+00 0/1 0/0 0/0 .rodata @5617 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5617 = 330.0f; -COMPILER_STRIP_GATE(0x8076B540, &lit_5617); -#pragma pop - -/* 8076B544-8076B548 0000E8 0004+00 0/1 0/0 0/0 .rodata @5618 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5618 = 140.0f; -COMPILER_STRIP_GATE(0x8076B544, &lit_5618); -#pragma pop - -/* 8076B548-8076B54C 0000EC 0004+00 0/2 0/0 0/0 .rodata @5619 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5619 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x8076B548, &lit_5619); -#pragma pop - -/* 8076B54C-8076B550 0000F0 0004+00 0/1 0/0 0/0 .rodata @5620 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5620 = -7627.0f; -COMPILER_STRIP_GATE(0x8076B54C, &lit_5620); -#pragma pop - -/* 8076B550-8076B554 0000F4 0004+00 0/1 0/0 0/0 .rodata @5621 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5621 = 153.0f; -COMPILER_STRIP_GATE(0x8076B550, &lit_5621); -#pragma pop - -/* 8076B554-8076B558 0000F8 0004+00 0/1 0/0 0/0 .rodata @5622 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5622 = -5371.0f; -COMPILER_STRIP_GATE(0x8076B554, &lit_5622); -#pragma pop - -/* 8076B558-8076B55C 0000FC 0004+00 0/1 0/0 0/0 .rodata @5623 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5623 = -7470.0f; -COMPILER_STRIP_GATE(0x8076B558, &lit_5623); -#pragma pop - -/* 8076B55C-8076B560 000100 0004+00 0/1 0/0 0/0 .rodata @5624 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5624 = 144.0f; -COMPILER_STRIP_GATE(0x8076B55C, &lit_5624); -#pragma pop - -/* 8076B560-8076B564 000104 0004+00 0/1 0/0 0/0 .rodata @5625 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5625 = -5071.0f; -COMPILER_STRIP_GATE(0x8076B560, &lit_5625); -#pragma pop - -/* 8076B6C4-8076B6C4 000268 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8076B6D1 = "force_start"; -SECTION_DEAD static char const* const stringBase_8076B6DD = "force_end"; -#pragma pop - -/* 80767E54-80768B90 002E74 0D3C+00 2/1 0/0 0/0 .text demo_camera__FP11e_rdb_class */ -static void demo_camera(e_rdb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B564-8076B568 000108 0004+00 0/0 0/0 0/0 .rodata @5626 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5626 = 3.0f / 100.0f; -COMPILER_STRIP_GATE(0x8076B564, &lit_5626); -#pragma pop - -/* 8076B568-8076B56C 00010C 0004+00 0/0 0/0 0/0 .rodata @5627 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5627 = 0x3B449BA6; -COMPILER_STRIP_GATE(0x8076B568, &lit_5627); -#pragma pop - -/* 8076B56C-8076B570 000110 0004+00 0/0 0/0 0/0 .rodata @5628 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5628 = 230.0f; -COMPILER_STRIP_GATE(0x8076B56C, &lit_5628); -#pragma pop - -/* 8076B570-8076B574 000114 0004+00 0/0 0/0 0/0 .rodata @5629 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5629 = 220.0f; -COMPILER_STRIP_GATE(0x8076B570, &lit_5629); -#pragma pop - -/* 8076B574-8076B578 000118 0004+00 0/1 0/0 0/0 .rodata @5630 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5630 = 30.0f; -COMPILER_STRIP_GATE(0x8076B574, &lit_5630); -#pragma pop - -/* 8076B578-8076B57C 00011C 0004+00 0/1 0/0 0/0 .rodata @5631 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5631 = 300.0f; -COMPILER_STRIP_GATE(0x8076B578, &lit_5631); -#pragma pop - -/* 8076B57C-8076B580 000120 0004+00 0/0 0/0 0/0 .rodata @5632 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5632 = 145.0f; -COMPILER_STRIP_GATE(0x8076B57C, &lit_5632); -#pragma pop - -/* 8076B580-8076B584 000124 0004+00 0/0 0/0 0/0 .rodata @5633 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5633 = 170.0f; -COMPILER_STRIP_GATE(0x8076B580, &lit_5633); -#pragma pop - -/* 8076B584-8076B588 000128 0004+00 0/0 0/0 0/0 .rodata @5634 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5634 = 70.0f; -COMPILER_STRIP_GATE(0x8076B584, &lit_5634); -#pragma pop - -/* 8076B588-8076B58C 00012C 0004+00 0/1 0/0 0/0 .rodata @5635 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5635 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x8076B588, &lit_5635); -#pragma pop - -/* 8076B58C-8076B590 000130 0004+00 0/0 0/0 0/0 .rodata @5636 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5636 = 0.25f; -COMPILER_STRIP_GATE(0x8076B58C, &lit_5636); -#pragma pop - -/* 8076B590-8076B594 000134 0004+00 0/0 0/0 0/0 .rodata @5637 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5637 = -7080.0f; -COMPILER_STRIP_GATE(0x8076B590, &lit_5637); -#pragma pop - -/* 8076B594-8076B598 000138 0004+00 0/0 0/0 0/0 .rodata @5638 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5638 = -6634.0f; -COMPILER_STRIP_GATE(0x8076B594, &lit_5638); -#pragma pop - -/* 8076B598-8076B59C 00013C 0004+00 0/0 0/0 0/0 .rodata @5639 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5639 = -10008.0f; -COMPILER_STRIP_GATE(0x8076B598, &lit_5639); -#pragma pop - -/* 8076B59C-8076B5A0 000140 0004+00 0/0 0/0 0/0 .rodata @5640 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5640 = -2729.0f; -COMPILER_STRIP_GATE(0x8076B59C, &lit_5640); -#pragma pop - -/* 8076B5A0-8076B5A4 000144 0004+00 0/0 0/0 0/0 .rodata @5641 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5641 = -7530.0f; -COMPILER_STRIP_GATE(0x8076B5A0, &lit_5641); -#pragma pop - -/* 8076B5A4-8076B5A8 000148 0004+00 0/0 0/0 0/0 .rodata @5642 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5642 = -5451.0f; -COMPILER_STRIP_GATE(0x8076B5A4, &lit_5642); -#pragma pop - -/* 8076B5A8-8076B5AC 00014C 0004+00 0/0 0/0 0/0 .rodata @5643 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5643 = -7661.0f; -COMPILER_STRIP_GATE(0x8076B5A8, &lit_5643); -#pragma pop - -/* 8076B5AC-8076B5B0 000150 0004+00 0/0 0/0 0/0 .rodata @5644 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5644 = 323.0f; -COMPILER_STRIP_GATE(0x8076B5AC, &lit_5644); -#pragma pop - -/* 8076B5B0-8076B5B4 000154 0004+00 0/0 0/0 0/0 .rodata @5645 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5645 = -5684.0f; -COMPILER_STRIP_GATE(0x8076B5B0, &lit_5645); -#pragma pop - -/* 8076B5B4-8076B5B8 000158 0004+00 0/0 0/0 0/0 .rodata @5646 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5646 = -7382.0f; -COMPILER_STRIP_GATE(0x8076B5B4, &lit_5646); -#pragma pop - -/* 8076B5B8-8076B5BC 00015C 0004+00 0/0 0/0 0/0 .rodata @5647 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5647 = 185.0f; -COMPILER_STRIP_GATE(0x8076B5B8, &lit_5647); -#pragma pop - -/* 8076B5BC-8076B5C0 000160 0004+00 0/0 0/0 0/0 .rodata @5648 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5648 = -5360.0f; -COMPILER_STRIP_GATE(0x8076B5BC, &lit_5648); -#pragma pop - -/* 8076B5C0-8076B5C4 000164 0004+00 0/0 0/0 0/0 .rodata @5649 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5649 = -1.0f / 20.0f; -COMPILER_STRIP_GATE(0x8076B5C0, &lit_5649); -#pragma pop - -/* 8076B5C4-8076B5C8 000168 0004+00 0/0 0/0 0/0 .rodata @5650 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5650 = -7738.0f; -COMPILER_STRIP_GATE(0x8076B5C4, &lit_5650); -#pragma pop - -/* 8076B5C8-8076B5CC 00016C 0004+00 0/0 0/0 0/0 .rodata @5651 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5651 = -5086.0f; -COMPILER_STRIP_GATE(0x8076B5C8, &lit_5651); -#pragma pop - -/* 8076B5CC-8076B5D0 000170 0004+00 0/0 0/0 0/0 .rodata @5652 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5652 = 0x3BA3D70A; -COMPILER_STRIP_GATE(0x8076B5CC, &lit_5652); -#pragma pop - -/* 8076B5D0-8076B5D4 000174 0004+00 0/1 0/0 0/0 .rodata @5833 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5833 = 29.0f; -COMPILER_STRIP_GATE(0x8076B5D0, &lit_5833); -#pragma pop - -/* 8076B5D4-8076B5D8 000178 0004+00 0/1 0/0 0/0 .rodata @5834 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5834 = 59.0f; -COMPILER_STRIP_GATE(0x8076B5D4, &lit_5834); -#pragma pop - -/* 8076B5D8-8076B5DC 00017C 0004+00 0/1 0/0 0/0 .rodata @5835 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5835 = 17.0f; -COMPILER_STRIP_GATE(0x8076B5D8, &lit_5835); -#pragma pop - -/* 8076B5DC-8076B5E0 000180 0004+00 0/1 0/0 0/0 .rodata @5836 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5836 = 15.0f; -COMPILER_STRIP_GATE(0x8076B5DC, &lit_5836); -#pragma pop - -/* 8076B5E0-8076B5E4 000184 0004+00 0/2 0/0 0/0 .rodata @5837 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5837 = 35.0f; -COMPILER_STRIP_GATE(0x8076B5E0, &lit_5837); -#pragma pop - -/* 8076B5E4-8076B5E8 000188 0004+00 0/1 0/0 0/0 .rodata @5838 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5838 = 58.0f; -COMPILER_STRIP_GATE(0x8076B5E4, &lit_5838); -#pragma pop - -/* 8076B5E8-8076B5EC 00018C 0004+00 0/1 0/0 0/0 .rodata @5839 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5839 = 61.0f; -COMPILER_STRIP_GATE(0x8076B5E8, &lit_5839); -#pragma pop - -/* 8076B5EC-8076B5F0 000190 0004+00 0/1 0/0 0/0 .rodata @5840 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5840 = 110.0f; -COMPILER_STRIP_GATE(0x8076B5EC, &lit_5840); -#pragma pop - -/* 8076B5F0-8076B5F4 000194 0004+00 0/1 0/0 0/0 .rodata @5841 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5841 = 4.0f; -COMPILER_STRIP_GATE(0x8076B5F0, &lit_5841); -#pragma pop - -/* 8076B5F4-8076B5F8 000198 0004+00 0/1 0/0 0/0 .rodata @5842 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5842 = 50.5f; -COMPILER_STRIP_GATE(0x8076B5F4, &lit_5842); -#pragma pop - -/* 8076B5F8-8076B5FC 00019C 0004+00 0/1 0/0 0/0 .rodata @5843 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5843 = 31.0f; -COMPILER_STRIP_GATE(0x8076B5F8, &lit_5843); -#pragma pop - -/* 8076B5FC-8076B600 0001A0 0004+00 0/1 0/0 0/0 .rodata @5844 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5844 = 52.0f; -COMPILER_STRIP_GATE(0x8076B5FC, &lit_5844); -#pragma pop - -/* 8076B600-8076B604 0001A4 0004+00 0/1 0/0 0/0 .rodata @5845 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5845 = 77.0f; -COMPILER_STRIP_GATE(0x8076B600, &lit_5845); -#pragma pop - -/* 8076B604-8076B608 0001A8 0004+00 0/1 0/0 0/0 .rodata @5846 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5846 = 11.0f; -COMPILER_STRIP_GATE(0x8076B604, &lit_5846); -#pragma pop - -/* 8076B608-8076B60C 0001AC 0004+00 0/1 0/0 0/0 .rodata @5847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5847 = 83.0f; -COMPILER_STRIP_GATE(0x8076B608, &lit_5847); -#pragma pop - -/* 8076B60C-8076B610 0001B0 0004+00 0/1 0/0 0/0 .rodata @5848 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5848 = 124.0f; -COMPILER_STRIP_GATE(0x8076B60C, &lit_5848); -#pragma pop - -/* 8076B610-8076B614 0001B4 0004+00 0/1 0/0 0/0 .rodata @5849 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5849 = 142.0f; -COMPILER_STRIP_GATE(0x8076B610, &lit_5849); -#pragma pop - -/* 8076B614-8076B618 0001B8 0004+00 0/1 0/0 0/0 .rodata @5850 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5850 = 176.0f; -COMPILER_STRIP_GATE(0x8076B614, &lit_5850); -#pragma pop - -/* 8076B618-8076B61C 0001BC 0004+00 0/1 0/0 0/0 .rodata @5851 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5851 = 13.0f; -COMPILER_STRIP_GATE(0x8076B618, &lit_5851); -#pragma pop - -/* 8076B61C-8076B620 0001C0 0004+00 0/1 0/0 0/0 .rodata @5852 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5852 = 39.0f; -COMPILER_STRIP_GATE(0x8076B61C, &lit_5852); -#pragma pop - -/* 8076B620-8076B624 0001C4 0004+00 0/1 0/0 0/0 .rodata @5853 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5853 = 18.0f; -COMPILER_STRIP_GATE(0x8076B620, &lit_5853); -#pragma pop - -/* 8076B624-8076B628 0001C8 0004+00 0/1 0/0 0/0 .rodata @5854 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5854 = 36.0f; -COMPILER_STRIP_GATE(0x8076B624, &lit_5854); -#pragma pop - -/* 8076B628-8076B62C 0001CC 0004+00 0/1 0/0 0/0 .rodata @5855 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5855 = 43.0f; -COMPILER_STRIP_GATE(0x8076B628, &lit_5855); -#pragma pop - -/* 80768B90-80769324 003BB0 0794+00 1/1 0/0 0/0 .text anm_se_set__FP11e_rdb_class */ -static void anm_se_set(e_rdb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B62C-8076B630 0001D0 0004+00 0/1 0/0 0/0 .rodata @6322 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6322 = -20000.0f; -COMPILER_STRIP_GATE(0x8076B62C, &lit_6322); -#pragma pop - -/* 8076B630-8076B634 0001D4 0004+00 0/1 0/0 0/0 .rodata @6323 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6323 = 12000.0f; -COMPILER_STRIP_GATE(0x8076B630, &lit_6323); -#pragma pop - -/* 8076B634-8076B638 0001D8 0004+00 0/1 0/0 0/0 .rodata @6324 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6324 = 30000.0f; -COMPILER_STRIP_GATE(0x8076B634, &lit_6324); -#pragma pop - -/* 8076B638-8076B63C 0001DC 0004+00 0/1 0/0 0/0 .rodata @6325 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6325 = 2834.0f; -COMPILER_STRIP_GATE(0x8076B638, &lit_6325); -#pragma pop - -/* 8076B63C-8076B640 0001E0 0004+00 0/1 0/0 0/0 .rodata @6326 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6326 = 993.0f; -COMPILER_STRIP_GATE(0x8076B63C, &lit_6326); -#pragma pop - -/* 8076B640-8076B644 0001E4 0004+00 0/1 0/0 0/0 .rodata @6327 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6327 = -60.0f; -COMPILER_STRIP_GATE(0x8076B640, &lit_6327); -#pragma pop - -/* 8076B644-8076B648 0001E8 0004+00 0/1 0/0 0/0 .rodata @6328 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6328 = -10000.0f; -COMPILER_STRIP_GATE(0x8076B644, &lit_6328); -#pragma pop - -/* 8076B648-8076B64C 0001EC 0004+00 0/1 0/0 0/0 .rodata @6329 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6329 = 1.0f / 50.0f; -COMPILER_STRIP_GATE(0x8076B648, &lit_6329); -#pragma pop - -/* 8076B64C-8076B650 0001F0 0004+00 0/1 0/0 0/0 .rodata @6330 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6330 = 2573.0f; -COMPILER_STRIP_GATE(0x8076B64C, &lit_6330); -#pragma pop - -/* 8076B650-8076B654 0001F4 0004+00 0/1 0/0 0/0 .rodata @6331 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6331 = 370.0f; -COMPILER_STRIP_GATE(0x8076B650, &lit_6331); -#pragma pop - -/* 8076B654-8076B658 0001F8 0004+00 0/1 0/0 0/0 .rodata @6332 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6332 = 2200.0f; -COMPILER_STRIP_GATE(0x8076B654, &lit_6332); -#pragma pop - -/* 8076B658-8076B65C 0001FC 0004+00 0/1 0/0 0/0 .rodata @6333 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6333 = 2901.0f; -COMPILER_STRIP_GATE(0x8076B658, &lit_6333); -#pragma pop - -/* 8076B65C-8076B660 000200 0004+00 0/1 0/0 0/0 .rodata @6334 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6334 = 3100.0f; -COMPILER_STRIP_GATE(0x8076B65C, &lit_6334); -#pragma pop - -/* 8076B660-8076B664 000204 0004+00 0/1 0/0 0/0 .rodata @6335 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6335 = 222.0f; -COMPILER_STRIP_GATE(0x8076B660, &lit_6335); -#pragma pop - -/* 8076B664-8076B668 000208 0004+00 0/1 0/0 0/0 .rodata @6336 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6336 = 1888.0f; -COMPILER_STRIP_GATE(0x8076B664, &lit_6336); -#pragma pop - -/* 8076B668-8076B66C 00020C 0004+00 0/1 0/0 0/0 .rodata @6337 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6337 = 1900.0f; -COMPILER_STRIP_GATE(0x8076B668, &lit_6337); -#pragma pop - -/* 8076B66C-8076B670 000210 0004+00 0/1 0/0 0/0 .rodata @6338 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6338 = 555.0f; -COMPILER_STRIP_GATE(0x8076B66C, &lit_6338); -#pragma pop - -/* 8076B670-8076B674 000214 0004+00 0/1 0/0 0/0 .rodata @6339 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6339 = 1600.0f; -COMPILER_STRIP_GATE(0x8076B670, &lit_6339); -#pragma pop - -/* 8076B674-8076B678 000218 0004+00 0/1 0/0 0/0 .rodata @6340 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6340 = 1783.0f; -COMPILER_STRIP_GATE(0x8076B674, &lit_6340); -#pragma pop - -/* 8076B678-8076B67C 00021C 0004+00 0/1 0/0 0/0 .rodata @6341 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6341 = 355.0f; -COMPILER_STRIP_GATE(0x8076B678, &lit_6341); -#pragma pop - -/* 8076B67C-8076B680 000220 0004+00 0/1 0/0 0/0 .rodata @6342 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6342 = 1555.0f; -COMPILER_STRIP_GATE(0x8076B67C, &lit_6342); -#pragma pop - -/* 8076B680-8076B684 000224 0004+00 0/1 0/0 0/0 .rodata @6343 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6343 = 1332.0f; -COMPILER_STRIP_GATE(0x8076B680, &lit_6343); -#pragma pop - -/* 8076B684-8076B688 000228 0004+00 0/1 0/0 0/0 .rodata @6344 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6344 = 550.0f; -COMPILER_STRIP_GATE(0x8076B684, &lit_6344); -#pragma pop - -/* 8076B688-8076B68C 00022C 0004+00 0/1 0/0 0/0 .rodata @6345 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6345 = 1070.0f; -COMPILER_STRIP_GATE(0x8076B688, &lit_6345); -#pragma pop - -/* 8076B68C-8076B690 000230 0004+00 0/1 0/0 0/0 .rodata @6346 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6346 = 1375.0f; -COMPILER_STRIP_GATE(0x8076B68C, &lit_6346); -#pragma pop - -/* 8076B690-8076B694 000234 0004+00 0/1 0/0 0/0 .rodata @6347 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6347 = 250.0f; -COMPILER_STRIP_GATE(0x8076B690, &lit_6347); -#pragma pop - -/* 8076B694-8076B698 000238 0004+00 0/1 0/0 0/0 .rodata @6348 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6348 = 850.0f; -COMPILER_STRIP_GATE(0x8076B694, &lit_6348); -#pragma pop - -/* 8076B698-8076B69C 00023C 0004+00 0/1 0/0 0/0 .rodata @6349 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6349 = 1165.0f; -COMPILER_STRIP_GATE(0x8076B698, &lit_6349); -#pragma pop - -/* 8076B69C-8076B6A0 000240 0004+00 0/1 0/0 0/0 .rodata @6350 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6350 = 430.0f; -COMPILER_STRIP_GATE(0x8076B69C, &lit_6350); -#pragma pop - -/* 8076B6A0-8076B6A4 000244 0004+00 0/1 0/0 0/0 .rodata @6351 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6351 = 450.0f; -COMPILER_STRIP_GATE(0x8076B6A0, &lit_6351); -#pragma pop - -/* 8076B6A4-8076B6A8 000248 0004+00 0/1 0/0 0/0 .rodata @6352 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6352 = 260.0f; -COMPILER_STRIP_GATE(0x8076B6A4, &lit_6352); -#pragma pop - -/* 8076B6A8-8076B6AC 00024C 0004+00 0/1 0/0 0/0 .rodata @6353 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6353 = 522.0f; -COMPILER_STRIP_GATE(0x8076B6A8, &lit_6353); -#pragma pop - -/* 8076B6AC-8076B6B0 000250 0004+00 0/1 0/0 0/0 .rodata @6354 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6354 = 1632.0f; -COMPILER_STRIP_GATE(0x8076B6AC, &lit_6354); -#pragma pop - -/* 8076B6B0-8076B6B4 000254 0004+00 0/1 0/0 0/0 .rodata @6355 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6355 = 180.0f; -COMPILER_STRIP_GATE(0x8076B6B0, &lit_6355); -#pragma pop - -/* 8076B6C4-8076B6C4 000268 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8076B6E7 = "T_DESER"; -SECTION_DEAD static char const* const stringBase_8076B6EF = "F_SP118"; -#pragma pop - -/* 8076BA20-8076BA30 000060 000C+04 0/1 0/0 0/0 .bss @5932 */ -#pragma push -#pragma force_active on -static u8 lit_5932[12 + 4 /* padding */]; -#pragma pop - -/* 8076BA30-8076BA3C 000070 000C+00 0/1 0/0 0/0 .bss @5935 */ -#pragma push -#pragma force_active on -static u8 lit_5935[12]; -#pragma pop - -/* 8076BA3C-8076BA48 00007C 000C+00 0/1 0/0 0/0 .bss @5936 */ -#pragma push -#pragma force_active on -static u8 lit_5936[12]; -#pragma pop - -/* 8076BA48-8076BA54 000088 000C+00 0/1 0/0 0/0 .bss @5937 */ -#pragma push -#pragma force_active on -static u8 lit_5937[12]; -#pragma pop - -/* 8076BA54-8076BA60 000094 000C+00 0/1 0/0 0/0 .bss @5938 */ -#pragma push -#pragma force_active on -static u8 lit_5938[12]; -#pragma pop - -/* 8076BA60-8076BA6C 0000A0 000C+00 0/1 0/0 0/0 .bss @5939 */ -#pragma push -#pragma force_active on -static u8 lit_5939[12]; -#pragma pop - -/* 8076BA6C-8076BA78 0000AC 000C+00 0/1 0/0 0/0 .bss @5940 */ -#pragma push -#pragma force_active on -static u8 lit_5940[12]; -#pragma pop - -/* 8076BA78-8076BA84 0000B8 000C+00 0/1 0/0 0/0 .bss @5941 */ -#pragma push -#pragma force_active on -static u8 lit_5941[12]; -#pragma pop - -/* 8076BA84-8076BA90 0000C4 000C+00 0/1 0/0 0/0 .bss @5942 */ -#pragma push -#pragma force_active on -static u8 lit_5942[12]; -#pragma pop - -/* 8076BA90-8076BA9C 0000D0 000C+00 0/1 0/0 0/0 .bss @5943 */ -#pragma push -#pragma force_active on -static u8 lit_5943[12]; -#pragma pop - -/* 8076BA9C-8076BAA8 0000DC 000C+00 0/1 0/0 0/0 .bss @5944 */ -#pragma push -#pragma force_active on -static u8 lit_5944[12]; -#pragma pop - -/* 8076BAA8-8076BAB4 0000E8 000C+00 0/1 0/0 0/0 .bss @5945 */ -#pragma push -#pragma force_active on -static u8 lit_5945[12]; -#pragma pop - -/* 8076BAB4-8076BAC0 0000F4 000C+00 0/1 0/0 0/0 .bss @5946 */ -#pragma push -#pragma force_active on -static u8 lit_5946[12]; -#pragma pop - -/* 8076BAC0-8076BACC 000100 000C+00 0/1 0/0 0/0 .bss @5947 */ -#pragma push -#pragma force_active on -static u8 lit_5947[12]; -#pragma pop - -/* 8076BACC-8076BAD8 00010C 000C+00 0/1 0/0 0/0 .bss @5948 */ -#pragma push -#pragma force_active on -static u8 lit_5948[12]; -#pragma pop - -/* 8076BAD8-8076BAE4 000118 000C+00 0/1 0/0 0/0 .bss @5949 */ -#pragma push -#pragma force_active on -static u8 lit_5949[12]; -#pragma pop - -/* 8076BAE4-8076BAF0 000124 000C+00 0/1 0/0 0/0 .bss @5950 */ -#pragma push -#pragma force_active on -static u8 lit_5950[12]; -#pragma pop - -/* 8076BAF0-8076BAFC 000130 000C+00 0/1 0/0 0/0 .bss @5951 */ -#pragma push -#pragma force_active on -static u8 lit_5951[12]; -#pragma pop - -/* 8076BAFC-8076BB08 00013C 000C+00 0/1 0/0 0/0 .bss @5952 */ -#pragma push -#pragma force_active on -static u8 lit_5952[12]; -#pragma pop - -/* 8076BB08-8076BB14 000148 000C+00 0/1 0/0 0/0 .bss @5953 */ -#pragma push -#pragma force_active on -static u8 lit_5953[12]; -#pragma pop - -/* 8076BB14-8076BB20 000154 000C+00 0/1 0/0 0/0 .bss @5954 */ -#pragma push -#pragma force_active on -static u8 lit_5954[12]; -#pragma pop - -/* 8076BB20-8076BB2C 000160 000C+00 0/1 0/0 0/0 .bss @5955 */ -#pragma push -#pragma force_active on -static u8 lit_5955[12]; -#pragma pop - -/* 8076BB2C-8076BB38 00016C 000C+00 0/1 0/0 0/0 .bss @5956 */ -#pragma push -#pragma force_active on -static u8 lit_5956[12]; -#pragma pop - -/* 8076BB38-8076BB44 000178 000C+00 0/1 0/0 0/0 .bss @5957 */ -#pragma push -#pragma force_active on -static u8 lit_5957[12]; -#pragma pop - -/* 8076BB44-8076BC68 000184 0120+04 0/1 0/0 0/0 .bss fire_eff_pos$5931 */ -#pragma push -#pragma force_active on -static u8 fire_eff_pos[288 + 4 /* padding */]; -#pragma pop - -/* 80769324-8076A418 004344 10F4+00 2/1 0/0 0/0 .text daE_RDB_Execute__FP11e_rdb_class */ -static void daE_RDB_Execute(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 8076A418-8076A420 005438 0008+00 1/0 0/0 0/0 .text daE_RDB_IsDelete__FP11e_rdb_class - */ -static bool daE_RDB_IsDelete(e_rdb_class* param_0) { - return true; -} - -/* 8076A420-8076A488 005440 0068+00 1/0 0/0 0/0 .text daE_RDB_Delete__FP11e_rdb_class */ -static void daE_RDB_Delete(e_rdb_class* param_0) { - // NONMATCHING -} - -/* 8076A488-8076A5FC 0054A8 0174+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076B6B4-8076B6B8 000258 0004+00 0/1 0/0 0/0 .rodata @6539 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6539 = -200.0f; -COMPILER_STRIP_GATE(0x8076B6B4, &lit_6539); -#pragma pop - -/* 8076B6B8-8076B6BC 00025C 0004+00 0/1 0/0 0/0 .rodata @6540 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6540 = -7625.0f; -COMPILER_STRIP_GATE(0x8076B6B8, &lit_6540); -#pragma pop - -/* 8076B6BC-8076B6C0 000260 0004+00 0/1 0/0 0/0 .rodata @6541 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6541 = -5825.0f; -COMPILER_STRIP_GATE(0x8076B6BC, &lit_6541); -#pragma pop - -/* 8076B6C0-8076B6C4 000264 0004+00 0/1 0/0 0/0 .rodata @6542 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6542 = -50.0f; -COMPILER_STRIP_GATE(0x8076B6C0, &lit_6542); -#pragma pop - -/* 8076A5FC-8076AA0C 00561C 0410+00 1/0 0/0 0/0 .text daE_RDB_Create__FP10fopAc_ac_c */ -static void daE_RDB_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 8076AA0C-8076ABB8 005A2C 01AC+00 1/1 0/0 0/0 .text __ct__11e_rdb_classFv */ -e_rdb_class::e_rdb_class() { - // NONMATCHING -} - -/* 8076ABB8-8076AC00 005BD8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */ -// cM3dGSph::~cM3dGSph() { -extern "C" void __dt__8cM3dGSphFv() { - // NONMATCHING -} - -/* 8076AC00-8076AC48 005C20 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 8076AC48-8076AC90 005C68 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 8076AC90-8076AD5C 005CB0 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_SphFv */ -// dCcD_Sph::~dCcD_Sph() { -extern "C" void __dt__8dCcD_SphFv() { - // NONMATCHING -} - -/* 8076AD5C-8076ADE0 005D7C 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_SphFv */ -// dCcD_Sph::dCcD_Sph() { -extern "C" void __ct__8dCcD_SphFv() { - // NONMATCHING -} - -/* 8076ADE0-8076AE3C 005E00 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 8076AE3C-8076AEAC 005E5C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 8076AEAC-8076AF1C 005ECC 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 8076AF1C-8076AF64 005F3C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 8076AF64-8076AFAC 005F84 0048+00 2/1 0/0 0/0 .text __dt__13daE_RDB_HIO_cFv */ -daE_RDB_HIO_c::~daE_RDB_HIO_c() { - // NONMATCHING -} - -/* 8076AFAC-8076AFE8 005FCC 003C+00 0/0 1/0 0/0 .text __sinit_d_a_e_rdb_cpp */ -void __sinit_d_a_e_rdb_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8076AFAC, __sinit_d_a_e_rdb_cpp); -#pragma pop - -/* 8076AFE8-8076AFF0 006008 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_8076AFE8() { - // NONMATCHING -} - -/* 8076AFF0-8076AFF8 006010 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_8076AFF0() { - // NONMATCHING -} - -/* 8076B40C-8076B448 00642C 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8076BC68-8076BC6C 0002A8 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_8076BC68[4]; -#pragma pop - -/* 8076BC6C-8076BC70 0002AC 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_8076BC6C[4]; -#pragma pop - -/* 8076BC70-8076BC74 0002B0 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_8076BC70[4]; -#pragma pop - -/* 8076BC74-8076BC78 0002B4 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_8076BC74[4]; -#pragma pop - -/* 8076BC78-8076BC7C 0002B8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8076BC78[4]; -#pragma pop - -/* 8076BC7C-8076BC80 0002BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8076BC7C[4]; -#pragma pop - -/* 8076BC80-8076BC84 0002C0 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_8076BC80[4]; -#pragma pop - -/* 8076BC84-8076BC88 0002C4 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_8076BC84[4]; -#pragma pop - -/* 8076BC88-8076BC8C 0002C8 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_8076BC88[4]; -#pragma pop - -/* 8076BC8C-8076BC90 0002CC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_8076BC8C[4]; -#pragma pop - -/* 8076BC90-8076BC94 0002D0 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_8076BC90[4]; -#pragma pop - -/* 8076BC94-8076BC98 0002D4 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_8076BC94[4]; -#pragma pop - -/* 8076BC98-8076BC9C 0002D8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_8076BC98[4]; -#pragma pop - -/* 8076BC9C-8076BCA0 0002DC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8076BC9C[4]; -#pragma pop - -/* 8076BCA0-8076BCA4 0002E0 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_8076BCA0[4]; -#pragma pop - -/* 8076BCA4-8076BCA8 0002E4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_8076BCA4[4]; -#pragma pop - -/* 8076BCA8-8076BCAC 0002E8 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_8076BCA8[4]; -#pragma pop - -/* 8076BCAC-8076BCB0 0002EC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_8076BCAC[4]; -#pragma pop - -/* 8076BCB0-8076BCB4 0002F0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_8076BCB0[4]; -#pragma pop - -/* 8076BCB4-8076BCB8 0002F4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_8076BCB4[4]; -#pragma pop - -/* 8076BCB8-8076BCBC 0002F8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_8076BCB8[4]; -#pragma pop - -/* 8076BCBC-8076BCC0 0002FC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8076BCBC[4]; -#pragma pop - -/* 8076BCC0-8076BCC4 000300 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8076BCC0[4]; -#pragma pop - -/* 8076BCC4-8076BCC8 000304 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8076BCC4[4]; -#pragma pop - -/* 8076BCC8-8076BCCC 000308 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_8076BCC8[4]; -#pragma pop - -/* 8076B6C4-8076B6C4 000268 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */