d_a_himo2 - 94% matching ( + misc. cleanup) (#866)

Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
This commit is contained in:
123456789758
2025-08-25 19:01:22 -04:00
committed by GitHub
parent 1b49cb3ce0
commit f989efc581
10 changed files with 1824 additions and 103 deletions
+4 -1
View File
@@ -15,7 +15,10 @@ public:
/* 0x032C */ cXyz field_0x32C;
/* 0x0338 */ u8 field_0x0338[0x0360 - 0x0338];
/* 0x0360 */ f32 field_0x360;
/* 0x0364 */ u8 field_0x0364[0x6E16 - 0x0364];
/* 0x0364 */ u8 field_0x0364[0x6190 - 0x0364];
/* 0x6190 */ u8 field_0x6190;
/* 0x6191 */ u8 field_0x6191[0x6E15 - 0x6191];
/* 0x6E15 */ u8 field_0x6e15;
/* 0x6E16 */ s16 field_0x6e16;
};
+86 -16
View File
@@ -1,31 +1,101 @@
#ifndef D_A_HIMO2_H
#define D_A_HIMO2_H
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_ext.h"
#include "m_Do/m_Do_hostIO.h"
struct himo2_s {
};
/* 0x00 */ u8 m00[0x0C - 0x00];
/* 0x0C */ f32 m0C;
/* 0x10 */ cXyz m10;
/* 0x1C */ s16 m1C;
/* 0x1E */ s16 m1E;
/* 0x20 */ u8 m20[0x24 - 0x20];
}; // Size: 0x24
class himo2_class : public fopAc_ac_c {
public:
BOOL setTargetPos(cXyz*, float*, float*);
public:
/* Place member variables here */
// TODO: is this right?
/* 0x290 */ u8 field_0x290[0x2DC - 0x290];
/* 0x2DC */ s32 field_0x2DC;
/* 0x2E0 */ u8 field_0x2E0[0x15F8 - 0x2E0];
/* 0x15FC */ cXyz field_0x15F8;
};
class himo2HIO_c {
public:
~himo2HIO_c();
public:
/* Place member variables here */
/* 0x0290 */ u8 m0290[0x029C - 0x0290];
/* 0x029C */ s16 m029C;
/* 0x029E */ s16 m029E;
/* 0x02A0 */ s16 m02A0;
/* 0x02A2 */ s16 m02A2;
/* 0x02A2 */ s16 m02A4;
/* 0x02A6 */ u8 m02A6[0x02B4 - 0x02A6];
/* 0x02B4 */ cXyz m02B4;
/* 0x02C0 */ u8 m02C0[0x02CC - 0x02C0];
/* 0x02CC */ s32 m02CC;
/* 0x02D0 */ u8 m02D0[0x02D8 - 0x02D0];
/* 0x02D8 */ u32 m02D8;
/* 0x02DC */ s32 m02DC;
/* 0x02E0 */ s8 m02E0;
/* 0x02E1 */ u8 m02E1[0x02E4 - 0x02E1];
/* 0x02E4 */ f32 m02E4;
/* 0x02E8 */ u8 m02E8[0x02EC - 0x02E8];
/* 0x02EC */ cXyz m02EC[2];
/* 0x0304 */ u8 m0304[0x0308 - 0x0304];
/* 0x0308 */ s16 m0308;
/* 0x030A */ u8 m030A[0x0310 - 0x030A];
/* 0x0310 */ himo2_s m0310[100];
/* 0x1120 */ himo2_s m1120[100];
/* 0x1F30 */ mDoExt_3DlineMat1_c m1F30;
/* 0x1F6C */ s32 m1F6C;
/* 0x1F70 */ f32 m1F70;
/* 0x1F74 */ u8 m1F74[0x1F84 - 0x1F74];
/* 0x1F84 */ cXyz m1F84;
/* 0x1F90 */ s16 m1F90;
/* 0x1F92 */ s16 m1F92;
/* 0x1F94 */ s16 m1F94;
/* 0x1F96 */ u8 m1F96[0x1F98 - 0x1F96];
/* 0x1F98 */ mDoExt_3DlineMat1_c m1F98;
/* 0x1FD4 */ f32 m1FD4;
/* 0x1FD8 */ mDoExt_3DlineMat1_c m1FD8;
/* 0x2014 */ dCcD_Stts m2014;
/* 0x2050 */ dCcD_Sph m2050;
/* 0x217C */ fopAc_ac_c* m217C;
/* 0x2180 */ fpc_ProcID m2180;
/* 0x2184 */ f32 m2184;
/* 0x2188 */ f32 m2188;
/* 0x218C */ fopAc_ac_c* m218C;
/* 0x2190 */ u8 m2190[0x24AC - 0x2190];
/* 0x24AC */ u8 m24AC;
/* 0x24AD */ u8 m24AD[0x24B0 - 0x24AD];
/* 0x24B0 */ J3DModel* m24B0;
/* 0x24B4 */ f32 m24B4;
/* 0x24B8 */ f32 m24B8;
/* 0x24BC */ s32 m24BC;
/* 0x24C0 */ s32 m24C0;
/* 0x24C4 */ f32 m24C4;
/* 0x24C8 */ s16 m24C8;
/* 0x24CA */ s16 m24CA;
/* 0x24CC */ cXyz m24CC;
/* 0x24D8 */ s8 m24D8;
/* 0x24D9 */ s8 m24D9;
/* 0x24DA */ u8 m24DA[0x24DC - 0x24DA];
/* 0x24DC */ cXyz m24DC;
/* 0x24E8 */ cXyz m24E8;
/* 0x24F4 */ f32 m24F4;
/* 0x24F8 */ f32 m24F8;
/* 0x24FC */ f32 m24FC;
/* 0x2500 */ f32 m2500;
/* 0x2504 */ cXyz m2504;
/* 0x2510 */ s16 m2510;
/* 0x2512 */ s16 m2512;
/* 0x2514 */ f32 m2514;
/* 0x2518 */ f32 m2518;
/* 0x251C */ s8 m251C;
/* 0x251C */ u8 m251D[0x2520 - 0x251D];
/* 0x2520 */ f32 m2520;
/* 0x2524 */ cXyz m2524;
/* 0x2530 */ f32 m2530;
/* 0x2534 */ dBgS_AcchCir m2534;
/* 0x2574 */ dBgS_ObjAcch m2574;
};
#endif /* D_A_HIMO2_H */
+2 -2
View File
@@ -554,8 +554,8 @@ public:
BOOL checkBowMiniGame() const { return mDemo.getDemoMode() == daPy_demo_c::DEMO_BOW_MINIGAME_e; }
void checkSoupPowerUp() const {}
void checkSubjectAccept() const {}
void getRopeJumpLand() const {}
void checkRopeForceEnd() const {}
BOOL getRopeJumpLand() const { return checkResetFlg0(daPyRFlg0_UNK200); }
BOOL checkRopeForceEnd() const { return checkResetFlg0(daPyRFlg0_UNK40000000); }
virtual MtxP getLeftHandMatrix() = 0;
virtual MtxP getRightHandMatrix() = 0;
-1
View File
@@ -337,7 +337,6 @@ public:
daPy_footData_c();
public:
// TODO: is this right?
/* 0x000 */ u8 field_0x000;
/* 0x001 */ u8 field_0x001;
/* 0x002 */ s16 field_0x002;
+1 -1
View File
@@ -176,7 +176,7 @@ public:
mWhirlActor = NULL;
}
void onCb1Ride() { mStateFlag |= 0x40000000; }
void onCb1Ride() { onStateFlg(daSFLG_UNK40000000_e); }
void onCraneHookFlg() { onStateFlg(daSFLG_UNK800_e); }
void onCrashFlg() { onStateFlg(daSFLG_UNK4_e); }
void onFantomGanonBattle() {}
+14 -2
View File
@@ -37,11 +37,23 @@ public:
inline bool _delete();
inline bool _draw();
inline bool _execute();
void hide() {}
void hide() {
if (m_emitter == NULL) {
return;
}
m_emitter->setStatus(JPAEmtrStts_StopDraw);
return;
}
void setAimRate(float) {}
void setAlpha(unsigned char alpha) { m_alpha = alpha; }
inline void set_mtx();
void show() {}
void show() {
if (m_emitter == NULL) {
return;
}
m_emitter->clearStatus(JPAEmtrStts_StopDraw);
return;
}
void start() {
if (m_emitter != NULL) {
m_alpha_flag = 1;
+1 -1
View File
@@ -297,7 +297,7 @@ static cPhs_State daFf_Create(fopAc_ac_c* i_this) {
int uVar1 = fopAcM_GetParam(a_this) & 0xFF;
if (uVar1 != 0) {
fopAcM_SetParam(a_this, fopAcM_GetParam(a_this) & 0xFF00);
for (int iVar7 = 0; iVar7 < uVar1; iVar7 = iVar7 + 1) {
for (int i = 0; i < uVar1; i++) {
fopAcM_prm_class* pfVar4 = fopAcM_CreateAppend();
pfVar4->base.position.x = a_this->current.pos.x + cM_rndFX(500.0f);
pfVar4->base.position.y = a_this->current.pos.y;
+1707 -70
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -272,7 +272,7 @@ int daNpc_Fa1_c::createInit() {
if (isTypeTimer()) {
setStatus(1);
fopAcM_OffStatus(this, fopAcStts_NOCULLEXEC_e);
current.angle.y += (s16)(cLib_getRndValue((u16)0, (u16)0xFF) * 0x100);
current.angle.y += (s16)(cLib_getRndValue<u16>(0, 0xFF) * 0x100);
} else {
setTypeNormal();
}
@@ -396,7 +396,7 @@ void daNpc_Fa1_c::init_normal_move() {
speedF = l_HIO.prm.m08;
gravity = 0.1f;
maxFallSpeed = -1.0f;
mTimer = cLib_getRndValue((u16)l_HIO.prm.m44, (u16)60);
mTimer = cLib_getRndValue<u16>(l_HIO.prm.m44, 60);
if (isTypeArea()) {
init_areaMove();
} else {
@@ -423,7 +423,7 @@ void daNpc_Fa1_c::normal_move() {
/* 800FBA68-800FBAB0 .text init_straight__11daNpc_Fa1_cFv */
void daNpc_Fa1_c::init_straight() {
setSubMode(NormalSubMode_STRAIGHT_e);
mMoveTimer = cLib_getRndValue((u8)60, (u8)60);
mMoveTimer = cLib_getRndValue<u8>(60, 60);
gravity = 0.1f;
}
@@ -448,7 +448,7 @@ void daNpc_Fa1_c::straight() {
/* 800FBBC8-800FBC10 .text init_turn__11daNpc_Fa1_cFv */
void daNpc_Fa1_c::init_turn() {
setSubMode(NormalSubMode_TURN_e);
mMoveTimer = cLib_getRndValue((u8)60, (u8)60);
mMoveTimer = cLib_getRndValue<u8>(60, 60);
gravity = 0.1f;
}
@@ -937,7 +937,7 @@ cPhs_State daNpc_Fa1_c::_create() {
return cPhs_ERROR_e;
}
if (l_HIO.mNo < 0) {
l_HIO.mNo = mDoHIO_createChild("回復妖精", &l_HIO); // Recovery Fairy
l_HIO.mNo = mDoHIO_createChild("回復妖精", &l_HIO); // Recovery Fairy
l_hio_counter = 1;
} else {
l_hio_counter++;
+4 -4
View File
@@ -345,7 +345,7 @@ BOOL daPy_lk_c::checkNextActionRopeReady() {
if (cancelItemUpperReadyAnime()) {
return true;
}
} else if (((rope->field_0x2DC == 5) || (rope->field_0x2DC == 8)) || (rope->field_0x2DC == 9)) {
} else if (((rope->m02DC == 5) || (rope->m02DC == 8)) || (rope->m02DC == 9)) {
return procRopeThrowCatch_init();
} else {
checkNextRopeMode();
@@ -543,7 +543,7 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
mEquipItem = dItem_GRAPPLING_HOOK_e;
local_84 = param_0->current.pos - current.pos;
dVar8 = (local_84.abs() - 95.0f);
dVar9 = ((himo2_class*)param_0)->field_0x15F8.y;
dVar9 = ((himo2_class*)param_0)->m1120[34].m10.y;
if (dVar8 > dVar9) {
dVar8 = dVar9;
}
@@ -1047,7 +1047,7 @@ BOOL daPy_lk_c::procRopeDown_init() {
}
} else {
himo2_class* rope = (himo2_class*)mActorKeepRope.getActor();
m35A4 = mRopePos.y - rope->field_0x15F8.y;
m35A4 = mRopePos.y - rope->m1120[34].m10.y;
}
if (current.pos.y <= m35A4) {
return procRopeHangWait_init(1);
@@ -1237,7 +1237,7 @@ BOOL daPy_lk_c::procRopeThrowCatch() {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
m34D0--;
himo2_class* rope = (himo2_class*)mActorKeepEquip.getActor();
if (rope->field_0x2DC == 0 || (m34D0 == 0)) {
if (rope->m02DC == 0 || (m34D0 == 0)) {
checkNextRopeMode();
}
}