himo2 closer to matching

This commit is contained in:
LagoLunatic 2025-09-09 15:23:57 -04:00
parent bac5c4a4f8
commit 3fa09b0dde
7 changed files with 968 additions and 856 deletions

View File

@ -64,7 +64,10 @@ struct cXyz : Vec {
z -= f;
}
void operator-=(const Vec& other) { VECSubtract(this, &other, this); }
void operator+=(const Vec& other) { VECAdd(this, &other, this); }
cXyz* operator+=(const Vec& other) {
VECAdd(this, &other, this);
return this;
}
void operator*=(f32 scale) { VECScale(this, this, scale); }
cXyz getCrossProduct(const Vec&) const;
cXyz outprod(const Vec&) const;

View File

@ -16,18 +16,21 @@ struct himo2_s {
/* 0x20 */ u8 m20[0x24 - 0x20];
}; // Size: 0x24
class himo2_class : public fopAc_ac_c {
public:
struct himo2_class {
BOOL setTargetPos(cXyz*, float*, float*);
public:
/* 0x0000 */ fopAc_ac_c actor;
/* 0x0290 */ u8 m0290[0x029C - 0x0290];
/* 0x029C */ s16 m029C;
/* 0x029E */ s16 m029E;
/* 0x02A0 */ s16 m02A0;
/* 0x02A2 */ s16 m02A2;
#if VERSION == VERSION_DEMO
/* 0x02A6 */ u8 m02A6[0xC];
#else
/* 0x02A2 */ s16 m02A4;
/* 0x02A6 */ u8 m02A6[0x02B4 - 0x02A6];
#endif
/* 0x02B4 */ cXyz m02B4;
/* 0x02C0 */ u8 m02C0[0x02CC - 0x02C0];
/* 0x02CC */ s32 m02CC;
@ -69,8 +72,8 @@ public:
/* 0x24B0 */ J3DModel* m24B0;
/* 0x24B4 */ f32 m24B4;
/* 0x24B8 */ f32 m24B8;
/* 0x24BC */ s32 m24BC;
/* 0x24C0 */ s32 m24C0;
/* 0x24BC */ int m24BC;
/* 0x24C0 */ int m24C0;
/* 0x24C4 */ f32 m24C4;
/* 0x24C8 */ s16 m24C8;
/* 0x24CA */ s16 m24CA;

View File

@ -555,7 +555,7 @@ public:
void checkSoupPowerUp() const {}
void checkSubjectAccept() const {}
u32 getRopeJumpLand() const { return checkResetFlg0(daPyRFlg0_UNK200); }
BOOL checkRopeForceEnd() const { return checkResetFlg0(daPyRFlg0_UNK40000000); }
u32 checkRopeForceEnd() const { return checkResetFlg0(daPyRFlg0_UNK40000000); }
virtual MtxP getLeftHandMatrix() = 0;
virtual MtxP getRightHandMatrix() = 0;

View File

@ -33,33 +33,34 @@ public:
static dPath* m_path;
static JPABaseEmitter* m_emitter;
inline cPhs_State _create();
inline bool _delete();
inline bool _draw();
inline bool _execute();
void hide() {
if (m_emitter == NULL) {
return;
}
m_emitter->stopDrawParticle();
return;
}
void setAimRate(float) {}
void setAlpha(unsigned char alpha) { m_alpha = alpha; }
inline void set_mtx();
void show() {
static void show() {
if (m_emitter == NULL) {
return;
}
m_emitter->playDrawParticle();
return;
}
void start() {
static void hide() {
if (m_emitter == NULL) {
return;
}
m_emitter->stopDrawParticle();
return;
}
static void start() {
if (m_emitter != NULL) {
m_alpha_flag = 1;
}
}
inline cPhs_State _create();
inline bool _delete();
inline bool _draw();
inline bool _execute();
void setAimRate(float) {}
void setAlpha(unsigned char alpha) { m_alpha = alpha; }
inline void set_mtx();
f32 getPosRate();
public:

View File

@ -39,6 +39,7 @@ public:
static void offBlure() { mBlureFlag = false; }
static bool isBlure() { return mBlureFlag; }
static u8 getBlureRate() { return mBlureRate; }
static void setBlureRate(u8 blurRate) { mBlureRate = blurRate; }
static MtxP getBlureMtx() { return mBlureMtx; }
static void offAutoForcus() { mAutoForcus = false; }
static void onAutoForcus() { mAutoForcus = true; }
@ -69,7 +70,6 @@ public:
static void getFrameBufferMemory() {}
static void getFrameBufferSize() {}
static void setBlureMtx(const Mtx) {}
static void setBlureRate(u8 blurRate) { mBlureRate = blurRate; }
static GXTexObj mFrameBufferTexObj;
static GXTexObj mZbufferTexObj;

File diff suppressed because it is too large Load Diff

View File

@ -560,9 +560,15 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
dVar11 = M_PI / 2 / m35A4;
if (pfVar7 != NULL) {
m34D4 = daPy_HIO_rope_c0::m.field_0x0;
#if VERSION == VERSION_DEMO
if (strcmp(dComIfGp_getStartStageName(), "GanonK") == 0) {
m34D4 /= 3;
}
#else
if (checkSpecialRope()) {
m34D4 *= 0.125f;
}
#endif
f32 fVar1 = cM_ssin(shape_angle.y);
f32 fVar2 = cM_scos(shape_angle.y);
local_78.x = fVar2 * local_84.x - fVar1 * local_84.z;