summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJulian Maynes <80068880+julianmaynes16@users.noreply.github.com>2025-11-29 00:55:42 -0800
committerGitHub <noreply@github.com>2025-11-29 00:55:42 -0800
commit72c37de758cd3e2fa754fc3a961dda64a8500e44 (patch)
tree117574139100856681c62d1c578fc3737590bca5 /src
parentda03a43cef8fd2b77b53dacc717f105ae5af3535 (diff)
D_a_e_mm_mt 99% matching (#2881)
* do draw, smbindeffect, isdelete, delete, most of heapinit * Fix lowercase hex * fix style * Add spaces after if * Do most of drop and carry * Almost done * Finish normal * Get functions to mostly regalloc + a few compiler quirks. * fix up comments * Fix all issues and get everything to 100
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_e_mm_mt.cpp1412
1 files changed, 815 insertions, 597 deletions
diff --git a/src/d/actor/d_a_e_mm_mt.cpp b/src/d/actor/d_a_e_mm_mt.cpp
index 69e82d703a..a66b3e87a2 100644
--- a/src/d/actor/d_a_e_mm_mt.cpp
+++ b/src/d/actor/d_a_e_mm_mt.cpp
@@ -4,549 +4,868 @@
*/
#include "d/dolzel_rel.h" // IWYU pragma: keep
-
#include "d/actor/d_a_e_mm_mt.h"
#include "d/d_cc_d.h"
-#include "dol2asm.h"
#include "f_op/f_op_actor_enemy.h"
-
-//
-// Forward References:
-//
-
-extern "C" static void daE_MM_MT_Draw__FP13e_mm_mt_class();
-extern "C" static void e_mm_hookCheck__FP13e_mm_mt_class();
-extern "C" static void e_mm_mt_normal__FP13e_mm_mt_class();
-extern "C" static void e_mm_mt_hagare__FP13e_mm_mt_class();
-extern "C" static void e_mm_mt_carry__FP13e_mm_mt_class();
-extern "C" static void wall_angle_get__FP13e_mm_mt_class();
-extern "C" static void e_mm_mt_drop__FP13e_mm_mt_class();
-extern "C" static void action__FP13e_mm_mt_class();
-extern "C" static void daE_MM_MT_Execute__FP13e_mm_mt_class();
-extern "C" static bool daE_MM_MT_IsDelete__FP13e_mm_mt_class();
-extern "C" static void daE_MM_MT_Delete__FP13e_mm_mt_class();
-extern "C" static void useHeapInit__FP10fopAc_ac_c();
-extern "C" static void daE_MM_MT_Create__FP10fopAc_ac_c();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" static void func_8072542C();
-extern "C" static void func_80725434();
-extern "C" extern char const* const d_a_e_mm_mt__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_XrotS__FPA4_fs();
-extern "C" void mDoMtx_XrotM__FPA4_fs();
-extern "C" void mDoMtx_YrotS__FPA4_fs();
-extern "C" void mDoMtx_YrotM__FPA4_fs();
-extern "C" void mDoMtx_ZrotM__FPA4_fs();
-extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void transM__14mDoMtx_stack_cFfff();
-extern "C" void scaleM__14mDoMtx_stack_cFfff();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void fopAcM_SearchByID__FUiPP10fopAc_ac_c();
-extern "C" void fopAcM_delete__FP10fopAc_ac_c();
-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 dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfGp_getReverb__Fi();
-extern "C" void
-dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void setHitMark__13dPa_control_cFUsP10fopAc_ac_cPC4cXyzPC5csXyzPC4cXyzUl();
-extern "C" void
-set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void
-set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void LineCross__4cBgSFP11cBgS_LinChk();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void __ct__11dBgS_LinChkFv();
-extern "C" void __dt__11dBgS_LinChkFv();
-extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Move__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void ChkAtHit__12dCcD_GObjInfFv();
-extern "C" void GetAtHitObj__12dCcD_GObjInfFv();
-extern "C" void ChkTgHit__12dCcD_GObjInfFv();
-extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
-extern "C" void ChkCoHit__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
-extern "C" void def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c();
-extern "C" void at_power_check__FP11dCcU_AtInfo();
-extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void dKy_darkworld_check__Fv();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void atan2sX_Z__4cXyzCFv();
-extern "C" void atan2sY_XZ__4cXyzCFv();
-extern "C" void cM_atan2s__Fff();
-extern "C" void cM_rndF__Ff();
-extern "C" void cM_rndFX__Ff();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void cLib_addCalc2__FPffff();
-extern "C" void cLib_addCalc0__FPfff();
-extern "C" void cLib_addCalcAngleS2__FPssss();
-extern "C" void cLib_distanceAngleS__Fss();
-extern "C" void MtxPosition__FP4cXyzP4cXyz();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __ct__15Z2CreatureEnemyFv();
-extern "C" void init__15Z2CreatureEnemyFP3VecP3VecUcUc();
-extern "C" void __dl__FPv();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_19();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_19();
-extern "C" void _restgpr_25();
-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" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" u8 m_midnaActor__9daPy_py_c[4];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80725884-80725888 00002C 0004+00 0/1 0/0 0/0 .rodata @3829 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3829 = 700.0f;
-COMPILER_STRIP_GATE(0x80725884, &lit_3829);
-#pragma pop
-
/* 80722F78-8072305C 000078 00E4+00 1/0 0/0 0/0 .text daE_MM_MT_Draw__FP13e_mm_mt_class
*/
-static void daE_MM_MT_Draw(e_mm_mt_class* param_0) {
- // NONMATCHING
+static int daE_MM_MT_Draw(e_mm_mt_class* i_this) {
+ i_this->enemy.model = i_this->mp_model;
+ fopAc_ac_c* actor = (fopAc_ac_c*) i_this;
+
+ g_env_light.settingTevStruct(0, &i_this->enemy.current.pos, &i_this->enemy.tevStr);
+ g_env_light.setLightTevColorType_MAJI(i_this->mp_model, &i_this->enemy.tevStr);
+
+ mDoExt_modelUpdateDL(i_this->mp_model);
+
+ cXyz local_18(i_this->enemy.current.pos.x, i_this->enemy.current.pos.y + 100, i_this->enemy.current.pos.z);
+
+ if (!fopAcM_CheckStatus(actor, fopAcM_STATUS_CARRY_NOW)) {
+ i_this->m_shadowKey = dComIfGd_setShadow(
+ i_this->m_shadowKey, 1, i_this->mp_model, &local_18, 700.0f, 0.0f,
+ i_this->enemy.current.pos.y, i_this->m_acch.GetGroundH(), i_this->m_acch.m_gnd,
+ &i_this->enemy.tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()
+ );
+ }
+
+ return 1;
}
-/* ############################################################################################## */
-/* 80725888-8072588C 000030 0004+00 0/3 0/0 0/0 .rodata @3883 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3883 = 20.0f;
-COMPILER_STRIP_GATE(0x80725888, &lit_3883);
-#pragma pop
-
-/* 8072588C-80725890 000034 0004+00 0/4 0/0 0/0 .rodata @3884 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3884 = -1.0f;
-COMPILER_STRIP_GATE(0x8072588C, &lit_3884);
-#pragma pop
-
/* 8072305C-80723270 00015C 0214+00 2/2 0/0 0/0 .text e_mm_hookCheck__FP13e_mm_mt_class
*/
-static void e_mm_hookCheck(e_mm_mt_class* param_0) {
- // NONMATCHING
+static bool e_mm_hookCheck(e_mm_mt_class* i_this) {
+
+ cCcD_Obj* hitObject;
+ cXyz VStack_18;
+ u32 uVar3;
+
+ fopAc_ac_c* actor = (fopAc_ac_c*) i_this;
+
+ if (i_this->enemy.argument == 1) {
+ return false;
+ }
+
+ if (i_this->m_sphere.ChkTgHit()
+ && i_this->m_sphere.GetTgHitObj()->ChkAtType(AT_TYPE_HOOKSHOT)
+ || fopAcM_CheckStatus(actor, 0x100000)) {
+ i_this->field_0x69C = 0.0f;
+ i_this->field_0x68A[0] = true;
+ cXyz local_24 = i_this->enemy.current.pos;
+ if (i_this->m_action == 1) {
+ local_24. y -=20.0f;
+ } else {
+ local_24.y += 20.0f;
+ }
+
+ mDoMtx_stack_c::transS(i_this->enemy.current.pos);
+ mDoMtx_stack_c::ZXYrotM(i_this->enemy.shape_angle);
+ mDoMtx_stack_c::inverse();
+ mDoMtx_stack_c::multVec(&local_24, &VStack_18);
+ daPy_py_c* pdVar3 = daPy_getPlayerActorClass();
+ pdVar3->setHookshotCarryOffset(fopAcM_GetID(i_this), &VStack_18);
+ return 1;
+ }
+
+
+ if (i_this->field_0x68A[0]) {
+ if (daPy_getPlayerActorClass()->setForceGrab(actor, 0, 1)) {
+ i_this->m_action = 2;
+ i_this->m_mode = 0;
+ i_this->field_0x69C = 0.0f;
+ i_this->field_0x6A2 = 0;
+ i_this->field_0x6A0 = 0;
+ i_this->m_spin = 0;
+ i_this->m_carryAngleSpeed = 0;
+ if (i_this->m_acch.ChkWaterHit()) {
+ mDoAud_seStart(Z2SE_EN_MM_MET_LIFT_WTR, &i_this->enemy.current.pos, 0, 0);
+ }
+ i_this->m_sphere.OffAtSetBit();
+ i_this->field_0x68A[0] = false;
+ return 1;
+ }
+ i_this->field_0x68A[0] = false;
+ }
+ return 0;
}
/* 80723270-807234E8 000370 0278+00 1/1 0/0 0/0 .text e_mm_mt_normal__FP13e_mm_mt_class
*/
-static void e_mm_mt_normal(e_mm_mt_class* param_0) {
- // NONMATCHING
+static void e_mm_mt_normal(e_mm_mt_class* i_this) {
+ fopAc_ac_c* helmasaurActor;
+ fopAc_ac_c* actor = (fopAc_ac_c*)i_this;
+ fopAc_ac_c* player = (fopAc_ac_c*) dComIfGp_getPlayer(0);
+
+
+ if (fopAcM_SearchByID(actor->parentActorID, &helmasaurActor)) {
+ actor->scale.x = helmasaurActor->scale.x;
+ e_mm_class* helmasaur = (e_mm_class*)helmasaurActor;
+ actor->shape_angle.y = helmasaurActor->shape_angle.y - 0x4000;
+
+ PSMTXCopy(helmasaur->modelMorf->getModel()->getAnmMtx(11), *calc_mtx);
+ cXyz acStack_28(0.0f, 0.0f, 0.0f);
+ MtxPosition(&acStack_28, &actor->current.pos);
+ actor->eyePos = helmasaur->enemy.eyePos;
+ actor->attention_info.position = i_this->enemy.eyePos;
+ fopAcM_OffStatus(actor, 0);
+ actor->attention_info.flags = 0;
+ if (!i_this->m_invulnerabilityTimer && helmasaur->field_0xb98) {
+ i_this->m_sphere.OnAtSetBit();
+ if (i_this->m_sphere.ChkAtShieldHit()) {
+ i_this->m_invulnerabilityTimer = 15;
+ helmasaur->field_0xb99 |= 1;
+ i_this->m_atInfo.mpCollider = i_this->m_sphere.GetAtHitObj();
+ i_this->m_sphere.SetAtSe(9);
+ }
+ } else {
+ i_this->m_sphere.OffAtSetBit();
+ }
+ if (actor->argument != 1
+ && ((i_this->m_sphere.ChkTgHit()
+ && i_this->m_sphere.GetTgHitObj()->ChkAtType(AT_TYPE_HOOKSHOT))
+ || fopAcM_CheckStatus(actor, 0x100000))) {
+ helmasaur->field_0xb99 |= 4;
+ }
+ if (!helmasaur->field_0x672) {
+ i_this->m_action = 1;
+ i_this->m_mode = 0;
+ i_this->field_0x68A[0] = 0;
+ i_this->m_acch.OnLineCheck();
+ i_this->m_sphere.OnTgShield();
+ i_this->m_sphere.SetTgHitMark(CcG_Tg_UNK_MARK_2);
+ i_this->m_sphere.SetTgSe(9);
+ i_this->m_sphere.OffTgHookShotNoHitMark();
+ i_this->m_sphere.OffTgNoHitMark();
+ i_this->m_sphere.OffCoSetBit();
+ fopAcM_SetGroup(actor, 3);
+ fopAcM_OffStatus(actor, 0);
+ actor->attention_info.flags &= ~fopAc_AttnFlag_BATTLE_e;
+ actor->attention_info.distances[2] = 0;
+ fopAcM_OnStatus(actor, 0x400);
+ s16 actor_angle = player->shape_angle.y + 0x4000;
+ s16 angle = actor->shape_angle.y - actor_angle;
+ if (angle > 0x4000 || angle < -0x4000) {
+ i_this->m_carryAngle = -0x8000;
+ return;
+ }
+ i_this->m_carryAngle = 0;
+ }
+ }
}
-/* ############################################################################################## */
-/* 80725890-80725894 000038 0004+00 0/1 0/0 0/0 .rodata @4008 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4008 = 150.0f;
-COMPILER_STRIP_GATE(0x80725890, &lit_4008);
-#pragma pop
-
-/* 80725894-80725898 00003C 0004+00 0/1 0/0 0/0 .rodata @4009 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4009 = 3.0f;
-COMPILER_STRIP_GATE(0x80725894, &lit_4009);
-#pragma pop
-
-/* 80725898-8072589C 000040 0004+00 0/1 0/0 0/0 .rodata @4010 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4010 = 3.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80725898, &lit_4010);
-#pragma pop
-
-/* 8072589C-807258A0 000044 0004+00 0/2 0/0 0/0 .rodata @4011 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4011 = 2000.0f;
-COMPILER_STRIP_GATE(0x8072589C, &lit_4011);
-#pragma pop
-
-/* 807258A0-807258A4 000048 0004+00 0/2 0/0 0/0 .rodata @4012 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4012 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x807258A0, &lit_4012);
-#pragma pop
-
-/* 807258A4-807258A8 00004C 0004+00 0/4 0/0 0/0 .rodata @4013 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4013 = 200.0f;
-COMPILER_STRIP_GATE(0x807258A4, &lit_4013);
-#pragma pop
-
-/* 807258A8-807258AC 000050 0004+00 0/1 0/0 0/0 .rodata @4014 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4014 = 59.0f / 20.0f;
-COMPILER_STRIP_GATE(0x807258A8, &lit_4014);
-#pragma pop
-
-/* 807258AC-807258B0 000054 0004+00 0/2 0/0 0/0 .rodata @4015 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4015 = 5.0f;
-COMPILER_STRIP_GATE(0x807258AC, &lit_4015);
-#pragma pop
-
-/* 807258B0-807258B4 000058 0004+00 0/3 0/0 0/0 .rodata @4016 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4016 = 30.0f;
-COMPILER_STRIP_GATE(0x807258B0, &lit_4016);
-#pragma pop
-
-/* 807258B4-807258B8 00005C 0004+00 0/3 0/0 0/0 .rodata @4017 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4017 = 0.5f;
-COMPILER_STRIP_GATE(0x807258B4, &lit_4017);
-#pragma pop
-
/* 807234E8-80723744 0005E8 025C+00 1/1 0/0 0/0 .text e_mm_mt_hagare__FP13e_mm_mt_class
*/
-static void e_mm_mt_hagare(e_mm_mt_class* param_0) {
- // NONMATCHING
+static void e_mm_mt_hagare(e_mm_mt_class* i_this) {
+ fopAc_ac_c* player = (fopAc_ac_c*) dComIfGp_getPlayer(0);
+ fopAc_ac_c* actor = (fopAc_ac_c*) i_this;
+
+ cXyz local_30 = player->current.pos - i_this->enemy.current.pos;
+ local_30.y += 150.0f;
+ i_this->enemy.current.angle.y = local_30.atan2sX_Z();
+ cMtx_YrotS(*calc_mtx, i_this->enemy.current.angle.y);
+ cMtx_XrotM(*calc_mtx, (int)local_30.atan2sY_XZ());
+ local_30.x = 0.0f;
+ local_30.y = 0.0f;
+ local_30.z = i_this->enemy.speedF;
+ MtxPosition(&local_30, &i_this->enemy.speed);
+ if (!e_mm_hookCheck(i_this)) {
+ int arg = i_this->m_mode;
+ switch (arg) {
+ case -10:
+ cLib_addCalc2(&i_this->enemy.speedF, 3.0f, 1.0f, 0.15f);
+ cLib_addCalc2(&i_this->field_0x69C, 2000.0f, 0.1f, 200.0f);
+ if (i_this->enemy.speedF >= 2.95f) {
+ i_this->m_mode = 0;
+ } else {
+ break;
+ }
+ // fallthrough
+ case 0:
+ cLib_addCalc2(&i_this->enemy.speedF, 100.0f, 1.0f, 5.0f);
+ break;
+ }
+ i_this->enemy.current.pos += i_this->enemy.speed;
+ i_this->enemy.eyePos = i_this->enemy.current.pos;
+ i_this->enemy.attention_info.position = i_this->enemy.current.pos;
+ s16 spA = i_this->enemy.speedF * 30.0f;
+ s16 sVar6;
+ if (i_this->m_carryAngle == 0) {
+ sVar6 = -0x4000;
+ } else {
+ sVar6 = 0x4000;
+ }
+
+ cLib_addCalcAngleS2(&i_this->enemy.shape_angle.y,
+ player->shape_angle.y + 0x4000 + i_this->m_carryAngle,
+ 4,
+ spA + 0x100);
+ cLib_addCalcAngleS2(&i_this->enemy.shape_angle.z, sVar6, 4, spA);
+ local_30 = player->current.pos - i_this->enemy.current.pos;
+ local_30.y = 0.0f;
+ i_this->m_action = 3;
+ i_this->m_mode = 0;
+ i_this->m_sphere.OnCoSetBit();
+ i_this->field_0x68A[0] = 0;
+ i_this->enemy.speedF *= 0.5f;
+ }
}
-/* ############################################################################################## */
-/* 807258B8-807258BC 000060 0004+00 0/2 0/0 0/0 .rodata @4089 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4089 = 10.0f;
-COMPILER_STRIP_GATE(0x807258B8, &lit_4089);
-#pragma pop
-
-/* 807258BC-807258C0 000064 0004+00 0/1 0/0 0/0 .rodata @4090 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4090 = 0.25f;
-COMPILER_STRIP_GATE(0x807258BC, &lit_4090);
-#pragma pop
-
-/* 807258C0-807258C4 000068 0004+00 0/2 0/0 0/0 .rodata @4091 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4091 = 1000.0f;
-COMPILER_STRIP_GATE(0x807258C0, &lit_4091);
-#pragma pop
-
-/* 807258C4-807258C8 00006C 0004+00 0/1 0/0 0/0 .rodata @4092 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4092 = -G_CM3D_F_INF;
-COMPILER_STRIP_GATE(0x807258C4, &lit_4092);
-#pragma pop
-
/* 80723744-807239CC 000844 0288+00 1/1 0/0 0/0 .text e_mm_mt_carry__FP13e_mm_mt_class */
-static void e_mm_mt_carry(e_mm_mt_class* param_0) {
- // NONMATCHING
+static void e_mm_mt_carry(e_mm_mt_class* i_this) {
+ fopAc_ac_c* actor = (fopAc_ac_c*) &i_this->enemy;
+ fopAc_ac_c* player = (fopAc_ac_c*) dComIfGp_getPlayer(0);
+
+ switch (i_this->m_mode) {
+ case 0:
+ cLib_offBit<u32>(actor->attention_info.flags, fopAc_AttnFlag_CARRY_e);
+ i_this->m_mode = 1;
+ s16 angle_delta_y1 = 0x4000 + player->shape_angle.y;
+ s16 angle_delta_y = i_this->m_rotation.y - angle_delta_y1;
+ if (angle_delta_y > 0x4000 || angle_delta_y < -0x4000) {
+ i_this->m_carryAngle = -0x8000;
+ } else {
+ i_this->m_carryAngle = 0;
+ }
+ void(0);
+ break;
+
+ case 1:
+ if (!fopAcM_checkCarryNow(actor)) {
+ i_this->m_action = 3;
+ i_this->m_sphere.OnCoSetBit();
+ i_this->field_0x68A[0] = false;
+ if (fopAcM_GetSpeedF(actor) > 1.0f || fopAcM_GetSpeedF(player) > 10.0f) {
+ actor->speedF = TREG_F(9) + 30.0f + fopAcM_GetSpeedF(player) * 0.25f;
+ actor->speed.y = TREG_F(10) + 30.0f;
+ actor->current.angle.y = player->shape_angle.y;
+ i_this->m_mode = 0;
+ } else {
+ actor->speedF = 0.0f;
+ actor->speed.y = 0.0f;
+ i_this->m_mode = 5;
+ i_this->field_0x69C = NREG_F(2) + 1000.0f;
+ if (i_this->m_acch.ChkWaterHit()) {
+ mDoAud_seStart(Z2SE_EN_MM_MET_PUT_WTR, &actor->current.pos, 0, 0);
+ } else {
+ mDoAud_seStart(Z2SE_EN_MM_MET_PUT_LND, &actor->current.pos, 0, 0);
+ }
+ }
+ }
+ // fallthrough
+ }
+ if (i_this->m_acch.GetGroundH() == -G_CM3D_F_INF) {
+ i_this->field_0x698 += 1;
+ if (i_this->field_0x698 > 500) {
+ fopAcM_delete(actor);
+ return;
+ }
+ } else {
+ i_this->field_0x698 = 0;
+ }
+ actor->eyePos = actor->current.pos;
+ actor->attention_info.position = actor->current.pos;
+ cLib_addCalcAngleS2(&i_this->m_rotation.y, player->shape_angle.y + 0x4000 + i_this->m_carryAngle,
+ 1, i_this->m_carryAngleSpeed);
+ cLib_addCalcAngleS2(&i_this->m_rotation.z, (s16)((TREG_S(5) + 0x10000) - 0x8000), 1, i_this->m_carryAngleSpeed);
+ cLib_addCalcAngleS2(&i_this->m_carryAngleSpeed, 0x2000, 1, 0x100);
}
-/* ############################################################################################## */
-/* 807258C8-807258CC 000070 0004+00 0/1 0/0 0/0 .rodata @4146 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4146 = -50.0f;
-COMPILER_STRIP_GATE(0x807258C8, &lit_4146);
-#pragma pop
-
-/* 807239CC-80723B70 000ACC 01A4+00 1/1 0/0 0/0 .text wall_angle_get__FP13e_mm_mt_class
- */
-static void wall_angle_get(e_mm_mt_class* param_0) {
- // NONMATCHING
+// /* 807239CC-80723B70 000ACC 01A4+00 1/1 0/0 0/0 .text wall_angle_get__FP13e_mm_mt_class
+// */
+static s16 wall_angle_get(e_mm_mt_class* i_this) {
+ fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
+ cXyz vec1, vec2, vec3[2];
+ dBgS_LinChk linchk;
+ cMtx_YrotS(*calc_mtx, a_this->current.angle.y);
+ vec1.x = 0.0f;
+ vec1.y = 0.0f;
+ vec1.z = -50.0f;
+ MtxPosition(&vec1, &vec2);
+ vec2 += a_this->current.pos;
+ vec1.x = 5.0f;
+ vec1.y = 0.0f;
+ vec1.z = 200.0f;
+
+ for (int i = 0; i < 2; i++) {
+ MtxPosition(&vec1, &vec3[i]);
+ vec1.x *= -1.0f;
+ vec3[i] += vec2;
+ linchk.Set(&vec2, &vec3[i], a_this);
+ if (dComIfG_Bgsp().LineCross(&linchk)) {
+ vec3[i] = linchk.GetCross();
+ } else {
+ return 0x23;
+ }
+ }
+
+ vec1 = vec3[1] - vec3[0];
+ return vec1.atan2sX_Z() + 0x4000;
}
-/* ############################################################################################## */
-/* 807258CC-807258D0 000074 0004+00 0/1 0/0 0/0 .rodata @4338 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4338 = -3.0f / 10.0f;
-COMPILER_STRIP_GATE(0x807258CC, &lit_4338);
-#pragma pop
-
-/* 807258D0-807258D4 000078 0004+00 0/1 0/0 0/0 .rodata @4339 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4339 = -30.0f;
-COMPILER_STRIP_GATE(0x807258D0, &lit_4339);
-#pragma pop
-
-/* 807258D4-807258D8 00007C 0004+00 0/1 0/0 0/0 .rodata @4340 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4340 = -2.0f / 5.0f;
-COMPILER_STRIP_GATE(0x807258D4, &lit_4340);
-#pragma pop
-
-/* 807258D8-807258DC 000080 0004+00 0/1 0/0 0/0 .rodata @4341 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4341 = 0.75f;
-COMPILER_STRIP_GATE(0x807258D8, &lit_4341);
-#pragma pop
-
-/* 807258DC-807258E0 000084 0004+00 0/1 0/0 0/0 .rodata @4342 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4342 = 3500.0f;
-COMPILER_STRIP_GATE(0x807258DC, &lit_4342);
-#pragma pop
-
-/* 807258E0-807258E4 000088 0004+00 0/1 0/0 0/0 .rodata @4343 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4343 = 1.5f;
-COMPILER_STRIP_GATE(0x807258E0, &lit_4343);
-#pragma pop
-
-/* 807258E4-807258E8 00008C 0004+00 0/1 0/0 0/0 .rodata @4344 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4344 = 1300.0f;
-COMPILER_STRIP_GATE(0x807258E4, &lit_4344);
-#pragma pop
-
-/* 807258E8-807258EC 000090 0004+00 0/2 0/0 0/0 .rodata @4345 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4345 = 2.0f;
-COMPILER_STRIP_GATE(0x807258E8, &lit_4345);
-#pragma pop
-
-/* 807258EC-807258F0 000094 0004+00 0/1 0/0 0/0 .rodata @4346 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4346 = -5.0f;
-COMPILER_STRIP_GATE(0x807258EC, &lit_4346);
-#pragma pop
-
-/* 807258F0-807258F8 000098 0008+00 0/2 0/0 0/0 .rodata @4348 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4348[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x807258F0, &lit_4348);
-#pragma pop
-
/* 80723B70-80724190 000C70 0620+00 1/1 0/0 0/0 .text e_mm_mt_drop__FP13e_mm_mt_class */
-static void e_mm_mt_drop(e_mm_mt_class* param_0) {
- // NONMATCHING
+static void e_mm_mt_drop(e_mm_mt_class* i_this) {
+ fopAc_ac_c* actor = (fopAc_ac_c*) i_this;
+
+ cXyz local_28;
+ cXyz local_34;
+
+ if (!e_mm_hookCheck(i_this)) {
+ switch (i_this->m_mode) {
+ case 0:
+ // fallthrough
+ case 1:
+ // fallthrough
+ case 2:
+ // fallthrough
+ case 3:
+ // fallthrough
+ case 4:
+ if (!i_this->m_timer[0] && i_this->m_acch.ChkWallHit()) {
+ s16 wall_angle = wall_angle_get(i_this);
+ if (wall_angle != 0x23) {
+ wall_angle = i_this->enemy.current.angle.y - wall_angle;
+ i_this->m_spin = wall_angle * (TREG_F(6) + -0.3f);
+ i_this->enemy.current.angle.y += (s16)(0x8000 - (wall_angle << 1));
+ if (i_this->m_acch.ChkWaterHit()) {
+ mDoAud_seStart(Z2SE_EN_MM_MET_BOUND_WTR, &i_this->enemy.current.pos, (u32)(i_this->enemy.speed.y), 0);
+ } else {
+ mDoAud_seStart(Z2SE_EN_MM_MET_BOUND_LND, &i_this->enemy.current.pos, (u32)(i_this->enemy.speed.y), 0);
+ }
+ i_this->enemy.speedF *= (AREG_F(4) + 0.5f);
+ i_this->m_timer[0] = 10;
+ }
+ }
+ if (i_this->m_acch.ChkGroundHit()) {
+ if (i_this->m_mode < 4) {
+ i_this->m_mode += 1;
+ }
+ if (i_this->field_0x6A8 < -30.0f) {
+ i_this->enemy.speed.y = i_this->field_0x6A8 * -0.4f;
+ i_this->enemy.speedF *= (TREG_F(0xE) + 0.75f);
+ if (i_this->m_acch.ChkWaterHit()) {
+ mDoAud_seStart(Z2SE_EN_MM_MET_BOUND_WTR, &i_this->enemy.current.pos, (u32)(i_this->enemy.speed.y), 0);
+ } else {
+ mDoAud_seStart(Z2SE_EN_MM_MET_BOUND_LND, &i_this->enemy.current.pos, (u32)(i_this->enemy.speed.y), 0);
+ }
+ i_this->field_0x69C = NREG_F(0) + 3500.0f;
+ cXyz local_40 = i_this->enemy.current.pos;
+ cXyz local_4c(1.5f, 1.5f, 1.5f);
+ if (!i_this->m_spin ) {
+ i_this->m_spin = cM_rndFX(1300.0f);
+ }
+ } else {
+ i_this->m_mode = 5;
+ if (i_this->m_acch.ChkWaterHit()) {
+ mDoAud_seStart(Z2SE_EN_MM_MET_BOUND_WTR, &i_this->enemy.current.pos, 0, 0);
+ } else {
+ mDoAud_seStart(Z2SE_EN_MM_MET_BOUND_LND, &i_this->enemy.current.pos, 0, 0);
+ }
+ }
+ }
+ break;
+ case 5:
+ cLib_addCalc0(&i_this->enemy.speedF, 1.0f, TREG_F(0xB) + 2.0f);
+ break;
+ }
+ cMtx_YrotS(*calc_mtx, i_this->enemy.current.angle.y);
+
+ local_28.x = 0.0f;
+ local_28.y = 0.0f;
+ local_28.z = i_this->enemy.speedF;
+
+ MtxPosition(&local_28, &local_34);
+ i_this->enemy.speed.x = local_34.x;
+ i_this->enemy.speed.z = local_34.z;
+ i_this->enemy.current.pos.x += i_this->enemy.speed.x;
+ i_this->enemy.current.pos.z += i_this->enemy.speed.z;
+ i_this->enemy.current.pos.y += i_this->enemy.speed.y;
+ i_this->enemy.speed.y += -5.0f;
+ i_this->enemy.eyePos = i_this->enemy.current.pos;
+ i_this->enemy.attention_info.position = i_this->enemy.current.pos;
+ cLib_addCalcAngleS2(&i_this->m_rotation.z, (TREG_S(6)+0x10000)-0x8000, 1, 0x1000);
+ cLib_onBit<u32>(i_this->enemy.attention_info.flags, fopAc_AttnFlag_CARRY_e);
+ i_this->enemy.attention_info.distances[4] = 7;
+ i_this->m_rotation.y += i_this->m_spin;
+ if (i_this->enemy.speedF >= 20.0f) {
+ i_this->m_sphere.OnAtSetBit();
+ i_this->m_sphere.OffAtVsBitSet(12);
+ i_this->m_sphere.OnAtVsBitSet(2);
+ i_this->m_sphere.SetAtHitMark(1);
+ if (!i_this->m_invulnerabilityTimer && i_this->m_sphere.ChkAtHit()) {
+ i_this->m_invulnerabilityTimer = 4;
+ i_this->enemy.speedF *= 0.5f;
+ }
+ } else {
+ i_this->m_sphere.OffAtSetBit();
+ }
+ if (fopAcM_checkCarryNow(actor)) {
+ i_this->m_action = 2;
+ i_this->m_mode = 0;
+ i_this->m_carryAngleSpeed = \
+ i_this->m_spin = \
+ i_this->field_0x6A0 = \
+ i_this->field_0x6A2 = 0;
+ if (i_this->m_acch.ChkWaterHit()) {
+ mDoAud_seStart(Z2SE_EN_MM_MET_LIFT_WTR, &i_this->enemy.current.pos, 0, 0);
+ }
+ i_this->m_sphere.OffAtSetBit();
+ return;
+ }
+ if (fopAcM_CheckStatus(actor, 0x200) && !i_this->m_invulnerabilityTimer) {
+ i_this->m_action = 1;
+ i_this->m_mode = -10;
+ i_this->field_0x68A[0] = false;
+ i_this->m_sphere.OffCoSetBit();
+ i_this->enemy.shape_angle = i_this->m_rotation;
+
+ fopAc_ac_c* player = (fopAc_ac_c*) dComIfGp_getPlayer(0);
+ s16 sVar1 = i_this->enemy.shape_angle.y - (s16)(player->shape_angle.y + 0x4000);
+
+ if (sVar1 > 0x4000 || sVar1 < -0x4000) {
+ i_this-> m_carryAngle = -0x8000;
+ return;
+ }
+ i_this->m_carryAngle = 0;
+ }
+ }
}
-/* ############################################################################################## */
-/* 807258F8-807258FC 0000A0 0004+00 0/2 0/0 0/0 .rodata @4730 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4730 = 50.0f;
-COMPILER_STRIP_GATE(0x807258F8, &lit_4730);
-#pragma pop
-
-/* 807258FC-80725900 0000A4 0004+00 0/1 0/0 0/0 .rodata @4731 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4731 = 40.0f;
-COMPILER_STRIP_GATE(0x807258FC, &lit_4731);
-#pragma pop
-
-/* 80725900-80725904 0000A8 0004+00 0/1 0/0 0/0 .rodata @4732 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4732 = 5500.0f;
-COMPILER_STRIP_GATE(0x80725900, &lit_4732);
-#pragma pop
-
-/* 80725904-80725908 0000AC 0004+00 0/1 0/0 0/0 .rodata @4733 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4733 = 5000.0f;
-COMPILER_STRIP_GATE(0x80725904, &lit_4733);
-#pragma pop
-
-/* 80725908-8072590C 0000B0 0004+00 0/1 0/0 0/0 .rodata @4734 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4734 = 3000.0f;
-COMPILER_STRIP_GATE(0x80725908, &lit_4734);
-#pragma pop
-
-/* 8072590C-80725910 0000B4 0004+00 0/1 0/0 0/0 .rodata @4735 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4735 = 4000.0f;
-COMPILER_STRIP_GATE(0x8072590C, &lit_4735);
-#pragma pop
-
-/* 80725910-80725914 0000B8 0004+00 0/1 0/0 0/0 .rodata @4736 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4736 = 7.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80725910, &lit_4736);
-#pragma pop
-
-/* 80725914-80725918 0000BC 0004+00 0/1 0/0 0/0 .rodata @4737 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4737 = -60.0f;
-COMPILER_STRIP_GATE(0x80725914, &lit_4737);
-#pragma pop
-
-/* 80725918-8072591C 0000C0 0004+00 0/1 0/0 0/0 .rodata @4738 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4738 = -90.0f;
-COMPILER_STRIP_GATE(0x80725918, &lit_4738);
-#pragma pop
-
-/* 8072591C-80725920 0000C4 0004+00 0/1 0/0 0/0 .rodata @4739 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4739 = 60.0f;
-COMPILER_STRIP_GATE(0x8072591C, &lit_4739);
-#pragma pop
-
-/* 80725920-80725924 0000C8 0004+00 0/1 0/0 0/0 .rodata @4740 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4740 = 20000.0f;
-COMPILER_STRIP_GATE(0x80725920, &lit_4740);
-#pragma pop
-
/* 80724190-80724D40 001290 0BB0+00 1/1 0/0 0/0 .text action__FP13e_mm_mt_class */
-static void action(e_mm_mt_class* param_0) {
- // NONMATCHING
+static void action(e_mm_mt_class* i_this) {
+ fopAc_ac_c* unusedPlayer = dComIfGp_getPlayer(0);
+ fopAc_ac_c* actor = static_cast<fopAc_ac_c*>(&i_this->enemy);
+ cXyz tgHitPosDist;
+ cXyz tgHitPosAbove;
+
+ fopAc_ac_c* helamsaurActor;
+
+ s16 distAngle = 0;
+ e_mm_class* helmasaur = NULL;
+ if (fopAcM_SearchByID(actor->parentActorID, &helamsaurActor) && helamsaurActor != NULL) {
+ helmasaur = (e_mm_class*)helamsaurActor;
+ }
+
+ cXyz* ccMove_p = i_this->m_stts.GetCCMoveP();
+ if (helmasaur != NULL) {
+ helmasaur->field_0x674.x = ccMove_p->x;
+ helmasaur->field_0x674.z = ccMove_p->z;
+ }
+
+ switch (i_this->m_action) {
+ case 0:
+ e_mm_mt_normal(i_this);
+ i_this->m_acch.CrrPos(dComIfG_Bgsp());
+ if (helmasaur != NULL) {
+ distAngle = cLib_distanceAngleS(helmasaur->enemy.shape_angle.y - (s16)0x8000,
+ fopAcM_searchPlayerAngleY(actor));
+ if (distAngle > 0x3000 || distAngle < -0x3000 || i_this->m_action) {
+ i_this->m_sphere.OnTgShield();
+ i_this->m_sphere.SetTgHitMark(CcG_Tg_UNK_MARK_2);
+ i_this->m_sphere.SetTgSe(9);
+ i_this->m_sphere.OnTgNoHitMark();
+ } else {
+ i_this->m_sphere.OffTgShield();
+ i_this->m_sphere.SetTgHitMark(CcG_Tg_UNK_MARK_0);
+ i_this->m_sphere.SetTgSe(0);
+ i_this->m_sphere.OffTgNoHitMark();
+ }
+ }
+
+ break;
+ case 1:
+ e_mm_mt_hagare(i_this);
+ i_this->m_acch.CrrPos(dComIfG_Bgsp());
+ i_this->m_rotation = actor->shape_angle;
+
+ break;
+ case 2:
+ e_mm_mt_carry(i_this);
+ i_this->m_invulnerabilityTimer = 3;
+ i_this->m_acchCir.SetWall(20.0f, 20.0f);
+ i_this->m_acch.CrrPos(dComIfG_Bgsp());
+
+ break;
+ case 3:
+ e_mm_mt_drop(i_this);
+ i_this->field_0x6A8 = actor->speed.y;
+
+ if (i_this->m_sphere.ChkCoHit()) {
+ cXyz* ccMove_p = i_this->m_stts.GetCCMoveP();
+
+ if (ccMove_p != NULL) {
+ actor->current.pos.x += ccMove_p->x * 0.5f;
+ actor->current.pos.z += ccMove_p->z * 0.5f;
+
+ if (fabsf(ccMove_p->x) >= 2.0f || fabsf(ccMove_p->z) >= 2.0f) {
+ cLib_addCalc2(&i_this->field_0x69C, NREG_F(5) + 1000.0f, 0.1f,
+ NREG_F(6) + 200.0f);
+ s16 playerAngleY = fopAcM_searchPlayerAngleY(actor);
+ s16 playerAngleDelta = i_this->m_rotation.y - playerAngleY;
+ if (playerAngleDelta > 0x4000 || playerAngleDelta < -0x4000) {
+ playerAngleY += (s16)0x8000;
+ }
+ cLib_addCalcAngleS2(&i_this->m_rotation.y, playerAngleY, 4, 0x100);
+ }
+ }
+ }
+ i_this->m_acchCir.SetWall(50.0f, 50.0f);
+ i_this->m_acch.CrrPos(dComIfG_Bgsp());
+ break;
+ }
+
+ fopEn_enemy_c* enemy = (fopEn_enemy_c*)actor;
+ setMidnaBindEffect(enemy, &i_this->m_sound, &actor->current.pos,
+ &actor->scale);
+
+ if (!i_this->m_invulnerabilityTimer) {
+ i_this->m_stts.Move();
+ if (i_this->m_sphere.ChkTgHit()) {
+ i_this->m_invulnerabilityTimer = 10;
+ i_this->m_atInfo.mpCollider = i_this->m_sphere.GetTgHitObj();
+ if (i_this->m_sphere.GetTgHitObj()->ChkAtType(0x80)) {
+ i_this->m_sound.startCollisionSE(0x40018, 45);
+ }
+ if (helmasaur != NULL && helmasaur->field_0x672) {
+ if (i_this->m_sphere.GetTgSe() == 9 ||
+ (i_this->m_sphere.GetTgHitObj()->ChkAtType(0x8000000) &&
+ helmasaur->action == 2)) {
+ tgHitPosDist = actor->current.pos - *i_this->m_sphere.GetTgHitPosP();
+ csXyz hitMarkAngle;
+ tgHitPosAbove.set(*i_this->m_sphere.GetTgHitPosP());
+ if (i_this->m_sphere.GetTgHitObj()->ChkAtType(16)) {
+ tgHitPosAbove.y += 100.0f;
+ }
+ hitMarkAngle.x = 0;
+ hitMarkAngle.y = (s16)tgHitPosDist.atan2sX_Z();
+ hitMarkAngle.z = 0;
+ def_se_set(&i_this->m_sound, i_this->m_atInfo.mpCollider, 40, actor);
+
+ cCcD_Obj* collider = i_this->m_atInfo.mpCollider;
+ dComIfGp_setHitMark(2, actor, &tgHitPosAbove, &hitMarkAngle, NULL, 0);
+ helmasaur->field_0xb99 |= (s8)0x2;
+ i_this->m_sphere.ClrTgHit();
+ } else {
+ if (!(helmasaur->field_0xb99 & 0x8) &&
+ !(helmasaur->field_0xb99 & 0x10))
+ {
+ s16 health = actor->health;
+ cc_at_check(actor, &i_this->m_atInfo);
+ helmasaur->atInfo.mpCollider = i_this->m_atInfo.mpCollider;
+ helmasaur->field_0x6ac = i_this->m_atInfo.mHitDirection.y;
+ i_this->m_invulnerabilityTimer = 8;
+
+ if ((int)actor->health <= 2000 - helmasaur->enemy.field_0x560) {
+ helmasaur->field_0xb99 |= (s8)0x10;
+ if (i_this->m_atInfo.mHitType == 1 ||
+ i_this->m_atInfo.mpCollider->ChkAtType(8))
+ {
+ if (!daPy_getPlayerActorClass()->checkCutJumpCancelTurn()) {
+ dScnPly_c::setPauseTimer(5);
+ }
+ }
+
+ i_this->m_sphere.OnTgShield();
+ i_this->m_sphere.SetTgHitMark(CcG_Tg_UNK_MARK_2);
+ i_this->m_sphere.SetTgSe(9);
+ i_this->m_sphere.OffTgNoHitMark();
+ } else {
+ if (health != actor->health) {
+ i_this->m_sound.startCreatureVoice(Z2SE_EN_MM_V_DAMAGE, -1);
+ } else {
+ i_this->m_sound.startCreatureVoice(Z2SE_EN_MM_V_NO_DAMAGE, -1);
+ }
+
+ if (i_this->m_atInfo.mHitType == 1 ||
+ i_this->m_atInfo.mpCollider->ChkAtType(8))
+ {
+ if (!daPy_getPlayerActorClass()->checkCutJumpCancelTurn()) {
+ dScnPly_c::setPauseTimer(2);
+ }
+ }
+
+ helmasaur->field_0xb99 |= (s8)0x8;
+ }
+
+ i_this->m_sphere.ClrTgHit();
+ }
+ }
+ } else {
+ tgHitPosDist = actor->current.pos - *i_this->m_sphere.GetTgHitPosP();
+ csXyz local_84;
+ tgHitPosAbove.set(*i_this->m_sphere.GetTgHitPosP());
+
+ if (i_this->m_sphere.GetTgHitObj()->ChkAtType(16)) {
+ tgHitPosAbove.y += 100.0f;
+ }
+
+ local_84.x = 0;
+ local_84.y = (s16)tgHitPosDist.atan2sX_Z();
+ local_84.z = 0;
+ cCcD_Obj* collider = i_this->m_atInfo.mpCollider;
+ def_se_set(&i_this->m_sound, i_this->m_atInfo.mpCollider, 40, actor);
+ dComIfGp_setHitMark(2, actor, &tgHitPosAbove, &local_84, NULL, 0);
+
+ fopAc_ac_c* local_a4 = at_power_check(&i_this->m_atInfo);
+
+ if (i_this->m_atInfo.mHitType == 1) {
+ if (daPy_getPlayerActorClass()->getCutType() == 8 ||
+ daPy_getPlayerActorClass()->getCutType() == 9 ||
+ daPy_getPlayerActorClass()->getCutType() == 23 ||
+ daPy_getPlayerActorClass()->getCutType() == 24) {
+ actor->speedF = cM_rndF(10.0f) + 40.0f + TREG_F(16);
+ i_this->m_spin = (s16)(cM_rndF(2000.0f) + 5500.0f);
+ i_this->field_0x69C = (f32)(s16)(cM_rndF(1000.0f) + 5000.0f);
+ } else {
+ actor->speedF = TREG_F(17) + 30.0f;
+ i_this->m_spin = (s16)cM_rndFX(3000.0f);
+ i_this->field_0x69C = NREG_F(10) + 4000.0f;
+ }
+ } else {
+ if (local_a4) {
+ actor->speedF = local_a4->speedF * 0.7f;
+ actor->current.angle.y = local_a4->current.angle.y + (s16)cM_rndFX(5000.0f);
+ }
+ i_this->m_spin = (s16)cM_rndFX(3000.0f);
+ i_this->field_0x69C = NREG_F(10) + 4000.0f;
+ }
+
+ i_this->m_sphere.ClrTgHit();
+ }
+ }
+ }
+
+ if (helmasaur != NULL && helmasaur->field_0x672 && helmasaur->field_0xb99 != 4) {
+ i_this->mp_model->setBaseTRMtx(helmasaur->modelMorf->getModel()->getAnmMtx(11));
+ } else {
+ i_this->field_0x6A0 = i_this->field_0x69C * cM_ssin(i_this->m_lifetime * (NREG_S(3) + 3000));
+ i_this->field_0x6A2 = i_this->field_0x69C * cM_ssin(i_this->m_lifetime * (NREG_S(4) + 4000));
+
+ cLib_addCalc0(&i_this->field_0x69C, 0.1f, NREG_F(1) + 50.0f);
+ cLib_addCalcAngleS2(&i_this->m_spin, 0, 1, TREG_S(5) + 50);
+ mDoMtx_stack_c::transS(actor->current.pos.x, actor->current.pos.y,
+ actor->current.pos.z);
+ cMtx_YrotS(*calc_mtx, i_this->m_rotation.y);
+
+ if (fopAcM_checkCarryNow(actor)) {
+ tgHitPosDist.x = 30.0f;
+ } else {
+ tgHitPosDist.x = 0.0f;
+ }
+
+ tgHitPosDist.y = 0.0f;
+ tgHitPosDist.z = 0.0f;
+ MtxPosition(&tgHitPosDist, &tgHitPosAbove);
+ mDoMtx_stack_c::transM(tgHitPosAbove.x, tgHitPosAbove.y, tgHitPosAbove.z);
+
+ mDoMtx_stack_c::YrotM((s16)i_this->m_rotation.y);
+ mDoMtx_stack_c::XrotM((s16)i_this->field_0x6A0);
+ mDoMtx_stack_c::ZrotM(i_this->m_rotation.z + i_this->field_0x6A2);
+ mDoMtx_stack_c::scaleM(actor->scale.x, actor->scale.x, actor->scale.x);
+ i_this->mp_model->setBaseTRMtx(mDoMtx_stack_c::get());
+ }
+
+ cXyz curPos = actor->current.pos;
+ if (helmasaur != NULL && helmasaur->field_0x672) {
+ fopAc_ac_c* parentActor;
+ if (fopAcM_SearchByID(actor->parentActorID, &parentActor) && parentActor) {
+ cMtx_YrotS(*calc_mtx, parentActor->shape_angle.y);
+ if (actor->argument != 1) {
+ tgHitPosDist.x = JREG_F(8);
+ tgHitPosDist.y = JREG_F(9) + -60.0f;
+ tgHitPosDist.z = JREG_F(10) + 20.0f;
+ } else {
+ tgHitPosDist.x = JREG_F(11);
+ tgHitPosDist.y = JREG_F(12) + -90.0f;
+ tgHitPosDist.z = JREG_F(13) + 50.0f;
+ }
+ MtxPosition(&tgHitPosDist, &curPos);
+ curPos += actor->current.pos;
+ } else {
+ helmasaur->field_0x672 = 0;
+ }
+ } else {
+ cMtx_XrotS(*calc_mtx, i_this->m_rotation.z);
+ tgHitPosDist.x = 0.0f;
+ tgHitPosDist.y = -(actor->scale.x * 30.0f);
+ tgHitPosDist.z = 0.0f;
+ MtxPosition(&tgHitPosDist, &curPos);
+ curPos += actor->current.pos;
+ }
+ i_this->m_sph.SetC(curPos);
+
+ if (i_this->m_action == 1) {
+ i_this->m_sph.SetR((JREG_F(15) + 60.0f) * actor->scale.x);
+ } else if (i_this->m_action == 2) {
+ i_this->m_sph.SetR((JREG_F(16) + 100.0f) * actor->scale.x);
+ } else {
+ i_this->m_sph.SetR((JREG_F(17) + 50.0f) * actor->scale.x);
+ }
+
+ dComIfG_Ccsp()->Set(&i_this->m_sph);
+
+ if (i_this->m_invulnerabilityTimer) {
+ curPos.y += 20000.0f;
+ }
+ i_this->m_sphere.SetC(curPos);
+
+ i_this->m_sphere.SetR((JREG_F(14) + 40.0f) * actor->scale.x);
+
+ dComIfG_Ccsp()->Set(&i_this->m_sphere);
}
/* 80724D40-80724DF4 001E40 00B4+00 2/1 0/0 0/0 .text daE_MM_MT_Execute__FP13e_mm_mt_class */
-static void daE_MM_MT_Execute(e_mm_mt_class* param_0) {
- // NONMATCHING
+static int daE_MM_MT_Execute(e_mm_mt_class* i_this) {
+ fopAc_ac_c* actor = (fopAc_ac_c*) i_this;
+ i_this->m_lifetime++;
+
+ for (int i = 0; i < 2; i++) {
+ if (i_this->m_timer[i] != 0) {
+ i_this->m_timer[i]--;
+ }
+ }
+ if (i_this->m_invulnerabilityTimer != 0) {
+ i_this->m_invulnerabilityTimer--;
+ }
+ action(i_this);
+ fopAcM_OffStatus(actor, fopAcM_STATUS_UNK_0x200);
+ i_this->m_sound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
+ return true;
}
/* 80724DF4-80724DFC 001EF4 0008+00 1/0 0/0 0/0 .text daE_MM_MT_IsDelete__FP13e_mm_mt_class */
-static bool daE_MM_MT_IsDelete(e_mm_mt_class* param_0) {
- return true;
+static int daE_MM_MT_IsDelete(e_mm_mt_class* i_this) {
+ return 1;
}
-/* ############################################################################################## */
-/* 8072592C-8072592C 0000D4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8072592C = "E_MM_MT";
-#pragma pop
-
/* 80724DFC-80724E58 001EFC 005C+00 1/0 0/0 0/0 .text daE_MM_MT_Delete__FP13e_mm_mt_class
*/
-static void daE_MM_MT_Delete(e_mm_mt_class* param_0) {
- // NONMATCHING
+static int daE_MM_MT_Delete(e_mm_mt_class* i_this) {
+ dComIfG_resDelete(&i_this->m_phase, "E_MM_MT");
+ if (i_this->enemy.heap != NULL) {
+ i_this->m_sound.deleteObject();
+ }
+ return 1;
}
/* 80724E58-80724EE0 001F58 0088+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
-static void useHeapInit(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
+static int useHeapInit(fopAc_ac_c* i_this) {
+ J3DModelData* i_modelData;
+ int resource_index = 4;
-/* ############################################################################################## */
-/* 80725924-80725928 0000CC 0004+00 0/1 0/0 0/0 .rodata @4896 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4896 = -200.0f;
-COMPILER_STRIP_GATE(0x80725924, &lit_4896);
-#pragma pop
-
-/* 80725928-8072592C 0000D0 0004+00 0/1 0/0 0/0 .rodata @4897 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4897 = 65535.0f;
-COMPILER_STRIP_GATE(0x80725928, &lit_4897);
-#pragma pop
-
-/* 8072596C-807259AC 000038 0040+00 1/1 0/0 0/0 .data cc_sph_src$4792 */
-static dCcD_SrcSph cc_sph_src = {
- {
- {0x0, {{AT_TYPE_CSTATUE_SWING, 0x1, 0xd}, {0xd8fbfdff, 0x3}, 0x75}}, // mObj
- {dCcD_SE_METAL, 0x0, 0x1, 0x0, 0x0}, // mGObjAt
- {dCcD_SE_NONE, 0x2, 0x0, 0x0, 0x407}, // mGObjTg
- {0x0}, // mGObjCo
- }, // mObjInf
- {
- {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph
- } // mSphAttr
-};
+ if (i_this->argument == 1) {
+ resource_index = 3;
+ }
+ i_modelData = (J3DModelData*) dComIfG_getObjectRes("E_MM_MT", resource_index);
+ JUT_ASSERT(1197, i_modelData != NULL);
-/* 807259AC-807259EC 000078 0040+00 1/1 0/0 0/0 .data hk_sph_src$4793 */
-static dCcD_SrcSph hk_sph_src = {
- {
- {0x0, {{0x0, 0x0, 0x0}, {0x4080, 0x3}, 0x0}}, // mObj
- {dCcD_SE_13, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
- {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x406}, // mGObjTg
- {0x0}, // mGObjCo
- }, // mObjInf
- {
- {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph
- } // mSphAttr
-};
+ ((e_mm_mt_class*)i_this)->mp_model = mDoExt_J3DModel__create(i_modelData, 0x80000, 0x11000084);
+
+ if (((e_mm_mt_class*)i_this)->mp_model == NULL) {
+ return 0;
+ }
+
+ return 1;
+}
+
+/* 80724EE0-80725218 001FE0 0338+00 1/0 0/0 0/0 .text daE_MM_MT_Create__FP10fopAc_ac_c */
+static int daE_MM_MT_Create(fopAc_ac_c* i_this) {
+ cPhs__Step cVar1;
+ bool bVar2;
+ f32 fVar3;
+
+ e_mm_mt_class* helmasaurShell = (e_mm_mt_class*) i_this;
+ fopAc_ac_c* actor = (fopAc_ac_c*) i_this;
+
+ fopAcM_ct(i_this, e_mm_mt_class);
+
+ int phase = dComIfG_resLoad(&helmasaurShell->m_phase, "E_MM_MT");
+ if (phase == cPhs_COMPLEATE_e) {
+ OS_REPORT("E_MM_MT PARAM %x\n", fopAcM_GetParam(i_this));
+ helmasaurShell->parameters = fopAcM_GetParam(i_this);
+ OS_REPORT("E_MM_MT//////////////E_MM_MT SET 1 !!\n");
+
+
+ if (!fopAcM_entrySolidHeap(i_this, useHeapInit, 0x850)) {
+ OS_REPORT("//////////////E_MM_MT SET NON !!\n");
+ return cPhs_ERROR_e;
+ }
+ OS_REPORT("//////////////E_MM_MT SET 2 !!\n");
+ fopAcM_SetMtx(i_this, helmasaurShell->mp_model->getBaseTRMtx());
+ fopAcM_SetMin(i_this, -200.0f, -200.0f, -200.0f);
+ fopAcM_SetMax(i_this, 200.0f, 200.0f, 200.0f);
+ helmasaurShell->m_stts.Init(100, 0, i_this);
+ if (i_this->argument == 1) {
+ helmasaurShell->m_stts.SetWeight(0xFE);
+
+ } else {
+ helmasaurShell->m_stts.SetWeight(200);
+ }
+
+ i_this->health = 2000;
+ i_this->field_0x560 = 2000;
+ static dCcD_SrcSph cc_sph_src = {
+ {
+ {0x0, {{AT_TYPE_CSTATUE_SWING, 0x1, 0xd}, {0xd8fbfdff, 0x3}, 0x75}}, // mObj
+ {dCcD_SE_METAL, 0x0, 0x1, 0x0, 0x0}, // mGObjAt
+ {dCcD_SE_NONE, 0x2, 0x0, 0x0, 0x407}, // mGObjTg
+ {0x0}, // mGObjCo
+ }, // mObjInf
+ {
+ {{0.0f, 0.0f, 0.0f}, 40.0f} // m_sphere
+ } // m_sphAttr
+ };
+
+
+ helmasaurShell->m_sphere.Set(cc_sph_src);
+ helmasaurShell->m_sphere.SetStts(&helmasaurShell->m_stts);
+ if (i_this->argument == 1) {
+ fopAcM_OffStatus(i_this, 0x80000);
+ helmasaurShell->m_sphere.SetAtType(
+ #if VERSION == VERSION_GCN_JPN
+ AT_TYPE_CSTATUE_SWING
+ #else
+ 0xD8FBBDFF
+ #endif
+ );
+ helmasaurShell->m_stts.SetWeight(0xFE);
+ helmasaurShell->m_sphere.SetAtAtp(2);
+ } else {
+ static dCcD_SrcSph hk_sph_src = {
+ {
+ {0x0, {{0x0, 0x0, 0x0}, {0x4080, 0x3}, 0x0}}, // mObj
+ {dCcD_SE_13, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
+ {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x406}, // mGObjTg
+ {0x0}, // mGObjCo
+ }, // mObjInf
+ {
+ {{0.0f, 0.0f, 0.0f}, 40.0f} // m_sphere
+ }
+ };
+ helmasaurShell->m_stts.SetWeight(200);
+ helmasaurShell->m_sph.Set(hk_sph_src);
+ helmasaurShell->m_sph.SetStts(&helmasaurShell->m_stts);
+ }
+ helmasaurShell->m_acch.Set(fopAcM_GetPosition_p(i_this), fopAcM_GetOldPosition_p(i_this), i_this, 1,
+ &helmasaurShell->m_acchCir, fopAcM_GetSpeed_p(i_this), NULL, NULL);
+
+ helmasaurShell->m_acchCir.SetWall(50.0f, 50.0f);
+ helmasaurShell->m_sound.init(&i_this->current.pos, &i_this->eyePos, 3, 1);
+ helmasaurShell->m_atInfo.mpSound = &helmasaurShell->m_sound;
+ helmasaurShell->m_atInfo.mPowerType = 9;
+ i_this->attention_info.distances[fopAc_attn_CARRY_e] = 7;
+ helmasaurShell->m_lifetime = cM_rndF(65535.0f);
+ daE_MM_MT_Execute(helmasaurShell);
+ }
+ return phase;
+}
/* 807259EC-80725A0C -00001 0020+00 1/0 0/0 0/0 .data l_daE_MM_MT_Method */
static actor_method_class l_daE_MM_MT_Method = {
- (process_method_func)daE_MM_MT_Create__FP10fopAc_ac_c,
- (process_method_func)daE_MM_MT_Delete__FP13e_mm_mt_class,
- (process_method_func)daE_MM_MT_Execute__FP13e_mm_mt_class,
- (process_method_func)daE_MM_MT_IsDelete__FP13e_mm_mt_class,
- (process_method_func)daE_MM_MT_Draw__FP13e_mm_mt_class,
+ (process_method_func)daE_MM_MT_Create,
+ (process_method_func)daE_MM_MT_Delete,
+ (process_method_func)daE_MM_MT_Execute,
+ (process_method_func)daE_MM_MT_IsDelete,
+ (process_method_func)daE_MM_MT_Draw,
};
/* 80725A0C-80725A3C -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_MM_MT */
@@ -566,104 +885,3 @@ extern actor_process_profile_definition g_profile_E_MM_MT = {
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
-
-/* 80725A3C-80725A48 000108 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */
-SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_AcchCirFv,
-};
-
-/* 80725A48-80725A54 000114 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
-SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10cCcD_GSttsFv,
-};
-
-/* 80725A54-80725A60 000120 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
-SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10dCcD_GSttsFv,
-};
-
-/* 80725A60-80725A6C 00012C 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,
-};
-
-/* 80725A6C-80725A78 000138 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,
-};
-
-/* 80725A78-80725A9C 000144 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_80725434,
- (void*)NULL,
- (void*)NULL,
- (void*)func_8072542C,
-};
-
-/* 80724EE0-80725218 001FE0 0338+00 1/0 0/0 0/0 .text daE_MM_MT_Create__FP10fopAc_ac_c */
-static void daE_MM_MT_Create(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
-
-/* 80725218-80725260 002318 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-// cM3dGSph::~cM3dGSph() {
-extern "C" void __dt__8cM3dGSphFv() {
- // NONMATCHING
-}
-
-/* 80725260-807252A8 002360 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
-
-/* 807252A8-80725304 0023A8 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80725304-80725374 002404 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
-
-/* 80725374-807253E4 002474 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
-
-/* 807253E4-8072542C 0024E4 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 8072542C-80725434 00252C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_8072542C() {
- // NONMATCHING
-}
-
-/* 80725434-8072543C 002534 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80725434() {
- // NONMATCHING
-}
-
-/* 8072592C-8072592C 0000D4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */