Match more player_main regalloc/stack/etc issues

This commit is contained in:
LagoLunatic
2025-05-08 23:00:19 -04:00
parent dbadb130a5
commit cbbd4c2dc0
17 changed files with 656 additions and 748 deletions
+13 -3
View File
@@ -273,8 +273,18 @@ public:
/* 0xA4 */ int m_rootGrpIdx;
};
bool cBgW_CheckBGround(f32 ny);
bool cBgW_CheckBRoof(f32 ny);
bool cBgW_CheckBWall(f32 ny);
inline bool cBgW_CheckBGround(f32 ny) {
return ny >= 0.5f;
}
inline bool cBgW_CheckBRoof(f32 ny) {
return ny < (-4.0f / 5.0f);
}
inline bool cBgW_CheckBWall(float y) {
if (!cBgW_CheckBGround(y) && !cBgW_CheckBRoof(y))
return true;
return false;
}
#endif /* C_BG_W_H */
+3 -3
View File
@@ -179,15 +179,15 @@ public:
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
void end();
~daPy_followEcallBack_c() {}
JPABaseEmitter* getEmitter() { return mpEmitter; }
void setPos(const cXyz* pos) { mPos = *pos; }
cXyz& getPos() { return mPos; }
void setPos(const cXyz* pos) { mPos = *pos; }
void setAngle(s16 x, s16 y, s16 z) { mAngle.set(x, y, z); }
/* 0x04 */ JPABaseEmitter* mpEmitter;
/* 0x08 */ cXyz mPos;
/* 0x14 */ csXyz mAngle;
/* 0x1A */ u8 field_0x1A[0x1C - 0x1A];
}; // Size: 0x1C
class daPy_waterDropEcallBack_c : public daPy_followEcallBack_c {
@@ -1011,7 +1011,7 @@ public:
BOOL checkNextActionFromButton();
void setShieldGuard();
BOOL checkItemModeActorPointer();
BOOL checkNextActionItemFly();
void checkNextActionItemFly();
BOOL checkNextMode(int);
BOOL checkIceSlipFall();
void setFrontWallType();
+7 -7
View File
@@ -310,19 +310,19 @@ public:
virtual void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
void end();
void getAlpha() {}
void remove() {}
void setAlpha(u8) {}
void setPosArray(cXyz* param_1, s16 param_2) {
field_0x8 = param_1;
u8 getAlpha() { return mAlpha; }
void setAlpha(u8 alpha) { mAlpha = alpha;}
void remove() { end(); }
void setPosArray(cXyz* pos_array, s16 param_2) {
mPosArray = pos_array;
field_0x6 = param_2;
}
public:
/* 0x04 */ u8 field_0x4;
/* 0x04 */ u8 mAlpha;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u16 field_0x6;
/* 0x08 */ cXyz* field_0x8;
/* 0x08 */ cXyz* mPosArray;
/* 0x0C */ JPABaseEmitter* mpBaseEmitter;
}; // Size: 0x10
-8
View File
@@ -138,14 +138,6 @@ void cBgW::BlckConnect(u16* rwg, int* prev, int i_no) {
pm_rwg[*prev].next = -1;
}
inline bool cBgW_CheckBGround(f32 ny) {
return ny >= 0.5f;
}
inline bool cBgW_CheckBRoof(f32 ny) {
return ny < (-4.0f / 5.0f);
}
/* 80247A24-80247BF8 .text ClassifyPlane__4cBgWFv */
void cBgW::ClassifyPlane() {
if (pm_vtx_tbl == NULL)
+1 -1
View File
@@ -904,7 +904,7 @@ BOOL daArrow_c::procReturn() {
s32 temp3 = -field_0x69c;
field_0x69c = (temp3 / 2);
triPla = dComIfG_Bgsp()->GetTriPla(mLinChk);
if (triPla->mNormal.y >= 0.5f) {
if (cBgW_CheckBGround(triPla->GetNP()->y)) {
field_0x69a = true;
}
} else if (field_0x69a && speed.y < 0.0f) {
+1 -1
View File
@@ -3264,7 +3264,7 @@ static void rope_on(bk_class* i_this) {
break;
case 2: {
i_this->speedF = 70.0f;
s16 targetAngle = fopAcM_searchPlayerAngleY((i_this));
s16 targetAngle = fopAcM_searchPlayerAngleY(i_this);
cLib_addCalcAngleS2(&i_this->current.angle.y, targetAngle, 4, 0x1000);
if (i_this->dr.mAcch.ChkWallHit()) {
i_this->speed.y = 100.0f + REG0_F(16);
+1 -1
View File
@@ -280,7 +280,7 @@ BOOL daHookshot_c::procShot() {
if (
strcmp(dComIfGp_getStartStageName(), "kazeB") == 0 &&
(
(sp8C.y < 950.0f && dComIfG_Bgsp()->GetTriPla(mLinChk)->GetNP()->y >= 0.5f) ||
(sp8C.y < 950.0f && cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mLinChk)->GetNP()->y)) ||
dComIfG_Bgsp()->GetAttributeCode(mLinChk) == dBgS_Attr_SAND_e
)
) {
+5 -2
View File
@@ -240,8 +240,11 @@ bool daLlift_c::_execute() {
cXyz adjustedPosition;
float distXZ = fopAcM_searchActorDistanceXZ(this, dComIfGp_getPlayer(0));
mActorLifetimeFrameCount++;
if ((m43F) && (m43F--, !m43F)) {
m43E = TRUE;
if (m43F > 0) {
m43F--;
if (m43F == 0) {
m43E = TRUE;
}
}
if ((!m43C) && (m43E)) {
mTargetRotation = ZeroQuat;
+1 -1
View File
@@ -190,7 +190,7 @@ void daPy_lk_c::checkBgClimbMove() {
local_5c.set(current.pos.x + (25.0f * dVar7), local_68.y + 30.0f, current.pos.z + (25.0f * dVar6));
mGndChk.SetPos(&local_5c);
dVar3 = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (C_BG_MIN_HEIGHT != dVar3 && dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y >= 0.5f &&
if (C_BG_MIN_HEIGHT != dVar3 && cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y) &&
dVar3 >= local_68.y - 30.0f)
{
dVar4 = 3.0f;
+2 -9
View File
@@ -168,21 +168,14 @@ int daPy_lk_c::getCrawlMoveVec(cXyz* param_0, cXyz* param_1, cXyz* param_2) {
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
int iVar4 = dComIfG_Bgsp()->GetSpecialCode(mLinkLinChk);
f32 fVar1 = triPla->GetNP()->y;
bool bVar2;
if (!(fVar1 >= 0.5f || fVar1 < -0.8f)) {
bVar2 = true;
} else {
bVar2 = false;
}
if (bVar2) {
if (cBgW_CheckBWall(triPla->GetNP()->y)) {
cXyz local_3c = (*param_1 - mLinkLinChk.GetCross());
f32 dVar7 = local_3c.absXZ();
param_2->x = -dVar7 * triPla->GetNP()->x;
param_2->y = local_3c.y;
param_2->z = -dVar7 * triPla->GetNP()->z;
return true;
} else if (iVar4 == 1 || (fVar1 < 0.643832f && iVar4 == 2)) {
} else if (iVar4 == 1 || (triPla->GetNP()->y < 0.643832f && iVar4 == 2)) {
*param_2 = (*param_1 - mLinkLinChk.GetCross());
return true;
}
+1 -7
View File
@@ -661,13 +661,7 @@ BOOL daPy_lk_c::procGrabPut() {
mLinkLinChk.Set(&m370C, &local_2c, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
bool bVar1;
if ((!(triPla->GetNP()->y >= 0.5f)) && (!(triPla->GetNP()->y < -0.8f))) {
bVar1 = true;
} else {
bVar1 = false;
}
if (bVar1) {
if (cBgW_CheckBWall(triPla->GetNP()->y)) {
cXyz local_44 = (local_2c - mLinkLinChk.GetCross());
f32 dVar7 = local_44.abs();
f32 dVar5 = local_44.absXZ();
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -231,7 +231,7 @@ BOOL daPy_lk_c::changeSwimOutProc() {
return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
}
if (!checkNoResetFlg0(daPyFlg0_UNK80) || (pcVar1 && pcVar1->mNormal.y >= 0.5f && m35D0 - mAcch.GetGroundH() < daPy_HIO_swim_c0::m.field_0x24 - 5.0f)) {
if (!checkNoResetFlg0(daPyFlg0_UNK80) || (pcVar1 && cBgW_CheckBGround(pcVar1->GetNP()->y) && m35D0 - mAcch.GetGroundH() < daPy_HIO_swim_c0::m.field_0x24 - 5.0f)) {
current.pos.y = m35D0;
if (mCurProc == daPyProc_SWIM_MOVE_e && mDirection != DIR_FORWARD) {
+8 -8
View File
@@ -458,7 +458,7 @@ int daPy_lk_c::changeCutReverseProc(daPy_ANM param_0) {
mLinkLinChk.Set(&local_24, &mSwordTopPos, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
if (!(triPla->GetNP()->y >= 0.5f) ||
if (!cBgW_CheckBGround(triPla->GetNP()->y) ||
(mCurProc == daPyProc_HAMMER_FRONT_SWING_e && triPla->GetNP()->y < 0.64278764f))
{
if (mEquipItem != dItem_DEKU_LEAF_e) {
@@ -1454,13 +1454,13 @@ BOOL daPy_lk_c::procCutTurn() {
}
if (frameCtrl.checkPass(daPy_HIO_cutTurn_c0::m.field_0x34)) {
m331C.field_0x4 = 0x80;
m332C.field_0x4 = 0x80;
m333C.field_0x4 = 0x80;
} else if (m331C.field_0x4 == 0x80) {
m331C.field_0x4 = 0;
m332C.field_0x4 = 0;
m333C.field_0x4 = 0;
m331C.setAlpha(0x80);
m332C.setAlpha(0x80);
m333C.setAlpha(0x80);
} else if (m331C.getAlpha() == 0x80) {
m331C.setAlpha(0x00);
m332C.setAlpha(0x00);
m333C.setAlpha(0x00);
}
m34C2 = 1;
return true;
+4 -5
View File
@@ -99,7 +99,7 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par
local_3c.z = param_2->z + cM_ssin(uVar3) * daPy_HIO_wall_c0::m.field_0x50;
mGndChk.SetPos(&local_3c);
float f31 = bgs->GroundCross(&mGndChk);
if (C_BG_MIN_HEIGHT != f31 && (!(bgs->GetTriPla(mGndChk)->GetNP()->y >= 0.5f))) {
if (C_BG_MIN_HEIGHT != f31 && (!cBgW_CheckBGround(bgs->GetTriPla(mGndChk)->GetNP()->y))) {
return NULL;
}
@@ -350,7 +350,6 @@ BOOL daPy_lk_c::procWHideWait_init() {
/* 80137DF0-80138074 .text procWHideWait__9daPy_lk_cFv */
BOOL daPy_lk_c::procWHideWait() {
cXyz cStack_24;
cXyz cStack_3c;
cXyz cStack_48;
@@ -385,7 +384,7 @@ BOOL daPy_lk_c::procWHideWait() {
}
if (mStickDistance > 0.05f && C_BG_MIN_HEIGHT != mAcch.GetGroundH() &&
dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f)
cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y))
{
int direction = getDirectionFromCurrentAngle();
if (direction == DIR_RIGHT || direction == DIR_LEFT) {
@@ -453,7 +452,7 @@ BOOL daPy_lk_c::procWHideMove() {
if (checkWHideModeChange(&acStack_24) != 0) {
fVar2 = 0.0f;
} else if (mStickDistance > 0.05f && C_BG_MIN_HEIGHT != mAcch.GetGroundH() &&
dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f)
cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y))
{
int direction = getDirectionFromCurrentAngle();
if (direction == DIR_BACKWARD) {
@@ -492,7 +491,7 @@ BOOL daPy_lk_c::procWHideMove() {
if (std::fabsf(mVelocity) <= 0.001f) {
return procWHideWait_init();
}
if (mAcch.GetGroundH() == C_BG_MIN_HEIGHT || !(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f) ||
if (mAcch.GetGroundH() == C_BG_MIN_HEIGHT || !cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y) ||
!checkWHideBackWall(&cStack_30))
{
mVelocity = 0.0f;
+1 -1
View File
@@ -198,7 +198,7 @@ void dBgS_Acch::LineCheck(dBgS& i_bgs) {
pm_out_poly_info->SetPolyInfo(linChk);
cM3dGPla* pla = i_bgs.GetTriPla(linChk);
if (!(pla->GetNP()->y >= 0.5f)) {
if (!cBgW_CheckBGround(pla->GetNP()->y)) {
VECAdd(pm_pos, pla->GetNP(), pm_pos);
if (!cM3d_IsZero(std::sqrtf(pla->GetNP()->x*pla->GetNP()->x + pla->GetNP()->z*pla->GetNP()->z)))
pm_acch_cir[i].SetWallHDirect(pm_pos->y);
+1 -1
View File
@@ -1059,7 +1059,7 @@ void dPa_cutTurnEcallBack_c::setup(JPABaseEmitter* param_1, const cXyz* param_2,
mpBaseEmitter = param_1;
field_0x6 = 0;
field_0x5 = 0;
field_0x4 = 0xFF;
mAlpha = 0xFF;
}
/* 8007E9D4-8007EAC4 .text executeAfter__22dPa_cutTurnEcallBack_cFP14JPABaseEmitter */