d_bg_w_kcol OK (#2897)

* Match dBgWKCol::WallCorrect

* Match dBgWKCol::ShdwDraw

* Match dBgWKCol::WallCorrectSort

* d_bg_w_kcol OK

* Fix debug asserts
This commit is contained in:
LagoLunatic 2025-11-30 18:46:36 -05:00 committed by GitHub
parent a6e76c0841
commit 03efb3f79a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 106 additions and 131 deletions

View File

@ -731,7 +731,7 @@ config.libs = [
Object(MatchingFor(ALL_GCN, "Shield", "ShieldD"), "d/d_bg_s_wtr_chk.cpp"),
Object(MatchingFor(ALL_GCN), "d/d_bg_w.cpp"),
Object(MatchingFor(ALL_GCN), "d/d_bg_w_base.cpp"),
Object(NonMatching, "d/d_bg_w_kcol.cpp"),
Object(MatchingFor(ALL_GCN), "d/d_bg_w_kcol.cpp"),
Object(MatchingFor(ALL_GCN), "d/d_bg_w_sv.cpp"),
Object(Equivalent, "d/d_cc_d.cpp"), # weak func order
Object(MatchingFor(ALL_GCN), "d/d_cc_mass_s.cpp"),

View File

@ -483,15 +483,9 @@ bool dBgWKCol::LineCheck(cBgS_LinChk* plinchk) {
JUT_ASSERT(738, !isnan(pcross->x));
JUT_ASSERT(739, !isnan(pcross->y));
JUT_ASSERT(740, !isnan(pcross->z));
JUT_ASSERT(745,
-FP_INFINITE < pcross->x &&
pcross->x < FP_INFINITE);
JUT_ASSERT(747,
-FP_INFINITE < pcross->y &&
pcross->y < FP_INFINITE);
JUT_ASSERT(749,
-FP_INFINITE < pcross->z &&
pcross->z < FP_INFINITE);
JUT_ASSERT(745, -INF < pcross->x && pcross->x < INF);
JUT_ASSERT(747, -INF < pcross->y && pcross->y < INF);
JUT_ASSERT(749, -INF < pcross->z && pcross->z < INF);
plinchk->SetPolyIndex(sp28[0]);
}
@ -613,17 +607,13 @@ bool dBgWKCol::GroundCross(cBgS_GndChk* i_chk) {
return var_r24;
}
// NONMATCHING - stack
void dBgWKCol::ShdwDraw(cBgS_ShdwDraw* param_0) {
dBgPc polyCode_sp108;
cM3dGAab* bnd_spAC = param_0->GetBndP();
cXyz* minP_spA8 = bnd_spAC->GetMinP();
cXyz* maxP_spA4 = bnd_spAC->GetMaxP();
Vec offset1_sp134;
Vec offset2_sp128;
Vec prismPos_sp11C;
dBgPc polyCode_sp108;
Vec sp11C[3];
cXyz localMin_spD4;
cXyz localMax_spC8;
@ -799,7 +789,7 @@ void dBgWKCol::ShdwDraw(cBgS_ShdwDraw* param_0) {
if (!ChkShdwDrawThrough(&polyCode_sp108)) {
prismData_sp20 = getPrismData(prism_sp34[0]);
prismPos_sp11C =
sp11C[0] =
m_pkc_head->m_pos_data[prismData_sp20->pos_i];
nrm1_sp1C =
@ -815,8 +805,8 @@ void dBgWKCol::ShdwDraw(cBgS_ShdwDraw* param_0) {
if (!cM3d_IsZero(dot)) {
PSVECScale(&cross1_spBC, &cross1_spBC,
prismData_sp20->height / dot);
PSVECAdd(&cross1_spBC, &prismPos_sp11C,
&offset1_sp134);
PSVECAdd(&cross1_spBC, &sp11C[0],
&sp11C[2]);
// Second edge direction
temp_sp10 = m_pkc_head->m_nrm_data +
@ -828,13 +818,13 @@ void dBgWKCol::ShdwDraw(cBgS_ShdwDraw* param_0) {
if (!cM3d_IsZero(dot2)) {
PSVECScale(&cross2_spB0, &cross2_spB0,
prismData_sp20->height / dot2);
PSVECAdd(&cross2_spB0, &prismPos_sp11C,
&offset2_sp128);
PSVECAdd(&cross2_spB0, &sp11C[0],
&sp11C[1]);
cM3dGPla pla_spF4;
pla_spF4 = GetTriPla(prism_sp34[0]);
(param_0->mCallbackFun)(
param_0, (cBgD_Vtx_t*)&prismPos_sp11C,
param_0, (cBgD_Vtx_t*)&sp11C,
0, 1, 2, &pla_spF4);
}
}
@ -1020,7 +1010,6 @@ static u8 lit_5300[8] = {
};
#endif
// NONMATCHING - regalloc
bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) {
bool sp_10 = false;
@ -1154,7 +1143,7 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) {
if (sp_c8 == sp_120 || sp_c8 == sp_11c || sp_c8 == sp_118) {
} else {
while (*++sp_c8 != 0) {
KC_PrismData* sp_c0 = getPrismData(*sp_c8);
KC_PrismData* sp_c0 = (KC_PrismData*)getPrismData(*sp_c8);
Vec* sp_bc = m_pkc_head->m_nrm_data + sp_c0->fnrm_i;
if (!cBgW_CheckBGround(sp_bc->y)) {
f32 sp_b8 = JMAFastSqrt(sp_bc->x * sp_bc->x + sp_bc->z * sp_bc->z);
@ -1256,8 +1245,8 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) {
if (sp_a4 == NULL) {
break;
}
u32 sp_a0 = (u16)sp_a4->_4;
KC_PrismData* sp_9c = getPrismData(sp_a0);
int sp_a0 = sp_a4->_4;
KC_PrismData* sp_9c = (KC_PrismData*)getPrismData(sp_a0);
Vec* sp_98 = m_pkc_head->m_nrm_data + sp_9c->fnrm_i;
f32 sp_94 = JMAFastSqrt(sp_98->x * sp_98->x + sp_98->z * sp_98->z);
cXyz sp_168;
@ -1265,15 +1254,15 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) {
cXyz sp_150;
if (GetTriPnt(sp_9c, &sp_168, &sp_15c, &sp_150)) {
f32 sp_90 = 1.0f / sp_94;
for (s32 cir_index_8c = 0; cir_index_8c < pwi->GetTblSize(); cir_index_8c++) {
f32 sp_88 = sp_90 * pwi->GetWallR(cir_index_8c);
for (int cir_index = 0; cir_index < pwi->GetTblSize(); cir_index++) {
f32 sp_88 = sp_90 * pwi->GetWallR(cir_index);
sp_18c.x = sp_98->x * sp_88;
sp_18c.z = sp_98->z * sp_88;
f32 sp_84;
if (!pwi->ChkWallHDirect(cir_index_8c)) {
sp_84 = pwi->GetPos()->y + pwi->GetWallH(cir_index_8c) + pwi->GetWallAddY(sp_18c) - pwi->GetSpeedY();
if (!pwi->ChkWallHDirect(cir_index)) {
sp_84 = pwi->GetPos()->y + pwi->GetWallH(cir_index) + pwi->GetWallAddY(sp_18c) - pwi->GetSpeedY();
} else {
sp_84 = pwi->GetWallHDirect(cir_index_8c);
sp_84 = pwi->GetWallHDirect(cir_index);
}
f32 sp_144[3];
sp_144[0] = sp_168.y - sp_84;
@ -1325,39 +1314,39 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) {
if (!cM3d_IsZero(sp_6c)) {
f32 sp_68 = -sp_144[sp_7c] / sp_70;
f32 sp_64 = -sp_144[sp_78] / sp_6c;
f32 cx0_60;
f32 cy0_5c;
f32 cx1_58;
f32 cy1_54;
f32 cx0;
f32 cy0;
f32 cx1;
f32 cy1;
if (sp_80 == 0) {
cx0_60 = sp_15c.x + sp_68 * (sp_168.x - sp_15c.x);
cy0_5c = sp_15c.z + sp_68 * (sp_168.z - sp_15c.z);
cx1_58 = sp_150.x + sp_64 * (sp_168.x - sp_150.x);
cy1_54 = sp_150.z + sp_64 * (sp_168.z - sp_150.z);
cx0 = sp_15c.x + sp_68 * (sp_168.x - sp_15c.x);
cy0 = sp_15c.z + sp_68 * (sp_168.z - sp_15c.z);
cx1 = sp_150.x + sp_64 * (sp_168.x - sp_150.x);
cy1 = sp_150.z + sp_64 * (sp_168.z - sp_150.z);
} else if (sp_80 == 1) {
cx0_60 = sp_168.x + sp_68 * (sp_15c.x - sp_168.x);
cy0_5c = sp_168.z + sp_68 * (sp_15c.z - sp_168.z);
cx1_58 = sp_150.x + sp_64 * (sp_15c.x - sp_150.x);
cy1_54 = sp_150.z + sp_64 * (sp_15c.z - sp_150.z);
cx0 = sp_168.x + sp_68 * (sp_15c.x - sp_168.x);
cy0 = sp_168.z + sp_68 * (sp_15c.z - sp_168.z);
cx1 = sp_150.x + sp_64 * (sp_15c.x - sp_150.x);
cy1 = sp_150.z + sp_64 * (sp_15c.z - sp_150.z);
} else {
cx0_60 = sp_168.x + sp_68 * (sp_150.x - sp_168.x);
cy0_5c = sp_168.z + sp_68 * (sp_150.z - sp_168.z);
cx1_58 = sp_15c.x + sp_64 * (sp_150.x - sp_15c.x);
cy1_54 = sp_15c.z + sp_64 * (sp_150.z - sp_15c.z);
cx0 = sp_168.x + sp_68 * (sp_150.x - sp_168.x);
cy0 = sp_168.z + sp_68 * (sp_150.z - sp_168.z);
cx1 = sp_15c.x + sp_64 * (sp_150.x - sp_15c.x);
cy1 = sp_15c.z + sp_64 * (sp_150.z - sp_15c.z);
}
cx0_60 += sp_18c.x;
cy0_5c += sp_18c.z;
cx1_58 += sp_18c.x;
cy1_54 += sp_18c.z;
cx0 += sp_18c.x;
cy0 += sp_18c.z;
cx1 += sp_18c.x;
cy1 += sp_18c.z;
f32 sp_50;
f32 sp_4c;
f32 sp_48;
bool sp_0f =
cM3d_Len2dSqPntAndSegLine(pwi->GetCx(), pwi->GetCz(), cx0_60, cy0_5c, cx1_58,
cy1_54, &sp_4c, &sp_48, &sp_50);
cM3d_Len2dSqPntAndSegLine(pwi->GetCx(), pwi->GetCz(), cx0, cy0, cx1,
cy1, &sp_4c, &sp_48, &sp_50);
f32 sp_44 = sp_4c - pwi->GetCx();
f32 sp_40 = sp_48 - pwi->GetCz();
f32 sp_3c = pwi->GetWallRR(cir_index_8c);
f32 sp_3c = pwi->GetWallRR(cir_index);
if (sp_50 > sp_3c || sp_44 * sp_18c.x + sp_40 * sp_18c.z < 0.0f)
{
continue;
@ -1376,36 +1365,30 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) {
JUT_ASSERT(0x77e, !isnan(pwi->GetPos()->x));
JUT_ASSERT(0x77f, !isnan(pwi->GetPos()->z));
JUT_ASSERT(0x782, -INF < pwi->GetPos()->x &&
pwi->GetPos()->x < INF);
JUT_ASSERT(0x784, -INF < pwi->GetPos()->z &&
pwi->GetPos()->z < INF);
JUT_ASSERT(0x782, -INF < pwi->GetPos()->x && pwi->GetPos()->x < INF);
JUT_ASSERT(0x784, -INF < pwi->GetPos()->z && pwi->GetPos()->z < INF);
pwi->CalcMovePosWork();
pwi->SetWallCirHit(cir_index_8c);
pwi->SetWallPolyIndex(cir_index_8c, sp_a0);
pwi->SetWallCirHit(cir_index);
pwi->SetWallPolyIndex(cir_index, sp_a0);
s16 sp_16 = cM_atan2s(sp_98->x, sp_98->z);
pwi->SetWallAngleY(cir_index_8c, sp_16);
pwi->SetWallAngleY(cir_index, sp_16);
sp_10 = true;
} else {
cx0_60 -= sp_18c.x;
cy0_5c -= sp_18c.z;
cx1_58 -= sp_18c.x;
cy1_54 -= sp_18c.z;
cx0 -= sp_18c.x;
cy0 -= sp_18c.z;
cx1 -= sp_18c.x;
cy1 -= sp_18c.z;
JUT_ASSERT(0x797,
pwi->GetPos()->x == pwi->GetWallCirP(cir_index_8c)->GetCx())
JUT_ASSERT(0x799, pwi->GetPos()->z ==
pwi->GetWallCirP(cir_index_8c)->GetCy());
JUT_ASSERT(0x797, pwi->GetPos()->x == pwi->GetWallCirP(cir_index)->GetCx())
JUT_ASSERT(0x799, pwi->GetPos()->z == pwi->GetWallCirP(cir_index)->GetCy());
f32 sp_34 =
cM3d_Len2dSq(cx0_60, cy0_5c, pwi->GetPos()->x, pwi->GetPos()->z);
f32 sp_30 =
cM3d_Len2dSq(cx1_58, cy1_54, pwi->GetPos()->x, pwi->GetPos()->z);
f32 onx_2c = -sp_98->x;
f32 ony_28 = -sp_98->z;
f32 sp_34 = cM3d_Len2dSq(cx0, cy0, pwi->GetPos()->x, pwi->GetPos()->z);
f32 sp_30 = cM3d_Len2dSq(cx1, cy1, pwi->GetPos()->x, pwi->GetPos()->z);
f32 onx = -sp_98->x;
f32 ony = -sp_98->z;
JUT_ASSERT(0x7a8, !(cM3d_IsZero(onx_2c) && cM3d_IsZero(ony_28)));
JUT_ASSERT(0x7a8, !(cM3d_IsZero(onx) && cM3d_IsZero(ony)));
if (sp_34 < sp_30) {
if (sp_34 > sp_3c) {
@ -1418,53 +1401,49 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) {
f32 sp_1c;
f32 sp_18;
JUT_ASSERT(0x7b3, !isnan(cx0_60));
JUT_ASSERT(0x7b4, !isnan(cy0_5c));
JUT_ASSERT(0x7b3, !isnan(cx0));
JUT_ASSERT(0x7b4, !isnan(cy0));
cM2d_CrossCirLin(*pwi->GetWallCirP(cir_index_8c), cx0_60,
cy0_5c, onx_2c, ony_28, &sp_1c, &sp_18);
cM2d_CrossCirLin(*pwi->GetWallCirP(cir_index), cx0,
cy0, onx, ony, &sp_1c, &sp_18);
pwi->GetPos()->x += (cx0_60 - sp_1c);
pwi->GetPos()->z += (cy0_5c - sp_18);
pwi->GetPos()->x += (cx0 - sp_1c);
pwi->GetPos()->z += (cy0 - sp_18);
JUT_ASSERT(0x7bf, !isnan(pwi->GetPos()->x));
JUT_ASSERT(0x7c0, !isnan(pwi->GetPos()->z));
JUT_ASSERT(0x7c3, -INF < pwi->GetPos()->x &&
pwi->GetPos()->x < INF)
JUT_ASSERT(0x7c5, -INF < pwi->GetPos()->z &&
pwi->GetPos()->z < INF)
JUT_ASSERT(1983, !isnan(pwi->GetPos()->x));
JUT_ASSERT(1984, !isnan(pwi->GetPos()->z));
JUT_ASSERT(1987, -INF < pwi->GetPos()->x && pwi->GetPos()->x < INF)
JUT_ASSERT(1989, -INF < pwi->GetPos()->z && pwi->GetPos()->z < INF)
pwi->CalcMovePosWork();
pwi->SetWallCirHit(cir_index_8c);
pwi->SetWallPolyIndex(cir_index_8c, sp_a0);
pwi->SetWallCirHit(cir_index);
pwi->SetWallPolyIndex(cir_index, sp_a0);
s16 sp_14 = cM_atan2s(sp_98->x, sp_98->z);
pwi->SetWallAngleY(cir_index_8c, sp_14);
pwi->SetWallAngleY(cir_index, sp_14);
sp_10 = true;
pwi->SetWallHit();
} else if (!(sp_30 > sp_3c || fabsf(sp_30 - sp_3c) < 0.008f)) {
f32 sp_1c;
f32 sp_18;
JUT_ASSERT(0x7e2, !isnan(cx1_58));
JUT_ASSERT(0x7e3, !isnan(cy1_54));
JUT_ASSERT(0x7e2, !isnan(cx1));
JUT_ASSERT(0x7e3, !isnan(cy1));
cM2d_CrossCirLin(*pwi->GetWallCirP(cir_index_8c), cx1_58, cy1_54, onx_2c, ony_28, &sp_1c, &sp_18);
cM2d_CrossCirLin(*pwi->GetWallCirP(cir_index), cx1, cy1, onx, ony, &sp_1c, &sp_18);
pwi->GetPos()->x += (cx1_58 - sp_1c);
pwi->GetPos()->z += (cy1_54 - sp_18);
pwi->GetPos()->x += (cx1 - sp_1c);
pwi->GetPos()->z += (cy1 - sp_18);
JUT_ASSERT(0x7ed, !isnan(pwi->GetPos()->x));
JUT_ASSERT(0x7ed, !isnan(pwi->GetPos()->z));
JUT_ASSERT(2029, !isnan(pwi->GetPos()->x));
JUT_ASSERT(2030, !isnan(pwi->GetPos()->z));
JUT_ASSERT(0x7f1, -INF < pwi->GetPos()->x &&
pwi->GetPos()->x < INF)
JUT_ASSERT(0x7f1, -INF < pwi->GetPos()->z &&
pwi->GetPos()->z < INF)
JUT_ASSERT(2033, -INF < pwi->GetPos()->x && pwi->GetPos()->x < INF)
JUT_ASSERT(2035, -INF < pwi->GetPos()->z && pwi->GetPos()->z < INF)
pwi->CalcMovePosWork();
pwi->SetWallCirHit(cir_index_8c);
pwi->SetWallPolyIndex(cir_index_8c, sp_a0);
pwi->SetWallCirHit(cir_index);
pwi->SetWallPolyIndex(cir_index, sp_a0);
s16 sp_12 = cM_atan2s(sp_98->x, sp_98->z);
pwi->SetWallAngleY(cir_index_8c, sp_12);
pwi->SetWallAngleY(cir_index, sp_12);
sp_10 = true;
pwi->SetWallHit();
}
@ -1480,7 +1459,6 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) {
return sp_10;
}
// NONMATCHING - missing mr
bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
bool sp10 = false;
@ -1628,7 +1606,7 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
}
while (*++spA4 != 0) {
KC_PrismData* sp9C = getPrismData(*spA4);
KC_PrismData* sp9C = (KC_PrismData*)getPrismData(*spA4);
Vec* sp98 = m_pkc_head->m_nrm_data + sp9C->fnrm_i;
if (cBgW_CheckBGround(sp98->y)) {
continue;
@ -1655,18 +1633,18 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
}
f32 sp90 = 1.0f / sp94;
for (int sp8C = 0; sp8C < pwi->GetTblSize(); sp8C++) {
f32 sp88 = sp90 * pwi->GetWallR(sp8C);
for (int cir_index = 0; cir_index < pwi->GetTblSize(); cir_index++) {
f32 sp88 = sp90 * pwi->GetWallR(cir_index);
sp154.x = sp98->x * sp88;
sp154.z = sp98->z * sp88;
f32 sp84;
if (!pwi->ChkWallHDirect(sp8C)) {
if (!pwi->ChkWallHDirect(cir_index)) {
sp84 = pwi->GetWallAddY(sp154) +
(pwi->GetPos()->y + pwi->GetWallH(sp8C)) -
(pwi->GetPos()->y + pwi->GetWallH(cir_index)) -
pwi->GetSpeedY();
} else {
sp84 = pwi->GetWallHDirect(sp8C);
sp84 = pwi->GetWallHDirect(cir_index);
}
@ -1762,7 +1740,7 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
f32 sp44 = sp4C - pwi->GetCx();
f32 sp40 = sp48 - pwi->GetCz();
f32 sp3C = pwi->GetWallRR(sp8C);
f32 sp3C = pwi->GetWallRR(cir_index);
if (sp50 > sp3C || sp44 * sp154.x + sp40 * sp154.z < 0.0f) {
continue;
}
@ -1781,19 +1759,19 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
JUT_ASSERT(0x98d, -INF < pwi->GetPos()->x && pwi->GetPos()->x < INF);
JUT_ASSERT(0x98f, -INF < pwi->GetPos()->z && pwi->GetPos()->z < INF);
pwi->CalcMovePosWork();
pwi->SetWallCirHit(sp8C);
pwi->SetWallPolyIndex(sp8C,
pwi->SetWallCirHit(cir_index);
pwi->SetWallPolyIndex(cir_index,
*spA4);
s16 sp16 = cM_atan2s(sp98->x, sp98->z);
pwi->SetWallAngleY(sp8C, sp16);
pwi->SetWallAngleY(cir_index, sp16);
sp10 = true;
} else {
cx0 -= sp154.x;
cy0 -= sp154.z;
cx1 -= sp154.x;
cy1 -= sp154.z;
JUT_ASSERT(0x9a2, pwi->GetPos()->x == pwi->GetWallCirP(sp8C)->GetCx());
JUT_ASSERT(0x9a4, pwi->GetPos()->z == pwi->GetWallCirP(sp8C)->GetCy());
JUT_ASSERT(0x9a2, pwi->GetPos()->x == pwi->GetWallCirP(cir_index)->GetCx());
JUT_ASSERT(0x9a4, pwi->GetPos()->z == pwi->GetWallCirP(cir_index)->GetCy());
f32 sp34 = cM3d_Len2dSq(cx0, cy0, pwi->GetPos()->x, pwi->GetPos()->z);
f32 sp30 = cM3d_Len2dSq(cx1, cy1, pwi->GetPos()->x, pwi->GetPos()->z);
f32 onx = -sp98->x;
@ -1808,7 +1786,7 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
JUT_ASSERT(0x9bf, !isnan(cy0));
f32 sp24;
f32 sp20;
cM2d_CrossCirLin(*pwi->GetWallCirP(sp8C), cx0, cy0, onx, ony,
cM2d_CrossCirLin(*pwi->GetWallCirP(cir_index), cx0, cy0, onx, ony,
&sp24, &sp20);
pwi->GetPos()->x += cx0 - sp24;
pwi->GetPos()->z += cy0 - sp20;
@ -1817,14 +1795,13 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
JUT_ASSERT(0x9d5, -INF < pwi->GetPos()->x && pwi->GetPos()->x < INF);
JUT_ASSERT(0x9d7, -INF < pwi->GetPos()->z && pwi->GetPos()->z < INF);
pwi->CalcMovePosWork();
pwi->SetWallCirHit(sp8C);
pwi->SetWallPolyIndex(sp8C, *spA4);
pwi->SetWallCirHit(cir_index);
pwi->SetWallPolyIndex(cir_index, *spA4);
s16 sp14 = cM_atan2s(sp98->x, sp98->z);
pwi->SetWallAngleY(sp8C, sp14);
pwi->SetWallAngleY(cir_index, sp14);
sp10 = true;
pwi->SetWallHit();
} else {
@ -1836,7 +1813,7 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
JUT_ASSERT(0x9f5, !isnan(cy1));
f32 sp1C;
f32 sp18;
cM2d_CrossCirLin(*pwi->GetWallCirP(sp8C), cx1, cy1, onx, ony, &sp1C,
cM2d_CrossCirLin(*pwi->GetWallCirP(cir_index), cx1, cy1, onx, ony, &sp1C,
&sp18);
pwi->GetPos()->x += cx1 - sp1C;
pwi->GetPos()->z += cy1 - sp18;
@ -1844,14 +1821,13 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) {
JUT_ASSERT(0xa07, !isnan(pwi->GetPos()->z));
JUT_ASSERT(0xa0a, -INF < pwi->GetPos()->x && pwi->GetPos()->x < INF);
JUT_ASSERT(0xa0c, -INF < pwi->GetPos()->z && pwi->GetPos()->z < INF);
pwi->CalcMovePosWork();
pwi->SetWallCirHit(sp8C);
pwi->SetWallPolyIndex(sp8C, *spA4);
pwi->SetWallCirHit(cir_index);
pwi->SetWallPolyIndex(cir_index, *spA4);
s16 sp12 = cM_atan2s(sp98->x, sp98->z);
pwi->SetWallAngleY(sp8C, sp12);
pwi->SetWallAngleY(cir_index, sp12);
sp10 = true;
pwi->SetWallHit();
}
@ -1970,7 +1946,7 @@ bool dBgWKCol::RoofChk(dBgS_RoofChk* param_0) {
param_0->SetNowY(tmp_height_kcw);
sp0A = true;
JUT_ASSERT(0xac8, !isnan(tmp_height_kcw));
JUT_ASSERT(0xacb, -FP_INFINITE < tmp_height_kcw && tmp_height_kcw < FP_INFINITE);
JUT_ASSERT(0xacb, -INF < tmp_height_kcw && tmp_height_kcw < INF);
bool sp08 = true;
if (!(tmp_height_kcw - m_pkc_head->m_area_min_pos.y >= 0.0f)) {
OS_PANIC(0xacf, "Failed assertion tmp_height_kcw - m_pkc_head->m_area_min_pos.y >= 0.0f");
@ -2088,8 +2064,7 @@ bool dBgWKCol::SplGrpChk(dBgS_SplGrpChk* param_0) {
sp09 = true;
JUT_ASSERT(0xb73, !isnan(tmp_height_kcw));
JUT_ASSERT(0xb76,
-FP_INFINITE < tmp_height_kcw && tmp_height_kcw < FP_INFINITE);
JUT_ASSERT(0xb76, -INF < tmp_height_kcw && tmp_height_kcw < INF);
}
}
}