diff --git a/include/d/actor/d_a_e_gb.h b/include/d/actor/d_a_e_gb.h index f499640b392..0f2c1cb8f5e 100644 --- a/include/d/actor/d_a_e_gb.h +++ b/include/d/actor/d_a_e_gb.h @@ -1,5 +1,8 @@ #ifndef D_A_E_GB_H #define D_A_E_GB_H +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" +#include "d/d_cc_uty.h" #include "f_op/f_op_actor_mng.h" /** @@ -10,17 +13,121 @@ * @details * */ -class e_gb_class : public fopEn_enemy_c { +class e_gb_class { +public: /* 806C6B94 */ e_gb_class(); -private: - /* 0x5ac */ u8 field_0x5ac[0xef8 - 0x5ac]; + + /* 0x000 */ fopEn_enemy_c actor; + /* 0x5AC */ request_of_phase_process_class mPhase; + /* 0x5B4 */ u8 field_0x5b4; + /* 0x5B5 */ u8 field_0x5b5; + /* 0x5B6 */ u8 field_0x5b6; + /* 0x5B7 */ u8 field_0x5b7; + /* 0x5B8 */ mDoExt_McaMorf* mpModelMorf1; + /* 0x5BC */ mDoExt_McaMorf* mpModelMorf2; + /* 0x5C0 */ mDoExt_brkAnm* mBrkAnm; + /* 0x5C4 */ Z2CreatureEnemy mSound; + /* 0x668 */ s8 field_0x668; + /* 0x66C */ J3DModel* field_0x66c; + /* 0x670 */ s8 field_0x670; + /* 0x674 */ cXyz field_0x674; + /* 0x680 */ f32 field_0x680; + /* 0x684 */ s16 field_0x684; + /* 0x686 */ s16 field_0x686; + /* 0x688 */ int field_0x688; + /* 0x68C */ int field_0x68c; + /* 0x690 */ u8 field_0x690[0x694 - 0x690]; + /* 0x694 */ u32 mShadowKey; + /* 0x698 */ s16 field_0x698; + /* 0x69A */ s16 field_0x69a; + /* 0x69C */ s16 field_0x69c; + /* 0x69E */ s16 field_0x69e; + /* 0x6A0 */ s16 field_0x6a0; + /* 0x6A2 */ u8 field_0x6a2[0x6a8 - 0x6a2]; + /* 0x6A8 */ cXyz field_0x6a8; + /* 0x6B4 */ u8 field_0x6b4[0x6b8 - 0x6b4]; + /* 0x6B8 */ s16 field_0x6b8; + /* 0x6BA */ s16 field_0x6ba; + /* 0x6BC */ f32 field_0x6bc; + /* 0x6C0 */ f32 field_0x6c0; + /* 0x6C4 */ s16 field_0x6c4[5]; + /* 0x6CE */ s16 field_0x6ce; + /* 0x6D0 */ s16 field_0x6d0; + /* 0x6D4 */ cXyz field_0x6d4; + /* 0x6E0 */ s8 field_0x6e0; + /* 0x6E4 */ cXyz field_0x6e4[18]; + /* 0x7BC */ csXyz field_0x7bc[18]; + /* 0x828 */ J3DModel* field_0x828[18]; + /* 0x870 */ u8 field_0x870[0x8b8 - 0x870]; + /* 0x8B8 */ f32 field_0x8b8[18]; + /* 0x900 */ s16 field_0x900[18]; + /* 0x924 */ s16 field_0x924; + /* 0x928 */ f32 field_0x928; + /* 0x92C */ s16 field_0x92c[3]; + /* 0x932 */ s8 field_0x932[3]; + /* 0x935 */ s8 field_0x935[3]; + /* 0x938 */ s8 field_0x938; + /* 0x939 */ s8 field_0x939; + /* 0x93C */ f32 field_0x93c; + /* 0x940 */ f32 field_0x940; + /* 0x944 */ f32 field_0x944; + /* 0x948 */ s16 field_0x948; + /* 0x94A */ s16 field_0x94a; + /* 0x94C */ f32 field_0x94c; + /* 0x950 */ s16 field_0x950; + /* 0x952 */ s16 field_0x952; + /* 0x954 */ u8 field_0x954; + /* 0x955 */ s8 field_0x955; + /* 0x956 */ u8 field_0x956[0x964 - 0x956]; + /* 0x964 */ f32 field_0x964; + /* 0x968 */ s8 field_0x968; + /* 0x969 */ u8 field_0x969[0x970 - 0x969]; + /* 0x970 */ dCcD_Stts mStts; + /* 0x9AC */ dCcD_Sph mHeadSph; + /* 0xAE4 */ dCcD_Cyl mBodyCyl; + /* 0xC20 */ s8 field_0xc20; + /* 0xC24 */ dCcU_AtInfo mAtInfo; + /* 0xC48 */ dBgS_AcchCir mAcchCir; + /* 0xC88 */ dBgS_ObjAcch mObjAcch; + /* 0xE60 */ u8 field_0xe60[2]; + /* 0xE62 */ u32 field_0xe62[2]; + /* 0xE6C */ u32 field_0xe6c; + /* 0xE70 */ u32 field_0xe70; + /* 0xE74 */ u32 field_0xe74; + /* 0xE78 */ u32 field_0xe78; + /* 0xE7C */ u32 field_0xe7c[5]; + /* 0xE90 */ s16 mDemoMode; + /* 0xE92 */ s16 field_0xe92; + /* 0xE94 */ cXyz mDemoCamEye; + /* 0xEA0 */ cXyz mDemoCamCenter; + /* 0xEAC */ cXyz field_0xeac; + /* 0xEB8 */ cXyz field_0xeb8; + /* 0xEC4 */ cXyz field_0xec4; + /* 0xED0 */ cXyz field_0xed0; + /* 0xEDC */ u8 field_0xedc[0xee4 - 0xedc]; + /* 0xEE4 */ f32 field_0xee4; + /* 0xEE8 */ f32 mDemoCamFovy; + /* 0xEEC */ u8 field_0xeec[0xef5 - 0xeec]; + /* 0xEF5 */ u8 field_0xef5; }; STATIC_ASSERT(sizeof(e_gb_class) == 0xef8); -class daE_GB_HIO_c { +class daE_GB_HIO_c : public JORReflexible{ +public: /* 806C1CEC */ daE_GB_HIO_c(); - /* 806C6F98 */ ~daE_GB_HIO_c(); + /* 806C6F98 */ virtual ~daE_GB_HIO_c() {} + + void genMessage(JORMContext*); + + /* 0x04 */ s8 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ s16 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ s16 field_0x1c; + /* 0x1E */ s16 field_0x1e; }; diff --git a/include/d/actor/d_a_obj_smallkey.h b/include/d/actor/d_a_obj_smallkey.h index 9c1b7bb2055..10be1143810 100644 --- a/include/d/actor/d_a_obj_smallkey.h +++ b/include/d/actor/d_a_obj_smallkey.h @@ -12,6 +12,7 @@ * */ class daKey_c : public fopAc_ac_c { +public: /* 80CD9F2C */ void initBaseMtx(); /* 80CD9F68 */ void setBaseMtx(); /* 80CD9FDC */ void Create(); @@ -40,8 +41,22 @@ class daKey_c : public fopAc_ac_c { /* 80CDB404 */ void execute(); /* 80CDB5D4 */ void draw(); /* 80CDB628 */ void _delete(); -private: - /* 0x568 */ u8 field_0x568[0x988 - 0x568]; + + void setPos(cXyz pos) { + current.pos = pos; + } + + void startMove(f32 param_1, f32 param_2) { + speedF = param_1; + speed.y = param_2; + gravity = -6.0f; + actionWaitInit(); + } + + /* 0x568 */ u8 field_0x568[0x978 - 0x568]; + /* 0x978 */ cXyz field_0x978; + /* 0x984 */ u8 field_0x984; + /* 0x985 */ u8 field_0x985[0x988 - 0x985]; }; STATIC_ASSERT(sizeof(daKey_c) == 0x988); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index b381c8be62a..52462826fcc 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -685,7 +685,7 @@ public: f32 getSpinnerRideSpeed() const; bool checkSpinnerReflectEffect(); static bool checkBoomerangCharge(); - int checkBoomerangChargeTime(); + static u8 checkBoomerangChargeTime(); static daBoomerang_c* getThrowBoomerangActor(); static void cancelBoomerangLockActor(fopAc_ac_c*); static void setPlayerDamage(int, int); diff --git a/src/d/actor/d_a_e_gb.cpp b/src/d/actor/d_a_e_gb.cpp index 5cf496c96b5..4c1b659b887 100644 --- a/src/d/actor/d_a_e_gb.cpp +++ b/src/d/actor/d_a_e_gb.cpp @@ -5,404 +5,1670 @@ #include "d/actor/d_a_e_gb.h" #include "d/d_cc_d.h" -#include "dol2asm.h" #include "d/d_camera.h" +#include "d/d_bomb.h" #include "d/actor/d_a_obj_smallkey.h" -UNK_REL_DATA; #include "f_op/f_op_actor_enemy.h" +UNK_REL_DATA; -// -// Forward References: -// +/* 806C1CEC-806C1D3C 0000EC 0050+00 1/1 0/0 0/0 .text __ct__12daE_GB_HIO_cFv */ +daE_GB_HIO_c::daE_GB_HIO_c() { + field_0x4 = -1; + field_0x8 = 1.0f; + field_0xc = 1.0f; + field_0x10 = 1.0f; + field_0x14 = 15; + field_0x18 = 65.0f; + field_0x1c = 12; + field_0x1e = 10; +} -extern "C" void __ct__12daE_GB_HIO_cFv(); -extern "C" static void head_anm_init__FP10e_gb_classifUcf(); -extern "C" static void body_anm_init__FP10e_gb_classifUcf(); -extern "C" static void daE_GB_Draw__FP10e_gb_class(); -extern "C" static void e_gb_wait__FP10e_gb_class(); -extern "C" static void e_gb_attack_1__FP10e_gb_class(); -extern "C" static void e_gb_attack_2__FP10e_gb_class(); -extern "C" static void e_gb_damage__FP10e_gb_class(); -extern "C" static void e_gb_end__FP10e_gb_class(); -extern "C" static void e_gb_start__FP10e_gb_class(); -extern "C" static void kuki_control1__FP10e_gb_class(); -extern "C" static void kuki_control2__FP10e_gb_class(); -extern "C" static void kuki_control3__FP10e_gb_class(); -extern "C" static void s_b_sub__FPvPv(); -extern "C" static void damage_check__FP10e_gb_class(); -extern "C" static void action__FP10e_gb_class(); -extern "C" static void e_gf_wait__FP10e_gb_class(); -extern "C" static void e_gf_chance__FP10e_gb_class(); -extern "C" static void e_gf_eatbomb__FP10e_gb_class(); -extern "C" static void e_gf_end__FP10e_gb_class(); -extern "C" static void damage_check2__FP10e_gb_class(); -extern "C" static void action2__FP10e_gb_class(); -extern "C" static void cam_3d_morf__FP10e_gb_classf(); -extern "C" static void demo_camera__FP10e_gb_class(); -extern "C" static void daE_GB_Execute__FP10e_gb_class(); -extern "C" static bool daE_GB_IsDelete__FP10e_gb_class(); -extern "C" static void daE_GB_Delete__FP10e_gb_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" static void daE_GB_Create__FP10fopAc_ac_c(); -extern "C" void __ct__10e_gb_classFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGSphFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__12daE_GB_HIO_cFv(); -extern "C" void __sinit_d_a_e_gb_cpp(); -extern "C" static void func_806C701C(); -extern "C" static void func_806C7024(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void setPos__7daKey_cF4cXyz(); -extern "C" extern char const* const d_a_e_gb__stringBase0; +/* 806C1D3C-806C1DEC 00013C 00B0+00 7/7 0/0 0/0 .text head_anm_init__FP10e_gb_classifUcf */ +static void head_anm_init(e_gb_class* i_this, int param_2, f32 i_morf, u8 i_mode, f32 i_speed) { + i_this->mpModelMorf1->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_gb", param_2), i_mode, + i_morf, i_speed, 0.0f, -1.0f, NULL); + i_this->field_0x688 = param_2; +} -// -// External References: -// +/* 806C1DEC-806C1E9C 0001EC 00B0+00 5/5 0/0 0/0 .text body_anm_init__FP10e_gb_classifUcf */ +static void body_anm_init(e_gb_class* i_this, int param_2, f32 i_morf, u8 i_mode, f32 i_speed) { + i_this->mpModelMorf2->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_gb", param_2), i_mode, + i_morf, i_speed, 0.0f, -1.0f, NULL); + i_this->field_0x68c = param_2; +} -extern "C" void mDoMtx_XrotS__FPA4_fs(); -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 scaleM__14mDoMtx_stack_cFfff(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); -extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void -__ct__14mDoExt_McaMorfFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiiPvUlUl(); -extern "C" void setAnm__14mDoExt_McaMorfFP15J3DAnmTransformiffffPv(); -extern "C" void play__14mDoExt_McaMorfFP3VecUlSc(); -extern "C" void entryDL__14mDoExt_McaMorfFv(); -extern "C" void modelCalc__14mDoExt_McaMorfFv(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -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_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs(); -extern "C" void fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc(); -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 -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -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_defaultSkipProc__FPvi(); -extern "C" void dEv_noFinishSkipProc__FPvi(); -extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii(); -extern "C" void getEmitter__Q213dPa_control_c7level_cFUl(); -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 __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 GetAtHitObj__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 def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c(); -extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo(); -extern "C" bool checkBoomerangChargeTime__9daPy_py_cFv(); -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_darkworld_check__Fv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ml__4cXyzCFf(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void cM_rndFX__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 MtxTrans__FfffUc(); -extern "C" void MtxScale__FfffUc(); -extern "C" void MtxPosition__FP4cXyzP4cXyz(); -extern "C" void func_802807E0(); -extern "C" void func_80280808(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void setBattleBgmOff__8Z2SeqMgrFb(); -extern "C" void stopAnime__10Z2CreatureFv(); -extern "C" void __ct__15Z2CreatureEnemyFv(); -extern "C" void init__15Z2CreatureEnemyFP3VecP3VecUcUc(); -extern "C" void setLinkSearch__15Z2CreatureEnemyFb(); -extern "C" void setEnemyName__15Z2CreatureEnemyFPCc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -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_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_19(); -extern "C" void _restgpr_20(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" 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 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(); -extern "C" void actionWaitInit__7daKey_cFv(); +/* 806C1E9C-806C2078 00029C 01DC+00 1/0 0/0 0/0 .text daE_GB_Draw__FP10e_gb_class */ +static int daE_GB_Draw(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; -// -// Declarations: -// + g_env_light.settingTevStruct(0, &a_this->current.pos, &a_this->tevStr); -/* ############################################################################################## */ -/* 806C7514-806C7518 00002C 0004+00 1/1 0/0 0/0 .rodata @3927 */ -SECTION_RODATA static f32 const lit_3927 = 65.0f; -COMPILER_STRIP_GATE(0x806C7514, &lit_3927); + J3DModel* model = i_this->mpModelMorf2->getModel(); + g_env_light.setLightTevColorType_MAJI(model, &a_this->tevStr); -/* 806C76FC-806C7700 000038 0004+00 1/1 0/0 0/0 .data eno$4381 */ -SECTION_DATA static u8 eno_4381[4] = { - 0x83, - 0x2F, - 0x83, - 0x30, -}; + J3DModelData* modelData = model->getModelData(); + i_this->mBrkAnm->entry(modelData); + i_this->mpModelMorf2->entryDL(); -/* 806C7700-806C7724 00003C 0022+02 0/1 0/0 0/0 .data pow_xa$4443 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 pow_xa[34 + 2 /* padding */] = { - 0xD0, - 0x00, - 0xD8, - 0x00, - 0xE0, - 0x00, - 0xE8, - 0x00, - 0xF0, - 0x00, - 0x00, - 0x00, - 0x10, - 0x00, - 0x18, - 0x00, - 0x20, - 0x00, - 0x28, - 0x00, - 0x30, - 0x00, - 0x38, - 0x00, - 0x30, - 0x00, - 0x20, - 0x00, - 0x10, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop + if (i_this->field_0x66c != NULL) { + g_env_light.setLightTevColorType_MAJI(i_this->field_0x66c, &a_this->tevStr); + mDoExt_modelUpdateDL(i_this->field_0x66c); + } -/* 806C7724-806C7748 000060 0022+02 0/1 0/0 0/0 .data pow_xa_chance$4444 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 pow_xa_chance[34 + 2 /* padding */] = { - 0xC8, - 0x00, - 0xD0, - 0x00, - 0xD8, - 0x00, - 0xE0, - 0x00, - 0xE8, - 0x00, - 0xF0, - 0x00, - 0xF8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - /* padding */ - 0x00, - 0x00, -}; -#pragma pop + if (i_this->field_0x968 != 0) { + if (i_this->field_0x828[17] != NULL) { + model = i_this->mpModelMorf1->getModel(); + g_env_light.setLightTevColorType_MAJI(model, &a_this->tevStr); + i_this->mpModelMorf1->entryDL(); -/* 806C7748-806C778C 000084 0044+00 0/1 0/0 0/0 .data wav_d$4445 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 wav_d[68] = { - 0x00, 0x00, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x00, - 0x00, 0x00, 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x80, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x19, 0x99, 0x9A, - 0x3E, 0xCC, 0xCC, 0xCD, 0x3E, 0x4C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop + for (int i = 0; i < 17; i++) { + if (i_this->field_0x828[i] != NULL) { + g_env_light.setLightTevColorType_MAJI(i_this->field_0x828[i], &a_this->tevStr); + mDoExt_modelUpdateDL(i_this->field_0x828[i]); + } + } + } -/* 806C778C-806C77B8 -00001 002C+00 1/1 0/0 0/0 .data @4803 */ -SECTION_DATA static void* lit_4803[11] = { - (void*)(((char*)action__FP10e_gb_class) + 0x174), - (void*)(((char*)action__FP10e_gb_class) + 0x18C), - (void*)(((char*)action__FP10e_gb_class) + 0x1A8), - (void*)(((char*)action__FP10e_gb_class) + 0x1C8), - (void*)(((char*)action__FP10e_gb_class) + 0x21C), - (void*)(((char*)action__FP10e_gb_class) + 0x1E4), - (void*)(((char*)action__FP10e_gb_class) + 0x21C), - (void*)(((char*)action__FP10e_gb_class) + 0x21C), - (void*)(((char*)action__FP10e_gb_class) + 0x21C), - (void*)(((char*)action__FP10e_gb_class) + 0x21C), - (void*)(((char*)action__FP10e_gb_class) + 0x200), -}; + cXyz sp38; + sp38.set(a_this->current.pos.x, a_this->current.pos.y + 100.0f, a_this->current.pos.z); + i_this->mShadowKey = dComIfGd_setShadow(i_this->mShadowKey, 1, model, &sp38, 1400.0f, 0.0f, a_this->current.pos.y, + i_this->mObjAcch.GetGroundH(), i_this->mObjAcch.m_gnd, + &a_this->tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); -/* 806C77B8-806C77C4 0000F4 000A+02 1/1 0/0 0/0 .data eno$4864 */ -SECTION_DATA static u8 eno_4864[10 + 2 /* padding */] = { - 0x82, - 0xE8, - 0x82, - 0xE9, - 0x82, - 0xEA, - 0x82, - 0xEB, - 0x82, - 0xEC, - /* padding */ - 0x00, - 0x00, -}; + for (int i = 0; i < 17; i++) { + if (i_this->field_0x828[i] != NULL) { + dComIfGd_addRealShadow(i_this->mShadowKey, i_this->field_0x828[i]); + } + } + } -/* 806C77C4-806C77C8 000100 0004+00 1/1 0/0 0/0 .data key_eno$5459 */ -SECTION_DATA static u8 key_eno[4] = { - 0x82, - 0x7A, - 0x82, - 0x7B, -}; + return 1; +} -/* 806C77C8-806C7808 000104 0040+00 1/1 0/0 0/0 .data head_cc_sph_src$5811 */ -static dCcD_SrcSph head_cc_sph_src = { - { - {0x0, {{AT_TYPE_CSTATUE_SWING, 0x2, 0xd}, {0xd8fbfdff, 0x3}, 0x75}}, // mObj - {dCcD_SE_HARD_BODY, 0x0, 0x1, 0x0, 0x0}, // mGObjAt - {dCcD_SE_STONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf - { - {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph - } // mSphAttr -}; +/* 806C7928-806C792C 000008 0004+00 2/2 0/0 0/0 .bss None */ +static u8 data_806C7928; -/* 806C7808-806C784C 000144 0044+00 1/1 0/0 0/0 .data body_cyl_src$5812 */ -static dCcD_SrcCyl body_cyl_src = { - { - {0x0, {{0x0, 0x0, 0x0}, {0xd8fbfdff, 0x3}, 0x79}}, // mObj - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_HARD_BODY, 0x0, 0x0, 0x0, 0x3}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf - { - {0.0f, 0.0f, 0.0f}, // mCenter - 30.0f, // mRadius - 20.0f // mHeight - } // mCyl -}; +/* 806C7938-806C7958 000018 0020+00 6/6 0/0 0/0 .bss l_HIO */ +static daE_GB_HIO_c l_HIO; + +/* 806C2078-806C2560 000478 04E8+00 1/1 0/0 0/0 .text e_gb_wait__FP10e_gb_class */ +static void e_gb_wait(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + fopAc_ac_c* player = dComIfGp_getPlayer(0); + cXyz sp5c, sp68; + f32 fVar1 = (a_this->home.pos - dComIfGp_getPlayer(0)->current.pos).abs(); + s8 sVar1 = 0; + + switch (i_this->field_0x69c) { + case -2: + head_anm_init(i_this, 16, 3.0f, 0, 1.0f); + i_this->field_0x6c4[1] = l_HIO.field_0x14 + cM_rndF(l_HIO.field_0x14); + i_this->field_0x69c = 1; + i_this->field_0x6c0 = 1.0f; + break; + + case 0: + head_anm_init(i_this, 17, 10.0f, 2, 1.0f); + i_this->field_0x69c = 1; + i_this->field_0x6c4[1] = l_HIO.field_0x14 + cM_rndF(l_HIO.field_0x14); + // fallthrough + case 1: + if (i_this->field_0x688 != 17 && i_this->mpModelMorf1->isStop()) { + head_anm_init(i_this, 17, 10.0f, 2, 1.0f); + } + + if (i_this->field_0x6c4[1] == 0 && fVar1 < 1000.0f) { + sVar1 = 1; + OS_REPORT("E_gb NEAR ATTACK d\n"); + } + + if (i_this->field_0x6c4[0] == 0) { + i_this->field_0x6c4[0] = cM_rndF(30.0f) + 10.0f; + cMtx_YrotS(*calc_mtx, a_this->current.angle.y); + sp5c.x = cM_rndFX(100.0f); + sp5c.y = l_HIO.field_0x8 * 450.0f + cM_rndFX(100.0f); + sp5c.z = cM_rndFX(100.0f) + 200.0f; + MtxPosition(&sp5c, &i_this->field_0x6a8); + i_this->field_0x6a8 += i_this->field_0x6d4; + i_this->field_0x6c0 = 0.0f; + + if (i_this->field_0x6c4[1] == 0 && fVar1 < 1500.0f) { + sVar1 = 1; + } + } + + sp68.x = cM_ssin(i_this->field_0x698 * 0x76C) * 30.0f; + sp68.y = cM_ssin(i_this->field_0x698 * 0x898) * 30.0f; + sp68.z = cM_scos(i_this->field_0x698 * 2000) * 30.0f; + cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x6a8.x + sp68.x, 0.1f, i_this->field_0x6c0 * 30.0f); + cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x6a8.z + sp68.z, 0.1f, i_this->field_0x6c0 * 30.0f); + cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x6a8.y + sp68.y, 0.1f, i_this->field_0x6c0 * 30.0f); + cLib_addCalc2(&i_this->field_0x6c0, 1.0f, 1.0f, 0.05f); + } + + cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x6b8, 8, 0x100); + cLib_addCalcAngleS2(&a_this->shape_angle.y, i_this->field_0x6b8, 8, 0x800); + cLib_addCalcAngleS2(&a_this->shape_angle.x, i_this->field_0x6ba, 8, 0x400); + + if (sVar1 != 0) { + a_this->speedF = 0.0f; + i_this->field_0x69a = 1; + i_this->field_0x69c = 0; + } +} + +/* 806C2560-806C2AB0 000960 0550+00 1/1 0/0 0/0 .text e_gb_attack_1__FP10e_gb_class */ +static void e_gb_attack_1(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + fopAc_ac_c* player = dComIfGp_getPlayer(0); + cXyz sp58, sp64; + f32 fVar2 = 0.0f; + f32 fVar3 = 20.0f; + f32 fVar1 = (a_this->home.pos - dComIfGp_getPlayer(0)->current.pos).abs(); + + switch (i_this->field_0x69c) { + case 0: + if (fVar1 < 1200.0f && cM_rndF(1.0f) < 0.5f) { + i_this->field_0x69a = 2; + i_this->field_0x69c = 0; + i_this->field_0x6c4[0] = 0; + return; + } + + head_anm_init(i_this, 5, 5.0f, 0, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK, -1); + i_this->field_0x69c = 1; + i_this->field_0x6c0 = 0.0f; + break; + + case 1: + cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x6b8, 2, 0x800); + cLib_addCalcAngleS2(&a_this->current.angle.x, i_this->field_0x6ba, 2, 0x800); + cMtx_YrotS(*calc_mtx, a_this->current.angle.y); + + sp58.x = 0.0f; + sp58.y = l_HIO.field_0x8 * 450.0f; + sp58.z = 0.0f; + MtxPosition(&sp58, &sp64); + i_this->field_0x6a8 = i_this->field_0x6d4 + sp64; + + cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x6a8.x, 0.1f, i_this->field_0x6c0 * 30.0f); + cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x6a8.z, 0.1f, i_this->field_0x6c0 * 30.0f); + cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x6a8.y, 0.1f, i_this->field_0x6c0 * 30.0f); + cLib_addCalc2(&i_this->field_0x6c0, 1.0f, 1.0f, 0.1f); + + if (i_this->mpModelMorf1->isStop()) { + i_this->field_0x69c = 3; + i_this->field_0x6c4[0] = l_HIO.field_0x1c; + head_anm_init(i_this, 8, 1.0f, 0, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK_DASH, -1); + } + break; + + case 3: + fVar2 = l_HIO.field_0x18; + fVar3 = l_HIO.field_0x18 * 0.5f; + if (i_this->field_0x6c4[0] == 0) { + i_this->field_0x6c4[0] = l_HIO.field_0x1e; + i_this->field_0x69c = 4; + } + break; + + case 4: + if (i_this->field_0x6c4[0] == 0) { + i_this->field_0x69a = 0; + i_this->field_0x69c = 0; + i_this->field_0x6c4[0] = cM_rndF(10.0f) + 10.0f; + i_this->field_0x6c0 = 0.0f; + return; + } + break; + + case 5: + fVar3 = 5.0f; + if (i_this->field_0x6c4[0] == 0 && fabsf(a_this->speedF) < 0.1f) { + i_this->field_0x69a = 0; + i_this->field_0x69c = 0; + i_this->field_0x6c4[0] = cM_rndF(10.0f) + 10.0f; + i_this->field_0x6c0 = 0.0f; + } + } + + cLib_addCalc2(&a_this->speedF, fVar2, 1.0f, fVar3); + if (a_this->speedF >= 10.0f) { + i_this->field_0xc20 = 1; + if (i_this->field_0x69c != 5 && (i_this->mObjAcch.ChkWallHit() != 0 || i_this->mHeadSph.ChkAtShieldHit())) { + i_this->field_0x69c = 5; + i_this->field_0x948 = 5000; + i_this->field_0x952 = 3000; + i_this->field_0x94c = 3000.0f; + + head_anm_init(i_this, 17, 2.0f, 2, 1.0f); + + i_this->field_0x6c4[0] = 0; + a_this->speedF = -30.0f; + } + } + + cLib_addCalcAngleS2(&a_this->shape_angle.y, a_this->current.angle.y, 8, 0x800); + cLib_addCalcAngleS2(&a_this->shape_angle.x, a_this->current.angle.x, 8, 0x400); +} + +/* 806C2AB0-806C2FC0 000EB0 0510+00 1/1 0/0 0/0 .text e_gb_attack_2__FP10e_gb_class */ +static void e_gb_attack_2(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + fopAc_ac_c* player = dComIfGp_getPlayer(0); + cXyz sp60, sp6c; + f32 fVar1 = 0.0f; + f32 frame = i_this->mpModelMorf1->getFrame(); + + switch (i_this->field_0x69c) { + case 0: + head_anm_init(i_this, 7, 5.0f, 2, 1.0f); + i_this->field_0x6c4[0] = cM_rndF(10.0f) + 49.0f; + i_this->field_0x69c = 1; + i_this->mSound.startCreatureSound(Z2SE_EN_GB_V_DOSUN, 0, -1); + break; + + case 1: + a_this->speedF = 0.0f; + a_this->speed.y = 0.0f; + + cLib_addCalc2(&a_this->current.pos.y, a_this->home.pos.y + 200.0f, 0.05f, 3.0f); + cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x6b8, 2, 0x800); + cLib_addCalcAngleS2(&a_this->current.angle.x, 0, 2, 0x800); + cLib_addCalcAngleS2(&a_this->shape_angle.y, a_this->current.angle.y, 8, 0x800); + cLib_addCalcAngleS2(&a_this->shape_angle.x, a_this->current.angle.x, 8, 0x400); + + if (i_this->field_0x6c4[0] == 0) { + head_anm_init(i_this, 6, 2.0f, 0, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK, -1); + i_this->mSound.startCreatureSound(Z2SE_EN_GB_DOSUN_DASH, 0, -1); + i_this->field_0x69c = 2; + } + break; + + case 2: + sp60.x = player->current.pos.x - a_this->current.pos.x; + sp60.z = player->current.pos.z - a_this->current.pos.z; + if (frame >= 16.0f) { + a_this->speedF = 0.0f; + fVar1 = 0.0f; + } else if (frame >= 6.0f) { + fVar1 = 50.0f; + if (frame == 6.0f) { + a_this->speed.y = 50.0f; + } + + if (JMAFastSqrt(sp60.x * sp60.x + sp60.z * sp60.z) < 100.0f) { + a_this->speedF = 0.0f; + fVar1 = 0.0f; + } + } else { + a_this->speed.y = 0.0f; + } + + if (frame >= 10.0f && frame <= 20.0f) { + i_this->field_0xc20 = 1; + } + + a_this->speedF = fVar1; + if (a_this->speed.y <= 0.0f && a_this->current.pos.y <= (a_this->home.pos.y + 150.0f)) { + a_this->current.pos.y = a_this->home.pos.y + 150.0f; + if (a_this->speed.y < -30.0f) { + fopAcM_effSmokeSet1(&i_this->field_0xe74, &i_this->field_0xe78, &a_this->eyePos, NULL, 1.7f, &a_this->tevStr, 1); + dComIfGp_getVibration().StartShock(5, 15, cXyz(0.0f, 1.0f, 0.0f)); + i_this->mSound.startCreatureSound(Z2SE_EN_GB_DOSUN, 0, -1); + } + + a_this->speed.y = 0.0f; + if (i_this->mpModelMorf1->isStop()) { + sp60 = a_this->current.pos - a_this->home.pos; + if (cM_rndF(1.0f) < 0.5f && sp60.abs() < 1000.0f) { + i_this->field_0x69c = 0; + } else { + i_this->field_0x69a = 0; + i_this->field_0x69c = 0; + i_this->field_0x6c4[0] = cM_rndF(10.0f) + 10.0f; + i_this->field_0x6c0 = 0.0f; + } + } + } + } +} + +/* 806C2FC0-806C3194 0013C0 01D4+00 1/1 0/0 0/0 .text e_gb_damage__FP10e_gb_class */ +static void e_gb_damage(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + cXyz sp24; + s16 sVar1; + + i_this->field_0x6ce = 35; + switch (i_this->field_0x69c) { + case 0: + i_this->field_0x69c = 1; + sVar1 = a_this->current.angle.y; + if ((s16)(i_this->field_0x6b8 - sVar1) < 0) { + a_this->current.angle.y = sVar1 + 0x2000; + } else { + a_this->current.angle.y = sVar1 - 0x2000; + } + + cMtx_YrotS(*calc_mtx, a_this->current.angle.y); + sp24.x = 0.0f; + sp24.y = 50.0f; + sp24.z = 800.0f; + MtxPosition(&sp24, &i_this->field_0x6a8); + i_this->field_0x6a8 += a_this->home.pos; + a_this->speed.x = fabsf(a_this->current.pos.x - i_this->field_0x6a8.x) * 0.2f; + a_this->speed.y = fabsf(a_this->current.pos.y - i_this->field_0x6a8.y) * 0.2f; + a_this->speed.z = fabsf(a_this->current.pos.z - i_this->field_0x6a8.z) * 0.2f; + i_this->field_0x6c4[0] = 15; + // fallthrough + case 1: + if (i_this->field_0x6c4[0] == 0) { + if (a_this->health <= 0) { + i_this->field_0x69a = 5; + i_this->field_0x69c = 0; + } else { + i_this->field_0x69a = 0; + i_this->field_0x69c = -2; + } + } + } + + cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x6a8.x, 0.1f, a_this->speed.x); + cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x6a8.y, 0.1f, a_this->speed.y); + cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x6a8.z, 0.1f, a_this->speed.z); + cLib_addCalcAngleS2(&a_this->shape_angle.y, a_this->current.angle.y, 2, 0x2000); + cLib_addCalcAngleS2(&a_this->shape_angle.x, 0, 4, 0x800); +} + +/* 806C3194-806C33C8 001594 0234+00 1/1 0/0 0/0 .text e_gb_end__FP10e_gb_class */ +static void e_gb_end(e_gb_class* i_this) { + static u16 eno[2] = { + 0x832F, + 0x8330, + }; + + fopEn_enemy_c* a_this = &i_this->actor; + + i_this->field_0x6ce = 20; + switch (i_this->field_0x69c) { + case 0: + head_anm_init(i_this, 15, 30.0f, 0, 1.0f); + i_this->field_0x69c = 1; + break; + + case 1: + i_this->field_0x69c = 2; + i_this->mSound.startCreatureSound(Z2SE_EN_GB_BOMBROOT, 0, -1); + break; + + case 2: + if ((i_this->field_0x698 & 1) == 0) { + i_this->field_0x828[i_this->field_0x939] = NULL; + if (i_this->field_0x939 == 17) { + i_this->field_0x69c = 10; + fopAcM_createDisappear(a_this, &a_this->eyePos, 12, 0, a_this->field_0x564); + i_this->field_0x968 = 0; + i_this->field_0x69e = 3; + i_this->field_0x6a0 = 0; + i_this->field_0x6c4[0] = 80; + i_this->field_0x668 = 1; + i_this->mSound.stopAnime(); + Z2GetAudioMgr()->unMuteSceneBgm(33); + } else { + for (int i = 0; i < 2; i++) { + dComIfGp_particle_set(eno[i], &i_this->field_0x6e4[i_this->field_0x939], NULL, NULL); + } + } + + i_this->field_0x939++; + } + break; + + case 10: + break; + } + + a_this->current.pos.y -= 5.0f; +} + +/* 806C33C8-806C3558 0017C8 0190+00 1/1 0/0 0/0 .text e_gb_start__FP10e_gb_class */ +static void e_gb_start(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + cXyz sp28; + + i_this->field_0x6ce = 20; + switch (i_this->field_0x69c) { + case 0: + i_this->field_0x69c = 1; + head_anm_init(i_this, 17, 10.0f, 2, 1.0f); + i_this->mDemoMode = 1; + break; + + case 2: + a_this->current.pos.set(-6112.0f, 4520.0f, 10800.0f); + i_this->field_0x69c = 3; + break; + + case 3: + cLib_addCalc2(&a_this->current.pos.x, -5450.0f, 0.5f, 30.0f); + break; + + case 4: + cMtx_YrotS(*calc_mtx, a_this->home.angle.y); + sp28.x = 20.0f; + sp28.y = 500.0f; + sp28.z = 0.0f; + MtxPosition(&sp28, &i_this->field_0x6a8); + i_this->field_0x6a8 += a_this->home.pos; + + cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x6a8.x, 0.1f, 80.0f); + cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x6a8.y, 0.1f, 80.0f); + cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x6a8.z, 0.1f, 80.0f); + + cLib_addCalcAngleS2(&a_this->current.angle.y, -0x4000, 16, 0x200); + cLib_addCalcAngleS2(&a_this->shape_angle.y, 0x4000, 16, 0x200); + cLib_addCalcAngleS2(&a_this->shape_angle.x, 0x2000, 16, 0x100); + } +} + +/* 806C3558-806C3904 001958 03AC+00 1/1 0/0 0/0 .text kuki_control1__FP10e_gb_class */ +static void kuki_control1(e_gb_class* i_this) { + // NONMATCHING + static s16 pow_xa[17] = { + 0xD000, 0xD800, 0xE000, 0xE800, 0xF000, + 0x0000, 0x1000, 0x1800, + 0x2000, 0x2800, 0x3000, + 0x3800, 0x3000, 0x2000, + 0x1000, 0x0000, 0x0000, + }; + + static s16 pow_xa_chance[17] = { + 0xC800, 0xD000, 0xD800, 0xE000, 0xE800, + 0xF000, 0xF800, 0x0000, + 0x0000, 0x0000, 0x0000, + 0x0000, 0x0800, 0x0000, + 0x0800, 0x0000, 0x0800, + }; + + static f32 wav_d[17] = { + 0.0f, 0.2f, 0.4f, + 0.5f, 0.6f, 0.8f, 1.0f, + 1.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 0.8f, 0.6f, + 0.4f, 0.2f, 0.0f, + }; + + fopEn_enemy_c* a_this = &i_this->actor; + cXyz sp9c, spa8, spb4; + i_this->field_0x6e4[0] = i_this->field_0x6d4; + cXyz spc0; + + sp9c.x = 0.0f; + sp9c.y = 0.0f; + sp9c.z = i_this->field_0x93c; + spb4.x = 0.0f; + spb4.z = 0.0f; + spb4.y = -200.0f; + f32 fVar1 = i_this->field_0x944; + cXyz* pcVar1 = i_this->field_0x6e4; + pcVar1++; + + f32 fVar2, fVar3, fVar4, fVar5; + for (int i = 1; i < 18; i++) { + if (i_this->field_0x69a != 5) { + if (i_this->field_0x94c > 1.0f) { + fVar2 = i_this->field_0x94c * wav_d[i - 1] * 0.035f; + fVar3 = fVar2 * cM_ssin(i_this->field_0x698 * 7000 + i * 7000); + fVar2 *= cM_scos(i_this->field_0x698 * 0x1E14 + i * 5000); + } else { + fVar2 = 60.0f * wav_d[i - 1]; + fVar3 = fVar2 * cM_ssin(i_this->field_0x698 * 2000 + i * 7000); + fVar2 *= cM_scos(i_this->field_0x698 * 0x8FC + i * 5000); + } + + cMtx_YrotS(*calc_mtx, a_this->current.angle.y); + if (i_this->field_0x6e0 != 0) { + cMtx_XrotM(*calc_mtx, pow_xa_chance[i - 1]); + } else { + cMtx_XrotM(*calc_mtx, pow_xa[i - 1]); + } + + MtxScale(fVar1, fVar1, fVar1, 1); + MtxPosition(&spb4, &spc0); + fVar4 = fVar3 + (spc0.x + (pcVar1->x - (pcVar1 - 1)->x)); + fVar5 = (pcVar1->y - (pcVar1 - 1)->y) - spc0.y; + fVar2 += spc0.z + (pcVar1->z - (pcVar1 - 1)->z); + } else { + fVar2 = 20.0f * wav_d[i - 1]; + fVar3 = fVar2 * cM_ssin(i_this->field_0x698 * 0x44C + i * 7000); + fVar2 *= cM_scos(i_this->field_0x698 * 0x5DC + i * 5000); + fVar4 = fVar3 + (pcVar1->x - (pcVar1 - 1)->x); + fVar3 = pcVar1->y - 5.0f; + + if (fVar3 < (i_this->mObjAcch.GetGroundH() + 5.0f)) { + fVar3 = i_this->mObjAcch.GetGroundH() + 5.0f; + } + + fVar5 = fVar3 - (pcVar1 - 1)->y; + fVar2 += pcVar1->z - (pcVar1 - 1)->z; + } + + s16 sVar2 = cM_atan2s(fVar4, fVar2); + s16 sVar3 = -cM_atan2s(fVar5, JMAFastSqrt(fVar4 * fVar4 + fVar2 * fVar2)); + cMtx_YrotS(*calc_mtx, sVar2); + cMtx_XrotM(*calc_mtx, sVar3); + MtxPosition(&sp9c, &spa8); + *pcVar1 = *(pcVar1 - 1) + spa8; + pcVar1++; + } +} + +/* 806C3904-806C3A78 001D04 0174+00 1/1 0/0 0/0 .text kuki_control2__FP10e_gb_class */ +static void kuki_control2(e_gb_class* i_this) { + // NONMATCHING + fopEn_enemy_c* a_this = &i_this->actor; + cXyz sp58, sp64; + + i_this->field_0x6e4[17] = a_this->current.pos; + sp58.x = 0.0f; + sp58.y = 0.0f; + sp58.z = i_this->field_0x93c; + + int i = 16; + cXyz* pcVar1 = &i_this->field_0x6e4[16]; + csXyz* pcVar2 = &i_this->field_0x7bc[16]; + + for (; i >= 0; i--) { + f32 fVar1 = pcVar1->x; + f32 fVar2 = (pcVar1++)->x; + f32 fVar5 = pcVar1->y - (pcVar1 + 1)->y; + f32 fVar3 = pcVar1->z - (pcVar1 + 1)->z; + s16 sVar1 = -cM_atan2s(fVar5, fVar3); + s16 sVar2 = cM_atan2s(fVar1 - fVar2, JMAFastSqrt(fVar5 * fVar5 + fVar3 * fVar3)); + cMtx_XrotS(*calc_mtx, sVar1); + cMtx_YrotM(*calc_mtx, sVar2); + MtxPosition(&sp58, &sp64); + *pcVar1 = *(pcVar1 + 1) + sp64; + pcVar2->x = sVar1; + pcVar2->y = sVar2; + pcVar1--; + pcVar2--; + } +} + +/* 806C3A78-806C3C44 001E78 01CC+00 1/1 0/0 0/0 .text kuki_control3__FP10e_gb_class */ +static void kuki_control3(e_gb_class* i_this) { + cXyz sp40; + sp40 = i_this->field_0x6e4[0] - i_this->field_0x6d4; + cXyz* pcVar1 = i_this->field_0x6e4; + + for (int i = 0; i < 18; i++) { + *pcVar1 -= sp40 * ((18 - i) / 17.0f); + pcVar1++; + } + + i_this->field_0x964 = sp40.abs(); +} + +/* 806C3C44-806C3D20 002044 00DC+00 1/1 0/0 0/0 .text s_b_sub__FPvPv */ +static void* s_b_sub(void* i_actor, void* i_data) { + if (fopAc_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) && !((dBomb_c*)i_actor)->checkStateExplode()) { + cXyz sp28 = ((fopAc_ac_c*)i_actor)->current.pos - ((fopAc_ac_c*)i_data)->home.pos; + if (fabsf(sp28.y) < 110.0f && JMAFastSqrt(sp28.x * sp28.x + sp28.z * sp28.z) < 150.0f) { + fopAcM_delete(((fopAc_ac_c*)i_actor)); + return i_actor; + } + } + return NULL; +} + +/* 806C3D20-806C3F0C 002120 01EC+00 1/1 0/0 0/0 .text damage_check__FP10e_gb_class */ +static void damage_check(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + + i_this->mStts.Move(); + if (i_this->field_0x6ce == 0) { + if (i_this->mHeadSph.ChkAtShieldHit()) { + i_this->field_0x6ce = 6; + i_this->mAtInfo.mpCollider = i_this->mHeadSph.GetAtHitObj(); + def_se_set(&i_this->mSound, i_this->mAtInfo.mpCollider, 0x2D, NULL); + dComIfGp_getVibration().StartShock(6, 31, cXyz(0.0f, 1.0f, 0.0f)); + } else if (i_this->mHeadSph.ChkTgHit() != 0) { + i_this->field_0x6ce = 6; + i_this->mAtInfo.mpCollider = i_this->mHeadSph.GetTgHitObj(); + cc_at_check(a_this, &i_this->mAtInfo); + if (i_this->mAtInfo.mHitType == HIT_TYPE_STUN) { + i_this->field_0x69a = 1; + i_this->field_0x69c = 5; + i_this->field_0x948 = 5000; + i_this->field_0x952 = 3000; + i_this->field_0x94c = 3000.0f; + + head_anm_init(i_this, 17, 2.0f, 2, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_NODAMAGE, -1); + i_this->field_0x6c4[0] = 30; + } else { + i_this->field_0x69a = 3; + i_this->field_0x69c = 0; + + head_anm_init(i_this, 11, 2.0f, 0, 1.0f); + if (a_this->health <= 0) { + i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_DIE, -1); + } else { + i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_DAMAGE, -1); + } + } + } + } +} + +/* 806C3F0C-806C44F8 00230C 05EC+00 2/1 0/0 0/0 .text action__FP10e_gb_class */ +static void action(e_gb_class* i_this) { + // NONMATCHING + fopEn_enemy_c* a_this = &i_this->actor; + fopAc_ac_c* player = dComIfGp_getPlayer(0); + + cXyz sp34; + sp34 = player->current.pos - a_this->current.pos; + sp34.y += 100.0f; + + i_this->field_0x6b8 = cM_atan2s(sp34.x, sp34.z); + i_this->field_0x6ba = -cM_atan2s(sp34.y, JMAFastSqrt(sp34.x * sp34.x + sp34.z * sp34.z)); + i_this->field_0x6bc = fopAcM_searchPlayerDistance(player); + + damage_check(i_this); + + s8 bVar1 = 0; + s8 sVar1 = 0; + s8 bVar2 = 1; + sp34 = a_this->current.pos - a_this->home.pos; + cMtx_YrotS(*calc_mtx, cM_atan2s(sp34.x, sp34.z)); + sp34.x = 0.0f; + sp34.y = 30.0f; + sp34.z = 150.0f; + MtxPosition(&sp34, &i_this->field_0x6d4); + i_this->field_0x6d4 += a_this->home.pos; + i_this->field_0x6e0 = 0; + a_this->field_0x566 = 0; + s8 bVar3 = 1; + + switch (i_this->field_0x69a) { + case 0: + e_gb_wait(i_this); + bVar1 = 1; + a_this->field_0x566 = 1; + break; + + case 1: + e_gb_attack_1(i_this); + bVar1 = 1; + sVar1 = 1; + a_this->field_0x566 = 1; + break; + + case 2: + e_gb_attack_2(i_this); + bVar1 = 1; + sVar1 = 2; + bVar2 = 0; + a_this->field_0x566 = 1; + break; + + case 3: + e_gb_damage(i_this); + a_this->field_0x566 = 1; + bVar1 = 1; + bVar3 = 0; + break; + + case 5: + e_gb_end(i_this); + bVar1 = 1; + a_this->field_0x566 = 1; + bVar3 = 0; + break; + + case 10: + e_gb_start(i_this); + bVar2 = 0; + i_this->field_0x6e0 = 1; + a_this->field_0x566 = 1; + bVar3 = 0; + } + + if (bVar3 != 0) { + i_this->mSound.setLinkSearch(true); + } else { + i_this->mSound.setLinkSearch(false); + } + + if (sVar1 == 1) { + cMtx_YrotS(*calc_mtx, a_this->current.angle.y); + cMtx_XrotM(*calc_mtx, a_this->current.angle.x); + sp34.x = 0.0f; + sp34.y = 0.0f; + sp34.z = a_this->speedF; + MtxPosition(&sp34, &a_this->speed); + a_this->current.pos += a_this->speed; + } else if (sVar1 == 2) { + cMtx_YrotS(*calc_mtx, a_this->current.angle.y); + sp34.x = 0.0f; + sp34.y = 0.0f; + sp34.z = a_this->speedF; + + cXyz sp40; + MtxPosition(&sp34, &sp40); + a_this->speed.x = sp40.x; + a_this->speed.z = sp40.z; + a_this->current.pos += a_this->speed; + a_this->speed.y -= 10.0f; + } + + if (bVar2 != 0) { + f32 fVar1; + if (i_this->field_0x69a != 5) { + fVar1 = 150.0f; + } else { + fVar1 = 60.0f; + } + + i_this->mObjAcch.CrrPos(dComIfG_Bgsp()); + if (a_this->current.pos.y < fVar1 + i_this->mObjAcch.GetGroundH()) { + a_this->current.pos.y = fVar1 + i_this->mObjAcch.GetGroundH(); + } + } + + if (bVar1 != 0) { + fopAcM_OnStatus(a_this, 0); + a_this->attention_info.flags = 4; + } else { + fopAcM_OffStatus(a_this, 0); + a_this->attention_info.flags = 0; + } + + sp34 = a_this->current.pos - i_this->field_0x6d4; + i_this->field_0x93c = i_this->field_0x940 * (sp34.abs() * 0.1f); + + if (i_this->field_0x93c > l_HIO.field_0x8 * 35.0f) { + i_this->field_0x93c = l_HIO.field_0x8 * 35.0f; + } + + cLib_addCalc2(&i_this->field_0x940, 1.0f, 1.0f, 0.01f); + kuki_control1(i_this); + kuki_control2(i_this); + kuki_control3(i_this); + cLib_addCalc2(&i_this->field_0x944, 1.0f, 1.0f, 0.05f); + + if (i_this->field_0x94c > 0.1f) { + if (i_this->field_0x948 != 0) { + i_this->field_0x950 += i_this->field_0x948; + cLib_addCalcAngleS2(&i_this->field_0x952, 0, 1, 0x96); + } else { + i_this->field_0x952 = i_this->field_0x94c * cM_scos(i_this->field_0x94a); + } + + i_this->field_0x94a += 10000; + cLib_addCalc0(&i_this->field_0x94c, 1.0f, 150.0f); + } else { + i_this->field_0x952 = 0; + } + + cXyz sp4c(2.0f, 2.0f, 2.0f); + setMidnaBindEffect(a_this, &i_this->mSound, &a_this->eyePos, &sp4c); +} + +/* 806C44F8-806C451C 0028F8 0024+00 1/1 0/0 0/0 .text e_gf_wait__FP10e_gb_class */ +static void e_gf_wait(e_gb_class* i_this) { + switch (i_this->field_0x6a0) { + case 0: + i_this->field_0x6a0 = 1; + break; + + case 1: + default: + return; + } +} + +/* 806C451C-806C4688 00291C 016C+00 1/1 0/0 0/0 .text e_gf_chance__FP10e_gb_class */ +static void e_gf_chance(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + cXyz sp38; + BOOL bVar2 = i_this->mpModelMorf2->isStop(); + s8 bVar1 = 0; + + switch (i_this->field_0x6a0) { + case 0: + if (i_this->field_0x6c4[0] == 30) { + i_this->mDemoMode = 10; + } + + if (i_this->field_0x6c4[0] == 0) { + body_anm_init(i_this, 24, 5.0f, 0, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_OPEN, &a_this->home.pos, 0, 0); + i_this->field_0x6a0 = 1; + } + break; + + case 1: + if (i_this->mpModelMorf2->isStop()) { + body_anm_init(i_this, 25, 2.0f, 2, 1.0f); + i_this->field_0x6a0 = 2; + } + // fallthrough + case 2: + bVar1 = 1; + } + + if (bVar1 && fpcM_Search(s_b_sub, i_this) != NULL) { + i_this->field_0x69e = 2; + i_this->field_0x6a0 = 0; + } +} + +/* 806C4688-806C48EC 002A88 0264+00 1/1 0/0 0/0 .text e_gf_eatbomb__FP10e_gb_class */ +static void e_gf_eatbomb(e_gb_class* i_this) { + static u16 eno[5] = { + 0x82E8, + 0x82E9, + 0x82EA, + 0x82EB, + 0x82EC, + }; + + fopEn_enemy_c* a_this = &i_this->actor; + cXyz sp28; + + switch (i_this->field_0x6a0) { + case 0: + body_anm_init(i_this, 23, 3.0f, 0, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_EAT, &a_this->home.pos, 0, 0); + i_this->field_0x6a0 = 1; + // fallthrough + case 1: + if (i_this->mpModelMorf2->isStop()) { + body_anm_init(i_this, 20, 2.0f, 0, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_BURST, &a_this->home.pos, 0, 0); + i_this->field_0x6a0 = 2; + } + break; + + case 2: + if (i_this->mpModelMorf2->isStop()) { + i_this->field_0x69e = 10; + i_this->field_0x6a0 = 0; + i_this->mBrkAnm->setPlaySpeed(1.0f); + } + break; + } + + if (i_this->field_0x68c == 20) { + for (int i = 0; i < 5; i++) { + i_this->field_0xe7c[i] = dComIfGp_particle_set(i_this->field_0xe7c[i], eno[i], + &a_this->home.pos, NULL, NULL); + JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(i_this->field_0xe7c[i]); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(i_this->mpModelMorf2->getModel()->getAnmMtx(5)); + } + } + } +} + +/* 806C48EC-806C4AB4 002CEC 01C8+00 1/1 0/0 0/0 .text e_gf_end__FP10e_gb_class */ +static void e_gf_end(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + cXyz sp30; + + switch (i_this->field_0x6a0) { + case 0: + body_anm_init(i_this, 22, 5.0f, 0, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_DIE, &a_this->home.pos, 0, 0); + i_this->field_0x6a0 = 1; + // fallthrough + case 1: + if (i_this->mpModelMorf2->isStop()) { + i_this->field_0x6a0 = 3; + i_this->field_0x6c4[0] = 40; + } + break; + + case 3: + if (i_this->field_0x6c4[0] == 20) { + dComIfGs_onSwitch((fopAcM_GetParam(a_this) & 0xFF0000) >> 16, fopAcM_GetRoomNo(a_this)); + } + + if (i_this->field_0x6c4[0] == 0) { + daKey_c* key_p = (daKey_c*)fopAcM_SearchByName(PROC_Obj_SmallKey); + cXyz sp3c(a_this->home.pos); + if (key_p != NULL) { + key_p->setPos(sp3c); + key_p->startMove(60.0f, 4.0f); + } + + fopAcM_createDisappear(a_this, &sp3c, 20, 0, a_this->field_0x564); + fopAcM_delete(a_this); + } + } +} + +/* 806C4AB4-806C4CC4 002EB4 0210+00 1/1 0/0 0/0 .text damage_check2__FP10e_gb_class */ +static void damage_check2(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + + if (i_this->field_0x6d0 == 0) { + if (i_this->mBodyCyl.ChkTgHit() != 0) { + i_this->field_0x6d0 = 6; + i_this->mAtInfo.mpCollider = i_this->mBodyCyl.GetTgHitObj(); + def_se_set(&i_this->mSound, i_this->mAtInfo.mpCollider, 0x2D, NULL); + + if (i_this->field_0x68c == 26 || i_this->field_0x68c == 19) { + body_anm_init(i_this, 19, 2.0f, 0, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_BOUND_CLOSE, &a_this->home.pos, 0, 0); + } else if (i_this->field_0x68c == 24 || i_this->field_0x68c == 25 || i_this->field_0x68c == 18) { + body_anm_init(i_this, 18, 2.0f, 0, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_BOUND, &a_this->home.pos, 0, 0); + } + } + + if (i_this->field_0x68c == 18 && i_this->mpModelMorf2->isStop()) { + body_anm_init(i_this, 25, 10.0f, 2, 1.0f); + i_this->mpModelMorf2->setFrame(47.0f); + } else if (i_this->field_0x68c == 19 && i_this->mpModelMorf2->isStop()) { + body_anm_init(i_this, 26, 10.0f, 2, 1.0f); + } + } +} + +/* 806C4CC4-806C4E28 0030C4 0164+00 1/1 0/0 0/0 .text action2__FP10e_gb_class */ +static void action2(e_gb_class* i_this) { + damage_check2(i_this); + + s8 bVar1 = 1; + + switch (i_this->field_0x69e) { + case 0: + e_gf_wait(i_this); + break; + + case 3: + e_gf_chance(i_this); + bVar1 = 0; + break; + + case 2: + e_gf_eatbomb(i_this); + bVar1 = 0; + break; + + case 10: + e_gf_end(i_this); + bVar1 = 0; + } + + if (bVar1 != 0) { + daPy_getPlayerActorClass()->onBossRoomWait(); + } + + if (i_this->field_0x955 != 0) { + daKey_c* key_p = (daKey_c*)fopAcM_SearchByName(PROC_Obj_SmallKey); + if (key_p != NULL) { + key_p->field_0x978 = i_this->field_0x674; + mDoAud_seStartLevel(Z2SE_OBJ_KEY_TWINKLE, &key_p->field_0x978, 0, + dComIfGp_getReverb(fopAcM_GetRoomNo(key_p))); + key_p->field_0x984 = 1; + } + } +} + +/* 806C4E28-806C4F0C 003228 00E4+00 1/1 0/0 0/0 .text cam_3d_morf__FP10e_gb_classf */ +static void cam_3d_morf(e_gb_class* i_this, f32 param_2) { + cLib_addCalc2(&i_this->mDemoCamCenter.x, i_this->field_0xeb8.x, param_2, + i_this->field_0xed0.x * i_this->field_0xee4); + cLib_addCalc2(&i_this->mDemoCamCenter.y, i_this->field_0xeb8.y, param_2, + i_this->field_0xed0.y * i_this->field_0xee4); + cLib_addCalc2(&i_this->mDemoCamCenter.z, i_this->field_0xeb8.z, param_2, + i_this->field_0xed0.z * i_this->field_0xee4); + + cLib_addCalc2(&i_this->mDemoCamEye.x, i_this->field_0xeac.x, param_2, + i_this->field_0xec4.x * i_this->field_0xee4); + cLib_addCalc2(&i_this->mDemoCamEye.y, i_this->field_0xeac.y, param_2, + i_this->field_0xec4.y * i_this->field_0xee4); + cLib_addCalc2(&i_this->mDemoCamEye.z, i_this->field_0xeac.z, param_2, + i_this->field_0xec4.z * i_this->field_0xee4); +} + +/* 806C4F0C-806C59F4 00330C 0AE8+00 1/1 0/0 0/0 .text demo_camera__FP10e_gb_class */ +static void demo_camera(e_gb_class* i_this) { + // NONMATCHING + fopEn_enemy_c* a_this = &i_this->actor; + camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + fopAc_ac_c* player = dComIfGp_getPlayer(0); + cXyz sp1c, sp28, sp34, sp40; + int swBit; + + 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->mDemoCamFovy = 55.0f; + i_this->field_0xe92 = 0; + camera->mCamera.SetTrimSize(3); + daPy_getPlayerActorClass()->changeOriginalDemo(); + i_this->field_0x674.set(-5750.0f, 4410.0f, 10684.0f); + i_this->field_0x684 = 0x5000; + i_this->mDemoCamCenter.set(-5689.0f, 4747.0f, 15000.0f); + i_this->mDemoCamEye.set(-5700.0f, 4740.0f, 14644.0f); + i_this->field_0xeb8.set(-5689.0f, 4740.0f, 14643.0f); + i_this->field_0xeac.set(-5723.0f, 4733.0f, 14293.0f); + i_this->field_0xec4.x = fabsf(i_this->field_0xeac.x - i_this->mDemoCamEye.x); + i_this->field_0xec4.y = fabsf(i_this->field_0xeac.y - i_this->mDemoCamEye.y); + i_this->field_0xec4.z = fabsf(i_this->field_0xeac.z - i_this->mDemoCamEye.z); + i_this->field_0xed0.x = fabsf(i_this->field_0xeb8.x - i_this->mDemoCamCenter.x); + i_this->field_0xed0.y = fabsf(i_this->field_0xeb8.y - i_this->mDemoCamCenter.y); + i_this->field_0xed0.z = fabsf(i_this->field_0xeb8.z - i_this->mDemoCamCenter.z); + i_this->field_0xee4 = 0.0; + + Z2GetAudioMgr()->setBattleBgmOff(true); + dComIfGp_getEvent().startCheckSkipEdge(a_this); + swBit = (fopAcM_GetParam(a_this) & 0xFF00) >> 8; + dComIfGs_onSwitch(swBit, fopAcM_GetRoomNo(a_this)); + // fallthrough + case 2: + sp28.set(-5700.0f, 4350.0f, 9670.0f); + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&sp28, 0, 0); + if (i_this->field_0xe92 > 50) { + cam_3d_morf(i_this, 0.1f); + cLib_addCalc2(&i_this->field_0xee4, 0.02f, 1.0f, 0.0005f); + } + + if (i_this->field_0xe92 != 170) break; + i_this->mDemoCamCenter.set(-5690.0f, 4432.0f, 9610.0f); + i_this->mDemoCamEye.set(-5709.0f, 4445.0f, 9961.0f); + i_this->field_0xeb8.set(-5741.0f, 4432.0f, 10530.0f); + i_this->field_0xeac.set(-5760.0f, 4496.0f, 10896.0f); + i_this->field_0xec4.x = fabsf(i_this->field_0xeac.x - i_this->mDemoCamEye.x); + i_this->field_0xec4.y = fabsf(i_this->field_0xeac.y - i_this->mDemoCamEye.y); + i_this->field_0xec4.z = fabsf(i_this->field_0xeac.z - i_this->mDemoCamEye.z); + i_this->field_0xed0.x = fabsf(i_this->field_0xeb8.x - i_this->mDemoCamCenter.x); + i_this->field_0xed0.y = fabsf(i_this->field_0xeb8.y - i_this->mDemoCamCenter.y); + i_this->field_0xed0.z = fabsf(i_this->field_0xeb8.z - i_this->mDemoCamCenter.z); + i_this->field_0xee4 = 0.0f; + i_this->mDemoMode = 3; + i_this->mDemoCamFovy = 55.0f; + i_this->field_0xe92 = 0; + // fallthrough + case 3: + if (i_this->field_0xe92 > 30) { + cam_3d_morf(i_this, 0.1f); + cLib_addCalc2(&i_this->field_0xee4, 0.02f, 1.0f, 0.0005f); + } + + if (i_this->field_0xe92 == 130) { + i_this->field_0x69c++; + } + + if (i_this->field_0xe92 == 135) { + i_this->mSound.startCreatureSound(Z2SE_EN_GB_SWINGHEAD, 0, -1); + } + + if (i_this->field_0xe92 == 143) { + i_this->field_0x670 = 2; + } + + if (i_this->field_0xe92 == 162) { + daPy_getPlayerActorClass()->changeDemoMode(23, 1, 2, 0); + } + + if (i_this->field_0xe92 != 190) break; + i_this->field_0x69c++; + i_this->mDemoMode = 4; + i_this->field_0xe92 = 0; + body_anm_init(i_this, 24, 5.0f, 0, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_OPEN, &a_this->home.pos, 0, 0); + i_this->mDemoCamCenter.set(-5706.0f, 4526.0f, 11379.0f); + i_this->mDemoCamEye.set(-5687.0f, 4505.0f, 11008.0f); + i_this->field_0xeb8.set(-5624.0f, 4439.0f, 9818.0f); + i_this->field_0xeac.set(-5604.0f, 4418.0f, 9447.0f); + i_this->field_0xec4.x = fabsf(i_this->field_0xeac.x - i_this->mDemoCamEye.x); + i_this->field_0xec4.y = fabsf(i_this->field_0xeac.y - i_this->mDemoCamEye.y); + i_this->field_0xec4.z = fabsf(i_this->field_0xeac.z - i_this->mDemoCamEye.z); + i_this->field_0xed0.x = fabsf(i_this->field_0xeb8.x - i_this->mDemoCamCenter.x); + i_this->field_0xed0.y = fabsf(i_this->field_0xeb8.y - i_this->mDemoCamCenter.y); + i_this->field_0xed0.z = fabsf(i_this->field_0xeb8.z - i_this->mDemoCamCenter.z); + i_this->field_0xee4 = 0.0f; + i_this->mDemoCamCenter.y = 4584.0f; + // fallthrough + case 4: + if (i_this->field_0xe92 == 48) { + head_anm_init(i_this, 14, 5.0f, 0, 1.0f); + i_this->mSound.startCreatureSound(Z2SE_EN_GB_DROPKEY, 0, -1); + } + + if (i_this->field_0xe92 == 54) { + head_anm_init(i_this, 14, 5.0f, 0, 1.0f); + i_this->field_0x674 = a_this->home.pos; + i_this->field_0x674.y += 400.0f; + i_this->field_0x670 = 1; + } + + if (i_this->field_0xe92 == 68) { + body_anm_init(i_this, 21, 5.0f, 0, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_CLOSE, &a_this->home.pos, 0, 0); + i_this->field_0x955 = 0; + } + + if (i_this->field_0xe92 > 150) { + cam_3d_morf(i_this, 0.2f); + cLib_addCalc2(&i_this->field_0xee4, 0.04f, 1.0f, 0.002f); + } else if (i_this->field_0xe92 >= 80) { + cLib_addCalc2(&i_this->mDemoCamCenter.y, 4526.0f, 0.05f, 1.0f); + } + + if (i_this->field_0x68c == 21 && i_this->mpModelMorf2->isStop()) { + body_anm_init(i_this, 26, 10.0f, 2, 1.0f); + } + + if (i_this->field_0xe92 == 220) { + i_this->mDemoMode = 100; + i_this->field_0x69a = 0; + i_this->field_0x69c = 0; + i_this->field_0x69e = 0; + i_this->field_0x6a0 = 0; + Z2GetAudioMgr()->setBattleBgmOff(false); + } + 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->mDemoCamFovy = 55.0; + i_this->field_0xe92 = 0; + camera->mCamera.SetTrimSize(3); + // fallthrough + case 11: + i_this->mDemoCamCenter = a_this->home.pos; + i_this->mDemoCamCenter.y += 100.0f; + i_this->mDemoCamEye = a_this->home.pos; + i_this->mDemoCamEye.y += 300.0f; + i_this->mDemoCamEye.z += -600.0f; + + if (i_this->field_0xe92 == 100) { + i_this->mDemoMode = 100; + } + break; + + case 100: + 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; + break; + + case 0: + break; + } + + if (i_this->mDemoMode != 0) { + camera->mCamera.Set(i_this->mDemoCamCenter, i_this->mDemoCamEye, i_this->mDemoCamFovy, 0); + i_this->field_0xe92++; + + if (i_this->mDemoMode < 10) { + dComIfGp_getEvent().setSkipProc(i_this, dEv_defaultSkipProc, 0); + if (dComIfGp_getEvent().checkSkipEdge()) { + i_this->mDemoMode = 100; + cMtx_YrotS(*calc_mtx, player->shape_angle.y); + sp1c.x = 0.0; + sp1c.y = 100.0f; + sp1c.z = -250.0f; + MtxPosition(&sp1c, &i_this->mDemoCamEye); + i_this->mDemoCamEye += player->current.pos; + i_this->mDemoCamCenter = player->current.pos; + i_this->mDemoCamCenter.y += 120.0f; + i_this->field_0x69a = 0; + i_this->field_0x69c = 0; + i_this->field_0x69e = 0; + i_this->field_0x6a0 = 0; + body_anm_init(i_this, 26, 1.0f, 2, 1.0f); + i_this->field_0x66c = NULL; + i_this->field_0x686 = 0; + i_this->field_0x955 = 0; + Z2GetAudioMgr()->setBattleBgmOff(false); + } + } + } +} + +/* 806C59F4-806C64A0 003DF4 0AAC+00 2/1 0/0 0/0 .text daE_GB_Execute__FP10e_gb_class */ +static int daE_GB_Execute(e_gb_class* i_this) { + static u16 key_eno[2] = { + 0x827A, + 0x827B, + }; + + fopEn_enemy_c* a_this = &i_this->actor; + cXyz sp50, sp5c; + + i_this->field_0x698++; + + for (int i = 0; i < 5; i = i + 1) { + if (i_this->field_0x6c4[i] != 0) { + i_this->field_0x6c4[i]--; + } + } + + if (i_this->field_0x6ce != 0) { + i_this->field_0x6ce--; + } + + if (i_this->field_0x6d0 != 0) { + i_this->field_0x6d0--; + } + + action(i_this); + if (i_this->field_0x668 == 0) { + i_this->mSound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this))); + } + + action2(i_this); + mDoMtx_stack_c::transS(a_this->current.pos.x,a_this->current.pos.y, a_this->current.pos.z); + mDoMtx_stack_c::YrotM(i_this->field_0x950); + mDoMtx_stack_c::XrotM(i_this->field_0x952); + mDoMtx_stack_c::YrotM(-i_this->field_0x950); + 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); + mDoMtx_stack_c::scaleM(l_HIO.field_0x8, l_HIO.field_0x8, l_HIO.field_0x8); + + J3DModel* model = i_this->mpModelMorf1->getModel(); + model->setBaseTRMtx(mDoMtx_stack_c::get()); + i_this->mpModelMorf1->play(NULL, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this)), 0); + i_this->mpModelMorf1->modelCalc(); + MTXCopy(model->getAnmMtx(3), *calc_mtx); + + if (i_this->field_0x968 != 0) { + sp50.set(20.0f, 0.0f, -50.0f); + MtxPosition(&sp50, &a_this->eyePos); + a_this->attention_info.position = a_this->eyePos; + a_this->attention_info.position.y += 50.0f; + + JPABaseEmitter* baseEmitter; + if (i_this->field_0x688 == 16) { + i_this->field_0xe6c = dComIfGp_particle_set(i_this->field_0xe6c, 0x82E7, &a_this->current.pos, NULL, NULL); + + baseEmitter = dComIfGp_particle_getEmitter(i_this->field_0xe6c); + if (baseEmitter != NULL) { + baseEmitter->setGlobalSRTMatrix(model->getAnmMtx(3)); + } + + if (i_this->mpModelMorf1->checkFrame(8.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_NODAMAGE, -1); + } + } + + if (i_this->field_0x688 == 11) { + i_this->field_0xe70 = dComIfGp_particle_set(i_this->field_0xe70, 0x82E6, &a_this->current.pos, NULL, NULL); + + baseEmitter = dComIfGp_particle_getEmitter(i_this->field_0xe70); + if (baseEmitter != NULL) { + baseEmitter->setGlobalSRTMatrix(model->getAnmMtx(3)); + } + } + + if (i_this->field_0x688 == 17 && i_this->mpModelMorf1->checkFrame(1.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_WAIT, -1); + } + } + + sp50.set(50.0f, 0.0f, 0.0f); + MtxPosition(&sp50, &sp5c); + + if (i_this->field_0x6ce != 0) { + sp5c.x += 10000.0f; + } + + i_this->mHeadSph.SetC(sp5c); + if (i_this->field_0x6bc > 500.0f && daPy_py_c::checkBoomerangChargeTime() != 0) { + i_this->mHeadSph.SetR(l_HIO.field_0x8 * 160.0f); + } else { + i_this->mHeadSph.SetR(l_HIO.field_0x8 * 80.0f); + } + + dComIfG_Ccsp()->Set(&i_this->mHeadSph); + if (i_this->field_0xc20 != 0) { + i_this->mHeadSph.OnAtSetBit(); + i_this->field_0xc20 = 0; + } else { + i_this->mHeadSph.OffAtSetBit(); + } + + mDoMtx_stack_c::transS(a_this->home.pos.x, a_this->home.pos.y, a_this->home.pos.z); + mDoMtx_stack_c::YrotM(a_this->home.angle.y); + mDoMtx_stack_c::scaleM(l_HIO.field_0xc, l_HIO.field_0xc, l_HIO.field_0xc); + model = i_this->mpModelMorf2->getModel(); + model->setBaseTRMtx(mDoMtx_stack_c::get()); + i_this->mpModelMorf2->play(NULL, 0, 0); + i_this->mBrkAnm->play(); + i_this->mpModelMorf2->modelCalc(); + + if ((i_this->field_0x68c == 25 || i_this->field_0x68c == 26) && i_this->mpModelMorf2->checkFrame(1.0f)) { + mDoAud_seStart(Z2SE_EN_GF_WAIT, &a_this->home.pos, 0, 0); + } + + if (i_this->field_0x968 == 0) { + a_this->eyePos = a_this->home.pos; + a_this->eyePos.y += 150.0f; + a_this->attention_info.position = a_this->eyePos; + a_this->attention_info.position.y += 50.0f; + } + + i_this->mBodyCyl.SetC(a_this->home.pos); + i_this->mBodyCyl.SetR(l_HIO.field_0xc * 170.0f); + i_this->mBodyCyl.SetH(l_HIO.field_0xc * 100.0f); + dComIfG_Ccsp()->Set(&i_this->mBodyCyl); + + if (i_this->field_0x66c != NULL) { + if (i_this->field_0x670 == 1) { + i_this->field_0x674.y += i_this->field_0x680; + i_this->field_0x680 -= 3.0f; + i_this->field_0x686 += -0xC00; + + if (i_this->field_0x674.y < a_this->home.pos.y) { + i_this->field_0x686 = 0; + i_this->field_0x66c = NULL; + } + } else if (i_this->field_0x670 == 2) { + MTXCopy(model->getAnmMtx(5), *calc_mtx); + sp50.set(-30.0f, 0.0f, 0.0f); + MtxPosition(&sp50, &i_this->field_0x674); + } + + if (i_this->field_0x66c != NULL) { + mDoMtx_stack_c::transS(i_this->field_0x674.x, i_this->field_0x674.y, i_this->field_0x674.z); + mDoMtx_stack_c::YrotM(i_this->field_0x684); + mDoMtx_stack_c::XrotM(i_this->field_0x686); + mDoMtx_stack_c::XrotM(0x4000); + f32 fVar1 = 1.5f; + mDoMtx_stack_c::scaleM(fVar1, fVar1, fVar1); + i_this->field_0x66c->setBaseTRMtx(mDoMtx_stack_c::get()); + sp5c = i_this->field_0x674; + for (int i = 0; i < 2; i++) { + i_this->field_0xe62[i] = dComIfGp_particle_set(i_this->field_0xe62[i], key_eno[i], &sp5c, NULL, NULL); + } + } + } + + f32 fVar2 = i_this->field_0x964 * 0.001f; + + for (int i = 0; i < 3; i++) { + if (i_this->field_0x92c[i] == 0) { + if (i_this->field_0x938 == 2) { + i_this->field_0x938 = 0; + i_this->field_0x92c[i] = 2; + i_this->field_0x932[i] = 17; + i_this->field_0x928 = 2.0f; + i_this->field_0x924 = 4000; + break; + } + } else { + if (i_this->field_0x92c[i] == 1) { + if (i_this->field_0x935[i] == 0) { + i_this->field_0x935[i] = 1; + i_this->field_0x900[i_this->field_0x932[i]] = 1; + i_this->field_0x932[i]++; + if (i_this->field_0x932[i] >= 18) { + i_this->field_0x92c[i] = 0; + } + } + } else if (i_this->field_0x935[i] == 0) { + i_this->field_0x935[i] = 1; + i_this->field_0x900[i_this->field_0x932[i]] = 1; + i_this->field_0x932[i]--; + if (i_this->field_0x932[i] < 0) { + i_this->field_0x92c[i] = 0; + } + } + + if (i_this->field_0x935[i] != 0) { + i_this->field_0x935[i]--; + } + } + } + + for (int i = 0; i < 18; i = i + 1) { + if (i_this->field_0x828[i] != NULL) { + if (i_this->field_0x900[i] != 0) { + i_this->field_0x900[i] +=i_this->field_0x924; + + if (i_this->field_0x900[i] < 0) { + i_this->field_0x900[i] = 0; + } + + i_this->field_0x8b8[i] = i_this->field_0x928 * cM_ssin(i_this->field_0x900[i]) + 1.0f; + } + + MtxTrans(i_this->field_0x6e4[i].x, i_this->field_0x6e4[i].y, i_this->field_0x6e4[i].z, 0); + cMtx_XrotM(*calc_mtx, i_this->field_0x7bc[i].x); + cMtx_YrotM(*calc_mtx, i_this->field_0x7bc[i].y + 0x8000); + MtxScale(l_HIO.field_0x8 * i_this->field_0x8b8[i], l_HIO.field_0x8 * i_this->field_0x8b8[i], l_HIO.field_0x8 + fVar2, 1); + MtxTrans(0.0f, 0.0f, 0.0f, 1); + i_this->field_0x828[i]->setBaseTRMtx(*calc_mtx); + } + } + + demo_camera(i_this); + return 1; +} + +/* 806C64A0-806C64A8 0048A0 0008+00 1/0 0/0 0/0 .text daE_GB_IsDelete__FP10e_gb_class */ +static int daE_GB_IsDelete(e_gb_class* i_this) { + return 1; +} + +/* 806C64A8-806C651C 0048A8 0074+00 1/0 0/0 0/0 .text daE_GB_Delete__FP10e_gb_class */ +static int daE_GB_Delete(e_gb_class* i_this) { + fopEn_enemy_c* a_this = &i_this->actor; + dComIfG_resDelete(&i_this->mPhase, "E_gb"); + if (i_this->field_0xef5 != 0) { + data_806C7928 = 0; + } + + if (a_this->heap != NULL && i_this->field_0x668 == 0) { + i_this->mSound.stopAnime(); + } + + return 1; +} + +/* 806C651C-806C6894 00491C 0378+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +static int useHeapInit(fopAc_ac_c* a_this) { + // NONMATCHING + e_gb_class* i_this = (e_gb_class*)a_this; + + i_this->mpModelMorf1 = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_gb", 29), NULL, NULL, + (J3DAnmTransform*)dComIfG_getObjectRes("E_gb", 17), 2, 3.0f, + 0, -1, 1, NULL, 0x80000, 0x11000084); + if (i_this->mpModelMorf1 == NULL || i_this->mpModelMorf1->getModel() == NULL) { + return 0; + } + + i_this->mpModelMorf2 = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_gb", 31), NULL, NULL, + (J3DAnmTransform*)dComIfG_getObjectRes("E_gb", 26), 2, 1.0f, + 0, -1, 1, NULL, 0x80000, 0x11000084); + i_this->field_0x68c = 26; + if (i_this->mpModelMorf2 == NULL || i_this->mpModelMorf2->getModel() == NULL) { + return 0; + } + + i_this->mBrkAnm = new mDoExt_brkAnm(); + if (i_this->mBrkAnm == NULL) { + return 0; + } + + if (i_this->mBrkAnm->init(i_this->mpModelMorf2->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_gb", 35), + 1, 0, 1.0f, 0, -1) == 0) { + return 0; + } + i_this->mBrkAnm->setPlaySpeed(0.0f); + + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_gb", 32); + JUT_ASSERT(3378, modelData != 0); + + for (int i = 0; i < 18; i++) { + i_this->field_0x828[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (i_this->field_0x828[i] == NULL) { + return 0; + } + + i_this->field_0x8b8[i] = 1.0f; + } + + if (strcmp(dComIfGp_getStartStageName(), "D_MN05") == 0) { + modelData = (J3DModelData*)dComIfG_getObjectRes("E_gb", 30); + JUT_ASSERT(3395, modelData != 0); + i_this->field_0x66c = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (i_this->field_0x66c == NULL) { + return 0; + } + } + + return 1; +} + +/* 806C68DC-806C6B94 004CDC 02B8+00 1/0 0/0 0/0 .text daE_GB_Create__FP10fopAc_ac_c */ +static cPhs__Step daE_GB_Create(fopAc_ac_c* a_this) { + // NONMATCHING + static dCcD_SrcSph head_cc_sph_src = { + { + {0x0, {{AT_TYPE_CSTATUE_SWING, 0x2, 0xd}, {0xd8fbfdff, 0x3}, 0x75}}, // mObj + {dCcD_SE_HARD_BODY, 0x0, 0x1, 0x0, 0x0}, // mGObjAt + {dCcD_SE_STONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph + } // mSphAttr + }; + + static dCcD_SrcCyl body_cyl_src = { + { + {0x0, {{0x0, 0x0, 0x0}, {0xd8fbfdff, 0x3}, 0x79}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_HARD_BODY, 0x0, 0x0, 0x0, 0x3}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {0.0f, 0.0f, 0.0f}, // mCenter + 30.0f, // mRadius + 20.0f // mHeight + } // mCyl + }; + + e_gb_class* i_this = (e_gb_class*)a_this; + fopAcM_SetupActor(a_this, e_gb_class); + + cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&i_this->mPhase, "E_gb"); + if (phase == cPhs_COMPLEATE_e) { + OS_REPORT("E_gb PARAM %x\n", fopAcM_GetParam(a_this)); + u8 swBit = fopAcM_GetParam(a_this) >> 16; + if (swBit != 0xFF) { + if (dComIfGs_isSwitch(swBit, fopAcM_GetRoomNo(a_this))) { + OS_REPORT("E_gb やられ後なので再セットしません\n") + return cPhs_ERROR_e; + } + } + + i_this->field_0x5b4 = fopAcM_GetParam(a_this); + i_this->field_0x5b5 = fopAcM_GetParam(a_this) >> 8; + i_this->field_0x5b6 = fopAcM_GetParam(a_this) >> 16 & 15; + i_this->field_0x5b7 = fopAcM_GetParam(a_this) >> 20 & 15; + OS_REPORT("E_gb //////////////E_GB SET 1 !!\n"); + + if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x4B000)) { + OS_REPORT("//////////////E_GB SET NON !!\n"); + return cPhs_ERROR_e; + } + OS_REPORT("//////////////E_GB SET 2 !!\n"); + + if (data_806C7928 == 0) { + i_this->field_0xef5 = 1; + data_806C7928 = 1; + l_HIO.field_0x4 = -1; + } + + a_this->attention_info.flags = 4; + a_this->health = 90; + a_this->field_0x560 = 90; + + i_this->mStts.Init(253, 0, a_this); + i_this->mHeadSph.Set(head_cc_sph_src); + i_this->mHeadSph.SetStts(&i_this->mStts); + i_this->mBodyCyl.Set(body_cyl_src); + i_this->mBodyCyl.SetStts(&i_this->mStts); + i_this->mBodyCyl.OnTgNoHitMark(); + + i_this->mObjAcch.Set(fopAcM_GetPosition_p(a_this), fopAcM_GetOldPosition_p(a_this), a_this, 1, &i_this->mAcchCir, + fopAcM_GetSpeed_p(a_this), NULL, NULL); + i_this->mAcchCir.SetWall(150.0f, 150.0f); + + i_this->mAtInfo.mpSound = &i_this->mSound; + i_this->mAtInfo.mPowerType = 8; + + i_this->mSound.init(&a_this->current.pos, &a_this->eyePos, 3, 1); + i_this->mSound.setEnemyName("E_gb"); + + i_this->field_0x698 = cM_rndF(65535.0f); + + u32 swBit2 = fopAcM_GetParam(a_this) >> 8; + s16 roomNo = fopAcM_GetRoomNo(a_this); + if (roomNo == 7 && !dComIfGs_isSwitch(swBit2, roomNo)) { + i_this->field_0x69a = 10; + } else { + i_this->field_0x69a = 0; + } + + i_this->field_0x968 = 1; + i_this->field_0x955 = 1; + daE_GB_Execute(i_this); + + Z2GetAudioMgr()->muteSceneBgm(33, 0.0f); + + return cPhs_COMPLEATE_e; + } + + return phase; +} + +/* 806C6B94-806C6D34 004F94 01A0+00 1/1 0/0 0/0 .text __ct__10e_gb_classFv */ +e_gb_class::e_gb_class() {} + +/* 806C76B8-806C76B8 0001D0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ /* 806C784C-806C786C -00001 0020+00 1/0 0/0 0/0 .data l_daE_GB_Method */ static actor_method_class l_daE_GB_Method = { - (process_method_func)daE_GB_Create__FP10fopAc_ac_c, - (process_method_func)daE_GB_Delete__FP10e_gb_class, - (process_method_func)daE_GB_Execute__FP10e_gb_class, - (process_method_func)daE_GB_IsDelete__FP10e_gb_class, - (process_method_func)daE_GB_Draw__FP10e_gb_class, + (process_method_func)daE_GB_Create, + (process_method_func)daE_GB_Delete, + (process_method_func)daE_GB_Execute, + (process_method_func)daE_GB_IsDelete, + (process_method_func)daE_GB_Draw, }; /* 806C786C-806C789C -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_GB */ @@ -422,1078 +1688,3 @@ extern actor_process_profile_definition g_profile_E_GB = { fopAc_ENEMY_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 806C789C-806C78A8 0001D8 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, -}; - -/* 806C78A8-806C78B4 0001E4 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, -}; - -/* 806C78B4-806C78C0 0001F0 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, -}; - -/* 806C78C0-806C78E4 0001FC 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_806C7024, - (void*)NULL, - (void*)NULL, - (void*)func_806C701C, -}; - -/* 806C78E4-806C78F0 000220 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, -}; - -/* 806C78F0-806C78FC 00022C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */ -SECTION_DATA extern void* __vt__8cM3dGSph[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGSphFv, -}; - -/* 806C78FC-806C7908 000238 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 806C7908-806C7914 000244 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 806C7914-806C7920 000250 000C+00 2/2 0/0 0/0 .data __vt__12daE_GB_HIO_c */ -SECTION_DATA extern void* __vt__12daE_GB_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12daE_GB_HIO_cFv, -}; - -/* 806C1CEC-806C1D3C 0000EC 0050+00 1/1 0/0 0/0 .text __ct__12daE_GB_HIO_cFv */ -daE_GB_HIO_c::daE_GB_HIO_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C7518-806C751C 000030 0004+00 3/9 0/0 0/0 .rodata @3941 */ -SECTION_RODATA static f32 const lit_3941 = -1.0f; -COMPILER_STRIP_GATE(0x806C7518, &lit_3941); - -/* 806C76B8-806C76B8 0001D0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_806C76B8 = "E_gb"; -#pragma pop - -/* 806C1D3C-806C1DEC 00013C 00B0+00 7/7 0/0 0/0 .text head_anm_init__FP10e_gb_classifUcf - */ -static void head_anm_init(e_gb_class* param_0, int param_1, f32 param_2, u8 param_3, - f32 param_4) { - // NONMATCHING -} - -/* 806C1DEC-806C1E9C 0001EC 00B0+00 5/5 0/0 0/0 .text body_anm_init__FP10e_gb_classifUcf - */ -static void body_anm_init(e_gb_class* param_0, int param_1, f32 param_2, u8 param_3, - f32 param_4) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C751C-806C7520 000034 0004+00 0/1 0/0 0/0 .rodata @4012 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4012 = 1400.0f; -COMPILER_STRIP_GATE(0x806C751C, &lit_4012); -#pragma pop - -/* 806C1E9C-806C2078 00029C 01DC+00 1/0 0/0 0/0 .text daE_GB_Draw__FP10e_gb_class */ -static void daE_GB_Draw(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C7520-806C7524 000038 0004+00 0/4 0/0 0/0 .rodata @4108 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4108 = 3.0f; -COMPILER_STRIP_GATE(0x806C7520, &lit_4108); -#pragma pop - -/* 806C7524-806C7528 00003C 0004+00 0/6 0/0 0/0 .rodata @4109 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4109 = 10.0f; -COMPILER_STRIP_GATE(0x806C7524, &lit_4109); -#pragma pop - -/* 806C7528-806C752C 000040 0004+00 0/2 0/0 0/0 .rodata @4110 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4110 = 1000.0f; -COMPILER_STRIP_GATE(0x806C7528, &lit_4110); -#pragma pop - -/* 806C752C-806C7530 000044 0004+00 0/5 0/0 0/0 .rodata @4111 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4111 = 30.0f; -COMPILER_STRIP_GATE(0x806C752C, &lit_4111); -#pragma pop - -/* 806C7530-806C7534 000048 0004+00 0/2 0/0 0/0 .rodata @4112 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4112 = 450.0f; -COMPILER_STRIP_GATE(0x806C7530, &lit_4112); -#pragma pop - -/* 806C7534-806C7538 00004C 0004+00 0/2 0/0 0/0 .rodata @4113 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4113 = 200.0f; -COMPILER_STRIP_GATE(0x806C7534, &lit_4113); -#pragma pop - -/* 806C7538-806C753C 000050 0004+00 0/1 0/0 0/0 .rodata @4114 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4114 = 1500.0f; -COMPILER_STRIP_GATE(0x806C7538, &lit_4114); -#pragma pop - -/* 806C753C-806C7540 000054 0004+00 0/5 0/0 0/0 .rodata @4115 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4115 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x806C753C, &lit_4115); -#pragma pop - -/* 806C7540-806C7548 000058 0004+04 0/3 0/0 0/0 .rodata @4116 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4116[1 + 1 /* padding */] = { - 1.0f / 20.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x806C7540, &lit_4116); -#pragma pop - -/* 806C7548-806C7550 000060 0008+00 0/2 0/0 0/0 .rodata @4118 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4118[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x806C7548, &lit_4118); -#pragma pop - -/* 806C7928-806C792C 000008 0004+00 2/2 0/0 0/0 .bss None */ -static u8 data_806C7928[4]; - -/* 806C792C-806C7938 00000C 000C+00 1/1 0/0 0/0 .bss @3922 */ -static u8 lit_3922[12]; - -/* 806C7938-806C7958 000018 0020+00 6/6 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[32]; - -/* 806C2078-806C2560 000478 04E8+00 1/1 0/0 0/0 .text e_gb_wait__FP10e_gb_class */ -static void e_gb_wait(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C7550-806C7554 000068 0004+00 0/5 0/0 0/0 .rodata @4217 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4217 = 20.0f; -COMPILER_STRIP_GATE(0x806C7550, &lit_4217); -#pragma pop - -/* 806C7554-806C7558 00006C 0004+00 0/1 0/0 0/0 .rodata @4218 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4218 = 1200.0f; -COMPILER_STRIP_GATE(0x806C7554, &lit_4218); -#pragma pop - -/* 806C7558-806C755C 000070 0004+00 0/3 0/0 0/0 .rodata @4219 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4219 = 0.5f; -COMPILER_STRIP_GATE(0x806C7558, &lit_4219); -#pragma pop - -/* 806C755C-806C7560 000074 0004+00 0/7 0/0 0/0 .rodata @4220 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4220 = 5.0f; -COMPILER_STRIP_GATE(0x806C755C, &lit_4220); -#pragma pop - -/* 806C7560-806C7564 000078 0004+00 0/2 0/0 0/0 .rodata @4221 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4221 = 3000.0f; -COMPILER_STRIP_GATE(0x806C7560, &lit_4221); -#pragma pop - -/* 806C7564-806C7568 00007C 0004+00 0/7 0/0 0/0 .rodata @4222 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4222 = 2.0f; -COMPILER_STRIP_GATE(0x806C7564, &lit_4222); -#pragma pop - -/* 806C7568-806C756C 000080 0004+00 0/3 0/0 0/0 .rodata @4223 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4223 = -30.0f; -COMPILER_STRIP_GATE(0x806C7568, &lit_4223); -#pragma pop - -/* 806C2560-806C2AB0 000960 0550+00 1/1 0/0 0/0 .text e_gb_attack_1__FP10e_gb_class */ -static void e_gb_attack_1(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C756C-806C7570 000084 0004+00 0/1 0/0 0/0 .rodata @4326 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4326 = 49.0f; -COMPILER_STRIP_GATE(0x806C756C, &lit_4326); -#pragma pop - -/* 806C7570-806C7574 000088 0004+00 0/1 0/0 0/0 .rodata @4327 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4327 = 16.0f; -COMPILER_STRIP_GATE(0x806C7570, &lit_4327); -#pragma pop - -/* 806C7574-806C7578 00008C 0004+00 0/1 0/0 0/0 .rodata @4328 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4328 = 6.0f; -COMPILER_STRIP_GATE(0x806C7574, &lit_4328); -#pragma pop - -/* 806C7578-806C757C 000090 0004+00 0/3 0/0 0/0 .rodata @4329 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4329 = 50.0f; -COMPILER_STRIP_GATE(0x806C7578, &lit_4329); -#pragma pop - -/* 806C757C-806C7580 000094 0004+00 0/5 0/0 0/0 .rodata @4330 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4330 = 150.0f; -COMPILER_STRIP_GATE(0x806C757C, &lit_4330); -#pragma pop - -/* 806C7580-806C7584 000098 0004+00 0/1 0/0 0/0 .rodata @4331 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4331 = 17.0f / 10.0f; -COMPILER_STRIP_GATE(0x806C7580, &lit_4331); -#pragma pop - -/* 806C2AB0-806C2FC0 000EB0 0510+00 1/1 0/0 0/0 .text e_gb_attack_2__FP10e_gb_class */ -static void e_gb_attack_2(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C7584-806C7588 00009C 0004+00 0/1 0/0 0/0 .rodata @4367 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4367 = 800.0f; -COMPILER_STRIP_GATE(0x806C7584, &lit_4367); -#pragma pop - -/* 806C7588-806C7590 0000A0 0004+04 0/2 0/0 0/0 .rodata @4368 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4368[1 + 1 /* padding */] = { - 1.0f / 5.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x806C7588, &lit_4368); -#pragma pop - -/* 806C2FC0-806C3194 0013C0 01D4+00 1/1 0/0 0/0 .text e_gb_damage__FP10e_gb_class */ -static void e_gb_damage(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C7590-806C7598 0000A8 0008+00 0/2 0/0 0/0 .rodata @4415 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4415[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x806C7590, &lit_4415); -#pragma pop - -/* 806C3194-806C33C8 001594 0234+00 1/1 0/0 0/0 .text e_gb_end__FP10e_gb_class */ -static void e_gb_end(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C7598-806C759C 0000B0 0004+00 0/1 0/0 0/0 .rodata @4434 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4434 = -6112.0f; -COMPILER_STRIP_GATE(0x806C7598, &lit_4434); -#pragma pop - -/* 806C759C-806C75A0 0000B4 0004+00 0/1 0/0 0/0 .rodata @4435 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4435 = 4520.0f; -COMPILER_STRIP_GATE(0x806C759C, &lit_4435); -#pragma pop - -/* 806C75A0-806C75A4 0000B8 0004+00 0/1 0/0 0/0 .rodata @4436 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4436 = 10800.0f; -COMPILER_STRIP_GATE(0x806C75A0, &lit_4436); -#pragma pop - -/* 806C75A4-806C75A8 0000BC 0004+00 0/1 0/0 0/0 .rodata @4437 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4437 = -5450.0f; -COMPILER_STRIP_GATE(0x806C75A4, &lit_4437); -#pragma pop - -/* 806C75A8-806C75AC 0000C0 0004+00 0/2 0/0 0/0 .rodata @4438 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4438 = 500.0f; -COMPILER_STRIP_GATE(0x806C75A8, &lit_4438); -#pragma pop - -/* 806C75AC-806C75B0 0000C4 0004+00 0/2 0/0 0/0 .rodata @4439 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4439 = 80.0f; -COMPILER_STRIP_GATE(0x806C75AC, &lit_4439); -#pragma pop - -/* 806C33C8-806C3558 0017C8 0190+00 1/1 0/0 0/0 .text e_gb_start__FP10e_gb_class */ -static void e_gb_start(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C75B0-806C75B4 0000C8 0004+00 0/1 0/0 0/0 .rodata @4533 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4533 = -200.0f; -COMPILER_STRIP_GATE(0x806C75B0, &lit_4533); -#pragma pop - -/* 806C75B4-806C75B8 0000CC 0004+00 0/1 0/0 0/0 .rodata @4534 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4534 = 0x3D0F5C29; -COMPILER_STRIP_GATE(0x806C75B4, &lit_4534); -#pragma pop - -/* 806C75B8-806C75BC 0000D0 0004+00 0/2 0/0 0/0 .rodata @4535 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4535 = 60.0f; -COMPILER_STRIP_GATE(0x806C75B8, &lit_4535); -#pragma pop - -/* 806C3558-806C3904 001958 03AC+00 1/1 0/0 0/0 .text kuki_control1__FP10e_gb_class */ -static void kuki_control1(e_gb_class* param_0) { - // NONMATCHING -} - -/* 806C3904-806C3A78 001D04 0174+00 1/1 0/0 0/0 .text kuki_control2__FP10e_gb_class */ -static void kuki_control2(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C75BC-806C75C0 0000D4 0004+00 0/1 0/0 0/0 .rodata @4612 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4612 = 17.0f; -COMPILER_STRIP_GATE(0x806C75BC, &lit_4612); -#pragma pop - -/* 806C3A78-806C3C44 001E78 01CC+00 1/1 0/0 0/0 .text kuki_control3__FP10e_gb_class */ -static void kuki_control3(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C75C0-806C75C4 0000D8 0004+00 0/1 0/0 0/0 .rodata @4650 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4650 = 110.0f; -COMPILER_STRIP_GATE(0x806C75C0, &lit_4650); -#pragma pop - -/* 806C3C44-806C3D20 002044 00DC+00 1/1 0/0 0/0 .text s_b_sub__FPvPv */ -static void s_b_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 806C3D20-806C3F0C 002120 01EC+00 1/1 0/0 0/0 .text damage_check__FP10e_gb_class */ -static void damage_check(e_gb_class* param_0) { - // NONMATCHING -} - -/* 806C3F0C-806C44F8 00230C 05EC+00 2/1 0/0 0/0 .text action__FP10e_gb_class */ -static void action(e_gb_class* param_0) { - // NONMATCHING -} - -/* 806C44F8-806C451C 0028F8 0024+00 1/1 0/0 0/0 .text e_gf_wait__FP10e_gb_class */ -static void e_gf_wait(e_gb_class* param_0) { - // NONMATCHING -} - -/* 806C451C-806C4688 00291C 016C+00 1/1 0/0 0/0 .text e_gf_chance__FP10e_gb_class */ -static void e_gf_chance(e_gb_class* param_0) { - // NONMATCHING -} - -/* 806C4688-806C48EC 002A88 0264+00 1/1 0/0 0/0 .text e_gf_eatbomb__FP10e_gb_class */ -static void e_gf_eatbomb(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C75C4-806C75C8 0000DC 0004+00 0/0 0/0 0/0 .rodata @4802 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4802 = 35.0f; -COMPILER_STRIP_GATE(0x806C75C4, &lit_4802); -#pragma pop - -/* 806C75C8-806C75CC 0000E0 0004+00 0/1 0/0 0/0 .rodata @4979 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4979 = 4.0f; -COMPILER_STRIP_GATE(0x806C75C8, &lit_4979); -#pragma pop - -/* 806C75CC-806C75D0 0000E4 0004+00 0/1 0/0 0/0 .rodata @4980 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4980 = -6.0f; -COMPILER_STRIP_GATE(0x806C75CC, &lit_4980); -#pragma pop - -/* 806C48EC-806C4AB4 002CEC 01C8+00 1/1 0/0 0/0 .text e_gf_end__FP10e_gb_class */ -static void e_gf_end(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C75D0-806C75D4 0000E8 0004+00 0/1 0/0 0/0 .rodata @5039 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5039 = 47.0f; -COMPILER_STRIP_GATE(0x806C75D0, &lit_5039); -#pragma pop - -/* 806C4AB4-806C4CC4 002EB4 0210+00 1/1 0/0 0/0 .text damage_check2__FP10e_gb_class */ -static void damage_check2(e_gb_class* param_0) { - // NONMATCHING -} - -/* 806C4CC4-806C4E28 0030C4 0164+00 1/1 0/0 0/0 .text action2__FP10e_gb_class */ -static void action2(e_gb_class* param_0) { - // NONMATCHING -} - -/* 806C4E28-806C4F0C 003228 00E4+00 1/1 0/0 0/0 .text cam_3d_morf__FP10e_gb_classf */ -static void cam_3d_morf(e_gb_class* param_0, f32 param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C75D4-806C75D8 0000EC 0004+00 0/1 0/0 0/0 .rodata @5351 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5351 = 55.0f; -COMPILER_STRIP_GATE(0x806C75D4, &lit_5351); -#pragma pop - -/* 806C75D8-806C75DC 0000F0 0004+00 0/1 0/0 0/0 .rodata @5352 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5352 = -5750.0f; -COMPILER_STRIP_GATE(0x806C75D8, &lit_5352); -#pragma pop - -/* 806C75DC-806C75E0 0000F4 0004+00 0/1 0/0 0/0 .rodata @5353 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5353 = 4410.0f; -COMPILER_STRIP_GATE(0x806C75DC, &lit_5353); -#pragma pop - -/* 806C75E0-806C75E4 0000F8 0004+00 0/1 0/0 0/0 .rodata @5354 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5354 = 10684.0f; -COMPILER_STRIP_GATE(0x806C75E0, &lit_5354); -#pragma pop - -/* 806C75E4-806C75E8 0000FC 0004+00 0/1 0/0 0/0 .rodata @5355 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5355 = -5689.0f; -COMPILER_STRIP_GATE(0x806C75E4, &lit_5355); -#pragma pop - -/* 806C75E8-806C75EC 000100 0004+00 0/1 0/0 0/0 .rodata @5356 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5356 = 4747.0f; -COMPILER_STRIP_GATE(0x806C75E8, &lit_5356); -#pragma pop - -/* 806C75EC-806C75F0 000104 0004+00 0/1 0/0 0/0 .rodata @5357 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5357 = 15000.0f; -COMPILER_STRIP_GATE(0x806C75EC, &lit_5357); -#pragma pop - -/* 806C75F0-806C75F4 000108 0004+00 0/1 0/0 0/0 .rodata @5358 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5358 = -5700.0f; -COMPILER_STRIP_GATE(0x806C75F0, &lit_5358); -#pragma pop - -/* 806C75F4-806C75F8 00010C 0004+00 0/1 0/0 0/0 .rodata @5359 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5359 = 4740.0f; -COMPILER_STRIP_GATE(0x806C75F4, &lit_5359); -#pragma pop - -/* 806C75F8-806C75FC 000110 0004+00 0/1 0/0 0/0 .rodata @5360 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5360 = 14644.0f; -COMPILER_STRIP_GATE(0x806C75F8, &lit_5360); -#pragma pop - -/* 806C75FC-806C7600 000114 0004+00 0/1 0/0 0/0 .rodata @5361 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5361 = 14643.0f; -COMPILER_STRIP_GATE(0x806C75FC, &lit_5361); -#pragma pop - -/* 806C7600-806C7604 000118 0004+00 0/1 0/0 0/0 .rodata @5362 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5362 = -5723.0f; -COMPILER_STRIP_GATE(0x806C7600, &lit_5362); -#pragma pop - -/* 806C7604-806C7608 00011C 0004+00 0/1 0/0 0/0 .rodata @5363 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5363 = 4733.0f; -COMPILER_STRIP_GATE(0x806C7604, &lit_5363); -#pragma pop - -/* 806C7608-806C760C 000120 0004+00 0/1 0/0 0/0 .rodata @5364 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5364 = 14293.0f; -COMPILER_STRIP_GATE(0x806C7608, &lit_5364); -#pragma pop - -/* 806C760C-806C7610 000124 0004+00 0/1 0/0 0/0 .rodata @5365 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5365 = 4350.0f; -COMPILER_STRIP_GATE(0x806C760C, &lit_5365); -#pragma pop - -/* 806C7610-806C7614 000128 0004+00 0/1 0/0 0/0 .rodata @5366 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5366 = 9670.0f; -COMPILER_STRIP_GATE(0x806C7610, &lit_5366); -#pragma pop - -/* 806C7614-806C7618 00012C 0004+00 0/1 0/0 0/0 .rodata @5367 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5367 = 1.0f / 50.0f; -COMPILER_STRIP_GATE(0x806C7614, &lit_5367); -#pragma pop - -/* 806C7618-806C761C 000130 0004+00 0/1 0/0 0/0 .rodata @5368 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5368 = 0x3A03126F; -COMPILER_STRIP_GATE(0x806C7618, &lit_5368); -#pragma pop - -/* 806C761C-806C7620 000134 0004+00 0/1 0/0 0/0 .rodata @5369 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5369 = -5690.0f; -COMPILER_STRIP_GATE(0x806C761C, &lit_5369); -#pragma pop - -/* 806C7620-806C7624 000138 0004+00 0/1 0/0 0/0 .rodata @5370 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5370 = 4432.0f; -COMPILER_STRIP_GATE(0x806C7620, &lit_5370); -#pragma pop - -/* 806C7624-806C7628 00013C 0004+00 0/1 0/0 0/0 .rodata @5371 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5371 = 9610.0f; -COMPILER_STRIP_GATE(0x806C7624, &lit_5371); -#pragma pop - -/* 806C7628-806C762C 000140 0004+00 0/1 0/0 0/0 .rodata @5372 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5372 = -5709.0f; -COMPILER_STRIP_GATE(0x806C7628, &lit_5372); -#pragma pop - -/* 806C762C-806C7630 000144 0004+00 0/1 0/0 0/0 .rodata @5373 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5373 = 4445.0f; -COMPILER_STRIP_GATE(0x806C762C, &lit_5373); -#pragma pop - -/* 806C7630-806C7634 000148 0004+00 0/1 0/0 0/0 .rodata @5374 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5374 = 9961.0f; -COMPILER_STRIP_GATE(0x806C7630, &lit_5374); -#pragma pop - -/* 806C7634-806C7638 00014C 0004+00 0/1 0/0 0/0 .rodata @5375 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5375 = -5741.0f; -COMPILER_STRIP_GATE(0x806C7634, &lit_5375); -#pragma pop - -/* 806C7638-806C763C 000150 0004+00 0/1 0/0 0/0 .rodata @5376 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5376 = 10530.0f; -COMPILER_STRIP_GATE(0x806C7638, &lit_5376); -#pragma pop - -/* 806C763C-806C7640 000154 0004+00 0/1 0/0 0/0 .rodata @5377 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5377 = -5760.0f; -COMPILER_STRIP_GATE(0x806C763C, &lit_5377); -#pragma pop - -/* 806C7640-806C7644 000158 0004+00 0/1 0/0 0/0 .rodata @5378 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5378 = 4496.0f; -COMPILER_STRIP_GATE(0x806C7640, &lit_5378); -#pragma pop - -/* 806C7644-806C7648 00015C 0004+00 0/1 0/0 0/0 .rodata @5379 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5379 = 10896.0f; -COMPILER_STRIP_GATE(0x806C7644, &lit_5379); -#pragma pop - -/* 806C7648-806C764C 000160 0004+00 0/1 0/0 0/0 .rodata @5380 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5380 = -5706.0f; -COMPILER_STRIP_GATE(0x806C7648, &lit_5380); -#pragma pop - -/* 806C764C-806C7650 000164 0004+00 0/1 0/0 0/0 .rodata @5381 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5381 = 4526.0f; -COMPILER_STRIP_GATE(0x806C764C, &lit_5381); -#pragma pop - -/* 806C7650-806C7654 000168 0004+00 0/1 0/0 0/0 .rodata @5382 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5382 = 11379.0f; -COMPILER_STRIP_GATE(0x806C7650, &lit_5382); -#pragma pop - -/* 806C7654-806C7658 00016C 0004+00 0/1 0/0 0/0 .rodata @5383 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5383 = -5687.0f; -COMPILER_STRIP_GATE(0x806C7654, &lit_5383); -#pragma pop - -/* 806C7658-806C765C 000170 0004+00 0/1 0/0 0/0 .rodata @5384 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5384 = 4505.0f; -COMPILER_STRIP_GATE(0x806C7658, &lit_5384); -#pragma pop - -/* 806C765C-806C7660 000174 0004+00 0/1 0/0 0/0 .rodata @5385 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5385 = 11008.0f; -COMPILER_STRIP_GATE(0x806C765C, &lit_5385); -#pragma pop - -/* 806C7660-806C7664 000178 0004+00 0/1 0/0 0/0 .rodata @5386 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5386 = -5624.0f; -COMPILER_STRIP_GATE(0x806C7660, &lit_5386); -#pragma pop - -/* 806C7664-806C7668 00017C 0004+00 0/1 0/0 0/0 .rodata @5387 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5387 = 4439.0f; -COMPILER_STRIP_GATE(0x806C7664, &lit_5387); -#pragma pop - -/* 806C7668-806C766C 000180 0004+00 0/1 0/0 0/0 .rodata @5388 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5388 = 9818.0f; -COMPILER_STRIP_GATE(0x806C7668, &lit_5388); -#pragma pop - -/* 806C766C-806C7670 000184 0004+00 0/1 0/0 0/0 .rodata @5389 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5389 = -5604.0f; -COMPILER_STRIP_GATE(0x806C766C, &lit_5389); -#pragma pop - -/* 806C7670-806C7674 000188 0004+00 0/1 0/0 0/0 .rodata @5390 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5390 = 4418.0f; -COMPILER_STRIP_GATE(0x806C7670, &lit_5390); -#pragma pop - -/* 806C7674-806C7678 00018C 0004+00 0/1 0/0 0/0 .rodata @5391 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5391 = 9447.0f; -COMPILER_STRIP_GATE(0x806C7674, &lit_5391); -#pragma pop - -/* 806C7678-806C767C 000190 0004+00 0/1 0/0 0/0 .rodata @5392 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5392 = 4584.0f; -COMPILER_STRIP_GATE(0x806C7678, &lit_5392); -#pragma pop - -/* 806C767C-806C7680 000194 0004+00 0/1 0/0 0/0 .rodata @5393 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5393 = 400.0f; -COMPILER_STRIP_GATE(0x806C767C, &lit_5393); -#pragma pop - -/* 806C7680-806C7684 000198 0004+00 0/1 0/0 0/0 .rodata @5394 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5394 = 1.0f / 25.0f; -COMPILER_STRIP_GATE(0x806C7680, &lit_5394); -#pragma pop - -/* 806C7684-806C7688 00019C 0004+00 0/1 0/0 0/0 .rodata @5395 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5395 = 0x3B03126F; -COMPILER_STRIP_GATE(0x806C7684, &lit_5395); -#pragma pop - -/* 806C7688-806C768C 0001A0 0004+00 0/1 0/0 0/0 .rodata @5396 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5396 = 300.0f; -COMPILER_STRIP_GATE(0x806C7688, &lit_5396); -#pragma pop - -/* 806C768C-806C7690 0001A4 0004+00 0/1 0/0 0/0 .rodata @5397 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5397 = -600.0f; -COMPILER_STRIP_GATE(0x806C768C, &lit_5397); -#pragma pop - -/* 806C7690-806C7694 0001A8 0004+00 0/1 0/0 0/0 .rodata @5398 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5398 = -250.0f; -COMPILER_STRIP_GATE(0x806C7690, &lit_5398); -#pragma pop - -/* 806C7694-806C7698 0001AC 0004+00 0/1 0/0 0/0 .rodata @5399 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5399 = 120.0f; -COMPILER_STRIP_GATE(0x806C7694, &lit_5399); -#pragma pop - -/* 806C4F0C-806C59F4 00330C 0AE8+00 1/1 0/0 0/0 .text demo_camera__FP10e_gb_class */ -static void demo_camera(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C7698-806C769C 0001B0 0004+00 0/1 0/0 0/0 .rodata @5688 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5688 = -50.0f; -COMPILER_STRIP_GATE(0x806C7698, &lit_5688); -#pragma pop - -/* 806C769C-806C76A0 0001B4 0004+00 0/1 0/0 0/0 .rodata @5689 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5689 = 8.0f; -COMPILER_STRIP_GATE(0x806C769C, &lit_5689); -#pragma pop - -/* 806C76A0-806C76A4 0001B8 0004+00 0/1 0/0 0/0 .rodata @5690 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5690 = 10000.0f; -COMPILER_STRIP_GATE(0x806C76A0, &lit_5690); -#pragma pop - -/* 806C76A4-806C76A8 0001BC 0004+00 0/1 0/0 0/0 .rodata @5691 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5691 = 160.0f; -COMPILER_STRIP_GATE(0x806C76A4, &lit_5691); -#pragma pop - -/* 806C76A8-806C76AC 0001C0 0004+00 0/1 0/0 0/0 .rodata @5692 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5692 = 170.0f; -COMPILER_STRIP_GATE(0x806C76A8, &lit_5692); -#pragma pop - -/* 806C76AC-806C76B0 0001C4 0004+00 0/1 0/0 0/0 .rodata @5693 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5693 = 1.5f; -COMPILER_STRIP_GATE(0x806C76AC, &lit_5693); -#pragma pop - -/* 806C76B0-806C76B4 0001C8 0004+00 0/1 0/0 0/0 .rodata @5694 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5694 = 0x3A83126F; -COMPILER_STRIP_GATE(0x806C76B0, &lit_5694); -#pragma pop - -/* 806C59F4-806C64A0 003DF4 0AAC+00 2/1 0/0 0/0 .text daE_GB_Execute__FP10e_gb_class */ -static void daE_GB_Execute(e_gb_class* param_0) { - // NONMATCHING -} - -/* 806C64A0-806C64A8 0048A0 0008+00 1/0 0/0 0/0 .text daE_GB_IsDelete__FP10e_gb_class */ -static bool daE_GB_IsDelete(e_gb_class* param_0) { - return true; -} - -/* 806C64A8-806C651C 0048A8 0074+00 1/0 0/0 0/0 .text daE_GB_Delete__FP10e_gb_class */ -static void daE_GB_Delete(e_gb_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C76B8-806C76B8 0001D0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_806C76BD = "D_MN05"; -#pragma pop - -/* 806C651C-806C6894 00491C 0378+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 806C6894-806C68DC 004C94 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 806C76B4-806C76B8 0001CC 0004+00 0/1 0/0 0/0 .rodata @5877 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5877 = 65535.0f; -COMPILER_STRIP_GATE(0x806C76B4, &lit_5877); -#pragma pop - -/* 806C68DC-806C6B94 004CDC 02B8+00 1/0 0/0 0/0 .text daE_GB_Create__FP10fopAc_ac_c */ -static void daE_GB_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 806C6B94-806C6D34 004F94 01A0+00 1/1 0/0 0/0 .text __ct__10e_gb_classFv */ -e_gb_class::e_gb_class() { - // NONMATCHING -} - -/* 806C6D34-806C6DA4 005134 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 806C6DA4-806C6E14 0051A4 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 806C6E14-806C6E5C 005214 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 806C6E5C-806C6EA4 00525C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */ -// cM3dGSph::~cM3dGSph() { -extern "C" void __dt__8cM3dGSphFv() { - // NONMATCHING -} - -/* 806C6EA4-806C6EEC 0052A4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 806C6EEC-806C6F48 0052EC 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 806C6F48-806C6F4C 005348 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 806C6F4C-806C6F50 00534C 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 806C6F50-806C6F98 005350 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 806C6F98-806C6FE0 005398 0048+00 2/1 0/0 0/0 .text __dt__12daE_GB_HIO_cFv */ -daE_GB_HIO_c::~daE_GB_HIO_c() { - // NONMATCHING -} - -/* 806C6FE0-806C701C 0053E0 003C+00 0/0 1/0 0/0 .text __sinit_d_a_e_gb_cpp */ -void __sinit_d_a_e_gb_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x806C6FE0, __sinit_d_a_e_gb_cpp); -#pragma pop - -/* 806C701C-806C7024 00541C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_806C701C() { - // NONMATCHING -} - -/* 806C7024-806C702C 005424 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_806C7024() { - // NONMATCHING -} - -/* 806C7440-806C747C 005840 003C+00 1/1 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 806C747C-806C74B8 00587C 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 806C74B8-806C74D4 0058B8 001C+00 1/1 0/0 0/0 .text setPos__7daKey_cF4cXyz */ -// void daKey_c::setPos(cXyz param_0) { -extern "C" void setPos__7daKey_cF4cXyz() { - // NONMATCHING -} - -/* 806C76B8-806C76B8 0001D0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp index 7b695aa0077..2ab75d9119f 100644 --- a/src/d/actor/d_a_player.cpp +++ b/src/d/actor/d_a_player.cpp @@ -587,7 +587,7 @@ bool daPy_py_c::checkBoomerangCharge() { } /* 8015F8C8-8015F8D0 15A208 0008+00 0/0 0/0 1/1 .text checkBoomerangChargeTime__9daPy_py_cFv */ -int daPy_py_c::checkBoomerangChargeTime() { +u8 daPy_py_c::checkBoomerangChargeTime() { return 0; }