mirror of
https://github.com/zeldaret/tww.git
synced 2026-09-07 02:59:59 -04:00
d_a_himo2 - 94% matching ( + misc. cleanup) (#866)
Co-authored-by: < >
This commit is contained in:
@@ -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
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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++;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user