From a1e87480310bdef288160c0ac68217195d40db9f Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Fri, 16 May 2025 19:20:53 -0400 Subject: [PATCH] Work on d_a_e_mk - beeg monkey :) (#2441) * Started work on d_a_e_mk * demo work * All functions worked on * PR cleanup --- include/d/actor/d_a_e_db.h | 7 +- include/d/actor/d_a_e_mk.h | 130 +- include/d/actor/d_a_e_mk_bo.h | 6 +- include/d/actor/d_a_npc_ks.h | 10 +- include/d/actor/d_a_player.h | 4 + src/d/actor/d_a_e_mk.cpp | 4980 +++++++++++++++++++-------------- 6 files changed, 3002 insertions(+), 2135 deletions(-) diff --git a/include/d/actor/d_a_e_db.h b/include/d/actor/d_a_e_db.h index 38a759d3d70..cf4d94e43a8 100644 --- a/include/d/actor/d_a_e_db.h +++ b/include/d/actor/d_a_e_db.h @@ -11,8 +11,11 @@ * */ class e_db_class : public fopEn_enemy_c { -private: - /* 0x5ac */ u8 field_0x5ac[0x1270 - 0x5ac]; +public: + /* 0x5ac */ u8 field_0x5ac[0x66a - 0x5ac]; + /* 0x66A */ s16 field_0x66a; + /* 0x66C */ s16 field_0x66c; + /* 0x66E */ u8 field_0x66e[0x1270 - 0x66e]; }; STATIC_ASSERT(sizeof(e_db_class) == 0x1270); diff --git a/include/d/actor/d_a_e_mk.h b/include/d/actor/d_a_e_mk.h index 5b02e895801..84a8799b260 100644 --- a/include/d/actor/d_a_e_mk.h +++ b/include/d/actor/d_a_e_mk.h @@ -1,5 +1,12 @@ #ifndef D_A_E_MK_H #define D_A_E_MK_H +#include "d/actor/d_a_b_bh.h" +#include "d/actor/d_a_e_db.h" +#include "d/actor/d_a_obj_pillar.h" +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" +#include "d/d_cc_uty.h" +#include "d/d_msg_flow.h" #include "f_op/f_op_actor_mng.h" /** @@ -11,16 +18,129 @@ * */ class e_mk_class : public fopEn_enemy_c { - /* 8071C190 */ e_mk_class(); -private: - /* 0x5ac */ u8 field_0x5ac[0xcf8 - 0x5ac]; +public: + /* 8071C190 */ e_mk_class() {} + + enum e_mk_ACTION { + ACT_WAIT, + ACT_MOVE, + ACT_SHOOT, + ACT_YORO, + ACT_DROP = 9, + ACT_DAMAGE, + ACT_S_DEMO = 20, + ACT_E_DEMO = 30, + ACT_R04_DEMO = 35, + }; + + /* 0x5AC */ request_of_phase_process_class mPhase; + /* 0x5B4 */ s16 mMode; + /* 0x5B6 */ u8 field_0x5b6; + /* 0x5B7 */ u8 field_0x5b7; + /* 0x5B8 */ cXyz field_0x5b8; + /* 0x5C4 */ u8 field_0x5c4[0x5c8 - 0x5c4]; + /* 0x5C8 */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x5CC */ int mAnm; + /* 0x5D0 */ mDoExt_btpAnm* mBtp; + /* 0x5D4 */ s16 field_0x5d4; + /* 0x5D8 */ f32 field_0x5d8; + /* 0x5DC */ mDoExt_McaMorf* mpCrownModelMorf; + /* 0x5E0 */ s8 field_0x5e0; + /* 0x5E4 */ cXyz field_0x5e4; + /* 0x5F0 */ csXyz field_0x5f0; + /* 0x5F6 */ u8 field_0x5f6[0x5fc - 0x5f6]; + /* 0x5FC */ f32 field_0x5fc; + /* 0x600 */ f32 field_0x600; + /* 0x604 */ f32 field_0x604; + /* 0x608 */ J3DModel* mpBoomerangModel; + /* 0x60C */ s8 field_0x60c; + /* 0x60D */ s8 field_0x60d; + /* 0x60E */ s8 field_0x60e; + /* 0x60F */ u8 field_0x60f; + /* 0x610 */ Z2CreatureEnemy mSound; + /* 0x6B4 */ s16 field_0x6b4; + /* 0x6B6 */ s16 mAction; + /* 0x6B8 */ f32 mDistToPlayer; + /* 0x6BC */ s16 mAngleToPlayer; + /* 0x6BE */ s8 field_0x6be; + /* 0x6BF */ u8 field_0x6bf; + /* 0x6C0 */ cXyz field_0x6c0; + /* 0x6CC */ cXyz field_0x6cc; + /* 0x6D8 */ f32 field_0x6d8; + /* 0x6DC */ cXyz field_0x6dc; + /* 0x6E8 */ daPillar_c* mPillar; + /* 0x6EC */ daPillar_c* mHasira; + /* 0x6F0 */ u32 mShadowKey1; + /* 0x6F4 */ u32 mShadowKey2; + /* 0x6F8 */ s8 field_0x6f8; + /* 0x6F9 */ u8 field_0x6f9; + /* 0x6FA */ s16 field_0x6fa; + /* 0x6FC */ s16 field_0x6fc[4]; + /* 0x704 */ s16 field_0x704; + /* 0x706 */ s8 field_0x706; + /* 0x707 */ s8 field_0x707; + /* 0x708 */ fpc_ProcID field_0x708; + /* 0x70C */ e_db_class* field_0x70c; + /* 0x710 */ fpc_ProcID mBabaChildID; + /* 0x714 */ fpc_ProcID mBabaChildID2; + /* 0x718 */ s8 field_0x718; + /* 0x719 */ s8 field_0x719; + /* 0x71A */ s8 field_0x71a; + /* 0x71B */ s8 field_0x71b; + /* 0x71C */ s8 field_0x71c; + /* 0x71D */ s8 field_0x71d; + /* 0x71E */ s8 field_0x71e; + /* 0x71F */ u8 field_0x71f; + /* 0x720 */ dBgS_AcchCir mAcchCir; + /* 0x760 */ dBgS_ObjAcch mAcch; + /* 0x938 */ dCcU_AtInfo mAtInfo; + /* 0x95C */ dCcD_Stts field_0x95c; + /* 0x998 */ dCcD_Sph field_0x998; + /* 0xAD0 */ dCcD_Sph field_0xad0; + /* 0xC08 */ u32 field_0xc08; + /* 0xC0C */ u32 field_0xc0c; + /* 0xC10 */ u32 field_0xc10; + /* 0xC14 */ u32 field_0xc14; + /* 0xC18 */ u32 field_0xc18[2]; + /* 0xC20 */ u32 field_0xc20[4]; + /* 0xC30 */ s16 field_0xc30; + /* 0xC32 */ s16 mDemoMode; + /* 0xC34 */ s16 mDemoCamTimer; + /* 0xC38 */ cXyz mCamEye; + /* 0xC44 */ cXyz mCamCenter; + /* 0xC50 */ cXyz field_0xc50; + /* 0xC5C */ cXyz field_0xc5c; + /* 0xC68 */ cXyz field_0xc68; + /* 0xC74 */ cXyz field_0xc74; + /* 0xC80 */ f32 mDemoCamFovy; + /* 0xC84 */ f32 field_0xc84; + /* 0xC88 */ f32 field_0xc88; + /* 0xC8C */ f32 field_0xc8c; + /* 0xC90 */ f32 field_0xc90; + /* 0xC94 */ u8 field_0xc94[0xc98 - 0xc94]; + /* 0xC98 */ f32 field_0xc98; + /* 0xC9C */ f32 field_0xc9c; + /* 0xCA0 */ s16 field_0xca0; + /* 0xCA4 */ dMsgFlow_c mMsgFlow; + /* 0xCF0 */ u8 field_0xcf0[0xcf5 - 0xcf0]; + /* 0xCF5 */ u8 field_0xcf5; }; STATIC_ASSERT(sizeof(e_mk_class) == 0xcf8); -class daE_MK_HIO_c { +class daE_MK_HIO_c : public JORReflexible { +public: /* 8071412C */ daE_MK_HIO_c(); - /* 8071C3EC */ ~daE_MK_HIO_c(); + /* 8071C3EC */ virtual ~daE_MK_HIO_c() {}; + + void genMessage(JORMContext*); + + /* 0x04 */ s8 field_0x4; + /* 0x08 */ f32 mSize; + /* 0x0C */ f32 mBoomerangRatio; + /* 0x10 */ f32 mPlayerThrowDistMax; + /* 0x14 */ u8 mHaltAction; + /* 0x18 */ cXyz mCrownPosAdjust; }; diff --git a/include/d/actor/d_a_e_mk_bo.h b/include/d/actor/d_a_e_mk_bo.h index 56b1bf73bf7..2dc06c055ac 100644 --- a/include/d/actor/d_a_e_mk_bo.h +++ b/include/d/actor/d_a_e_mk_bo.h @@ -11,8 +11,10 @@ * */ class e_mk_bo_class : public fopEn_enemy_c { -private: - /* 0x5ac */ u8 field_0x5ac[0x9c0 - 0x5ac]; +public: + /* 0x5ac */ u8 field_0x5ac[0x9b4 - 0x5ac]; + /* 0x9B4 */ u8 field_0x9b4; + /* 0x9B5 */ u8 field_0x9B5[0x9c0 - 0x9B5]; }; STATIC_ASSERT(sizeof(e_mk_bo_class) == 0x9c0); diff --git a/include/d/actor/d_a_npc_ks.h b/include/d/actor/d_a_npc_ks.h index 87a18a637cd..29e040f6e08 100644 --- a/include/d/actor/d_a_npc_ks.h +++ b/include/d/actor/d_a_npc_ks.h @@ -12,8 +12,14 @@ * */ class npc_ks_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0xc20 - 0x568]; +public: + /* 0x568 */ u8 field_0x568[0x5b6 - 0x568]; + /* 0x5B6 */ u8 field_0x5b6; + /* 0x5B7 */ u8 field_0x5b7[0x5c8 - 0x5b7]; + /* 0x5C8 */ s16 field_0x5c8; + /* 0x5CA */ u8 field_0x5ca[0x5ea - 0x5ca]; + /* 0x5EA */ s16 mMode; + /* 0x5EC */ u8 field_0x5ec[0xc20 - 0x5ec]; }; STATIC_ASSERT(sizeof(npc_ks_class) == 0xc20); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 78a1434530c..ce65907dd72 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -1065,6 +1065,10 @@ public: mDemo.setParam2(i_param2); } + void changeDemoParam0(s16 i_param1) { + mDemo.setParam0(i_param1); + } + void changeDemoParam1(s16 i_param1) { mDemo.setParam1(i_param1); } diff --git a/src/d/actor/d_a_e_mk.cpp b/src/d/actor/d_a_e_mk.cpp index 9e67ae07c35..3f68882b641 100644 --- a/src/d/actor/d_a_e_mk.cpp +++ b/src/d/actor/d_a_e_mk.cpp @@ -5,380 +5,2885 @@ #include "d/actor/d_a_e_mk.h" #include "d/d_cc_d.h" -#include "dol2asm.h" +#include "d/d_com_inf_game.h" +#include "d/actor/d_a_obj_pillar.h" +#include "d/actor/d_a_e_db.h" +#include "d/actor/d_a_e_db_leaf.h" +#include "d/actor/d_a_player.h" +#include "d/d_s_play.h" +#include "d/actor/d_a_npc_ks.h" +#include "d/actor/d_a_obj_brg.h" +#include "d/actor/d_a_e_mk_bo.h" #include "d/d_camera.h" +#include "Z2AudioLib/Z2Instances.h" + +UNK_REL_BSS + +/* 8071412C-8071417C 0000EC 0050+00 1/1 0/0 0/0 .text __ct__12daE_MK_HIO_cFv */ +daE_MK_HIO_c::daE_MK_HIO_c() { + field_0x4 = -1; + mSize = 1.3f; + mBoomerangRatio = 1.0f; + mPlayerThrowDistMax = 1800.0f; + mHaltAction = 0; + mCrownPosAdjust.x = 0.0f; + mCrownPosAdjust.y = 0.0f; + mCrownPosAdjust.z = 0.0f; +} + +/* 8071417C-80714228 00013C 00AC+00 9/9 0/0 0/0 .text anm_init__FP10e_mk_classifUcf */ +static void anm_init(e_mk_class* i_this, int i_index, f32 i_morf, u8 i_attr, f32 i_rate) { + i_this->mpModelMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_mk", i_index), + i_attr, i_morf, i_rate, 0.0f, -1.0f); + i_this->mAnm = i_index; +} + +/* 80714228-807142D0 0001E8 00A8+00 2/2 0/0 0/0 .text ok_anm_init__FP10e_mk_classifUcf */ +static void ok_anm_init(e_mk_class* i_this, int i_index, f32 i_morf, u8 i_mode, f32 i_speed) { + i_this->mpCrownModelMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_mk", i_index), + i_mode, i_morf, i_speed, 0.0f, -1.0f, NULL); +} + +/* 807142D0-80714498 000290 01C8+00 1/0 0/0 0/0 .text daE_MK_Draw__FP10e_mk_class */ +static int daE_MK_Draw(e_mk_class* i_this) { + J3DModel* model = i_this->mpModelMorf->getModel(); + g_env_light.settingTevStruct(0, &i_this->current.pos, &i_this->tevStr); + g_env_light.setLightTevColorType_MAJI(model, &i_this->tevStr); + J3DModelData* modelData = model->getModelData(); + i_this->mBtp->entry(modelData); + i_this->mpModelMorf->entryDL(); + + cXyz sp38; + if (i_this->field_0x6f8 != 0) { + sp38.set(i_this->current.pos.x, i_this->current.pos.y + 50.0f, i_this->current.pos.z); + i_this->mShadowKey1 = dComIfGd_setShadow(i_this->mShadowKey1, 1, model, &sp38, + 1200.0f, 0.0f, i_this->current.pos.y, + i_this->mAcch.GetGroundH(), i_this->mAcch.m_gnd, + &i_this->tevStr, 0, 1.0f, + dDlst_shadowControl_c::getSimpleTex()); + } + + if (i_this->field_0x60c != 0) { + model = i_this->mpCrownModelMorf->getModel(); + g_env_light.setLightTevColorType_MAJI(model, &i_this->tevStr); + i_this->mpCrownModelMorf->entryDL(); + if (i_this->field_0x5e0 != 0) { + sp38.set(i_this->field_0x5e4.x, i_this->current.pos.y + 50.0f, i_this->field_0x5e4.z); + i_this->mShadowKey2 = dComIfGd_setShadow(i_this->mShadowKey2, 1, i_this->mpCrownModelMorf->getModel(), + &sp38, 500.0f, 0.0f, i_this->current.pos.y, + i_this->mAcch.GetGroundH(), i_this->mAcch.m_gnd, + &i_this->tevStr, 0, 1.0f, + dDlst_shadowControl_c::getSimpleTex()); + } + } + + if (i_this->field_0x60d != 0) { + g_env_light.setLightTevColorType_MAJI(i_this->mpBoomerangModel, &i_this->tevStr); + mDoExt_modelUpdateDL(i_this->mpBoomerangModel); + } + + return 1; +} + +/* 807144D4-80714534 000494 0060+00 1/1 0/0 0/0 .text s_obj_delete__FPvPv */ +static void* s_obj_delete(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor)) { + if (fopAcM_GetName(i_actor) == PROC_E_DB) { + static_cast(i_actor)->health = 1000; + } else if (fopAcM_GetName(i_actor) == PROC_E_DB_LEAF) { + fopAcM_delete(static_cast(i_actor)); + } + } + + return NULL; +} + +/* 8071CAB4-8071CAC0 000054 000C+00 0/2 0/0 0/0 .bss demo_jump_pos_1 */ +static cXyz demo_jump_pos_1; + +/* 8071CACC-8071CAD8 00006C 000C+00 0/2 0/0 0/0 .bss demo_jump_pos_2 */ +static cXyz demo_jump_pos_2; + +/* 8071CAE4-8071CAF0 000084 000C+00 0/2 0/0 0/0 .bss demo_jump_pos_3 */ +static cXyz demo_jump_pos_3; + +/* 8071CAFC-8071CB08 00009C 000C+00 1/6 0/0 0/0 .bss STAGE_CENTER_POS */ +static cXyz STAGE_CENTER_POS; + +/* 8071CB08 0002+00 data_8071CB08 STAGE_ANGLE_Y */ +static s16 STAGE_ANGLE_Y; + +/* 8071CB0A 0001+00 .bss */ +u8 lbl_210_bss_AA; + +/* 8071CB18-8071CB3C 0000B8 0024+00 1/3 0/0 0/0 .bss l_HIO */ +static daE_MK_HIO_c l_HIO; + +/* 8071CB3C-8071CB8C 0000DC 0050+00 4/7 0/0 0/0 .bss target_info */ +static void* target_info[20]; + +/* 8071CB8C-8071CB90 00012C 0004+00 4/7 0/0 0/0 .bss target_info_count */ +static int target_info_count; + +/* 80714534-807145A4 0004F4 0070+00 4/4 0/0 0/0 .text s_h_sub__FPvPv */ +static void* s_h_sub(void* i_actor, void* i_data) { + if ((fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_Obj_Pillar) && target_info_count < 20) { + target_info[target_info_count] = (daPillar_c*)i_actor; + target_info_count++; + } + + return NULL; +} + +/* 807145A4-80714874 000564 02D0+00 1/1 0/0 0/0 .text search_hasira__FP10e_mk_class */ +static daPillar_c* search_hasira(e_mk_class* i_this) { + target_info_count = 0; + for (int i = 0; i < 20; i++) { + target_info[i] = NULL; + } + + fpcM_Search(s_h_sub, i_this); + + if (i_this->field_0x71d == 0) { + i_this->field_0x71d++; + return (daPillar_c*)target_info[5]; + } + + f32 fVar1 = 1500.0f; + if (target_info_count != 0) { + cXyz sp44; + daPillar_c *pPillar; + daPillar_c *rv = NULL; + int iVar1 = 0; + int i = 0; + while (i < target_info_count) { + pPillar = (daPillar_c*)target_info[i]; + sp44 = pPillar->current.pos - i_this->current.pos; + f32 fVar2 = sp44.abs(); + if (fVar2 > 700.0f && fVar2 < fVar1) { + s16 sVar1 = i_this->current.angle.y - cM_atan2s(sp44.x, sp44.z); + if (sVar1 < 0x7000 && sVar1 > -0x7000) { + if (iVar1 == 0 || cM_rndF(1.0f) < 0.3f) { + rv = pPillar; + } + iVar1++; + } + } + + i++; + if (i == target_info_count) { + i = 0; + fVar1 += 100.0f; + if (fVar1 > 2000.0f) { + return NULL; + } + if (rv != NULL) { + return rv; + } + } + } + } else { + return NULL; + } + + return NULL; +} + +/* 80714874-807148FC 000834 0088+00 1/1 0/0 0/0 .text s_d_sub__FPvPv */ +static void* s_d_sub(void* i_actor, void* i_data) { + if (((fopAc_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_DB) && static_cast(i_actor)->field_0x66a == 10) + && (static_cast(i_actor)->field_0x66c >= 1 && target_info_count < 20)) { + target_info[target_info_count] = i_actor; + target_info_count++; + } + + return NULL; +} + +/* 807148FC-80714B78 0008BC 027C+00 1/1 0/0 0/0 .text search_db__FP10e_mk_class */ +static e_db_class* search_db(e_mk_class* i_this) { + target_info_count = 0; + for (int i = 0; i < 20; i++) { + target_info[i] = NULL; + } + + fpcM_Search(s_d_sub, i_this); + + f32 fVar1 = 2000.0f; + if (target_info_count != 0) { + cXyz sp44; + e_db_class *pDekuBaba; + int i = 0; + while (i < target_info_count) { + pDekuBaba = (e_db_class*)target_info[i]; + sp44 = pDekuBaba->current.pos - i_this->current.pos; + + f32 fVar2 = sp44.abs(); + if ((cM_rndF(1.0f) < 0.5f && fVar2 > 500.0f) && fVar2 < fVar1) { + return pDekuBaba; + } + + i++; + if (i == target_info_count) { + i = 0; + fVar1 += 50.0f; + if (fVar1 > 5000.0f) { + return NULL; + } + } + } + } else { + return NULL; + } + + return NULL; +} + +/* 80714B78-807154A8 000B38 0930+00 2/1 0/0 0/0 .text e_mk_move__FP10e_mk_class */ +static void e_mk_move(e_mk_class* i_this) { + // NONMATCHING + cXyz sp28; + int frame = i_this->mpModelMorf->getFrame(); + switch(i_this->mMode) { + case 0: + i_this->field_0x6fa = cM_rndF(3.0f) + 2.0f; + i_this->mMode++; + // fallthrough + case 1: + i_this->field_0x6dc.set(0.0f, 0.0f, 0.0f); + i_this->speed.set(0.0f, 0.0f, 0.0f); + if (i_this->field_0xc30 == 2) { + i_this->mPillar = NULL; + target_info_count = 0; + fpcM_Search(s_h_sub, i_this); + if (i_this->field_0x71e == 0) { + sp28 = demo_jump_pos_1; + i_this->mPillar = (daPillar_c*)target_info[8]; + } else if (i_this->field_0x71e == 1) { + sp28 = demo_jump_pos_2; + i_this->mDemoMode++; + i_this->mPillar = (daPillar_c*)target_info[6]; + } else if (i_this->field_0x71e == 2) { + sp28 = demo_jump_pos_3; + } else { + i_this->mAction = e_mk_class::ACT_E_DEMO; + i_this->mMode = 100; + i_this->gravity = 0.0f; + i_this->scale.x = 1.0f; + return; + } + + i_this->field_0x71e++; + i_this->field_0x5b8 = STAGE_CENTER_POS + sp28; + sp28 = i_this->field_0x5b8 - i_this->current.pos; + i_this->current.angle.y = cM_atan2s(sp28.x, sp28.z); + i_this->current.angle.x = -cM_atan2s(sp28.y, JMAFastSqrt(sp28.x * sp28.x + sp28.z * sp28.z)); + anm_init(i_this, 29, 5.0f, 0, 1.0f); + i_this->mMode = 3; + } else { + i_this->mPillar = (daPillar_c*)i_this->mHasira; + i_this->mHasira = search_hasira(i_this); + #ifdef DEBUG + if (i_this->mHasira == NULL) { + OSReport("E_mk HASIRA NON \n"); + } + #endif + if (i_this->mHasira != NULL) { + i_this->mMode++; + // fallthrough + case 2: + i_this->field_0x5b8 = i_this->mHasira->current.pos; + i_this->field_0x5b8.y += 800.0f; + if (fopAcM_gc_c::gndCheck(&i_this->field_0x5b8)) { + i_this->field_0x5b8.y = fopAcM_gc_c::getGroundY(); + } + + sp28 = i_this->field_0x5b8 - i_this->current.pos; + i_this->current.angle.y = cM_atan2s(sp28.x, sp28.z); + i_this->current.angle.x = -cM_atan2s(sp28.y, JMAFastSqrt(sp28.x * sp28.x + sp28.z * sp28.z)); + anm_init(i_this, 29, 5.0f, 0, 1.0f); + i_this->mMode++; + } + } + break; + + case 3: + if (frame == 9) { + cMtx_YrotS(*calc_mtx, i_this->current.angle.y); + cMtx_XrotM(*calc_mtx, i_this->current.angle.x); + sp28.x = 0.0f; + sp28.y = 0.0f; + sp28.z = 70.0f; + MtxPosition(&sp28, &i_this->speed); + i_this->field_0x6be = 1; + i_this->field_0x6c0 = i_this->current.pos; + i_this->field_0x6cc = i_this->field_0x5b8; + + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_JUMP, -1); + i_this->mSound.startCreatureSound(Z2SE_EN_MK_JUMP_WIND, 0, -1); + if (i_this->field_0x718 != 0) { + i_this->field_0x71b = 2; + } + + if (i_this->mPillar != NULL) { + sp28 = i_this->mPillar->current.pos; + sp28.y += 500.0f; + sp28 -= i_this->current.pos; + if (sp28.abs() < 200.0f) { + i_this->mPillar->setShake(2); + } + } + } + + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 28, 5.0f, 0, 1.0f); + i_this->mMode++; + } + break; + + case 4: + sp28 = i_this->field_0x5b8 - i_this->current.pos; + if (sp28.abs() < 300.0f) { + anm_init(i_this, 26, 2.0f, 0, 1.0f); + i_this->mMode++; + i_this->field_0x6dc = i_this->speed; + i_this->speed.set(0.0f, 0.0f, 0.0f); + } + break; + + case 5: + if (i_this->mpModelMorf->isStop() != 0) { + i_this->field_0x6be = 0; + if (i_this->field_0x718 != 0) { + i_this->mMode = 10; + i_this->field_0x718 = 0; + anm_init(i_this, 30, 3.0f, 0, 1.0f); + } else { + i_this->field_0x6fa--; + if (i_this->field_0x6fa == 0) { + if (cM_rndF(1.0f) < 0.75f) { + i_this->mAction = e_mk_class::ACT_SHOOT; + if ((cM_rndF(1.0f) < 0.5f && i_this->field_0x71c >= 3) || i_this->mDistToPlayer > l_HIO.mPlayerThrowDistMax) { + i_this->mMode = 1; + } else { + i_this->mMode = 0; + i_this->field_0x71c++; + } + i_this->field_0x71a = 0; + } else { + i_this->mAction = e_mk_class::ACT_WAIT; + i_this->mMode = 0; + } + } else { + i_this->mMode = 1; + } + } + } + break; + + case 10: + if (frame == 5) { + i_this->field_0x707 = 6; + i_this->field_0x60d = 1; + } + + if (i_this->mpModelMorf->isStop()) { + i_this->mMode = 1; + } + } + cLib_addCalc2(&i_this->current.pos.x, i_this->field_0x5b8.x, 1.0f, fabsf(i_this->field_0x6dc.x)); + cLib_addCalc2(&i_this->current.pos.z, i_this->field_0x5b8.z, 1.0f, fabsf(i_this->field_0x6dc.z)); + cLib_addCalc2(&i_this->current.pos.y, i_this->field_0x5b8.y, 1.0f, fabsf(i_this->field_0x6dc.y)); +} -// -// Forward References: -// +/* 807154A8-80715618 001468 0170+00 1/1 0/0 0/0 .text e_mk_wait__FP10e_mk_class */ +static void e_mk_wait(e_mk_class* i_this) { + switch (i_this->mMode) { + case 0: + i_this->field_0x6fc[0] = cM_rndF(40.0f) + 40.0f; + if (cM_rndF(1.0f) < 0.5f) { + anm_init(i_this, 32, 10.0f, 2, 1.0f); + i_this->mMode = 1; + } else { + anm_init(i_this, 33, 10.0f, 0, 1.0f); + i_this->mMode = 2; + } + break; -extern "C" void __ct__12daE_MK_HIO_cFv(); -extern "C" static void anm_init__FP10e_mk_classifUcf(); -extern "C" static void ok_anm_init__FP10e_mk_classifUcf(); -extern "C" static void daE_MK_Draw__FP10e_mk_class(); -extern "C" void __dt__4cXyzFv(); -extern "C" static void s_obj_delete__FPvPv(); -extern "C" static void s_h_sub__FPvPv(); -extern "C" static void search_hasira__FP10e_mk_class(); -extern "C" static void s_d_sub__FPvPv(); -extern "C" static void search_db__FP10e_mk_class(); -extern "C" static void e_mk_move__FP10e_mk_class(); -extern "C" static void e_mk_wait__FP10e_mk_class(); -extern "C" static void e_mk_shoot__FP10e_mk_class(); -extern "C" static void e_mk_yoro__FP10e_mk_class(); -extern "C" static void e_mk_drop__FP10e_mk_class(); -extern "C" static void e_mk_damage__FP10e_mk_class(); -extern "C" static void damage_check__FP10e_mk_class(); -extern "C" static void e_mk_s_demo__FP10e_mk_class(); -extern "C" static void e_mk_e_demo__FP10e_mk_class(); -extern "C" static void e_mk_r04_demo__FP10e_mk_class(); -extern "C" static void cam_3d_morf__FP10e_mk_classf(); -extern "C" static void demo_camera_start__FP10e_mk_class(); -extern "C" static void demo_camera_end__FP10e_mk_class(); -extern "C" static void s_ks_sub__FPvPv(); -extern "C" static void s_brg_sub__FPvPv(); -extern "C" static void s_brg_sub2__FPvPv(); -extern "C" static void demo_camera_r04__FP10e_mk_class(); -extern "C" static void demo_camera_bohit__FP10e_mk_class(); -extern "C" static void demo_camera__FP10e_mk_class(); -extern "C" static void action__FP10e_mk_class(); -extern "C" static void anm_se_set__FP10e_mk_class(); -extern "C" static void daE_MK_Execute__FP10e_mk_class(); -extern "C" static bool daE_MK_IsDelete__FP10e_mk_class(); -extern "C" static void daE_MK_Delete__FP10e_mk_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" static void daE_MK_Create__FP10fopAc_ac_c(); -extern "C" void __ct__10e_mk_classFv(); -extern "C" void __dt__8cM3dGSphFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12daE_MK_HIO_cFv(); -extern "C" void __sinit_d_a_e_mk_cpp(); -extern "C" static void func_8071C520(); -extern "C" static void func_8071C528(); -extern "C" extern char const* const d_a_e_mk__stringBase0; + case 1: + if (i_this->field_0x6fc[0] == 0) { + i_this->mAction = e_mk_class::ACT_MOVE; + i_this->mMode = 0; + } + break; -// -// External References: -// + case 2: + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = e_mk_class::ACT_MOVE; + i_this->mMode = 0; + } + } -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void transM__14mDoMtx_stack_cFfff(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void init__13mDoExt_btpAnmFP16J3DMaterialTableP16J3DAnmTexPatterniifss(); -extern "C" void entry__13mDoExt_btpAnmFP16J3DMaterialTables(); -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 -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff(); -extern "C" void play__16mDoExt_McaMorfSOFUlSc(); -extern "C" void entryDL__16mDoExt_McaMorfSOFv(); -extern "C" void modelCalc__16mDoExt_McaMorfSOFv(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __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_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_orderPotentialEvent__FP10fopAc_ac_cUsUsUs(); -extern "C" void fopAcM_createItemForMidBoss__FPC4cXyziiPC5csXyzPC4cXyzii(); -extern "C" void fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc(); -extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci(); -extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void fpcSch_JudgeByID__FPvPv(); -extern "C" void dStage_changeScene__FifUlScsi(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void dComIfGp_setNextStage__FPCcsScSc(); -extern "C" void dComIfGs_onOneZoneSwitch__Fii(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void onDungeonItem__12dSv_memBit_cFi(); -extern "C" void isDungeonItem__12dSv_memBit_cCFi(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void dEv_noFinishSkipProc__FPvi(); -extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii(); -extern "C" void setPtT__14dEvt_control_cFPv(); -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 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 ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph(); -extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo(); -extern "C" void Start__9dCamera_cFv(); -extern "C" void Stop__9dCamera_cFv(); -extern "C" void SetTrimSize__9dCamera_cFl(); -extern "C" void Set__9dCamera_cF4cXyz4cXyzsf(); -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 __ct__10dMsgFlow_cFv(); -extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); -extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); -extern "C" void 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 SetC__8cM3dGSphFRC4cXyz(); -extern "C" void SetR__8cM3dGSphFf(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_addCalc0__FPfff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void MtxPosition__FP4cXyzP4cXyz(); -extern "C" void func_80280808(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void subBgmStart__8Z2SeqMgrFUl(); -extern "C" void subBgmStop__8Z2SeqMgrFv(); -extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl(); -extern "C" void bgmStreamPlay__8Z2SeqMgrFv(); -extern "C" void changeSubBgmStatus__8Z2SeqMgrFl(); -extern "C" void __ct__15Z2CreatureEnemyFv(); -extern "C" void init__15Z2CreatureEnemyFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void checkPass__12J3DFrameCtrlFf(); -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_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__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_SphAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" f32 mGroundY__11fopAcM_gc_c; -extern "C" extern u8 pauseTimer__9dScnPly_c[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); + cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->mAngleToPlayer, 2, 0x1000); + if (i_this->mDistToPlayer < 800.0f) { + i_this->mAction = e_mk_class::ACT_MOVE; + i_this->mMode = 0; + } +} -// -// Declarations: -// +/* 80715618-80715B18 0015D8 0500+00 2/1 0/0 0/0 .text e_mk_shoot__FP10e_mk_class */ +static void e_mk_shoot(e_mk_class* i_this) { + // NONMATCHING + cXyz sp48; + int frame = i_this->mpModelMorf->getFrame(); + fopAc_ac_c *actor = fopAcM_SearchByID(i_this->field_0x708); + daPillar_c *pPillar = i_this->mHasira; + s8 bVar5 = 0; + switch(i_this->mMode) { + case 0: + i_this->field_0x70c = NULL; + anm_init(i_this, 38, 5.0f, 0, 1.0f); + i_this->mMode = 2; + break; -/* ############################################################################################## */ -/* 8071C544-8071C548 000000 0004+00 22/22 0/0 0/0 .rodata @3777 */ -SECTION_RODATA static f32 const lit_3777 = 13.0f / 10.0f; -COMPILER_STRIP_GATE(0x8071C544, &lit_3777); + case 1: + i_this->field_0x70c = search_db(i_this); + if (i_this->field_0x70c != NULL) { + anm_init(i_this, 39, 5.0f, 0, 1.0f); + i_this->mMode = 10; + } else { + i_this->mMode = 0; + } + break; -/* 8071C548-8071C54C 000004 0004+00 1/20 0/0 0/0 .rodata @3778 */ -SECTION_RODATA static f32 const lit_3778 = 1.0f; -COMPILER_STRIP_GATE(0x8071C548, &lit_3778); + case 2: + cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->mAngleToPlayer, 2, 0x1000); -/* 8071C54C-8071C550 000008 0004+00 0/1 0/0 0/0 .rodata @3779 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3779 = 1800.0f; -COMPILER_STRIP_GATE(0x8071C54C, &lit_3779); -#pragma pop + if (i_this->mpModelMorf->checkFrame(15.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_THROW_BOOM, -1); + } -/* 8071C550-8071C554 00000C 0004+00 3/21 0/0 0/0 .rodata @3780 */ -SECTION_RODATA static u8 const lit_3780[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8071C550, &lit_3780); + if (frame == 17) { + i_this->field_0x707 = 7; + } + + if (frame == 27) { + i_this->field_0x707 = 1; + } -/* 8071C7FC-8071C828 -00001 002C+00 1/1 0/0 0/0 .data @4295 */ -SECTION_DATA static void* lit_4295[11] = { - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x60), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x8C), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x284), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x35C), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x5E8), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x758), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x8C4), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x8C4), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x8C4), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x8C4), - (void*)(((char*)e_mk_move__FP10e_mk_class) + 0x874), -}; + if (frame == 27) { + i_this->field_0x60d = 0; + i_this->mMode = 3; + } + break; -/* 8071C828-8071C87C -00001 0054+00 1/1 0/0 0/0 .data @4437 */ -SECTION_DATA static void* lit_4437[21] = { - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x7C), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0xA8), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0xF0), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x180), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x208), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x2C8), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x314), - (void*)(((char*)e_mk_shoot__FP10e_mk_class) + 0x310), -}; + case 3: + if (i_this->mpModelMorf->isStop()) { + i_this->mMode = 20; + if (cM_rndF(1.0f) < 0.333f) { + anm_init(i_this, 31, 10.0f, 2, 1.0f); + } + else { + anm_init(i_this, 40, 10.0f, 2, 1.0f); + } + } + bVar5 = 1; + break; -/* 8071C87C-8071C8B0 -00001 0034+00 1/1 0/0 0/0 .data @5006 */ -SECTION_DATA static void* lit_5006[13] = { - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x6C), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x418), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x98), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0xB8), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0xF4), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x150), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x1A8), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x204), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x250), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x30C), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x364), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x390), - (void*)(((char*)e_mk_r04_demo__FP10e_mk_class) + 0x3E8), -}; + case 10: + sp48 = i_this->field_0x70c->current.pos - i_this->current.pos; + cLib_addCalcAngleS2(&i_this->current.angle.y, cM_atan2s(sp48.x, sp48.z), 2, 0x1000); + if (i_this->mpModelMorf->checkFrame(15.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_THROW_BOOM, -1); + } -/* 8071C8B0-8071C8DC -00001 002C+00 1/1 0/0 0/0 .data @6176 */ -SECTION_DATA static void* lit_6176[11] = { - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x19C), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x60), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x68), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x70), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x108), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x19C), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x19C), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x19C), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x19C), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x19C), - (void*)(((char*)demo_camera__FP10e_mk_class) + 0x110), -}; + if (frame == 17) { + i_this->field_0x707 = 7; + } -/* 8071C8DC-8071C96C -00001 0090+00 1/1 0/0 0/0 .data @6244 */ -SECTION_DATA static void* lit_6244[36] = { - (void*)(((char*)action__FP10e_mk_class) + 0x78), - (void*)(((char*)action__FP10e_mk_class) + 0x84), - (void*)(((char*)action__FP10e_mk_class) + 0x90), - (void*)(((char*)action__FP10e_mk_class) + 0x9C), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0xA8), - (void*)(((char*)action__FP10e_mk_class) + 0xBC), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0xD0), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0xE0), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0x108), - (void*)(((char*)action__FP10e_mk_class) + 0xF8), -}; + if (frame == 27) { + i_this->field_0x707 = 1; + } -/* 8071C96C-8071C970 000170 0004+00 1/1 0/0 0/0 .data bo_eno_1$6320 */ -SECTION_DATA static u8 bo_eno_1[4] = { - 0x82, - 0x14, - 0x82, - 0x15, -}; + if (frame == 27) { + i_this->field_0x60d = 0; + i_this->mMode = 3; + } + break; -/* 8071C970-8071C978 000174 0008+00 1/1 0/0 0/0 .data bo_eno_0$6330 */ -SECTION_DATA static u8 bo_eno_0[8] = { - 0x82, 0x11, 0x82, 0x12, 0x82, 0x13, 0x82, 0x0C, -}; + case 15: + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = e_mk_class::ACT_MOVE; + i_this->mMode = 0; + } + bVar5 = 3; + break; -/* 8071C978-8071C9B8 00017C 0040+00 1/1 0/0 0/0 .data cc_sph_src$6839 */ -static dCcD_SrcSph cc_sph_src = { - { - {0x0, {{0x0, 0x0, 0x0}, {0xd8fbfdff, 0x43}, 0x75}}, // mObj - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf - { - {{0.0f, 0.0f, 0.0f}, 60.0f} // mSph - } // mSphAttr -}; + case 20: + bVar5 = 2; + } + + if (bVar5 != 0) { + if ((bVar5 == 2) && (actor != NULL)) { + cXyz sp54 = actor->current.pos - i_this->current.pos; + cLib_addCalcAngleS2(&i_this->current.angle.y, cM_atan2s(sp54.x,sp54.z), 2, 0x800); + } + if (bVar5 <= 2) { + if (i_this->field_0x707 == 5) { + i_this->field_0x707 = 0; + i_this->field_0x71a = 47; + } + + if (i_this->field_0x71a == 35) { + anm_init(i_this, 25, 5.0f, 2, 1.0f); + i_this->mMode = 20; + } + + if (i_this->field_0x71a == 1) { + anm_init(i_this, 40, 10.0f, 2, 1.0f); + } + + if (i_this->field_0x707 == 2) { + anm_init(i_this, 9, 3.0f, 0, 0.0f); + i_this->field_0x707 = 0; + } + + if (i_this->field_0x707 == 3) { + i_this->field_0x707 = 0; + i_this->field_0x60d = 1; + anm_init(i_this, 9, 1.0f, 0, 1.0f); + i_this->mMode = 15; + + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_CATCH_BOOM, -1); + i_this->mSound.startCreatureSound(Z2SE_EN_MK_CATCH_BOOM, 0, -1); + } + } + + if ((pPillar != NULL) && pPillar->checkRollAttack()) { + i_this->mAction = e_mk_class::ACT_YORO; + i_this->mMode = 0; + if (i_this->field_0x60d != 0) { + i_this->field_0x6fc[0] = 40; + } + else { + i_this->field_0x6fc[0] = 250; + } + } + } +} + +/* 8071CB90-8071CB94 000130 0004+00 1/2 0/0 0/0 .bss None */ +static s8 lbl_210_bss_130; + +/* 80715B18-80715D2C 001AD8 0214+00 1/1 0/0 0/0 .text e_mk_yoro__FP10e_mk_class */ +static void e_mk_yoro(e_mk_class* i_this) { + switch (i_this->mMode) { + case 0: + i_this->mSound.startCreatureVoiceLevel(Z2SE_EN_MK_V_LOOSE_BALANCE, -1); + anm_init(i_this, 8, 5.0f, 0, 1.0f); + i_this->mMode = 1; + break; + + case 1: + i_this->mSound.startCreatureVoiceLevel(Z2SE_EN_MK_V_LOOSE_BALANCE, -1); + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 7, 5.0f, 2, 1.0f); + i_this->mMode = 2; + } + break; + + case 2: + i_this->mSound.startCreatureVoiceLevel(Z2SE_EN_MK_V_LOOSE_BALANCE, -1); + if (i_this->field_0x6fc[0] == 0) { + i_this->mAction = e_mk_class::ACT_WAIT; + i_this->mMode = 0; + i_this->field_0x707 = 6; + i_this->field_0x60d = 1; + } + + } + + if (i_this->field_0x707 == 4) { + i_this->field_0x707 = 0; + i_this->mAction = e_mk_class::ACT_DROP; + i_this->mMode = 0; + + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_HIT_BOOM, -1); + i_this->mSound.startCollisionSE(Z2SE_HIT_WOOD_WEAPON, 31); + + i_this->field_0x704 = 5; + i_this->field_0x706 = 5; + if (lbl_210_bss_130 == 0) { + lbl_210_bss_130 = 1; + i_this->field_0xc30 = 4; + i_this->mDemoMode = 1; + } + } +} + +/* 80715D2C-807160B0 001CEC 0384+00 1/1 0/0 0/0 .text e_mk_drop__FP10e_mk_class */ +static void e_mk_drop(e_mk_class* i_this) { + cXyz sp24; + int frame = i_this->mpModelMorf->getFrame(); + switch (i_this->mMode) { + case 0: + anm_init(i_this, 23, 3.0f, 0, 1.0f); + i_this->mMode = 1; + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + sp24.x = 0.0; + sp24.y = 30.0; + sp24.z = -10.0; + MtxPosition(&sp24, &i_this->speed); + i_this->field_0x704 = 50; + break; + + case 1: + if (frame >= 14) { + i_this->mpModelMorf->setPlaySpeed(0.0f); + i_this->mMode = 2; + } + break; + + case 2: + i_this->field_0x704 = 5; + if (i_this->mAcch.ChkGroundHit()) { + i_this->mpModelMorf->setPlaySpeed(1.0f); + i_this->mMode = 3; + dComIfGp_getVibration().StartShock(5, 15, cXyz(0.0f, 1.0f, 0.0f)); + i_this->mSound.startCreatureSound(Z2SE_EN_MK_FALL_GROUND, 0, -1); + i_this->field_0x71b = 1; + i_this->field_0x719 = 0; + Z2GetAudioMgr()->changeSubBgmStatus(1); + dComIfGs_onOneZoneSwitch(5, -1); + } + break; + + case 3: + if (frame == 22 || frame == 32) { + i_this->field_0x71b = 1; + } + + if (frame >= 45) { + i_this->speed.set(0.0f, 0.0f, 0.0f); + } + + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 10, 5.0f, 2, 1.0f); + i_this->mMode = 4; + i_this->field_0x6fc[0] = 150; + } + break; + + case 4: + if (i_this->field_0x6fc[0] == 0) { + anm_init(i_this, 36, 5.0f, 0, 1.0f); + i_this->mMode = 5; + i_this->field_0x719 = 4; + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_AWAKE, -1); + } + break; + + case 5: + if (i_this->mAnm == 35 && ((frame == 9 || (frame == 24)) || (frame == 35))) { + i_this->field_0x71b = 2; + } + + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = e_mk_class::ACT_MOVE; + i_this->mMode = 2; + i_this->field_0x6dc.set(0.0f, 0.0f, 0.0f); + i_this->field_0x6fa = cM_rndF(3.0f) + 2.0f; + i_this->field_0x718 = 1; + if (i_this->health > 100) { + Z2GetAudioMgr()->changeSubBgmStatus(2); + } else { + Z2GetAudioMgr()->changeSubBgmStatus(3); + } + } + } +} + +/* 807160B0-807161F8 002070 0148+00 1/1 0/0 0/0 .text e_mk_damage__FP10e_mk_class */ +static void e_mk_damage(e_mk_class* i_this) { + switch (i_this->mMode) { + case 0: + i_this->field_0x719++; + i_this->speed.set(0.0f, 0.0f, 0.0f); + if (i_this->field_0x719 >= 4) { + anm_init(i_this, 35, 3.0f, 0, 1.0f); + i_this->mAction = e_mk_class::ACT_DROP; + i_this->mMode = 5; + i_this->field_0x704 = 60; + } else { + anm_init(i_this, 12, 3.0f, 0, 1.0f); + i_this->mMode = 1; + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_DAMAGE, -1); + } + break; + + case 1: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this,10, 5.0f, 2, 1.0f); + i_this->mAction = e_mk_class::ACT_DROP; + i_this->mMode = 4; + } + break; + } +} + +/* 807161F8-8071637C 0021B8 0184+00 1/1 0/0 0/0 .text damage_check__FP10e_mk_class */ +static void damage_check(e_mk_class* i_this) { + daPy_py_c *player = (daPy_py_c*)dComIfGp_getPlayer(0); + if (i_this->field_0x704 == 0) { + i_this->field_0x95c.Move(); + if (i_this->mAction >= 9) { + if (i_this->field_0xad0.ChkTgHit()) { + i_this->mAtInfo.mpCollider = i_this->field_0xad0.GetTgHitObj(); + cc_at_check(i_this, &i_this->mAtInfo); + if (i_this->mAtInfo.mpCollider->ChkAtType(AT_TYPE_UNK) != 0) { + i_this->field_0x704 = 20; + } else { + i_this->field_0x704 = 10; + } + + if (i_this->health <= 0) { + fpcM_Search(s_obj_delete, i_this); + i_this->mAction = 30; + i_this->mMode = 0; + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_DEAD, -1); + i_this->field_0x704 = 20000; + Z2GetAudioMgr()->subBgmStop(); + dScnPly_c::nextPauseTimer = 0; + } else { + i_this->mAction = 10; + i_this->mMode = 0; + if (player->getCutType() == daPy_py_c::CUT_TYPE_JUMP && player->checkCutJumpCancelTurn()) { + i_this->field_0x704 = 3; + } + } + } + } + + if (i_this->health <= 1) { + i_this->health = 0; + i_this->field_0xad0.SetTgHitMark((CcG_Tg_HitMark )3); + } + } +} + +/* 8071637C-80716780 00233C 0404+00 1/1 0/0 0/0 .text e_mk_s_demo__FP10e_mk_class */ +static void e_mk_s_demo(e_mk_class* i_this) { + int frame = i_this->mpModelMorf->getFrame(); + i_this->field_0x704 = 5; + switch (i_this->mMode) { + case 0: + anm_init(i_this, 40, 1.0f, 2, 1.0f); + i_this->mMode = 1; + i_this->field_0x6fc[0] = 0; + // fallthrough + case 1: + if (i_this->field_0x6fc[0] == 0) { + i_this->mMode = 100; + i_this->field_0xc30 = 1; + i_this->mDemoMode = 1; + } + break; + + case 2: + i_this->mSound.startCreatureSound(Z2SE_MK_DARK_BOOM_RESUME, 0, -1); + anm_init(i_this, 20, 5.0f, 0, 1.0f); + i_this->mMode = 3; + break; + + case 3: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 21, 2.0f, 2, 1.0f); + i_this->mMode = 100; + } + break; + + case 4: + anm_init(i_this, 19, 1.0f, 0 ,1.0f); + i_this->mMode = 5; + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_THROW_BOOM, -1); + break; + + case 5: + if (frame == 8) { + i_this->field_0x707 = 1; + Z2GetAudioMgr()->bgmStreamPlay(); + } + + if (frame == 8) { + i_this->field_0x60d = 0; + } + + if (frame == 14) { + i_this->mMode = 6; + i_this->mDemoMode = 7; + anm_init(i_this, 40, 10.0f, 2, 1.0f); + } + break; + + case 6: + if (i_this->field_0x707 == 2) { + anm_init(i_this, 9, 3.0f, 0, 0.0f); + i_this->field_0x707 = 0; + } + + if (i_this->field_0x707 == 3) { + i_this->field_0x707 = 0; + i_this->field_0x60d = 1; + anm_init(i_this, 9, 1.0f, 0, 1.0f); + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_CATCH_BOOM, -1); + i_this->mSound.startCreatureSound(Z2SE_EN_MK_CATCH_BOOM, 0, -1); + i_this->mMode = 7; + } + break; + + case 7: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 15, 5.0f, 2, 1.0f); + i_this->field_0x6fc[0] = 30; + i_this->mMode = 8; + } + break; + + case 8: + if (i_this->field_0x6fc[0] == 0) { + anm_init(i_this, 33, 10.0f, 0, 1.0f); + i_this->mMode = 9; + } + break; + + case 9: + if (i_this->mpModelMorf->isStop()) { + i_this->mAction = e_mk_class::ACT_MOVE; + i_this->field_0x6fa = cM_rndF(2.0f) + 7.0f; + i_this->mMode = 1; + i_this->mDemoMode = 11; + i_this->mDemoCamTimer = 0; + } + break; + + case 100: + return; + } +} + +/* 80716780-80716F48 002740 07C8+00 1/1 0/0 0/0 .text e_mk_e_demo__FP10e_mk_class */ +static int e_mk_e_demo(e_mk_class* i_this) { + f32 fVar1; + cXyz sp38, sp44; + int frame = i_this->mpModelMorf->getFrame(); + int rv = 1; + s8 cVar6 = 0; + + switch (i_this->mMode) { + case -100: + anm_init(i_this, 10, 5.0f, 2, 1.0f); + i_this->mMode++; + break; + + case 0: + anm_init(i_this, 18, 1.0f, 0, 1.0f); + i_this->mMode = 1; + i_this->field_0xc30 = 2; + i_this->mDemoMode = 1; + dComIfGs_onSwitch(108, fopAcM_GetRoomNo(i_this)); + break; + + case 1: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 17, 1.0f, 2, 1.0f); + i_this->mMode = 2; + i_this->current.angle.y = STAGE_ANGLE_Y + -0x4000; + cMtx_YrotS(*calc_mtx,i_this->current.angle.y); + sp38.x = 0.0; + sp38.y = 0.0; + sp38.z = -1000.0; + MtxPosition(&sp38, &sp44); + i_this->current.pos = STAGE_CENTER_POS + sp44; + i_this->old.pos = STAGE_CENTER_POS + sp44; + i_this->mDemoMode = 4; + i_this->mDemoCamTimer = 0; + i_this->gravity = -10.0f; + } + break; + + case 2: + if (i_this->mAcch.ChkGroundHit()) { + i_this->speedF = 0.0f; + } + + if (frame == 1 || frame == 18) { + i_this->speed.y = 50.0f; + i_this->speedF = 30.0f; + i_this->mSound.startCreatureSound(Z2SE_EN_MK_JUMP_START, 0, -1); + } + + sp38 = STAGE_CENTER_POS - i_this->current.pos; + fVar1 = JMAFastSqrt(sp38.x * sp38.x + sp38.z * sp38.z); + if (fVar1 < 200.0f) { + rv = 2; + if (fVar1 < 100.0f) { + i_this->mMode = 3; + anm_init(i_this, 16, 2.0f, 0, 1.0f); + i_this->speedF = 0.0f; + i_this->gravity = 0.0f; + i_this->speed.y = 0.0f; + i_this->field_0x6fc[0] = 40; + cVar6 = 60; + target_info_count = 0; + fpcM_Search(s_h_sub,i_this); + static_cast(target_info[8])->setShake(1); + } + } + break; + + case 3: + rv = 2; + i_this->field_0x5d4 = 0; + if (i_this->field_0x6fc[0] < 12) { + i_this->field_0x5d8 = i_this->field_0x6fc[0] << 1; + if (i_this->field_0x5d8 >= 12.0f) { + i_this->field_0x5d8 = i_this->field_0x5d8 - 12.0f; + } + } + + if (i_this->field_0x6fc[0] == 0) { + i_this->gravity = -0.03f; + if (i_this->speed.y < -1.0f) { + anm_init(i_this, 14, 10.0f, 0, 1.0f); + i_this->speedF = 0.0f; + i_this->gravity = -2.0f; + i_this->mMode = 4; + } + } + break; + + case 4: + if (i_this->mAcch.ChkGroundHit()) { + i_this->speedF = 0.0f; + i_this->field_0x71b = 2; + cVar6 = 30; + i_this->mMode = 100; + i_this->field_0x5e0 = 1; + ok_anm_init(i_this, 43, 1.0f, 2, 1.0f); + cMtx_YrotS(*calc_mtx, i_this->current.angle.y); + sp38.x = 0.0f; + sp38.y = 0.0f; + sp38.z = -50.0f; + MtxPosition(&sp38, &sp44); + i_this->field_0x5e4 += sp44; + i_this->field_0x5f0 = i_this->shape_angle; + i_this->field_0x5f0.x = 0x4000; + i_this->field_0x5fc = 30.0f; + i_this->field_0x600 = -20.0f; + i_this->mDemoMode = 5; + i_this->mDemoCamTimer = 0; + i_this->field_0x60e = 1; + } + break; + + case 5: + anm_init(i_this, 22, 1.0f, 0, 1.0f); + i_this->field_0x5d4 = 60; + i_this->mMode++; + break; + + case 6: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 13, 5.0f, 0, 1.0f); + i_this->mMode++; + i_this->field_0x5d4 = 125; + i_this->mDemoMode = 8; + i_this->mDemoCamTimer = 0; + } + break; + + case 7: + if (frame == 144) { + i_this->field_0x718 = 0; + i_this->field_0x6fa = 100; + i_this->field_0x6dc.set(0.0f, 0.0f, 0.0f); + i_this->speed.set(0.0f, 0.0f, 0.0f); + i_this->field_0x5b8 = STAGE_CENTER_POS; + i_this->field_0x5b8.y += 500.0f; + sp38 = i_this->field_0x5b8 - i_this->current.pos; + i_this->current.angle.y = cM_atan2s(sp38.x, sp38.z); + i_this->current.angle.x = -cM_atan2s(sp38.y, JMAFastSqrt(sp38.x * sp38.x + sp38.z * sp38.z)); + cMtx_YrotS(*calc_mtx, i_this->current.angle.y); + cMtx_XrotM(*calc_mtx, i_this->current.angle.x); + sp38.x = 0.0; + sp38.y = 0.0; + sp38.z = 70.0; + MtxPosition(&sp38, &i_this->speed); + i_this->field_0x6be = 1; + i_this->field_0x6c0 = i_this->current.pos; + i_this->field_0x6cc = i_this->field_0x5b8; + i_this->mSound.startCreatureSound(Z2SE_EN_MK_JUMP_WIND, 0, -1); + i_this->mAction = e_mk_class::ACT_MOVE; + i_this->mMode = 4; + return 0; + } + break; + + case -99: + case 100: + break; + } + + cMtx_YrotS(*calc_mtx, i_this->current.angle.y); + sp38.x = 0.0f; + sp38.y = 0.0f; + sp38.z = i_this->speedF; + MtxPosition(&sp38, &sp44); + i_this->speed.x = sp44.x; + i_this->speed.z = sp44.z; + if (cVar6 != 0) { + dComIfGp_getVibration().StartShock(5, 1, cXyz(0.0f, 1.0f, 0.0f)); + i_this->mSound.startCreatureSound(Z2SE_EN_FM_FOOTNOTE, 0, -1); + i_this->field_0xc98 = cVar6; + } + + return rv; +} + +/* 80716F48-80717400 002F08 04B8+00 2/1 0/0 0/0 .text e_mk_r04_demo__FP10e_mk_class */ +static void e_mk_r04_demo(e_mk_class* i_this) { + // NONMATCHING + int frame = i_this->mpModelMorf->getFrame(); + f32 fVar2 = 0.0f; + i_this->field_0x704 = 5; + switch(i_this->mMode) { + case 0: + anm_init(i_this, 40, 1.0f, 2, 1.0f); + i_this->mMode = 1; + i_this->field_0xc30 = 3; + i_this->mDemoMode = 1; + break; + + case 2: + anm_init(i_this, 34, 3.0f, 2, 1.0f); + i_this->mMode = 3; + break; + + case 3: + fVar2 = 30.0f; + if (i_this->current.pos.z > -600.0f) { + i_this->mMode = 4; + anm_init(i_this, 40, 5.0f, 2, 1.0f); + i_this->field_0x6fc[0] = 0; + } + break; + + case 4: + if (i_this->field_0x6fc[0] == 0) { + i_this->mSound.startCreatureSound(Z2SE_MK_DARK_BOOM_RESUME, 0, -1); + anm_init(i_this, 20, 5.0f, 0, 1.0f); + i_this->mMode = 5; + } + break; + + case 5: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 21, 2.0f, 2, 1.0f); + i_this->mMode = 6; + i_this->field_0x6fc[0] = 95; + } + break; + + case 6: + if (i_this->field_0x6fc[0] == 0) { + anm_init(i_this, 19, 1.0f, 0, 1.0f); + i_this->mMode = 7; + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_THROW_BOOM, -1); + i_this->field_0x707 = 7; + } + break; + + case 7: + if (frame == 8) { + i_this->field_0x707 = 1; + } + + if (frame == 8) { + i_this->field_0x60d = 0; + } + + if (frame == 14) { + i_this->mMode = 8; + anm_init(i_this, 40, 10.0f, 2, 1.0f); + } + break; + + case 8: + if (i_this->field_0x707 == 2) { + anm_init(i_this, 9, 3.0f, 0, 0.0f); + i_this->field_0x707 = 0; + } + + if (i_this->field_0x707 == 3) { + i_this->field_0x707 = 0; + i_this->field_0x60d = 1; + anm_init(i_this, 9, 1.0f, 0, 1.0f); + i_this->mMode = 9; + + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_CATCH_BOOM, -1); + i_this->mSound.startCreatureSound(Z2SE_EN_MK_CATCH_BOOM, 0, -1); + } + break; + + case 9: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 15, 5.0f, 2, 1.0f); + i_this->field_0x6fc[0] = 30; + i_this->mMode = 10; + } + break; + + case 10: + if (i_this->field_0x6fc[0] == 0) { + anm_init(i_this, 33, 10.0f, 0, 1.0f); + i_this->mMode = 11; + } + break; + + case 11: + if (i_this->mpModelMorf->isStop()) { + anm_init(i_this, 34, 3.0f, 2, 1.0f); + i_this->mMode = 12; + i_this->field_0x6fc[0] = 10; + } + break; + + case 12: + if (i_this->field_0x6fc[0] == 0) { + fVar2 = 30.0f; + } + + cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->home.angle.y + (u16)-0x8000, 2, 0x1000); + break; + } + + cLib_addCalc2(&i_this->speedF, fVar2, 1.0f, 5.0f); + i_this->gravity = -10.0f; + cMtx_YrotS(*calc_mtx, i_this->current.angle.y); + cXyz sp2c, sp38; + sp2c.x = 0.0f; + sp2c.y = 0.0f; + sp2c.z = i_this->speedF; + MtxPosition(&sp2c, &sp38); + i_this->speed.x = sp38.x; + i_this->speed.z = sp38.z; + i_this->current.pos += i_this->speed; + i_this->speed.y += i_this->gravity; +} + +/* 80717400-807174E4 0033C0 00E4+00 1/1 0/0 0/0 .text cam_3d_morf__FP10e_mk_classf */ +static void cam_3d_morf(e_mk_class* i_this, f32 param_2) { + cLib_addCalc2(&i_this->mCamCenter.x, i_this->field_0xc5c.x, param_2, i_this->field_0xc74.x * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamCenter.y, i_this->field_0xc5c.y, param_2, i_this->field_0xc74.y * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamCenter.z, i_this->field_0xc5c.z, param_2, i_this->field_0xc74.z * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamEye.x, i_this->field_0xc50.x, param_2, i_this->field_0xc68.x * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamEye.y, i_this->field_0xc50.y, param_2, i_this->field_0xc68.y * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamEye.z, i_this->field_0xc50.z, param_2, i_this->field_0xc68.z * i_this->field_0xc84); +} + +/* 807174E4-8071823C 0034A4 0D58+00 1/1 0/0 0/0 .text demo_camera_start__FP10e_mk_class */ +static void demo_camera_start(e_mk_class* i_this) { + // NONMATCHING + fopAc_ac_c *actor1, *actor2; + daPy_py_c *player = (daPy_py_c*)dComIfGp_getPlayer(0); + actor1 = fopAcM_SearchByID(i_this->field_0x708); + camera_class *camera1 = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + camera_class *camera2 = dComIfGp_getCamera(0); + cXyz sp34, sp40, sp4c, sp58; + + switch (i_this->mDemoMode) { + case 0: + break; + + case 1: + if (!i_this->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(i_this, 2, 0xffff, 0); + i_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + return; + } + + camera1->mCamera.Stop(); + i_this->mDemoMode = 2; + i_this->mDemoCamTimer = 0; + i_this->mDemoCamFovy = 50.0f; + camera1->mCamera.SetTrimSize(3); + i_this->field_0xc90 = 2500.0f; + + daPy_getPlayerActorClass()->changeOriginalDemo(); + Z2GetAudioMgr()->bgmStreamPrepare(0x200000D); + + i_this->mCamEye = camera2->mCamera.mEye; + i_this->mCamCenter = camera2->mCamera.mCenter; + i_this->field_0xc50.set(-271.0f, 4559.0f, -7241.0f); + i_this->field_0xc5c.set(-70.0f, 4378.0f, -6233.0f); + + i_this->field_0xc68.x = fabsf(i_this->field_0xc50.x - i_this->mCamEye.x); + i_this->field_0xc68.y = fabsf(i_this->field_0xc50.y - i_this->mCamEye.y); + i_this->field_0xc68.z = fabsf(i_this->field_0xc50.z - i_this->mCamEye.z); + i_this->field_0xc74.x = fabsf(i_this->field_0xc5c.x - i_this->mCamCenter.x); + i_this->field_0xc74.y = fabsf(i_this->field_0xc5c.y - i_this->mCamCenter.y); + i_this->field_0xc74.z = fabsf(i_this->field_0xc5c.z - i_this->mCamCenter.z); + + dComIfGp_getEvent().startCheckSkipEdge(i_this); + // fallthrough + case 2: + if (i_this->mDemoCamTimer == 8) { + daPy_getPlayerActorClass()->changeDemoMode(25, 0, 0, 0); + } + + if (i_this->mDemoCamTimer >= 35) { + cam_3d_morf(i_this, 0.1f); + cLib_addCalc2(&i_this->field_0xc84, 0.03f, 1.0f, 0.0005f); + } + + if (i_this->mDemoCamTimer >= 160) { + i_this->mDemoCamTimer = 0; + i_this->mDemoMode = 3; + } + break; + + case 3: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp34.x = 0.0f; + sp34.y = 150.0f; + sp34.z = 250.0f; + MtxPosition(&sp34, &sp40); + i_this->mCamEye = i_this->current.pos + sp40; + i_this->mCamCenter = i_this->current.pos; + i_this->mCamCenter.y += 150.0f; + if (i_this->mDemoCamTimer >= 60) { + i_this->mDemoCamTimer = 0; + i_this->mDemoMode = 4; + i_this->mMode = 2; + } + break; + + case 4: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp34.x = 0.0f; + sp34.y = 150.0f; + sp34.z = 700.0f; + MtxPosition(&sp34, &sp40); + i_this->mCamEye = i_this->current.pos + sp40; + i_this->mCamCenter = i_this->current.pos; + i_this->mCamCenter.y += 230.0f; + + if (i_this->mDemoCamTimer == 35) { + daPy_getPlayerActorClass()->changeDemoMode(12, 0, 1, 0); + } + + if (i_this->mDemoCamTimer >= 95) { + i_this->mDemoCamTimer = 0; + i_this->mDemoMode = 5; + i_this->field_0xc9c = 1100.0f; + i_this->field_0xc84 = 0.0f; + i_this->field_0xc90 = 2500.0f; + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + cMtx_XrotM(*calc_mtx, 0x6A4); + sp34.x = 0.0f; + sp34.y = 0.0f; + sp34.z = i_this->field_0xc90; + MtxPosition(&sp34, &sp4c); + sp4c += i_this->current.pos; + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp34.x = -300.0f; + sp34.y = 0.0f; + sp34.z = 0.0f; + MtxPosition(&sp34, &sp40); + sp4c += sp40; + sp34.x = 100.0f; + sp34.y = 0.0f; + sp34.z = 200.0f; + MtxPosition(&sp34, &sp40); + sp40 += sp4c; + sp40.y = player->current.pos.y; + player->setPlayerPosAndAngle(&sp40, i_this->current.angle.y + (u16)-0x8000, 0); + } + break; + + case 5: + i_this->field_0xc90 = 2450.0f; + i_this->field_0xc9c = 500.0f; + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + cMtx_XrotM(*calc_mtx, i_this->field_0xc9c); + sp34.x = 0.0f; + sp34.y = 0.0f; + sp34.z = 3500.0f; + MtxPosition(&sp34, &i_this->mCamCenter); + i_this->mCamCenter += i_this->current.pos; + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + cMtx_XrotM(*calc_mtx, 2000); + sp34.x = 0.0f; + sp34.y = 0.0f; + sp34.z = i_this->field_0xc90; + MtxPosition(&sp34, &i_this->mCamEye); + i_this->mCamEye += i_this->current.pos; + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp34.x = -300.0f; + sp34.y = 0.0f; + sp34.z = 0.0f; + MtxPosition(&sp34, &sp40); + i_this->mCamEye += sp40; + + if (i_this->mDemoCamTimer == 5) { + daPy_getPlayerActorClass()->changeDemoMode(23, 1, 2, 0); + } + + if (i_this->mDemoCamTimer >= 50) { + i_this->mDemoCamTimer = 0; + i_this->mDemoMode = 6; + } + break; + + case 6: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp34.x = 0.0f; + sp34.y = 150.0f; + sp34.z = 700.0f; + MtxPosition(&sp34, &sp40); + i_this->mCamEye = i_this->current.pos + sp40; + i_this->mCamCenter = i_this->current.pos; + i_this->mCamCenter.y += 230.0f; + + if (i_this->mDemoCamTimer == 2) { + i_this->field_0x707 = 7; + } + + if (i_this->mDemoCamTimer >= 10) { + i_this->mMode = 4; + i_this->mDemoMode = 100; + sp34.x = 200.0f; + sp34.y = 0.0f; + sp34.z = -150.0f; + MtxPosition(&sp34, &sp40); + sp40 += player->current.pos; + player->setPlayerPosAndAngle(&sp40, i_this->current.angle.y + (u16)-0x8000, 0); + } + break; + + case 7: + if (actor1 == NULL) break; + + i_this->mCamCenter = actor1->current.pos; + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp34.x = 300.0f; + sp34.y = -200.0f; + sp34.z = 1000.0f; + MtxPosition(&sp34, &sp40); + i_this->mCamEye = i_this->current.pos + sp40; + i_this->mDemoMode = 8; + i_this->mDemoCamTimer = 0; + // fallthrough + case 8: + cLib_addCalc2(&i_this->mCamCenter.x, actor1->current.pos.x, 0.2f, 100.0f); + cLib_addCalc2(&i_this->mCamCenter.y, actor1->current.pos.y + i_this->field_0xc8c, 0.2f, 100.0f); + cLib_addCalc2(&i_this->mCamCenter.z, actor1->current.pos.z, 0.2f, 100.0f); + cLib_addCalc2(&i_this->field_0xc8c, -300.0f, 1.0f, 5.0f); + + i_this->mCamEye += (actor1->speed * 0.45f); + i_this->mCamEye.y -= 3.0f; + if (i_this->mDemoCamTimer < 65) break; + + i_this->mDemoMode = 9; + i_this->mDemoCamTimer = 0; + // fallthrough + case 9: + actor2 = fopAcM_SearchByID(i_this->mBabaChildID); + actor1 = fopAcM_SearchByID(i_this->mBabaChildID2); + if (i_this->mDemoCamTimer == 0) { + actor2->current.pos.x = player->current.pos.x - 200.0f; + actor2->current.pos.y = player->current.pos.y + 500.0f; + actor2->current.pos.z = player->current.pos.z - 1200.0f; + actor2->speed.y = 0.0f; + actor1->current.pos.x = player->current.pos.x + 200.0f; + actor1->current.pos.y = player->current.pos.y + 1000.0f; + actor1->current.pos.z = player->current.pos.z - 1000.0f; + actor1->speed.y = 0.0f; + i_this->mCamCenter.x = actor2->current.pos.x; + i_this->mCamCenter.z = actor2->current.pos.z; + } + + i_this->mCamEye.x = player->current.pos.x + 100.0f; + i_this->mCamEye.y = player->current.pos.y + 100.0f; + i_this->mCamEye.z = player->current.pos.z - 400.0f; + i_this->mCamCenter.y = actor2->current.pos.y; + + cLib_addCalc2(&i_this->mCamCenter.x, actor2->current.pos.x + 100.0f, 0.1f, 50.0f); + cLib_addCalc2(&i_this->mCamCenter.z, actor2->current.pos.z, 0.1f, 50.0f); + + if (i_this->mDemoCamTimer <= 60) { + actor1->current.pos -= actor1->speed; + } + + if (i_this->mDemoCamTimer >= 80) { + i_this->mDemoMode = 10; + i_this->mDemoCamTimer = 0; + } + break; + + case 10: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp34.x = 0.0f; + sp34.y = 150.0f; + sp34.z = 700.0f; + MtxPosition(&sp34, &sp40); + i_this->mCamEye = i_this->current.pos + sp40; + i_this->mCamCenter = i_this->current.pos; + i_this->mCamCenter.y += 230.0f; + + actor1 = fopAcM_SearchByID(i_this->mBabaChildID); + actor2 = fopAcM_SearchByID(i_this->mBabaChildID2); + actor1->current.pos.x = player->current.pos.x - 200.0f; + actor1->current.pos.z = player->current.pos.z - 1200.0f; + actor2->current.pos.x = player->current.pos.x + 200.0f; + actor2->current.pos.z = player->current.pos.z - 1000.0f; + break; + + case 11: + if (i_this->mDemoCamTimer >= 30) { + cMtx_YrotS(*calc_mtx, player->shape_angle.y); + sp34.x = 0.0f; + sp34.y = 200.0f; + sp34.z = -400.0f; + MtxPosition(&sp34, &i_this->mCamEye); + i_this->mCamEye += player->current.pos; + i_this->mCamCenter = player->current.pos; + i_this->mCamCenter.y += 100.0f; + i_this->field_0xc30 = 10; + fopAcM_OffStatus(i_this, 0x4000); + Z2GetAudioMgr()->subBgmStart(Z2BGM_BOOMERAMG_MONKEY); + } + + actor1 = fopAcM_SearchByID(i_this->mBabaChildID); + actor2 = fopAcM_SearchByID(i_this->mBabaChildID2); + actor1->current.pos.x = player->current.pos.x - 200.0f; + actor1->current.pos.z = player->current.pos.z - 1200.0f; + actor2->current.pos.x = player->current.pos.x + 200.0f; + actor2->current.pos.z = player->current.pos.z - 1000.0f; + break; + + case 100: + break; + } + + if (dComIfGp_getEvent().checkSkipEdge()) { + u8 uVar1 = fopAcM_GetParam(i_this) >> 16; + if (uVar1 != 0xff) { + dComIfGs_onSwitch(uVar1, fopAcM_GetRoomNo(i_this)); + } + + dStage_changeScene(2, 0.0f, 0, fopAcM_GetRoomNo(i_this), 0, -1); + } +} + +/* 8071823C-80719488 0041FC 124C+00 1/1 0/0 0/0 .text demo_camera_end__FP10e_mk_class */ +static void demo_camera_end(e_mk_class* i_this) { + // NONMATCHING + daPy_py_c *player = (daPy_py_c*)dComIfGp_getPlayer(0); + fopAc_ac_c *actor = fopAcM_SearchByID(i_this->field_0x708); + camera_class *camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + cXyz sp2c, i_pos, sp44, sp50; + + switch (i_this->mDemoMode) { + case 1: + if (!i_this->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(i_this, 2, 0xffff, 0); + i_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + return; + } + + camera->mCamera.Stop(); + i_this->mDemoMode = 2; + i_this->mDemoCamTimer = 0; + i_this->mDemoCamFovy = 55.0f; + camera->mCamera.SetTrimSize(3); + daPy_getPlayerActorClass()->changeOriginalDemo(); + actor->current.pos.y += 10000.0f; + Z2GetAudioMgr()->bgmStreamPrepare(0x200000E); + dComIfGs_onStageMiddleBoss(); + // fallthrough + case 2: + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + sp2c.x = 0.0f; + sp2c.y = 130.0f; + sp2c.z = 0.0f; + MtxPosition(&sp2c, &i_this->mCamCenter); + i_this->mCamCenter += i_this->current.pos; + sp2c.x = 400.0f; + sp2c.y = 100.0f; + sp2c.z = 200.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += i_this->current.pos; + sp2c.x = 0.0f; + sp2c.y = 0.0f; + sp2c.z = -300.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += i_this->current.pos; + player->setPlayerPosAndAngle(&i_pos, i_this->shape_angle.y, 0); + + if (i_this->mDemoCamTimer < 30) { + return; + } + + i_this->mDemoMode++; + i_this->mDemoCamTimer = 0; + return; + + case 3: + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + sp2c.x = -300.0f; + sp2c.y = 0.0f; + sp2c.z = -150.0f; + MtxPosition(&sp2c, &i_this->mCamCenter); + i_this->mCamCenter += i_this->current.pos; + sp2c.x = 100.0f; + sp2c.y = 1000.0f; + sp2c.z = 0.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += i_this->current.pos; + return; + + case 4: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp2c.x = 250.0f; + sp2c.y = 0.0f; + sp2c.z = -200.0f; + MtxPosition(&sp2c, &i_this->mCamCenter); + i_this->mCamCenter += STAGE_CENTER_POS; + sp2c.x = 250.0f; + sp2c.y = 700.0f; + sp2c.z = 300.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += STAGE_CENTER_POS; + return; + + case 5: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp2c.x = 450.0f; + sp2c.y = 0.0f; + sp2c.z = -100.0f; + MtxPosition(&sp2c, &i_this->mCamCenter); + i_this->mCamCenter += STAGE_CENTER_POS; + sp2c.x = 250.0f; + sp2c.y = 300.0f; + sp2c.z = 300.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += STAGE_CENTER_POS; + sp2c.x = 800.0f; + sp2c.y = 100.0f; + sp2c.z = 100.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + i_this->field_0xc68.x = fabsf(i_pos.x - i_this->mCamEye.x) * 0.02f; + i_this->field_0xc68.y = fabsf(i_pos.y - i_this->mCamEye.y) * 0.02f; + i_this->field_0xc68.z = fabsf(i_pos.z - i_this->mCamEye.z) * 0.02f; + i_this->mDemoMode = 6; + i_this->field_0xc84 = 0; + sp2c.x = 1400.0f; + sp2c.y = 0.0f; + sp2c.z = 500.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + player->setPlayerPosAndAngle(&i_pos, i_this->shape_angle.y, 0); + // fallthrough + case 6: + cLib_addCalc2(&i_this->mCamCenter.x, i_this->field_0x5e4.x, 0.1f, i_this->field_0xc84 * 20.0f); + cLib_addCalc2(&i_this->mCamCenter.y, i_this->field_0x5e4.y + 30.0f, 0.1f, i_this->field_0xc84 * 20.0f); + cLib_addCalc2(&i_this->mCamCenter.z, i_this->field_0x5e4.z, 0.1f, i_this->field_0xc84 * 20.0f); + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp2c.x = 800.0f; + sp2c.y = 100.0f; + sp2c.z = 100.0f; + MtxPosition(&sp2c, &i_pos); + + i_pos += STAGE_CENTER_POS; + cLib_addCalc2(&i_this->field_0xc84, 1.0f, 1.0f , 0.1f); + + if (9 < i_this->mDemoCamTimer) { + cLib_addCalc2(&i_this->mCamEye.x, i_pos.x, 0.1f, i_this->field_0xc68.x * i_this->field_0xc88); + cLib_addCalc2(&i_this->mCamEye.y, i_pos.y, 0.1f, i_this->field_0xc68.y * i_this->field_0xc88); + cLib_addCalc2(&i_this->mCamEye.z, i_pos.z, 0.1f, i_this->field_0xc68.z * i_this->field_0xc88); + cLib_addCalc2(&i_this->field_0xc88, 1.0f, 1.0f, 0.1f); + } + + if (i_this->mDemoCamTimer == 40) { + Z2GetAudioMgr()->seStart(Z2SE_MK_DARK_INSECT_DEATH, &i_this->field_0x5e4, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } + + if (i_this->mDemoCamTimer < 90) { + return; + } + + if (i_this->mDemoCamTimer == 90) { + sp2c.x = 1300.0f; + sp2c.y = 0.0f; + sp2c.z = 0.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + player->setPlayerPosAndAngle(&i_pos, i_this->shape_angle.y, 0); + player->changeDemoMode(3, 1, 0, 0); + sp2c.x = 170.0f; + sp2c.y = 0.0f; + sp2c.z = 0.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += i_this->field_0x5e4; + player->changeDemoPos0(&i_pos); + } + + if (i_this->mDemoCamTimer == 130) { + ok_anm_init(i_this, 42, 1.0f, 0, 1.0f); + } + + if (i_this->mDemoCamTimer == 180) { + i_this->field_0x60c = 0; + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + sp2c.x = 0.0f; + sp2c.y = 0.0f; + sp2c.z = -20.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += i_this->field_0x5e4; + fopAcM_createDisappear(i_this, &i_pos, 5, 0, 0xff); + } + + if (i_this->mDemoCamTimer != 248) { + return; + } + + i_this->mDemoMode++; + i_this->mDemoCamTimer = 0; + i_this->mMode = 5; + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp2c.x = 300.0f; + sp2c.y = 0.0f; + sp2c.z = 300.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + i_this->current.pos.x = i_pos.x; + i_this->current.pos.z = i_pos.z; + sp2c.x = 130.0f; + sp2c.y = 100.0f; + sp2c.z = 100.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += STAGE_CENTER_POS; + i_this->mCamCenter = i_this->current.pos; + i_this->mCamCenter.y += 190.0f; + sp2c.x = 400.0f; + sp2c.y = 0.0f; + sp2c.z = 700.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + sp2c.x = STAGE_CENTER_POS.x - i_pos.x; + sp2c.z = STAGE_CENTER_POS.z - i_pos.z; + player->setPlayerPosAndAngle(&i_pos, cM_atan2s(sp2c.x, sp2c.z), 0); + i_this->current.angle.y = player->shape_angle.y; + Z2GetAudioMgr()->bgmStreamPlay(); + return; + + case 8: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp2c.x = 500.0f; + sp2c.y = 300.0f; + sp2c.z = 0.0f; + MtxPosition(&sp2c, &i_this->mCamCenter); + i_this->mCamCenter += STAGE_CENTER_POS; + sp2c.x = 50.0f; + sp2c.y = 70.0f; + sp2c.z = 1100.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += STAGE_CENTER_POS; + return; + + case 9: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp2c.x = 5500.0f; + sp2c.y = 2300.0f; + sp2c.z = -5000.0f; + MtxPosition(&sp2c, &i_this->mCamCenter); + i_this->mCamCenter += STAGE_CENTER_POS; + sp2c.x = 450.0f; + sp2c.y = 370.0f; + sp2c.z = -100.0f; + MtxPosition(&sp2c,&i_this->mCamEye); + i_this->mCamEye += STAGE_CENTER_POS; + if (i_this->mDemoCamTimer < 300) return; + i_this->mDemoMode = 10; + i_this->mDemoCamTimer = 0; + sp2c.x = 400.0f; + sp2c.y = 0.0f; + sp2c.z = 600.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + sp2c.x = STAGE_CENTER_POS.x - player->current.pos.x; + sp2c.z = STAGE_CENTER_POS.z - player->current.pos.z; + player->setPlayerPosAndAngle(&i_pos, cM_atan2s(sp2c.x, sp2c.z), 0); + return; + + case 10: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp2c.x = 0.0f; + sp2c.y = 300.0f; + sp2c.z = 100.0f; + MtxPosition(&sp2c, &i_this->mCamCenter); + i_this->mCamCenter += STAGE_CENTER_POS; + sp2c.x = 800.0f; + sp2c.y = 0.0f;; + sp2c.z = 500.0f; + MtxPosition(&sp2c ,&i_pos); + i_pos += STAGE_CENTER_POS; + i_this->field_0xc74.x = fabsf(i_pos.x - i_this->mCamCenter.x) * 0.01f; + i_this->field_0xc74.y = fabsf(i_pos.y - i_this->mCamCenter.y) * 0.01f; + i_this->field_0xc74.z = fabsf(i_pos.z - i_this->mCamCenter.z) * 0.01f; + sp2c.x = 450.0f; + sp2c.y = 70.0f; + sp2c.z = 900.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += STAGE_CENTER_POS; + sp2c.x = -150.0f; + sp2c.y = 45.0f; + sp2c.z = 700.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + i_this->field_0xc68.x = fabsf(i_pos.x - i_this->mCamEye.x) * 0.01f; + i_this->field_0xc68.y = fabsf(i_pos.y - i_this->mCamEye.y) * 0.01f; + i_this->field_0xc68.z = fabsf(i_pos.z - i_this->mCamEye.z) * 0.01f; + i_this->field_0xc84 = 0.0f; + i_this->mDemoMode = 11; + // fallthrough + case 11: + cMtx_YrotS(*calc_mtx, STAGE_ANGLE_Y); + sp2c.x = 800.0f; + sp2c.y = 0.0f; + sp2c.z = 500.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + cLib_addCalc2(&i_this->mCamCenter.x, i_pos.x, 0.1f, i_this->field_0xc74.x * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamCenter.y, i_pos.y, 0.1f, i_this->field_0xc74.y * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamCenter.z, i_pos.z, 0.1f, i_this->field_0xc74.z * i_this->field_0xc84); + sp2c.x = -150.0f; + sp2c.y = 45.0f; + sp2c.z = 700.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += STAGE_CENTER_POS; + cLib_addCalc2(&i_this->mCamEye.x, i_pos.x, 0.1f, i_this->field_0xc68.x * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamEye.y, i_pos.y, 0.1f, i_this->field_0xc68.y * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamEye.z, i_pos.z, 0.1f, i_this->field_0xc68.z * i_this->field_0xc84); + cLib_addCalc2(&i_this->field_0xc84, 0.5f, 1.0f, 0.02f); + + if (i_this->mDemoCamTimer == 2) { + fopAc_ac_c *local_b0 = fopAcM_SearchByID(i_this->field_0x708); + sp2c.x = 50.0f; + sp2c.y = 10.0f; + sp2c.z = 700.0f; + MtxPosition(&sp2c, &local_b0->current.pos); + local_b0->current.pos += STAGE_CENTER_POS; + local_b0->current.angle.y = 0; + local_b0->shape_angle.y = STAGE_ANGLE_Y; + } + + if (i_this->mDemoCamTimer == 200) { + player->changeDemoMode(1, 3, 0, 0); + player->changeDemoParam0(3); + dComIfGp_getEvent().setPtT(actor); + } + + if (i_this->mDemoCamTimer != 250) { + return; + } + + i_this->mDemoMode = 20; + i_this->mDemoCamTimer = 0; + return; + + case 20: + sp2c = actor->current.pos - player->current.pos; + if (i_this->mDemoCamTimer == 3) { + player->changeDemoMode(3, 1, 0, 0); + cMtx_YrotS(*calc_mtx, cM_atan2s(sp2c.x, sp2c.z)); + sp2c.x = -20.0f; + sp2c.y = 0.0f; + sp2c.z = 200.0f; + MtxPosition(&sp2c, &i_pos); + i_pos += player->current.pos; + player->changeDemoPos0(&i_pos); + sp2c.z = 10000.0f; + MtxPosition(&sp2c, &i_pos); + i_this->current.pos = i_pos; + } + + i_pos = actor->current.pos - player->eyePos; + i_this->current.pos = player->eyePos + (i_pos * 20.0f); + if (i_this->mDemoCamTimer != 20) { + return; + } + + actor->health = 1; + i_this->mDemoMode = 21; + i_this->mDemoCamTimer = 0; + i_this->field_0xc84 = 0.0f; + return; + + case 21: + cLib_addCalc2(&i_this->mCamCenter.y, actor->current.pos.y - 20.0f, 0.2f, i_this->field_0xc84 * 200.0f); + cLib_addCalc2(&i_this->mCamCenter.x, actor->current.pos.x, 0.4f, i_this->field_0xc84 * 200.0f); + cLib_addCalc2(&i_this->mCamCenter.z, actor->current.pos.z, 0.4f, i_this->field_0xc84 * 200.0f); + cLib_addCalc2(&i_this->mCamEye.y, player->current.pos.y + 110.0f, 0.1f, i_this->field_0xc84 * 10.0f); + cLib_addCalc2(&i_this->field_0xc84, 1.0f, 1.0f, 0.02f); + i_pos = actor->current.pos - player->eyePos; + i_this->current.pos = player->eyePos + (i_pos * 20.0f); + if (i_this->mDemoCamTimer < 70) { + return; + } + + if (i_this->mDemoCamTimer == 70) { + i_this->mMsgFlow.init(i_this, 102, 0, NULL); + } + + if (i_this->mMsgFlow.doFlow(i_this, NULL, 0) == 0) { + return; + } + + actor->health = 1; + return; + + case 22: + player->changeDemoMode(28, 0, 0, 0); + i_this->mDemoMode++; + i_this->mDemoCamTimer = 0; + i_this->mSound.startCreatureSound(Z2SE_EN_MK_CATCH_BOOM, 0, -1); + break; + + default: + case 100: + return; + } + + cLib_addCalc2(&i_this->mCamCenter.x, player->current.pos.x, 0.4f, i_this->field_0xc84 * 200.0f); + cLib_addCalc2(&i_this->mCamCenter.z, player->current.pos.z, 0.4f, i_this->field_0xc84 * 200.0f); + + if (i_this->mDemoCamTimer == 20) { + fopAcM_createItemForMidBoss(&player->current.pos, 64, fopAcM_GetRoomNo(i_this), 0, 0, 0, -1); + i_this->field_0xc30 = 10; + i_this->current.pos.y += 20000.0f; + target_info_count = 0; + fpcM_Search(s_h_sub, i_this); + fopAcM_delete(static_cast(target_info[0])); + fopAcM_delete(static_cast(target_info[7])); + } +} + +/* 80719488-807194E0 005448 0058+00 2/2 0/0 0/0 .text s_ks_sub__FPvPv */ +static void* s_ks_sub(void* i_actor, void* i_data) { + if ((fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_NPC_KS) && static_cast(i_actor)->field_0x5b6 == 0) { + return i_actor; + } + + return NULL; +} + +/* 807194E0-80719540 0054A0 0060+00 1/1 0/0 0/0 .text s_brg_sub__FPvPv */ +static void* s_brg_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_OBJ_BRG) { + static_cast(i_actor)->field_0xaef4 = 500.0f; + static_cast(i_actor)->mType |= 4; + } + + return NULL; +} + +/* 80719540-80719594 005500 0054+00 1/1 0/0 0/0 .text s_brg_sub2__FPvPv */ +static void* s_brg_sub2(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_OBJ_BRG) { + static_cast(i_actor)->mType &= ~0x4; + } + + return NULL; +} + +/* 80719594-8071A06C 005554 0AD8+00 1/1 0/0 0/0 .text demo_camera_r04__FP10e_mk_class */ +static void demo_camera_r04(e_mk_class* i_this) { + // EQUIVALENT - Register Mismatch + u8 uVar1; + daPy_py_c *player = (daPy_py_c *)dComIfGp_getPlayer(0); + fopAc_ac_c *actor = fopAcM_SearchByID(i_this->field_0x708); + camera_class *camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + cXyz sp2c, sp38; + + npc_ks_class *i_actor = (npc_ks_class*)fpcM_Search(s_ks_sub, i_this); + if (i_actor == NULL) { + return; + } + + switch (i_this->mDemoMode) { + case 1: + if (!i_actor->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(i_actor, 2, 0xffff, 0); + i_actor->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + return; + } + + camera->mCamera.Stop(); + i_this->mDemoMode = 2; + i_this->mDemoCamTimer = 0; + i_this->mDemoCamFovy = 55.0f; + camera->mCamera.SetTrimSize(3); + + daPy_getPlayerActorClass()->changeOriginalDemo(); + i_this->mCamCenter.set(-711.0f, 3588.0f, 2730.0f); + i_this->mCamEye.set(116.0f, 3400.0f, 4597.0f); + i_this->field_0xc5c.set(-291.0f, 3256.0f, 2640.0f); + i_this->field_0xc50.set(1060.0f, 3795.0f, 4086.0f); + + i_this->field_0xc74.x = fabsf(i_this->field_0xc5c.x - i_this->mCamCenter.x) * 0.015f; + i_this->field_0xc74.y = fabsf(i_this->field_0xc5c.y - i_this->mCamCenter.y) * 0.015f; + i_this->field_0xc74.z = fabsf(i_this->field_0xc5c.z - i_this->mCamCenter.z) * 0.015f; + i_this->field_0xc68.x = fabsf(i_this->field_0xc50.x - i_this->mCamEye.x) * 0.02f; + i_this->field_0xc68.y = fabsf(i_this->field_0xc50.y - i_this->mCamEye.y) * 0.02f; + i_this->field_0xc68.z = fabsf(i_this->field_0xc50.z - i_this->mCamEye.z) * 0.02f; + + dComIfGp_getEvent().startCheckSkipEdge(i_this); + // fallthrough + case 2: + if (i_this->mDemoCamTimer > 60) { + cLib_addCalc2(&i_this->mCamCenter.x, i_this->field_0xc5c.x, 0.05f, i_this->field_0xc74.x * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamCenter.y, i_this->field_0xc5c.y, 0.05f, i_this->field_0xc74.y * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamCenter.z, i_this->field_0xc5c.z, 0.05f, i_this->field_0xc74.z * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamEye.x, i_this->field_0xc50.x, 0.05f, i_this->field_0xc68.x * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamEye.y, i_this->field_0xc50.y, 0.05f, i_this->field_0xc68.y * i_this->field_0xc84); + cLib_addCalc2(&i_this->mCamEye.z, i_this->field_0xc50.z, 0.05f, i_this->field_0xc68.z * i_this->field_0xc84); + cLib_addCalc2(&i_this->field_0xc84, 1.0f, 1.0f, 0.01f); + + if (i_this->mDemoCamTimer == 258) { + i_actor->mMode = 2; + sp38.set(110.0f, 3300.0f, 4326.0f); + player->setPlayerPosAndAngle(&sp38, (s16)0xffff8000, 0); + player->changeDemoMode(1, 1, 0, 0); + } + + if (i_this->mDemoCamTimer == 260) { + cMtx_YrotS(*calc_mtx, i_actor->shape_angle.y); + sp2c.x = 200.0f; + sp2c.y = 300.0f; + sp2c.z = 300.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += i_actor->current.pos; + i_this->mCamCenter = i_actor->current.pos; + i_this->mCamCenter.y += 130.0f; + i_this->mDemoMode = 3; + i_this->mDemoCamTimer = 0; + } + } + + i_this->current.pos.y = i_this->home.pos.y + 10000.0f; + return; + + case 3: + i_this->current.pos.y = i_this->home.pos.y + 10000.0f; + cLib_addCalc2(&i_this->mCamCenter.z, i_actor->current.pos.z, 0.2f, 50.0f); + cLib_addCalc2(&i_this->mCamCenter.y, i_actor->current.pos.y + 130.0f + cM_ssin(i_this->mDemoCamTimer * 0xA00) * 30.0f, 0.2f, 50.0f); + + if (i_this->mDemoCamTimer != 93) { + return; + } + + i_this->current.pos.y = i_this->home.pos.y; + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + sp2c.x = 0.0f; + sp2c.y = -200.0f; + sp2c.z = 3350.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += i_this->current.pos; + i_this->mCamCenter = i_this->current.pos; + i_this->mCamCenter.y += 220.0f; + i_this->mDemoMode = 4; + i_this->mDemoCamTimer = 0; + i_this->mMode = 2; + i_actor->mMode = 20; + return; + + case 4: + cLib_addCalc2(&i_this->mCamCenter.z, i_this->current.pos.z, 0.2f, 50.0f); + cLib_addCalc2(&i_this->mCamCenter.y, i_this->current.pos.y + 220.0f, 0.2f, 50.0f); + + if (i_this->mDemoCamTimer != 74) { + return; + } + + i_this->mDemoMode = 45; + i_this->mDemoCamTimer = 0; + + cMtx_YrotS(*calc_mtx, i_actor->shape_angle.y); + sp2c.x = -300.0f; + sp2c.y = 200.0f; + sp2c.z = -100.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += i_actor->current.pos; + i_this->mCamCenter = i_actor->current.pos; + i_this->mCamCenter.y += 90.0f; + return; + + case 45: + cLib_addCalc2(&i_this->mCamCenter.z, i_actor->current.pos.z, 0.2f, 50.0f); + cLib_addCalc2(&i_this->mCamCenter.y, i_actor->current.pos.y + 90.0f + 30.0f * cM_ssin(i_this->mDemoCamTimer * 0xA00), 0.2f, 50.0f); + + if (i_this->mDemoCamTimer == 10) { + i_actor->field_0x567 = 1; + } + + if (i_this->mDemoCamTimer != 55) { + return; + } + + i_this->mDemoMode = 46; + i_this->mDemoCamTimer = 0; + // fallthrough + case 46: + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + sp2c.x = 0.0f; + sp2c.y = 100.0f; + sp2c.z = 600.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += i_this->current.pos; + i_this->mCamCenter = i_this->current.pos; + i_this->mCamCenter.y += 220.0f; + + if (i_this->mDemoCamTimer < 45) { + return; + } + + if (actor == NULL) { + return; + } + + i_this->mDemoMode = 5; + i_this->mDemoCamTimer = 0; + // fallthrough + case 5: + i_this->mCamCenter = actor->current.pos; + i_this->mCamEye.set(-477.0f, 3119.0f, 1643.0f); + + if (i_this->mDemoCamTimer == 30) { + i_actor->current.pos.z = 1600.0f; + i_actor->current.pos.y = 3200.0f; + } + + if (i_this->mDemoCamTimer != 69) { + return; + } + + i_this->mDemoMode = 6; + i_this->mDemoCamTimer = 0; + return; + + case 6: + if (i_this->mDemoCamTimer == 3) { + i_actor->mMode = 4; + } + + if (i_this->mDemoCamTimer != 25) { + return; + } + + i_this->mDemoMode = 7; + i_this->mDemoCamTimer = 0; + + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + sp2c.x = -300.0f; + sp2c.y = 100.0f; + sp2c.z = 550.0f; + MtxPosition(&sp2c, &i_this->mCamEye); + i_this->mCamEye += i_this->current.pos; + i_this->mCamCenter = i_this->current.pos; + i_this->mCamCenter.y += 190.0f; + // fallthrough + case 7: + i_actor->speed.y = 0.0f; + i_actor->current.pos.set(0.0f, 2500.0f, 3373.0f); + + if (i_this->mDemoCamTimer != 250) { + return; + } + + i_this->mDemoMode = 8; + i_this->mDemoCamTimer = 0; + i_actor->mMode++; + i_this->mCamEye.set(-282.0f, 2534.0f, 3147.0f); + i_this->mCamCenter = i_actor->current.pos; + // fallthrough + case 8: + cLib_addCalc2(&i_this->mCamCenter.y, i_actor->current.pos.y, 0.2f, 50.0f); + fpcM_Search(s_brg_sub, i_this); + + if (i_this->mDemoCamTimer == 65) { + i_actor->current.pos.set(0.0f, 3310.0f, 3427.0f); + i_actor->mMode++; + i_this->mDemoMode = 9; + i_this->mDemoCamTimer = 0; + fpcM_Search(s_brg_sub2, i_this); + i_this->mCamCenter.set(4.0f, 3393.0f, 4180.0f); + i_this->mCamEye.set(-131.0f, 3452.0f, 4552.0f); + player->changeDemoMode(1, 1, 0, 0); + } + return; + + case 9: + if (i_this->mDemoCamTimer != 138) { + return; + } + + i_this->mCamCenter.set(30.0f, 3422.0f, 4520.0f); + i_this->mCamEye.set(343.0f, 3422.0f, 4271.0f); + i_this->mDemoMode = 10; + i_this->mDemoCamTimer = 0; + i_this->field_0xca0 = player->shape_angle.y; + return; + + case 10: + cLib_addCalcAngleS2(&i_this->field_0xca0, i_actor->field_0x5c8 + (u16)-0x8000, 4, 0x800); + player->setPlayerPosAndAngle(&player->current.pos, i_this->field_0xca0, 0); + + if (i_this->mDemoCamTimer != 60) { + return; + } + + camera->mCamera.Reset(i_this->mCamCenter, i_this->mCamEye); + camera->mCamera.Start(); + camera->mCamera.SetTrimSize(0); + dComIfGp_event_reset(); + daPy_getPlayerActorClass()->cancelOriginalDemo(); + fopAcM_delete(i_this); + uVar1 = fopAcM_GetParam(i_this) >> 16; + if (uVar1 == 0xFF) { + return; + } + + dComIfGs_onSwitch(uVar1, fopAcM_GetRoomNo(i_this)); + return; + + case 0: + case 100: + default: + return; + } +} + +/* 8071A06C-8071A22C 00602C 01C0+00 1/1 0/0 0/0 .text demo_camera_bohit__FP10e_mk_class */ +static void demo_camera_bohit(e_mk_class* i_this) { + camera_class *camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + cXyz sp20; + + switch (i_this->mDemoMode) { + case 1: + if (!i_this->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(i_this, 2, 0xffff, 0); + i_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + return; + } + + camera->mCamera.Stop(); + i_this->mDemoMode = 2; + i_this->mDemoCamTimer = 0; + i_this->mDemoCamFovy = 55.0f; + camera->mCamera.SetTrimSize(3); + + cMtx_YrotS(*calc_mtx, i_this->shape_angle.y); + if (cM_rndF(1.0f) < 0.5f) { + sp20.x = 500.0f; + } else { + sp20.x = -500.0f; + } + + sp20.y = -120.0f; + sp20.z = 0.0f; + MtxPosition(&sp20, &i_this->mCamEye); + i_this->mCamEye += i_this->current.pos; + i_this->mCamCenter = i_this->current.pos; + // fallthrough + case 2: + cLib_addCalc2(&i_this->mCamCenter.x, i_this->current.pos.x, 0.5f, 50.0f); + cLib_addCalc2(&i_this->mCamCenter.y, i_this->current.pos.y + 100.0f, 0.5f, 50.0f); + cLib_addCalc2(&i_this->mCamCenter.z, i_this->current.pos.z, 0.5f, 50.0f); + + if (i_this->mDemoCamTimer == 25) { + i_this->field_0xc98 = 30.0f; + } + + if (i_this->mDemoCamTimer == 80) { + i_this->field_0xc30 = 10; + i_this->field_0x6fc[0] = 150; + } + return; + + case 0: + default: + return; + } +} + +/* 8071A22C-8071A538 0061EC 030C+00 2/1 0/0 0/0 .text demo_camera__FP10e_mk_class */ +static void demo_camera(e_mk_class* i_this) { + // NONMATCHING + camera_class *camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + cXyz sp34, sp40; + + switch (i_this->field_0xc30) { + case 1: + demo_camera_start(i_this); + break; + + case 2: + demo_camera_end(i_this); + break; + + case 3: + demo_camera_r04(i_this); + if (dComIfGp_getEvent().checkSkipEdge()) { + npc_ks_class *i_actor = (npc_ks_class*)fpcM_Search(s_ks_sub, i_this); + if (i_actor != NULL) { + u8 i_no = fopAcM_GetParam(i_this) >> 16; + if (i_no != 0xFF) { + dComIfGs_onSwitch(i_no, fopAcM_GetRoomNo(i_this)); + } + + i_no = fopAcM_GetParam(i_actor) >> 24; + if (i_no != 0xFF) { + dComIfGs_onSwitch(i_no, fopAcM_GetRoomNo(i_actor)); + } + + dComIfGp_setNextStage("D_MN05", 0, 4, 0); + } + } + break; + + case 4: + demo_camera_bohit(i_this); + break; + + case 10: + camera->mCamera.Reset(i_this->mCamCenter, i_this->mCamEye); + camera->mCamera.Start(); + camera->mCamera.SetTrimSize(0); + dComIfGp_event_reset(); + i_this->field_0xc30 = 0; + i_this->mDemoMode = 0; + daPy_getPlayerActorClass()->cancelOriginalDemo(); + } + + if (i_this->field_0xc30 != 0) { + int iVar1 = i_this->field_0xc98 * cM_scos(i_this->field_0x6b4 * 0x2C00) * 7.5f; + cXyz i_center = i_this->mCamCenter; + cXyz i_eye = i_this->mCamEye; + + i_center.y += i_this->field_0xc98 * cM_ssin(i_this->field_0x6b4 * 0x2A00); + i_eye.y += i_this->field_0xc98 * cM_ssin(i_this->field_0x6b4 * 0x2A00); + i_center.x += i_this->field_0xc98 * cM_ssin(i_this->field_0x6b4 * 0x2800); + i_eye.x += i_this->field_0xc98 * cM_ssin(i_this->field_0x6b4 * 0x2800); + i_center.z += i_this->field_0xc98 * cM_scos(i_this->field_0x6b4 * 0x2C00); + i_eye.z += i_this->field_0xc98 * cM_scos(i_this->field_0x6b4 * 0x2C00); + + camera->mCamera.Set(i_center, i_eye, iVar1, i_this->mDemoCamFovy); + + cLib_addCalc0(&i_this->field_0xc98, 1.0f, 3.0f); + i_this->mDemoCamTimer++; + + if (i_this->mDemoCamTimer > 10000) { + i_this->mDemoCamTimer = 10000; + } + } +} + +/* 8071A538-8071A808 0064F8 02D0+00 2/1 0/0 0/0 .text action__FP10e_mk_class */ +static void action(e_mk_class* i_this) { + // NONMATCHING + cXyz sp28, sp34; + i_this->mDistToPlayer = fopAcM_searchPlayerDistanceXZ(i_this); + i_this->mAngleToPlayer = fopAcM_searchPlayerAngleY(i_this); + damage_check(i_this); + s8 sVar1 = 1; + s8 sVar2 = 1; + i_this->field_0x6f8 = 0; + + switch (i_this->mAction) { + case e_mk_class::ACT_WAIT: + e_mk_wait(i_this); + break; + + case e_mk_class::ACT_MOVE: + e_mk_move(i_this); + break; + + case e_mk_class::ACT_SHOOT: + e_mk_shoot(i_this); + break; + + case e_mk_class::ACT_YORO: + e_mk_yoro(i_this); + break; + + case e_mk_class::ACT_DROP: + e_mk_drop(i_this); + i_this->field_0x6f8 = 1; + break; + + case e_mk_class::ACT_DAMAGE: + e_mk_damage(i_this); + i_this->field_0x6f8 = 1; + break; + + case e_mk_class::ACT_S_DEMO: + e_mk_s_demo(i_this); + sVar1 = 0; + break; + + case e_mk_class::ACT_E_DEMO: + i_this->field_0x6f8 = e_mk_e_demo(i_this); + sVar1 = 0; + sVar2 = 0; + break; + + case e_mk_class::ACT_R04_DEMO: + e_mk_r04_demo(i_this); + i_this->field_0x6f8 = 1; + } + + if (sVar2) { + fopAcM_OnStatus(i_this, 0); + i_this->attention_info.flags = 4; + } else { + fopAcM_OffStatus(i_this, 0); + i_this->attention_info.flags = 0; + } + + cLib_addCalcAngleS2(&i_this->shape_angle.y, i_this->current.angle.y, 4, 0x2000); + + if (i_this->field_0x6f8 != 0) { + i_this->current.pos += i_this->speed; + i_this->speed.y += i_this->gravity; + + if (i_this->field_0x6f8 == 1) { + i_this->mAcch.CrrPos(dComIfG_Bgsp()); + } + } else { + i_this->current.pos += i_this->speed; + } + + if (i_this->field_0x71b != 0) { + if (i_this->field_0x71b == 2) { + J3DModel* model = i_this->mpModelMorf->getModel(); + PSMTXCopy(model->getAnmMtx(29), *calc_mtx); + sp28.set(0.0f, 0.0f, 0.0f); + MtxPosition(&sp28, &sp34); + fopAcM_effSmokeSet1(&i_this->field_0xc08, &i_this->field_0xc0c, &sp34, &i_this->shape_angle, 2.5f, &i_this->tevStr, 0); + + PSMTXCopy(model->getAnmMtx(33), *calc_mtx); + MtxPosition(&sp28, &sp34); + fopAcM_effSmokeSet1(&i_this->field_0xc10, &i_this->field_0xc14, &sp34, &i_this->shape_angle, 2.5f, &i_this->tevStr, 0); + } else { + fopAcM_effSmokeSet1(&i_this->field_0xc08, &i_this->field_0xc0c, &i_this->current.pos, &i_this->shape_angle, 2.5f, &i_this->tevStr, 1); + } + + i_this->field_0x71b = 0; + } + + if (sVar1) { + daPy_getPlayerActorClass()->onBossRoomWait(); + } +} + +/* 8071A808-8071AF14 0067C8 070C+00 1/1 0/0 0/0 .text anm_se_set__FP10e_mk_class */ +static void anm_se_set(e_mk_class* i_this) { + // NONMATCHING + static u16 bo_eno_0[4] = { + 0x8211, + 0x8212, + 0x8213, + 0x820C, + }; + + static u16 bo_eno_1[2] = { + 0x8214, + 0x8215, + }; + + if (i_this->mAnm == 40) { + if (i_this->mpModelMorf->checkFrame(2.0f) || i_this->mpModelMorf->checkFrame(13.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_BREATH, -1); + } + } else if (i_this->mAnm == 35) { + if (i_this->mpModelMorf->checkFrame(3.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_DAMAGE_L, -1); + } + + if ((i_this->mpModelMorf->checkFrame(21.0f) || i_this->mpModelMorf->checkFrame(31.0f)) || i_this->mpModelMorf->checkFrame(41.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_MK_JUMP_END, 0, -1); + } + } else if (i_this->mAnm == 31 || i_this->mAnm == 32) { + if (i_this->mpModelMorf->checkFrame(1.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_PROVOKE_A, -1); + } + } else if (i_this->mAnm == 33) { + if (i_this->mpModelMorf->checkFrame(1.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_PROVOKE_B, -1); + } + + if (i_this->mpModelMorf->checkFrame(15.0f) || i_this->mpModelMorf->checkFrame(64.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_MK_FOOTNOTE, 0, -1); + } + + if (i_this->mpModelMorf->checkFrame(32.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_MK_SCRATCH_HIP, 0, -1); + } + } else if (i_this->mAnm == 25 || i_this->mAnm == 15) { + if (i_this->mpModelMorf->checkFrame(1.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_SNEER, -1); + } + } else if (i_this->mAnm == 10) { + if (i_this->mpModelMorf->checkFrame(1.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_DOWN, -1); + } + } else if (i_this->mAnm == 29) { + if (i_this->mpModelMorf->checkFrame(8.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_MK_JUMP_START, 0, -1); + } + } else if (i_this->mAnm == 39) { + if (i_this->mpModelMorf->checkFrame(20.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_MK_JUMP_START, 0, -1); + } + } else if (i_this->mAnm == 26) { + if (i_this->mpModelMorf->checkFrame(3.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_MK_JUMP_END, 0, -1); + } + } else if (i_this->mAnm == 39) { + if (i_this->mpModelMorf->checkFrame(38.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_MK_JUMP_END, 0, -1); + } + } else if (i_this->mAnm == 34) { + if (i_this->mpModelMorf->checkFrame(1.0f)) { + i_this->mSound.startCreatureVoice(Z2SE_EN_MK_V_BREATH, -1); + } + + if (i_this->mpModelMorf->checkFrame(1.0f) || i_this->mpModelMorf->checkFrame(6.0f)) { + i_this->mSound.startCreatureSound(Z2SE_EN_MK_FOOTNOTE, 0, -1); + } + } + + if (i_this->mAnm == 19 || i_this->mAnm == 21) { + for (int i = 0; i < 2; i++) { + i_this->field_0xc18[i] = dComIfGp_particle_set(i_this->field_0xc18[i], bo_eno_1[i], &i_this->current.pos, NULL, 0); + + JPABaseEmitter *pEmitter1 = dComIfGp_particle_getEmitter(i_this->field_0xc18[i]); + if (pEmitter1 != NULL) { + pEmitter1->setGlobalSRTMatrix(i_this->mpBoomerangModel->getBaseTRMtx()); + } + } + } + + if (i_this->mAnm == 21) { + for (int i = 0; i < 4; i++) { + i_this->field_0xc20[i] = dComIfGp_particle_set(i_this->field_0xc20[i], bo_eno_0[i], &i_this->current.pos, NULL, 0); + + JPABaseEmitter *pEmitter2 = dComIfGp_particle_getEmitter(i_this->field_0xc20[i]); + if (pEmitter2 != NULL) { + if (i == 0) { + pEmitter2->setGlobalSRTMatrix(i_this->mpModelMorf->getModel()->getAnmMtx(22)); + } else { + pEmitter2->setGlobalSRTMatrix(i_this->mpBoomerangModel->getBaseTRMtx()); + } + } + } + } +} + +/* 8071AF14-8071B9C4 006ED4 0AB0+00 2/1 0/0 0/0 .text daE_MK_Execute__FP10e_mk_class */ +static int daE_MK_Execute(e_mk_class* i_this) { + cXyz sp6c, sp78, sp84; + i_this->field_0x6b4++; + + for (int i = 0; i < 4; i++) { + if (i_this->field_0x6fc[i] != 0) { + i_this->field_0x6fc[i]--; + } + } + + if (i_this->field_0x704 != 0) { + i_this->field_0x704--; + } + + if (i_this->field_0x71a != 0) { + i_this->field_0x71a--; + } + + if (l_HIO.mHaltAction == 0) { + action(i_this); + demo_camera(i_this); + } + + if (i_this->field_0x6be != 0) { + sp6c = i_this->field_0x6cc - i_this->field_0x6c0; + f32 fVar1 = sp6c.abs(); + + sp6c = i_this->field_0x6cc - i_this->current.pos; + f32 fVar2 = sp6c.abs(); + + f32 fVar3 = fVar1 * 0.1f; + + if (fVar3 > 200.0f) { + fVar3 = 200.0f; + } + + int iVar1 = (fVar2 / fVar1) * 32768.0f; + i_this->field_0x6d8 = fVar3 * cM_ssin(iVar1); + } else { + i_this->field_0x6d8 = 0; + } + + mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y + i_this->field_0x6d8, i_this->current.pos.z); + mDoMtx_stack_c::YrotM(i_this->shape_angle.y); + mDoMtx_stack_c::XrotM(i_this->shape_angle.x); + mDoMtx_stack_c::scaleM(l_HIO.mSize, l_HIO.mSize, l_HIO.mSize); + + J3DModel *model = i_this->mpModelMorf->getModel(); + model->setBaseTRMtx(mDoMtx_stack_c::get()); + i_this->mpModelMorf->play(0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this))); + + if (i_this->field_0x5d4 == 0) { + i_this->field_0x5d4 = cM_rndF(60.0f) + 30.0f; + } else { + i_this->field_0x5d4--; + + if (i_this->field_0x5d4 <= 12) { + i_this->field_0x5d8 = 11.99f - i_this->field_0x5d4; + } else { + i_this->field_0x5d8 = 0.0f; + } + } + + if (i_this->field_0x60e != 0) { + i_this->mBtp->setFrame(i_this->field_0x5d8 + 12.0f); + } else { + i_this->mBtp->setFrame(i_this->field_0x5d8); + } + + i_this->mpModelMorf->modelCalc(); + PSMTXCopy(model->getAnmMtx(7), *calc_mtx); + sp6c.set(0.0f, 0.0f, 0.0f); + MtxPosition(&sp6c, &i_this->eyePos); + i_this->attention_info.position = i_this->eyePos; + i_this->attention_info.position.y += 70.0f; + + if (i_this->field_0x60c != 0) { + if (i_this->field_0x5e0 == 0) { + PSMTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(10), mDoMtx_stack_c::get()); + mDoMtx_stack_c::transM(l_HIO.mCrownPosAdjust.x, l_HIO.mCrownPosAdjust.y, l_HIO.mCrownPosAdjust.z); + i_this->mpCrownModelMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get()); + mDoMtx_multVecZero(mDoMtx_stack_c::get(), &i_this->field_0x5e4); + } else { + cMtx_YrotS(*calc_mtx, i_this->field_0x5f0.y); + sp6c.x = 0.0f; + sp6c.y = i_this->field_0x5fc; + sp6c.z = i_this->field_0x600; + MtxPosition(&sp6c, &sp78); + i_this->field_0x5e4 += sp78; + i_this->field_0x5fc -= 5.0f; + + if (i_this->field_0x5e4.y <= STAGE_CENTER_POS.y + 5.0f) { + i_this->field_0x5e4.y = STAGE_CENTER_POS.y + 5.0f; + + if (i_this->field_0x5fc < -30.0f) { + i_this->field_0x5fc *= -0.4f; + i_this->field_0x604 = 3500.0f; + } else { + i_this->field_0x5fc = 0.0f; + } + + i_this->field_0x600 *= 0.75f; + } + + s16 sVar2 = i_this->field_0x604 * cM_ssin(i_this->field_0x6b4 * 3000); + s16 sVar3 = i_this->field_0x604 * cM_ssin(i_this->field_0x6b4 * 4000); + cLib_addCalc0(&i_this->field_0x604, 0.1f, 50.0f); + mDoMtx_stack_c::transS(i_this->field_0x5e4.x, i_this->field_0x5e4.y, i_this->field_0x5e4.z); + mDoMtx_stack_c::YrotM(i_this->field_0x5f0.y); + mDoMtx_stack_c::XrotM(i_this->field_0x5f0.x + sVar2); + mDoMtx_stack_c::ZrotM(sVar3); + mDoMtx_stack_c::transM(0.0f, 15.0f, -10.0f); + mDoMtx_stack_c::XrotM(-8000); + mDoMtx_stack_c::ZrotM(-0x4000); + i_this->mpCrownModelMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get()); + cLib_addCalcAngleS2(&i_this->field_0x5f0.x, 0, 2, 0x400); + } + + i_this->mpCrownModelMorf->play(NULL, 0, 0); + i_this->mpCrownModelMorf->modelCalc(); + } + + if (i_this->field_0x60d != 0) { + PSMTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(23), mDoMtx_stack_c::get()); + mDoMtx_stack_c::scaleM(l_HIO.mBoomerangRatio, l_HIO.mBoomerangRatio, l_HIO.mBoomerangRatio); + mDoMtx_stack_c::transM(15.0f, 70.0f, 20.0f); + mDoMtx_stack_c::YrotM(-0x652C); + mDoMtx_stack_c::XrotM(-0x2219); + mDoMtx_stack_c::ZrotM(0x38D8); + i_this->mpBoomerangModel->setBaseTRMtx(mDoMtx_stack_c::get()); + } + + if (i_this->field_0x707 == 7) { + u32 i_parameters = 0; + if (i_this->mDemoMode != 0) { + i_parameters = 1; + } + + i_this->field_0x708 = fopAcM_createChild(PROC_E_MK_BO, fopAcM_GetID(i_this), i_parameters, + &i_this->current.pos, fopAcM_GetRoomNo(i_this), NULL, NULL, + -1, NULL); + i_this->field_0x707 = 0; + } + + if (i_this->field_0x707 == 1) { + e_mk_bo_class* i_actor = (e_mk_bo_class*)fopAcM_SearchByID(i_this->field_0x708); + if (i_actor != NULL) { + PSMTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(23), *calc_mtx); + sp6c.set(0.0f, 0.0f, 0.0f); + MtxPosition(&sp6c, &sp78); + i_actor->current.pos = sp78; + i_actor->field_0x9b4 = 0; + i_this->field_0x707 = 0; + } + } + + PSMTXCopy(model->getAnmMtx(24), *calc_mtx); + sp6c.set(20.0f, 0.0f, 0.0f); + MtxPosition(&sp6c, &sp78); + + if (i_this->mAction >= 9) { + i_this->eyePos = sp78; + i_this->attention_info.position = i_this->eyePos; + i_this->attention_info.position.y += 40.0f; + } + + if (i_this->field_0x704 != 0) { + sp78.y += 100000.0f; + } + + i_this->field_0xad0.SetC(sp78); + i_this->field_0xad0.SetR(l_HIO.mSize * 60.0f); + dComIfG_Ccsp()->Set(&i_this->field_0xad0); + + sp6c.set(-70.0f, 70.0f, 0.0f); + MtxPosition(&sp6c, &sp78); + + if (i_this->field_0x704 != 0) { + sp78.y += 100000.0f; + } + + i_this->field_0x998.SetC(sp78); + i_this->field_0x998.SetR(l_HIO.mSize * 60.0f); + dComIfG_Ccsp()->Set(&i_this->field_0x998); + + if (i_this->field_0x706 != 0) { + i_this->field_0x706--; + if (i_this->field_0x706 == 0) { + dComIfGp_particle_set(0x15E, &i_this->eyePos, &i_this->shape_angle, NULL); + } + } + + anm_se_set(i_this); + return 1; +} + +/* 8071B9C4-8071B9CC 007984 0008+00 1/0 0/0 0/0 .text daE_MK_IsDelete__FP10e_mk_class */ +static int daE_MK_IsDelete(e_mk_class* i_this) { + return 1; +} + +/* 8071B9CC-8071BA34 00798C 0068+00 1/0 0/0 0/0 .text daE_MK_Delete__FP10e_mk_class */ +static int daE_MK_Delete(e_mk_class* i_this) { + fopAcM_GetID(i_this); + dComIfG_resDelete(&i_this->mPhase, "E_mk"); + if (i_this->field_0xcf5 != 0) { + lbl_210_bss_AA = 0; + } + + if (i_this->heap != NULL) { + i_this->mpModelMorf->stopZelAnime(); + } + + return 1; +} + +/* 8071BA34-8071BCCC 0079F4 0298+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +static int useHeapInit(fopAc_ac_c* actor) { + e_mk_class *i_this = (e_mk_class*)actor; + i_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes("E_mk", 48), NULL, NULL, + (J3DAnmTransform*)dComIfG_getObjectRes("E_mk", 40), 0, 1.0f, + 0, -1, &i_this->mSound, 0x80000, 0x11020084); + if (i_this->mpModelMorf == NULL || i_this->mpModelMorf->getModel() == NULL) { + return 0; + } + + i_this->mBtp = new mDoExt_btpAnm(); + if (i_this->mBtp == NULL) { + return 0; + } + if (i_this->mBtp->init(i_this->mpModelMorf->getModel()->getModelData(), (J3DAnmTexPattern*)dComIfG_getObjectRes("E_mk", 55), + 1, 0, 1.0f, 0, -1) == 0) { + return 0; + } + + i_this->mpCrownModelMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_mk", 49), NULL, NULL, + (J3DAnmTransform*)dComIfG_getObjectRes("E_mk", 41), 0, 1.0f, + 0, -1, 1, NULL, 0x80000, 0x11000084); + if (i_this->mpCrownModelMorf == NULL || i_this->mpCrownModelMorf->getModel() == NULL) { + return 0; + } + + J3DModelData *modelData = (J3DModelData *)dComIfG_getObjectRes("E_mk", 46); + JUT_ASSERT(4743, modelData != 0); + i_this->mpBoomerangModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (i_this->mpBoomerangModel == NULL) { + return 0; + } + + return 1; +} + +/* 8071BD14-8071C190 007CD4 047C+00 1/0 0/0 0/0 .text daE_MK_Create__FP10fopAc_ac_c */ +static int daE_MK_Create(fopAc_ac_c* actor) { + // NONMATCHING + static dCcD_SrcSph cc_sph_src = { + { + {0x0, {{0x0, 0x0, 0x0}, {0xd8fbfdff, 0x43}, 0x75}}, // mObj + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {{0.0f, 0.0f, 0.0f}, 60.0f} // mSph + } // mSphAttr + }; + + fopAcM_SetupActor(actor, e_mk_class); + e_mk_class *i_this; + + int phase = dComIfG_resLoad(&i_this->mPhase, "E_mk"); + if (phase == cPhs_COMPLEATE_e) { + OS_REPORT("E_MK PARAM %x\n", fopAcM_GetParam(i_this)); + if (strcmp(dComIfGp_getStartStageName(), "D_MNO05B") == 0 && dComIfGs_isStageMiddleBoss()) { + OS_REPORT("中ボスE_MK やられ後なので再セットしません\n"); // Since it's the middle boss E_MK after being defeated, I won't reset it. + return cPhs_ERROR_e; + } + + u32 uVar1 = fopAcM_GetParam(i_this) >> 24; + if (uVar1 != 0xFF) { + if (dComIfGs_isSwitch(uVar1, fopAcM_GetRoomNo(i_this))) { + OS_REPORT("E_MK やられ後なので再セットしません\n"); // Since it's after the E_MK was done, I won't reset it. + return cPhs_ERROR_e; + } + } + + i_this->field_0x5b6 = fopAcM_GetParam(i_this); + OS_REPORT("E_MK//////////////E_MK SET 1 !!\n"); + + if (!fopAcM_entrySolidHeap(i_this, useHeapInit, 0x56f0)) { + OS_REPORT("//////////////E_MK SET NON !!\n"); + return cPhs_ERROR_e; + } + + lbl_210_bss_130 = 0; + if (lbl_210_bss_AA == 0) { + i_this->field_0xcf5 = 1; + lbl_210_bss_AA = 1; + l_HIO.field_0x4 = -1; + } + + i_this->attention_info.flags = 4; + + fopAcM_SetMtx(i_this, i_this->mpModelMorf->getModel()->getBaseTRMtx()); + fopAcM_SetMin(i_this, -500.0f, -500.0f, -500.0f); + fopAcM_SetMax(i_this, 500.0f, 500.0f, 500.0f); + + i_this->mAcch.Set(fopAcM_GetPosition_p(i_this), fopAcM_GetOldPosition_p(i_this), i_this, 1, &i_this->mAcchCir, + fopAcM_GetSpeed_p(i_this), NULL, NULL); + i_this->mAcchCir.SetWall(80.0f, 30.0f); + i_this->health = 200; + i_this->field_0x560 = 200; + + i_this->mSound.init(&i_this->current.pos, &i_this->eyePos, 3, 1); + i_this->mAtInfo.mpSound = &i_this->mSound; + + i_this->attention_info.distances[2] = 4; + + i_this->field_0x95c.Init(0xFF, 0, i_this); + i_this->field_0xad0.Set(cc_sph_src); + i_this->field_0xad0.SetStts(&i_this->field_0x95c); + i_this->field_0x998.Set(cc_sph_src); + i_this->field_0x998.SetStts(&i_this->field_0x95c); + i_this->field_0x998.OnTgNoHitMark(); + i_this->field_0x60c = 1; + i_this->field_0x60d = 1; + + if (fopAcM_GetRoomNo(i_this) == 4) { + i_this->mAction = e_mk_class::ACT_R04_DEMO; + i_this->current.pos.set(0.0f, 3900.0f, -3000.0f); + i_this->current.angle.y = 0; + i_this->home = i_this->current; + } else { + STAGE_CENTER_POS = i_this->home.pos; + STAGE_CENTER_POS.y -= 500.0f; + STAGE_ANGLE_Y = i_this->home.angle.y; + + int uVar2 = fopAcM_GetParam(i_this) >> 16; + if (uVar2 != 0xFF) { + if (dComIfGs_isSwitch(uVar2, fopAcM_GetRoomNo(i_this))) { + dComIfGs_offSwitch(uVar2, fopAcM_GetRoomNo(i_this)); + i_this->mAction = e_mk_class::ACT_WAIT; + Z2GetAudioMgr()->subBgmStart(Z2BGM_BOOMERAMG_MONKEY); + } + } else { + i_this->mAction = e_mk_class::ACT_S_DEMO; + int uVar3 = (u8)fopAcM_GetParam(i_this) & (0xFF | 0xFFFF01); + cXyz sp30(-21.0f, 5114.0f, -4941.0f); + i_this->mBabaChildID = fopAcM_createChild(PROC_E_DB, fopAcM_GetID(i_this), uVar3, + &sp30, fopAcM_GetRoomNo(i_this), NULL, + NULL, -1, NULL); + + sp30.set(-10.0f, 5114.0f, -4401.0f); + i_this->mBabaChildID2 = fopAcM_createChild(PROC_E_DB, fopAcM_GetID(i_this), uVar3, + &sp30, fopAcM_GetRoomNo(i_this), NULL, + NULL, -1, NULL); + + fopAcM_OnStatus(i_this, 0x4000); + } + } + + i_this->gravity = -5.0f; + i_this->scale.x = l_HIO.mSize * l_HIO.mBoomerangRatio; + daE_MK_Execute(i_this); + } + + return phase; +} + +AUDIO_INSTANCES /* 8071C9B8-8071C9D8 -00001 0020+00 1/0 0/0 0/0 .data l_daE_MK_Method */ static actor_method_class l_daE_MK_Method = { - (process_method_func)daE_MK_Create__FP10fopAc_ac_c, - (process_method_func)daE_MK_Delete__FP10e_mk_class, - (process_method_func)daE_MK_Execute__FP10e_mk_class, - (process_method_func)daE_MK_IsDelete__FP10e_mk_class, - (process_method_func)daE_MK_Draw__FP10e_mk_class, + (process_method_func)daE_MK_Create, + (process_method_func)daE_MK_Delete, + (process_method_func)daE_MK_Execute, + (process_method_func)daE_MK_IsDelete, + (process_method_func)daE_MK_Draw, }; /* 8071C9D8-8071CA08 -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_MK */ @@ -398,1776 +2903,3 @@ extern actor_process_profile_definition g_profile_E_MK = { fopAc_ENEMY_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 8071CA08-8071CA14 00020C 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, -}; - -/* 8071CA14-8071CA20 000218 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, -}; - -/* 8071CA20-8071CA44 000224 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_8071C528, - (void*)NULL, - (void*)NULL, - (void*)func_8071C520, -}; - -/* 8071CA44-8071CA50 000248 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, -}; - -/* 8071CA50-8071CA5C 000254 000C+00 2/2 0/0 0/0 .data __vt__12daE_MK_HIO_c */ -SECTION_DATA extern void* __vt__12daE_MK_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12daE_MK_HIO_cFv, -}; - -/* 8071412C-8071417C 0000EC 0050+00 1/1 0/0 0/0 .text __ct__12daE_MK_HIO_cFv */ -daE_MK_HIO_c::daE_MK_HIO_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C554-8071C558 000010 0004+00 2/4 0/0 0/0 .rodata @3794 */ -SECTION_RODATA static f32 const lit_3794 = -1.0f; -COMPILER_STRIP_GATE(0x8071C554, &lit_3794); - -/* 8071C7E8-8071C7E8 0002A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8071C7E8 = "E_mk"; -#pragma pop - -/* 8071417C-80714228 00013C 00AC+00 9/9 0/0 0/0 .text anm_init__FP10e_mk_classifUcf */ -static void anm_init(e_mk_class* param_0, int param_1, f32 param_2, u8 param_3, f32 param_4) { - // NONMATCHING -} - -/* 80714228-807142D0 0001E8 00A8+00 2/2 0/0 0/0 .text ok_anm_init__FP10e_mk_classifUcf */ -static void ok_anm_init(e_mk_class* param_0, int param_1, f32 param_2, u8 param_3, - f32 param_4) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C558-8071C55C 000014 0004+00 0/8 0/0 0/0 .rodata @3862 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3862 = 50.0f; -COMPILER_STRIP_GATE(0x8071C558, &lit_3862); -#pragma pop - -/* 8071C55C-8071C560 000018 0004+00 0/2 0/0 0/0 .rodata @3863 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3863 = 1200.0f; -COMPILER_STRIP_GATE(0x8071C55C, &lit_3863); -#pragma pop - -/* 8071C560-8071C564 00001C 0004+00 1/9 0/0 0/0 .rodata @3864 */ -SECTION_RODATA static f32 const lit_3864 = 500.0f; -COMPILER_STRIP_GATE(0x8071C560, &lit_3864); - -/* 807142D0-80714498 000290 01C8+00 1/0 0/0 0/0 .text daE_MK_Draw__FP10e_mk_class */ -static void daE_MK_Draw(e_mk_class* param_0) { - // NONMATCHING -} - -/* 80714498-807144D4 000458 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 807144D4-80714534 000494 0060+00 1/1 0/0 0/0 .text s_obj_delete__FPvPv */ -static void s_obj_delete(void* param_0, void* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071CA68-8071CA6C 000008 0001+03 5/5 0/0 0/0 .bss @1109 */ -static u8 lit_1109[1 + 3 /* padding */]; - -/* 8071CA6C-8071CA70 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */ -#pragma push -#pragma force_active on -static u8 lit_1107[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA70-8071CA74 000010 0001+03 0/0 0/0 0/0 .bss @1105 */ -#pragma push -#pragma force_active on -static u8 lit_1105[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA74-8071CA78 000014 0001+03 0/0 0/0 0/0 .bss @1104 */ -#pragma push -#pragma force_active on -static u8 lit_1104[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA78-8071CA7C 000018 0001+03 0/0 0/0 0/0 .bss @1099 */ -#pragma push -#pragma force_active on -static u8 lit_1099[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA7C-8071CA80 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */ -#pragma push -#pragma force_active on -static u8 lit_1097[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA80-8071CA84 000020 0001+03 0/0 0/0 0/0 .bss @1095 */ -#pragma push -#pragma force_active on -static u8 lit_1095[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA84-8071CA88 000024 0001+03 0/0 0/0 0/0 .bss @1094 */ -#pragma push -#pragma force_active on -static u8 lit_1094[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA88-8071CA8C 000028 0001+03 0/0 0/0 0/0 .bss @1057 */ -#pragma push -#pragma force_active on -static u8 lit_1057[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA8C-8071CA90 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */ -#pragma push -#pragma force_active on -static u8 lit_1055[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA90-8071CA94 000030 0001+03 0/0 0/0 0/0 .bss @1053 */ -#pragma push -#pragma force_active on -static u8 lit_1053[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA94-8071CA98 000034 0001+03 0/0 0/0 0/0 .bss @1052 */ -#pragma push -#pragma force_active on -static u8 lit_1052[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA98-8071CA9C 000038 0001+03 0/0 0/0 0/0 .bss @1014 */ -#pragma push -#pragma force_active on -static u8 lit_1014[1 + 3 /* padding */]; -#pragma pop - -/* 8071CA9C-8071CAA0 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */ -#pragma push -#pragma force_active on -static u8 lit_1012[1 + 3 /* padding */]; -#pragma pop - -/* 8071CAA0-8071CAA4 000040 0001+03 0/0 0/0 0/0 .bss @1010 */ -#pragma push -#pragma force_active on -static u8 lit_1010[1 + 3 /* padding */]; -#pragma pop - -/* 8071CAA4-8071CAA8 000044 0001+03 0/0 0/0 0/0 .bss @1009 */ -#pragma push -#pragma force_active on -static u8 lit_1009[1 + 3 /* padding */]; -#pragma pop - -/* 8071CAA8-8071CAB4 000048 000C+00 0/1 0/0 0/0 .bss @3766 */ -#pragma push -#pragma force_active on -static u8 lit_3766[12]; -#pragma pop - -/* 8071CAB4-8071CAC0 000054 000C+00 0/2 0/0 0/0 .bss demo_jump_pos_1 */ -#pragma push -#pragma force_active on -static u8 demo_jump_pos_1[12]; -#pragma pop - -/* 8071CAC0-8071CACC 000060 000C+00 0/1 0/0 0/0 .bss @3767 */ -#pragma push -#pragma force_active on -static u8 lit_3767[12]; -#pragma pop - -/* 8071CACC-8071CAD8 00006C 000C+00 0/2 0/0 0/0 .bss demo_jump_pos_2 */ -#pragma push -#pragma force_active on -static u8 demo_jump_pos_2[12]; -#pragma pop - -/* 8071CAD8-8071CAE4 000078 000C+00 0/1 0/0 0/0 .bss @3768 */ -#pragma push -#pragma force_active on -static u8 lit_3768[12]; -#pragma pop - -/* 8071CAE4-8071CAF0 000084 000C+00 0/2 0/0 0/0 .bss demo_jump_pos_3 */ -#pragma push -#pragma force_active on -static u8 demo_jump_pos_3[12]; -#pragma pop - -/* 8071CAF0-8071CAFC 000090 000C+00 0/1 0/0 0/0 .bss @3769 */ -#pragma push -#pragma force_active on -static u8 lit_3769[12]; -#pragma pop - -/* 8071CAFC-8071CB08 00009C 000C+00 1/6 0/0 0/0 .bss STAGE_CENTER_POS */ -static u8 STAGE_CENTER_POS[12]; - -/* 8071CB08-8071CB0C -00001 0004+00 2/5 0/0 0/0 .bss None */ -/* 8071CB08 0002+00 data_8071CB08 STAGE_ANGLE_Y */ -/* 8071CB0A 0002+00 data_8071CB0A None */ -static u8 struct_8071CB08[4]; - -/* 8071CB0C-8071CB18 0000AC 000C+00 0/1 0/0 0/0 .bss @3772 */ -#pragma push -#pragma force_active on -static u8 lit_3772[12]; -#pragma pop - -/* 8071CB18-8071CB3C 0000B8 0024+00 1/3 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[36]; - -/* 8071CB3C-8071CB8C 0000DC 0050+00 4/7 0/0 0/0 .bss target_info */ -static u8 target_info[80]; - -/* 8071CB8C-8071CB90 00012C 0004+00 4/7 0/0 0/0 .bss target_info_count */ -static u8 target_info_count[4]; - -/* 80714534-807145A4 0004F4 0070+00 4/4 0/0 0/0 .text s_h_sub__FPvPv */ -static void s_h_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C564-8071C56C 000020 0004+04 0/1 0/0 0/0 .rodata @3969 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3969[1 + 1 /* padding */] = { - 1500.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x8071C564, &lit_3969); -#pragma pop - -/* 8071C56C-8071C574 000028 0008+00 0/3 0/0 0/0 .rodata @3970 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3970[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8071C56C, &lit_3970); -#pragma pop - -/* 8071C574-8071C57C 000030 0008+00 0/3 0/0 0/0 .rodata @3971 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3971[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8071C574, &lit_3971); -#pragma pop - -/* 8071C57C-8071C584 000038 0008+00 0/3 0/0 0/0 .rodata @3972 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3972[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8071C57C, &lit_3972); -#pragma pop - -/* 8071C584-8071C588 000040 0004+00 0/3 0/0 0/0 .rodata @3973 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3973 = 700.0f; -COMPILER_STRIP_GATE(0x8071C584, &lit_3973); -#pragma pop - -/* 8071C588-8071C58C 000044 0004+00 0/1 0/0 0/0 .rodata @3974 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3974 = 3.0f / 10.0f; -COMPILER_STRIP_GATE(0x8071C588, &lit_3974); -#pragma pop - -/* 8071C58C-8071C590 000048 0004+00 0/6 0/0 0/0 .rodata @3975 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3975 = 100.0f; -COMPILER_STRIP_GATE(0x8071C58C, &lit_3975); -#pragma pop - -/* 8071C590-8071C594 00004C 0004+00 0/2 0/0 0/0 .rodata @3976 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3976 = 2000.0f; -COMPILER_STRIP_GATE(0x8071C590, &lit_3976); -#pragma pop - -/* 807145A4-80714874 000564 02D0+00 1/1 0/0 0/0 .text search_hasira__FP10e_mk_class */ -static void search_hasira(e_mk_class* param_0) { - // NONMATCHING -} - -/* 80714874-807148FC 000834 0088+00 1/1 0/0 0/0 .text s_d_sub__FPvPv */ -static void s_d_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C594-8071C598 000050 0004+00 0/4 0/0 0/0 .rodata @4057 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4057 = 0.5f; -COMPILER_STRIP_GATE(0x8071C594, &lit_4057); -#pragma pop - -/* 8071C598-8071C59C 000054 0004+00 0/1 0/0 0/0 .rodata @4058 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4058 = 5000.0f; -COMPILER_STRIP_GATE(0x8071C598, &lit_4058); -#pragma pop - -/* 807148FC-80714B78 0008BC 027C+00 1/1 0/0 0/0 .text search_db__FP10e_mk_class */ -static void search_db(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C59C-8071C5A0 000058 0004+00 0/5 0/0 0/0 .rodata @4286 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4286 = 2.0f; -COMPILER_STRIP_GATE(0x8071C59C, &lit_4286); -#pragma pop - -/* 8071C5A0-8071C5A4 00005C 0004+00 0/6 0/0 0/0 .rodata @4287 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4287 = 3.0f; -COMPILER_STRIP_GATE(0x8071C5A0, &lit_4287); -#pragma pop - -/* 8071C5A4-8071C5A8 000060 0004+00 0/10 0/0 0/0 .rodata @4288 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4288 = 5.0f; -COMPILER_STRIP_GATE(0x8071C5A4, &lit_4288); -#pragma pop - -/* 8071C5A8-8071C5AC 000064 0004+00 0/3 0/0 0/0 .rodata @4289 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4289 = 800.0f; -COMPILER_STRIP_GATE(0x8071C5A8, &lit_4289); -#pragma pop - -/* 80714B78-807154A8 000B38 0930+00 2/1 0/0 0/0 .text e_mk_move__FP10e_mk_class */ -static void e_mk_move(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C5AC-8071C5B0 000068 0004+00 0/3 0/0 0/0 .rodata @4290 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4290 = 70.0f; -COMPILER_STRIP_GATE(0x8071C5AC, &lit_4290); -#pragma pop - -/* 8071C5B0-8071C5B4 00006C 0004+00 0/5 0/0 0/0 .rodata @4291 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4291 = 200.0f; -COMPILER_STRIP_GATE(0x8071C5B0, &lit_4291); -#pragma pop - -/* 8071C5B4-8071C5B8 000070 0004+00 0/3 0/0 0/0 .rodata @4292 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4292 = 300.0f; -COMPILER_STRIP_GATE(0x8071C5B4, &lit_4292); -#pragma pop - -/* 8071C5B8-8071C5BC 000074 0004+00 0/1 0/0 0/0 .rodata @4293 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4293 = 0.75f; -COMPILER_STRIP_GATE(0x8071C5B8, &lit_4293); -#pragma pop - -/* 8071C5BC-8071C5C0 000078 0004+00 0/2 0/0 0/0 .rodata @4321 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4321 = 40.0f; -COMPILER_STRIP_GATE(0x8071C5BC, &lit_4321); -#pragma pop - -/* 8071C5C0-8071C5C4 00007C 0004+00 0/4 0/0 0/0 .rodata @4322 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4322 = 10.0f; -COMPILER_STRIP_GATE(0x8071C5C0, &lit_4322); -#pragma pop - -/* 807154A8-80715618 001468 0170+00 1/1 0/0 0/0 .text e_mk_wait__FP10e_mk_class */ -static void e_mk_wait(e_mk_class* param_0) { - // NONMATCHING -} - -/* 80715618-80715B18 0015D8 0500+00 2/1 0/0 0/0 .text e_mk_shoot__FP10e_mk_class */ -static void e_mk_shoot(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071CB90-8071CB94 000130 0004+00 1/2 0/0 0/0 .bss None */ -static u8 data_8071CB90[4]; - -/* 80715B18-80715D2C 001AD8 0214+00 1/1 0/0 0/0 .text e_mk_yoro__FP10e_mk_class */ -static void e_mk_yoro(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C5C4-8071C5C8 000080 0004+00 0/2 0/0 0/0 .rodata @4434 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4434 = 15.0f; -COMPILER_STRIP_GATE(0x8071C5C4, &lit_4434); -#pragma pop - -/* 8071C5C8-8071C5CC 000084 0004+00 0/0 0/0 0/0 .rodata @4435 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4435 = 0x3EAA7EFA; -COMPILER_STRIP_GATE(0x8071C5C8, &lit_4435); -#pragma pop - -/* 8071C5CC-8071C5D0 000088 0004+00 0/7 0/0 0/0 .rodata @4550 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4550 = 30.0f; -COMPILER_STRIP_GATE(0x8071C5CC, &lit_4550); -#pragma pop - -/* 8071C5D0-8071C5D4 00008C 0004+00 0/5 0/0 0/0 .rodata @4551 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4551 = -10.0f; -COMPILER_STRIP_GATE(0x8071C5D0, &lit_4551); -#pragma pop - -/* 80715D2C-807160B0 001CEC 0384+00 1/1 0/0 0/0 .text e_mk_drop__FP10e_mk_class */ -static void e_mk_drop(e_mk_class* param_0) { - // NONMATCHING -} - -/* 807160B0-807161F8 002070 0148+00 1/1 0/0 0/0 .text e_mk_damage__FP10e_mk_class */ -static void e_mk_damage(e_mk_class* param_0) { - // NONMATCHING -} - -/* 807161F8-8071637C 0021B8 0184+00 1/1 0/0 0/0 .text damage_check__FP10e_mk_class */ -static void damage_check(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C5D4-8071C5D8 000090 0004+00 0/1 0/0 0/0 .rodata @4711 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4711 = 7.0f; -COMPILER_STRIP_GATE(0x8071C5D4, &lit_4711); -#pragma pop - -/* 8071637C-80716780 00233C 0404+00 1/1 0/0 0/0 .text e_mk_s_demo__FP10e_mk_class */ -static void e_mk_s_demo(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C5D8-8071C5DC 000094 0004+00 0/1 0/0 0/0 .rodata @4907 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4907 = -1000.0f; -COMPILER_STRIP_GATE(0x8071C5D8, &lit_4907); -#pragma pop - -/* 8071C5DC-8071C5E0 000098 0004+00 0/2 0/0 0/0 .rodata @4908 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4908 = 12.0f; -COMPILER_STRIP_GATE(0x8071C5DC, &lit_4908); -#pragma pop - -/* 8071C5E0-8071C5E4 00009C 0004+00 0/1 0/0 0/0 .rodata @4909 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4909 = -3.0f / 100.0f; -COMPILER_STRIP_GATE(0x8071C5E0, &lit_4909); -#pragma pop - -/* 8071C5E4-8071C5E8 0000A0 0004+00 0/1 0/0 0/0 .rodata @4910 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4910 = -2.0f; -COMPILER_STRIP_GATE(0x8071C5E4, &lit_4910); -#pragma pop - -/* 8071C5E8-8071C5EC 0000A4 0004+00 0/1 0/0 0/0 .rodata @4911 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4911 = -50.0f; -COMPILER_STRIP_GATE(0x8071C5E8, &lit_4911); -#pragma pop - -/* 8071C5EC-8071C5F4 0000A8 0004+04 0/2 0/0 0/0 .rodata @4912 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4912[1 + 1 /* padding */] = { - -20.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x8071C5EC, &lit_4912); -#pragma pop - -/* 8071C5F4-8071C5FC 0000B0 0008+00 0/2 0/0 0/0 .rodata @4914 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4914[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8071C5F4, &lit_4914); -#pragma pop - -/* 80716780-80716F48 002740 07C8+00 1/1 0/0 0/0 .text e_mk_e_demo__FP10e_mk_class */ -static void e_mk_e_demo(e_mk_class* param_0) { - // NONMATCHING -} - -/* 80716F48-80717400 002F08 04B8+00 2/1 0/0 0/0 .text e_mk_r04_demo__FP10e_mk_class */ -static void e_mk_r04_demo(e_mk_class* param_0) { - // NONMATCHING -} - -/* 80717400-807174E4 0033C0 00E4+00 1/1 0/0 0/0 .text cam_3d_morf__FP10e_mk_classf */ -static void cam_3d_morf(e_mk_class* param_0, f32 param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C5FC-8071C600 0000B8 0004+00 0/0 0/0 0/0 .rodata @5004 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5004 = -600.0f; -COMPILER_STRIP_GATE(0x8071C5FC, &lit_5004); -#pragma pop - -/* 8071C600-8071C604 0000BC 0004+00 0/2 0/0 0/0 .rodata @5297 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5297 = 2500.0f; -COMPILER_STRIP_GATE(0x8071C600, &lit_5297); -#pragma pop - -/* 8071C604-8071C608 0000C0 0004+00 0/1 0/0 0/0 .rodata @5298 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5298 = -271.0f; -COMPILER_STRIP_GATE(0x8071C604, &lit_5298); -#pragma pop - -/* 8071C608-8071C60C 0000C4 0004+00 0/1 0/0 0/0 .rodata @5299 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5299 = 4559.0f; -COMPILER_STRIP_GATE(0x8071C608, &lit_5299); -#pragma pop - -/* 8071C60C-8071C610 0000C8 0004+00 0/1 0/0 0/0 .rodata @5300 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5300 = -7241.0f; -COMPILER_STRIP_GATE(0x8071C60C, &lit_5300); -#pragma pop - -/* 8071C610-8071C614 0000CC 0004+00 0/2 0/0 0/0 .rodata @5301 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5301 = -70.0f; -COMPILER_STRIP_GATE(0x8071C610, &lit_5301); -#pragma pop - -/* 8071C614-8071C618 0000D0 0004+00 0/1 0/0 0/0 .rodata @5302 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5302 = 4378.0f; -COMPILER_STRIP_GATE(0x8071C614, &lit_5302); -#pragma pop - -/* 8071C618-8071C61C 0000D4 0004+00 0/1 0/0 0/0 .rodata @5303 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5303 = -6233.0f; -COMPILER_STRIP_GATE(0x8071C618, &lit_5303); -#pragma pop - -/* 8071C61C-8071C620 0000D8 0004+00 0/3 0/0 0/0 .rodata @5304 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5304 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x8071C61C, &lit_5304); -#pragma pop - -/* 8071C620-8071C624 0000DC 0004+00 0/1 0/0 0/0 .rodata @5305 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5305 = 3.0f / 100.0f; -COMPILER_STRIP_GATE(0x8071C620, &lit_5305); -#pragma pop - -/* 8071C624-8071C628 0000E0 0004+00 0/1 0/0 0/0 .rodata @5306 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5306 = 0x3A03126F; -COMPILER_STRIP_GATE(0x8071C624, &lit_5306); -#pragma pop - -/* 8071C628-8071C62C 0000E4 0004+00 0/1 0/0 0/0 .rodata @5307 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5307 = 150.0f; -COMPILER_STRIP_GATE(0x8071C628, &lit_5307); -#pragma pop - -/* 8071C62C-8071C630 0000E8 0004+00 0/2 0/0 0/0 .rodata @5308 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5308 = 250.0f; -COMPILER_STRIP_GATE(0x8071C62C, &lit_5308); -#pragma pop - -/* 8071C630-8071C634 0000EC 0004+00 0/1 0/0 0/0 .rodata @5309 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5309 = 230.0f; -COMPILER_STRIP_GATE(0x8071C630, &lit_5309); -#pragma pop - -/* 8071C634-8071C638 0000F0 0004+00 0/2 0/0 0/0 .rodata @5310 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5310 = 1100.0f; -COMPILER_STRIP_GATE(0x8071C634, &lit_5310); -#pragma pop - -/* 8071C638-8071C63C 0000F4 0004+00 0/3 0/0 0/0 .rodata @5311 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5311 = -300.0f; -COMPILER_STRIP_GATE(0x8071C638, &lit_5311); -#pragma pop - -/* 8071C63C-8071C640 0000F8 0004+00 0/1 0/0 0/0 .rodata @5312 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5312 = 2450.0f; -COMPILER_STRIP_GATE(0x8071C63C, &lit_5312); -#pragma pop - -/* 8071C640-8071C644 0000FC 0004+00 0/2 0/0 0/0 .rodata @5313 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5313 = 3500.0f; -COMPILER_STRIP_GATE(0x8071C640, &lit_5313); -#pragma pop - -/* 8071C644-8071C648 000100 0004+00 0/2 0/0 0/0 .rodata @5314 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5314 = -150.0f; -COMPILER_STRIP_GATE(0x8071C644, &lit_5314); -#pragma pop - -/* 8071C648-8071C64C 000104 0004+00 0/3 0/0 0/0 .rodata @5315 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5315 = -200.0f; -COMPILER_STRIP_GATE(0x8071C648, &lit_5315); -#pragma pop - -/* 8071C64C-8071C650 000108 0004+00 0/2 0/0 0/0 .rodata @5316 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5316 = 1000.0f; -COMPILER_STRIP_GATE(0x8071C64C, &lit_5316); -#pragma pop - -/* 8071C650-8071C654 00010C 0004+00 0/3 0/0 0/0 .rodata @5317 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5317 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x8071C650, &lit_5317); -#pragma pop - -/* 8071C654-8071C658 000110 0004+00 0/1 0/0 0/0 .rodata @5318 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5318 = 9.0f / 20.0f; -COMPILER_STRIP_GATE(0x8071C654, &lit_5318); -#pragma pop - -/* 8071C658-8071C65C 000114 0004+00 0/2 0/0 0/0 .rodata @5319 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5319 = 400.0f; -COMPILER_STRIP_GATE(0x8071C658, &lit_5319); -#pragma pop - -/* 8071C65C-8071C660 000118 0004+00 0/1 0/0 0/0 .rodata @5320 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5320 = -400.0f; -COMPILER_STRIP_GATE(0x8071C65C, &lit_5320); -#pragma pop - -/* 807174E4-8071823C 0034A4 0D58+00 1/1 0/0 0/0 .text demo_camera_start__FP10e_mk_class - */ -static void demo_camera_start(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C660-8071C664 00011C 0004+00 0/3 0/0 0/0 .rodata @5634 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5634 = 55.0f; -COMPILER_STRIP_GATE(0x8071C660, &lit_5634); -#pragma pop - -/* 8071C664-8071C668 000120 0004+00 0/2 0/0 0/0 .rodata @5635 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5635 = 10000.0f; -COMPILER_STRIP_GATE(0x8071C664, &lit_5635); -#pragma pop - -/* 8071C668-8071C66C 000124 0004+00 0/2 0/0 0/0 .rodata @5636 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5636 = 130.0f; -COMPILER_STRIP_GATE(0x8071C668, &lit_5636); -#pragma pop - -/* 8071C66C-8071C670 000128 0004+00 0/1 0/0 0/0 .rodata @5637 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5637 = 450.0f; -COMPILER_STRIP_GATE(0x8071C66C, &lit_5637); -#pragma pop - -/* 8071C670-8071C674 00012C 0004+00 0/2 0/0 0/0 .rodata @5638 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5638 = -100.0f; -COMPILER_STRIP_GATE(0x8071C670, &lit_5638); -#pragma pop - -/* 8071C674-8071C678 000130 0004+00 0/2 0/0 0/0 .rodata @5639 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5639 = 1.0f / 50.0f; -COMPILER_STRIP_GATE(0x8071C674, &lit_5639); -#pragma pop - -/* 8071C678-8071C67C 000134 0004+00 0/1 0/0 0/0 .rodata @5640 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5640 = 1400.0f; -COMPILER_STRIP_GATE(0x8071C678, &lit_5640); -#pragma pop - -/* 8071C67C-8071C680 000138 0004+00 0/3 0/0 0/0 .rodata @5641 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5641 = 20.0f; -COMPILER_STRIP_GATE(0x8071C67C, &lit_5641); -#pragma pop - -/* 8071C680-8071C684 00013C 0004+00 0/1 0/0 0/0 .rodata @5642 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5642 = 1300.0f; -COMPILER_STRIP_GATE(0x8071C680, &lit_5642); -#pragma pop - -/* 8071C684-8071C688 000140 0004+00 0/1 0/0 0/0 .rodata @5643 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5643 = 170.0f; -COMPILER_STRIP_GATE(0x8071C684, &lit_5643); -#pragma pop - -/* 8071C688-8071C68C 000144 0004+00 0/2 0/0 0/0 .rodata @5644 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5644 = 190.0f; -COMPILER_STRIP_GATE(0x8071C688, &lit_5644); -#pragma pop - -/* 8071C68C-8071C690 000148 0004+00 0/1 0/0 0/0 .rodata @5645 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5645 = 5500.0f; -COMPILER_STRIP_GATE(0x8071C68C, &lit_5645); -#pragma pop - -/* 8071C690-8071C694 00014C 0004+00 0/1 0/0 0/0 .rodata @5646 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5646 = 2300.0f; -COMPILER_STRIP_GATE(0x8071C690, &lit_5646); -#pragma pop - -/* 8071C694-8071C698 000150 0004+00 0/1 0/0 0/0 .rodata @5647 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5647 = -5000.0f; -COMPILER_STRIP_GATE(0x8071C694, &lit_5647); -#pragma pop - -/* 8071C698-8071C69C 000154 0004+00 0/1 0/0 0/0 .rodata @5648 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5648 = 370.0f; -COMPILER_STRIP_GATE(0x8071C698, &lit_5648); -#pragma pop - -/* 8071C69C-8071C6A0 000158 0004+00 0/2 0/0 0/0 .rodata @5649 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5649 = 600.0f; -COMPILER_STRIP_GATE(0x8071C69C, &lit_5649); -#pragma pop - -/* 8071C6A0-8071C6A4 00015C 0004+00 0/2 0/0 0/0 .rodata @5650 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5650 = 1.0f / 100.0f; -COMPILER_STRIP_GATE(0x8071C6A0, &lit_5650); -#pragma pop - -/* 8071C6A4-8071C6A8 000160 0004+00 0/1 0/0 0/0 .rodata @5651 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5651 = 900.0f; -COMPILER_STRIP_GATE(0x8071C6A4, &lit_5651); -#pragma pop - -/* 8071C6A8-8071C6AC 000164 0004+00 0/1 0/0 0/0 .rodata @5652 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5652 = 45.0f; -COMPILER_STRIP_GATE(0x8071C6A8, &lit_5652); -#pragma pop - -/* 8071C6AC-8071C6B0 000168 0004+00 0/1 0/0 0/0 .rodata @5653 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5653 = 2.0f / 5.0f; -COMPILER_STRIP_GATE(0x8071C6AC, &lit_5653); -#pragma pop - -/* 8071C6B0-8071C6B4 00016C 0004+00 0/2 0/0 0/0 .rodata @5654 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5654 = 110.0f; -COMPILER_STRIP_GATE(0x8071C6B0, &lit_5654); -#pragma pop - -/* 8071C6B4-8071C6B8 000170 0004+00 0/1 0/0 0/0 .rodata @5655 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5655 = 20000.0f; -COMPILER_STRIP_GATE(0x8071C6B4, &lit_5655); -#pragma pop - -/* 8071823C-80719488 0041FC 124C+00 1/1 0/0 0/0 .text demo_camera_end__FP10e_mk_class */ -static void demo_camera_end(e_mk_class* param_0) { - // NONMATCHING -} - -/* 80719488-807194E0 005448 0058+00 2/2 0/0 0/0 .text s_ks_sub__FPvPv */ -static void s_ks_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 807194E0-80719540 0054A0 0060+00 1/1 0/0 0/0 .text s_brg_sub__FPvPv */ -static void s_brg_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 80719540-80719594 005500 0054+00 1/1 0/0 0/0 .text s_brg_sub2__FPvPv */ -static void s_brg_sub2(void* param_0, void* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C6B8-8071C6BC 000174 0004+00 0/1 0/0 0/0 .rodata @5961 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5961 = -711.0f; -COMPILER_STRIP_GATE(0x8071C6B8, &lit_5961); -#pragma pop - -/* 8071C6BC-8071C6C0 000178 0004+00 0/1 0/0 0/0 .rodata @5962 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5962 = 3588.0f; -COMPILER_STRIP_GATE(0x8071C6BC, &lit_5962); -#pragma pop - -/* 8071C6C0-8071C6C4 00017C 0004+00 0/1 0/0 0/0 .rodata @5963 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5963 = 2730.0f; -COMPILER_STRIP_GATE(0x8071C6C0, &lit_5963); -#pragma pop - -/* 8071C6C4-8071C6C8 000180 0004+00 0/1 0/0 0/0 .rodata @5964 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5964 = 116.0f; -COMPILER_STRIP_GATE(0x8071C6C4, &lit_5964); -#pragma pop - -/* 8071C6C8-8071C6CC 000184 0004+00 0/1 0/0 0/0 .rodata @5965 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5965 = 3400.0f; -COMPILER_STRIP_GATE(0x8071C6C8, &lit_5965); -#pragma pop - -/* 8071C6CC-8071C6D0 000188 0004+00 0/1 0/0 0/0 .rodata @5966 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5966 = 4597.0f; -COMPILER_STRIP_GATE(0x8071C6CC, &lit_5966); -#pragma pop - -/* 8071C6D0-8071C6D4 00018C 0004+00 0/1 0/0 0/0 .rodata @5967 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5967 = -291.0f; -COMPILER_STRIP_GATE(0x8071C6D0, &lit_5967); -#pragma pop - -/* 8071C6D4-8071C6D8 000190 0004+00 0/1 0/0 0/0 .rodata @5968 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5968 = 3256.0f; -COMPILER_STRIP_GATE(0x8071C6D4, &lit_5968); -#pragma pop - -/* 8071C6D8-8071C6DC 000194 0004+00 0/1 0/0 0/0 .rodata @5969 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5969 = 2640.0f; -COMPILER_STRIP_GATE(0x8071C6D8, &lit_5969); -#pragma pop - -/* 8071C6DC-8071C6E0 000198 0004+00 0/1 0/0 0/0 .rodata @5970 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5970 = 1060.0f; -COMPILER_STRIP_GATE(0x8071C6DC, &lit_5970); -#pragma pop - -/* 8071C6E0-8071C6E4 00019C 0004+00 0/1 0/0 0/0 .rodata @5971 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5971 = 3795.0f; -COMPILER_STRIP_GATE(0x8071C6E0, &lit_5971); -#pragma pop - -/* 8071C6E4-8071C6E8 0001A0 0004+00 0/1 0/0 0/0 .rodata @5972 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5972 = 4086.0f; -COMPILER_STRIP_GATE(0x8071C6E4, &lit_5972); -#pragma pop - -/* 8071C6E8-8071C6EC 0001A4 0004+00 0/1 0/0 0/0 .rodata @5973 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5973 = 0x3C75C28F; -COMPILER_STRIP_GATE(0x8071C6E8, &lit_5973); -#pragma pop - -/* 8071C6EC-8071C6F0 0001A8 0004+00 0/1 0/0 0/0 .rodata @5974 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5974 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x8071C6EC, &lit_5974); -#pragma pop - -/* 8071C6F0-8071C6F4 0001AC 0004+00 0/1 0/0 0/0 .rodata @5975 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5975 = 3300.0f; -COMPILER_STRIP_GATE(0x8071C6F0, &lit_5975); -#pragma pop - -/* 8071C6F4-8071C6F8 0001B0 0004+00 0/1 0/0 0/0 .rodata @5976 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5976 = 4326.0f; -COMPILER_STRIP_GATE(0x8071C6F4, &lit_5976); -#pragma pop - -/* 8071C6F8-8071C6FC 0001B4 0004+00 0/1 0/0 0/0 .rodata @5977 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5977 = 3350.0f; -COMPILER_STRIP_GATE(0x8071C6F8, &lit_5977); -#pragma pop - -/* 8071C6FC-8071C700 0001B8 0004+00 0/1 0/0 0/0 .rodata @5978 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5978 = 220.0f; -COMPILER_STRIP_GATE(0x8071C6FC, &lit_5978); -#pragma pop - -/* 8071C700-8071C704 0001BC 0004+00 0/1 0/0 0/0 .rodata @5979 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5979 = 90.0f; -COMPILER_STRIP_GATE(0x8071C700, &lit_5979); -#pragma pop - -/* 8071C704-8071C708 0001C0 0004+00 0/1 0/0 0/0 .rodata @5980 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5980 = -477.0f; -COMPILER_STRIP_GATE(0x8071C704, &lit_5980); -#pragma pop - -/* 8071C708-8071C70C 0001C4 0004+00 0/1 0/0 0/0 .rodata @5981 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5981 = 3119.0f; -COMPILER_STRIP_GATE(0x8071C708, &lit_5981); -#pragma pop - -/* 8071C70C-8071C710 0001C8 0004+00 0/1 0/0 0/0 .rodata @5982 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5982 = 1643.0f; -COMPILER_STRIP_GATE(0x8071C70C, &lit_5982); -#pragma pop - -/* 8071C710-8071C714 0001CC 0004+00 0/1 0/0 0/0 .rodata @5983 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5983 = 1600.0f; -COMPILER_STRIP_GATE(0x8071C710, &lit_5983); -#pragma pop - -/* 8071C714-8071C718 0001D0 0004+00 0/1 0/0 0/0 .rodata @5984 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5984 = 3200.0f; -COMPILER_STRIP_GATE(0x8071C714, &lit_5984); -#pragma pop - -/* 8071C718-8071C71C 0001D4 0004+00 0/1 0/0 0/0 .rodata @5985 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5985 = 550.0f; -COMPILER_STRIP_GATE(0x8071C718, &lit_5985); -#pragma pop - -/* 8071C71C-8071C720 0001D8 0004+00 0/1 0/0 0/0 .rodata @5986 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5986 = 3373.0f; -COMPILER_STRIP_GATE(0x8071C71C, &lit_5986); -#pragma pop - -/* 8071C720-8071C724 0001DC 0004+00 0/1 0/0 0/0 .rodata @5987 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5987 = -282.0f; -COMPILER_STRIP_GATE(0x8071C720, &lit_5987); -#pragma pop - -/* 8071C724-8071C728 0001E0 0004+00 0/1 0/0 0/0 .rodata @5988 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5988 = 2534.0f; -COMPILER_STRIP_GATE(0x8071C724, &lit_5988); -#pragma pop - -/* 8071C728-8071C72C 0001E4 0004+00 0/1 0/0 0/0 .rodata @5989 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5989 = 3147.0f; -COMPILER_STRIP_GATE(0x8071C728, &lit_5989); -#pragma pop - -/* 8071C72C-8071C730 0001E8 0004+00 0/1 0/0 0/0 .rodata @5990 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5990 = 3310.0f; -COMPILER_STRIP_GATE(0x8071C72C, &lit_5990); -#pragma pop - -/* 8071C730-8071C734 0001EC 0004+00 0/1 0/0 0/0 .rodata @5991 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5991 = 3427.0f; -COMPILER_STRIP_GATE(0x8071C730, &lit_5991); -#pragma pop - -/* 8071C734-8071C738 0001F0 0004+00 0/1 0/0 0/0 .rodata @5992 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5992 = 4.0f; -COMPILER_STRIP_GATE(0x8071C734, &lit_5992); -#pragma pop - -/* 8071C738-8071C73C 0001F4 0004+00 0/1 0/0 0/0 .rodata @5993 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5993 = 3393.0f; -COMPILER_STRIP_GATE(0x8071C738, &lit_5993); -#pragma pop - -/* 8071C73C-8071C740 0001F8 0004+00 0/1 0/0 0/0 .rodata @5994 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5994 = 4180.0f; -COMPILER_STRIP_GATE(0x8071C73C, &lit_5994); -#pragma pop - -/* 8071C740-8071C744 0001FC 0004+00 0/1 0/0 0/0 .rodata @5995 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5995 = -131.0f; -COMPILER_STRIP_GATE(0x8071C740, &lit_5995); -#pragma pop - -/* 8071C744-8071C748 000200 0004+00 0/1 0/0 0/0 .rodata @5996 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5996 = 3452.0f; -COMPILER_STRIP_GATE(0x8071C744, &lit_5996); -#pragma pop - -/* 8071C748-8071C74C 000204 0004+00 0/1 0/0 0/0 .rodata @5997 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5997 = 4552.0f; -COMPILER_STRIP_GATE(0x8071C748, &lit_5997); -#pragma pop - -/* 8071C74C-8071C750 000208 0004+00 0/1 0/0 0/0 .rodata @5998 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5998 = 3422.0f; -COMPILER_STRIP_GATE(0x8071C74C, &lit_5998); -#pragma pop - -/* 8071C750-8071C754 00020C 0004+00 0/1 0/0 0/0 .rodata @5999 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5999 = 4520.0f; -COMPILER_STRIP_GATE(0x8071C750, &lit_5999); -#pragma pop - -/* 8071C754-8071C758 000210 0004+00 0/1 0/0 0/0 .rodata @6000 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6000 = 343.0f; -COMPILER_STRIP_GATE(0x8071C754, &lit_6000); -#pragma pop - -/* 8071C758-8071C75C 000214 0004+00 0/1 0/0 0/0 .rodata @6001 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6001 = 4271.0f; -COMPILER_STRIP_GATE(0x8071C758, &lit_6001); -#pragma pop - -/* 80719594-8071A06C 005554 0AD8+00 1/1 0/0 0/0 .text demo_camera_r04__FP10e_mk_class */ -static void demo_camera_r04(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C75C-8071C760 000218 0004+00 0/2 0/0 0/0 .rodata @6052 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6052 = -500.0f; -COMPILER_STRIP_GATE(0x8071C75C, &lit_6052); -#pragma pop - -/* 8071C760-8071C764 00021C 0004+00 0/1 0/0 0/0 .rodata @6053 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6053 = -120.0f; -COMPILER_STRIP_GATE(0x8071C760, &lit_6053); -#pragma pop - -/* 8071A06C-8071A22C 00602C 01C0+00 1/1 0/0 0/0 .text demo_camera_bohit__FP10e_mk_class - */ -static void demo_camera_bohit(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C7E8-8071C7E8 0002A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8071C7ED = "D_MN05"; -#pragma pop - -/* 8071A22C-8071A538 0061EC 030C+00 2/1 0/0 0/0 .text demo_camera__FP10e_mk_class */ -static void demo_camera(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C764-8071C768 000220 0004+00 0/0 0/0 0/0 .rodata @6175 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6175 = 7.5f; -COMPILER_STRIP_GATE(0x8071C764, &lit_6175); -#pragma pop - -/* 8071C768-8071C76C 000224 0004+00 1/1 0/0 0/0 .rodata @6243 */ -SECTION_RODATA static f32 const lit_6243 = 2.5f; -COMPILER_STRIP_GATE(0x8071C768, &lit_6243); - -/* 8071A538-8071A808 0064F8 02D0+00 2/1 0/0 0/0 .text action__FP10e_mk_class */ -static void action(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C76C-8071C770 000228 0004+00 0/1 0/0 0/0 .rodata @6458 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6458 = 13.0f; -COMPILER_STRIP_GATE(0x8071C76C, &lit_6458); -#pragma pop - -/* 8071C770-8071C774 00022C 0004+00 0/1 0/0 0/0 .rodata @6459 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6459 = 21.0f; -COMPILER_STRIP_GATE(0x8071C770, &lit_6459); -#pragma pop - -/* 8071C774-8071C778 000230 0004+00 0/1 0/0 0/0 .rodata @6460 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6460 = 31.0f; -COMPILER_STRIP_GATE(0x8071C774, &lit_6460); -#pragma pop - -/* 8071C778-8071C77C 000234 0004+00 0/1 0/0 0/0 .rodata @6461 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6461 = 41.0f; -COMPILER_STRIP_GATE(0x8071C778, &lit_6461); -#pragma pop - -/* 8071C77C-8071C780 000238 0004+00 0/1 0/0 0/0 .rodata @6462 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6462 = 64.0f; -COMPILER_STRIP_GATE(0x8071C77C, &lit_6462); -#pragma pop - -/* 8071C780-8071C784 00023C 0004+00 0/1 0/0 0/0 .rodata @6463 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6463 = 32.0f; -COMPILER_STRIP_GATE(0x8071C780, &lit_6463); -#pragma pop - -/* 8071C784-8071C788 000240 0004+00 0/1 0/0 0/0 .rodata @6464 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6464 = 8.0f; -COMPILER_STRIP_GATE(0x8071C784, &lit_6464); -#pragma pop - -/* 8071C788-8071C78C 000244 0004+00 0/1 0/0 0/0 .rodata @6465 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6465 = 38.0f; -COMPILER_STRIP_GATE(0x8071C788, &lit_6465); -#pragma pop - -/* 8071C78C-8071C790 000248 0004+00 0/1 0/0 0/0 .rodata @6466 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6466 = 6.0f; -COMPILER_STRIP_GATE(0x8071C78C, &lit_6466); -#pragma pop - -/* 8071A808-8071AF14 0067C8 070C+00 1/1 0/0 0/0 .text anm_se_set__FP10e_mk_class */ -static void anm_se_set(e_mk_class* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C790-8071C794 00024C 0004+00 0/1 0/0 0/0 .rodata @6730 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6730 = 32768.0f; -COMPILER_STRIP_GATE(0x8071C790, &lit_6730); -#pragma pop - -/* 8071C794-8071C798 000250 0004+00 0/1 0/0 0/0 .rodata @6731 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6731 = 60.0f; -COMPILER_STRIP_GATE(0x8071C794, &lit_6731); -#pragma pop - -/* 8071C798-8071C79C 000254 0004+00 0/1 0/0 0/0 .rodata @6732 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6732 = 0x413FD70A; -COMPILER_STRIP_GATE(0x8071C798, &lit_6732); -#pragma pop - -/* 8071C79C-8071C7A0 000258 0004+00 0/1 0/0 0/0 .rodata @6733 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6733 = -30.0f; -COMPILER_STRIP_GATE(0x8071C79C, &lit_6733); -#pragma pop - -/* 8071C7A0-8071C7A4 00025C 0004+00 0/1 0/0 0/0 .rodata @6734 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6734 = -2.0f / 5.0f; -COMPILER_STRIP_GATE(0x8071C7A0, &lit_6734); -#pragma pop - -/* 8071C7A4-8071C7A8 000260 0004+00 0/1 0/0 0/0 .rodata @6735 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6735 = 100000.0f; -COMPILER_STRIP_GATE(0x8071C7A4, &lit_6735); -#pragma pop - -/* 8071AF14-8071B9C4 006ED4 0AB0+00 2/1 0/0 0/0 .text daE_MK_Execute__FP10e_mk_class */ -static void daE_MK_Execute(e_mk_class* param_0) { - // NONMATCHING -} - -/* 8071B9C4-8071B9CC 007984 0008+00 1/0 0/0 0/0 .text daE_MK_IsDelete__FP10e_mk_class */ -static bool daE_MK_IsDelete(e_mk_class* param_0) { - return true; -} - -/* 8071B9CC-8071BA34 00798C 0068+00 1/0 0/0 0/0 .text daE_MK_Delete__FP10e_mk_class */ -static void daE_MK_Delete(e_mk_class* param_0) { - // NONMATCHING -} - -/* 8071BA34-8071BCCC 0079F4 0298+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 8071BCCC-8071BD14 007C8C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C7A8-8071C7AC 000264 0004+00 0/1 0/0 0/0 .rodata @6943 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6943 = 80.0f; -COMPILER_STRIP_GATE(0x8071C7A8, &lit_6943); -#pragma pop - -/* 8071C7AC-8071C7B0 000268 0004+00 0/1 0/0 0/0 .rodata @6944 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6944 = 3900.0f; -COMPILER_STRIP_GATE(0x8071C7AC, &lit_6944); -#pragma pop - -/* 8071C7B0-8071C7B4 00026C 0004+00 0/1 0/0 0/0 .rodata @6945 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6945 = -3000.0f; -COMPILER_STRIP_GATE(0x8071C7B0, &lit_6945); -#pragma pop - -/* 8071C7B4-8071C7B8 000270 0004+00 0/1 0/0 0/0 .rodata @6946 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6946 = -21.0f; -COMPILER_STRIP_GATE(0x8071C7B4, &lit_6946); -#pragma pop - -/* 8071C7B8-8071C7BC 000274 0004+00 0/1 0/0 0/0 .rodata @6947 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6947 = 5114.0f; -COMPILER_STRIP_GATE(0x8071C7B8, &lit_6947); -#pragma pop - -/* 8071C7BC-8071C7C0 000278 0004+00 0/1 0/0 0/0 .rodata @6948 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6948 = -4941.0f; -COMPILER_STRIP_GATE(0x8071C7BC, &lit_6948); -#pragma pop - -/* 8071C7C0-8071C7C4 00027C 0004+00 0/1 0/0 0/0 .rodata @6949 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6949 = -4401.0f; -COMPILER_STRIP_GATE(0x8071C7C0, &lit_6949); -#pragma pop - -/* 8071C7C4-8071C7C8 000280 0004+00 0/1 0/0 0/0 .rodata @6950 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6950 = -5.0f; -COMPILER_STRIP_GATE(0x8071C7C4, &lit_6950); -#pragma pop - -/* 8071C7E8-8071C7E8 0002A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8071C7F4 = "D_MN05B"; -#pragma pop - -/* 8071BD14-8071C190 007CD4 047C+00 1/0 0/0 0/0 .text daE_MK_Create__FP10fopAc_ac_c */ -static void daE_MK_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 8071C190-8071C2EC 008150 015C+00 1/1 0/0 0/0 .text __ct__10e_mk_classFv */ -e_mk_class::e_mk_class() { - // NONMATCHING -} - -/* 8071C2EC-8071C334 0082AC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */ -// cM3dGSph::~cM3dGSph() { -extern "C" void __dt__8cM3dGSphFv() { - // NONMATCHING -} - -/* 8071C334-8071C37C 0082F4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 8071C37C-8071C3EC 00833C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 8071C3EC-8071C434 0083AC 0048+00 2/1 0/0 0/0 .text __dt__12daE_MK_HIO_cFv */ -daE_MK_HIO_c::~daE_MK_HIO_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071C7C8-8071C7CC 000284 0004+00 0/1 0/0 0/0 .rodata @7096 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7096 = 1050.0f; -COMPILER_STRIP_GATE(0x8071C7C8, &lit_7096); -#pragma pop - -/* 8071C7CC-8071C7D0 000288 0004+00 0/1 0/0 0/0 .rodata @7097 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7097 = -450.0f; -COMPILER_STRIP_GATE(0x8071C7CC, &lit_7097); -#pragma pop - -/* 8071C7D0-8071C7D4 00028C 0004+00 0/1 0/0 0/0 .rodata @7098 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7098 = 1262.0f; -COMPILER_STRIP_GATE(0x8071C7D0, &lit_7098); -#pragma pop - -/* 8071C7D4-8071C7D8 000290 0004+00 0/1 0/0 0/0 .rodata @7099 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7099 = 1030.0f; -COMPILER_STRIP_GATE(0x8071C7D4, &lit_7099); -#pragma pop - -/* 8071C7D8-8071C7DC 000294 0004+00 0/1 0/0 0/0 .rodata @7100 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7100 = -1665.0f; -COMPILER_STRIP_GATE(0x8071C7D8, &lit_7100); -#pragma pop - -/* 8071C7DC-8071C7E0 000298 0004+00 0/1 0/0 0/0 .rodata @7101 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7101 = 2400.0f; -COMPILER_STRIP_GATE(0x8071C7DC, &lit_7101); -#pragma pop - -/* 8071C7E0-8071C7E4 00029C 0004+00 0/1 0/0 0/0 .rodata @7102 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7102 = 1115.0f; -COMPILER_STRIP_GATE(0x8071C7E0, &lit_7102); -#pragma pop - -/* 8071C7E4-8071C7E8 0002A0 0004+00 0/1 0/0 0/0 .rodata @7103 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7103 = -1850.0f; -COMPILER_STRIP_GATE(0x8071C7E4, &lit_7103); -#pragma pop - -/* 8071C434-8071C520 0083F4 00EC+00 0/0 1/0 0/0 .text __sinit_d_a_e_mk_cpp */ -void __sinit_d_a_e_mk_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8071C434, __sinit_d_a_e_mk_cpp); -#pragma pop - -/* 8071C520-8071C528 0084E0 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_8071C520() { - // NONMATCHING -} - -/* 8071C528-8071C530 0084E8 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_8071C528() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8071CB94-8071CB98 000134 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_8071CB94[4]; -#pragma pop - -/* 8071CB98-8071CB9C 000138 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_8071CB98[4]; -#pragma pop - -/* 8071CB9C-8071CBA0 00013C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_8071CB9C[4]; -#pragma pop - -/* 8071CBA0-8071CBA4 000140 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_8071CBA0[4]; -#pragma pop - -/* 8071CBA4-8071CBA8 000144 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBA4[4]; -#pragma pop - -/* 8071CBA8-8071CBAC 000148 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBA8[4]; -#pragma pop - -/* 8071CBAC-8071CBB0 00014C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBAC[4]; -#pragma pop - -/* 8071CBB0-8071CBB4 000150 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_8071CBB0[4]; -#pragma pop - -/* 8071CBB4-8071CBB8 000154 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_8071CBB4[4]; -#pragma pop - -/* 8071CBB8-8071CBBC 000158 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_8071CBB8[4]; -#pragma pop - -/* 8071CBBC-8071CBC0 00015C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_8071CBBC[4]; -#pragma pop - -/* 8071CBC0-8071CBC4 000160 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_8071CBC0[4]; -#pragma pop - -/* 8071CBC4-8071CBC8 000164 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_8071CBC4[4]; -#pragma pop - -/* 8071CBC8-8071CBCC 000168 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBC8[4]; -#pragma pop - -/* 8071CBCC-8071CBD0 00016C 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_8071CBCC[4]; -#pragma pop - -/* 8071CBD0-8071CBD4 000170 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_8071CBD0[4]; -#pragma pop - -/* 8071CBD4-8071CBD8 000174 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_8071CBD4[4]; -#pragma pop - -/* 8071CBD8-8071CBDC 000178 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_8071CBD8[4]; -#pragma pop - -/* 8071CBDC-8071CBE0 00017C 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBDC[4]; -#pragma pop - -/* 8071CBE0-8071CBE4 000180 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_8071CBE0[4]; -#pragma pop - -/* 8071CBE4-8071CBE8 000184 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBE4[4]; -#pragma pop - -/* 8071CBE8-8071CBEC 000188 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBE8[4]; -#pragma pop - -/* 8071CBEC-8071CBF0 00018C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBEC[4]; -#pragma pop - -/* 8071CBF0-8071CBF4 000190 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_8071CBF0[4]; -#pragma pop - -/* 8071CBF4-8071CBF8 000194 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_8071CBF4[4]; -#pragma pop - -/* 8071C7E8-8071C7E8 0002A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */