mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 13:23:27 -04:00
Match more player_main regalloc/stack/etc issues
This commit is contained in:
@@ -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 */
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
)
|
||||
) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
+606
-689
File diff suppressed because it is too large
Load Diff
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user