From bf818e8aec3f945480ec94f8a508812364833427 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sun, 28 Sep 2025 13:59:43 -0400 Subject: [PATCH] Use isnan instead of CHECK_FLOAT_CLASS --- .../MSL/MSL_C/MSL_Common/Include/float.h | 4 +- src/SSystem/SComponent/c_cc_d.cpp | 7 +- src/SSystem/SComponent/c_cc_s.cpp | 27 ++++---- src/SSystem/SComponent/c_m3d.cpp | 67 +++++++++---------- src/SSystem/SComponent/c_m3d_g_cyl.cpp | 11 ++- src/SSystem/SComponent/c_m3d_g_sph.cpp | 9 ++- src/d/d_bg_s.cpp | 1 - src/d/d_bg_s_acch.cpp | 13 ++-- src/d/d_bg_w.cpp | 13 ++-- src/f_op/f_op_actor.cpp | 13 ++-- 10 files changed, 78 insertions(+), 87 deletions(-) diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/float.h b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/float.h index c7ef932b3..0f271e4c7 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/float.h +++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/float.h @@ -15,8 +15,8 @@ #define fpclassify(x) ((sizeof(x) == sizeof(float)) ? __fpclassifyf((float)(x)) : __fpclassifyd((double)(x)) ) #define signbit(x) ((sizeof(x) == sizeof(float)) ? __signbitf(x) : __signbitd(x)) #define isfinite(x) ((fpclassify(x) > 2)) -#define isnan(x) ((fpclassify(x) == FP_NAN)) -#define isinf(x) ((fpclassify(x) == FP_INFINITE)) +#define isnan(x) (fpclassify(x) == FP_NAN) +#define isinf(x) (fpclassify(x) == FP_INFINITE) #define __signbitf(x) ((int)(__HI(x) & 0x80000000)) diff --git a/src/SSystem/SComponent/c_cc_d.cpp b/src/SSystem/SComponent/c_cc_d.cpp index 83db4ba56..394293d15 100644 --- a/src/SSystem/SComponent/c_cc_d.cpp +++ b/src/SSystem/SComponent/c_cc_d.cpp @@ -8,7 +8,6 @@ #include "f_pc/f_pc_manager.h" #include "dolphin/types.h" -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); #define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f); #define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f) @@ -210,9 +209,9 @@ void cCcD_Stts::PlusCcMove(f32 x, f32 y, f32 z) { m_cc_move.x += x; m_cc_move.y += y; m_cc_move.z += z; - CHECK_FLOAT_CLASS(0x1bb, m_cc_move.x); - CHECK_FLOAT_CLASS(0x1bc, m_cc_move.y); - CHECK_FLOAT_CLASS(0x1bd, m_cc_move.z); + JUT_ASSERT(0x1bb, !isnan(m_cc_move.x)); + JUT_ASSERT(0x1bc, !isnan(m_cc_move.y)); + JUT_ASSERT(0x1bd, !isnan(m_cc_move.z)); CHECK_VEC3_RANGE(0x1c1, m_cc_move); } #endif diff --git a/src/SSystem/SComponent/c_cc_s.cpp b/src/SSystem/SComponent/c_cc_s.cpp index 8a4f16c2e..12187cd4b 100644 --- a/src/SSystem/SComponent/c_cc_s.cpp +++ b/src/SSystem/SComponent/c_cc_s.cpp @@ -9,7 +9,6 @@ #include "SSystem/SComponent/c_cc_s.h" #include "JSystem/JUtility/JUTAssert.h" -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); #define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f); #define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f) #define CHECK_PVEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v->x && v->x < 1.0e32f && -1.0e32f < v->y && v->y < 1.0e32f && -1.0e32f < v->z && v->z < 1.0e32f) @@ -254,7 +253,7 @@ void cCcS::SetCoCommonHitInf(cCcD_Obj* obj1, cXyz* ppos1, cCcD_Obj* obj2, cXyz* /* 8024388C-80244750 .text SetPosCorrect__4cCcSFP8cCcD_ObjP4cXyzP8cCcD_ObjP4cXyzf */ void cCcS::SetPosCorrect(cCcD_Obj* obj1, cXyz* ppos1, cCcD_Obj* obj2, cXyz* ppos2, f32 cross_len) { - CHECK_FLOAT_CLASS(604, cross_len); + JUT_ASSERT(604, !isnan(cross_len)); #if VERSION > VERSION_DEMO CHECK_FLOAT_RANGE(605, cross_len); #endif @@ -377,12 +376,12 @@ void cCcS::SetPosCorrect(cCcD_Obj* obj1, cXyz* ppos1, cCcD_Obj* obj2, cXyz* ppos } #if VERSION > VERSION_DEMO - CHECK_FLOAT_CLASS(794, vec1.x); - CHECK_FLOAT_CLASS(795, vec1.y); - CHECK_FLOAT_CLASS(796, vec1.z); - CHECK_FLOAT_CLASS(798, vec2.x); - CHECK_FLOAT_CLASS(799, vec2.y); - CHECK_FLOAT_CLASS(800, vec2.z); + JUT_ASSERT(794, !isnan(vec1.x)); + JUT_ASSERT(795, !isnan(vec1.y)); + JUT_ASSERT(796, !isnan(vec1.z)); + JUT_ASSERT(798, !isnan(vec2.x)); + JUT_ASSERT(799, !isnan(vec2.y)); + JUT_ASSERT(800, !isnan(vec2.z)); CHECK_VEC3_RANGE(804, vec1); CHECK_VEC3_RANGE(808, vec2); #endif @@ -393,12 +392,12 @@ void cCcS::SetPosCorrect(cCcD_Obj* obj1, cXyz* ppos1, cCcD_Obj* obj2, cXyz* ppos (*ppos2) += vec2; #if VERSION > VERSION_DEMO - CHECK_FLOAT_CLASS(817, ppos1->x); - CHECK_FLOAT_CLASS(818, ppos1->y); - CHECK_FLOAT_CLASS(819, ppos1->z); - CHECK_FLOAT_CLASS(821, ppos2->x); - CHECK_FLOAT_CLASS(822, ppos2->y); - CHECK_FLOAT_CLASS(823, ppos2->z); + JUT_ASSERT(817, !isnan(ppos1->x)); + JUT_ASSERT(818, !isnan(ppos1->y)); + JUT_ASSERT(819, !isnan(ppos1->z)); + JUT_ASSERT(821, !isnan(ppos2->x)); + JUT_ASSERT(822, !isnan(ppos2->y)); + JUT_ASSERT(823, !isnan(ppos2->z)); CHECK_PVEC3_RANGE(827, ppos1); CHECK_PVEC3_RANGE(831, ppos2); #endif diff --git a/src/SSystem/SComponent/c_m3d.cpp b/src/SSystem/SComponent/c_m3d.cpp index 6a365069e..d5b0d8d8d 100644 --- a/src/SSystem/SComponent/c_m3d.cpp +++ b/src/SSystem/SComponent/c_m3d.cpp @@ -15,7 +15,6 @@ #include "SSystem/SComponent/c_math.h" #include "SSystem/SComponent/c_sxyz.h" -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); #define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f); #define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f) #define CHECK_PVEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v->x && v->x < 1.0e32f && -1.0e32f < v->y && v->y < 1.0e32f && -1.0e32f < v->z && v->z < 1.0e32f) @@ -1377,16 +1376,16 @@ int cM3d_Cross_LinSph_CrossPos(const cM3dGSph& sph, const cM3dGLin& line, Vec* p /* 8024D378-8024DB34 .text cM3d_Cross_CylSph__FPC8cM3dGCylPC8cM3dGSphP3VecPf */ bool cM3d_Cross_CylSph(const cM3dGCyl* pcyl, const cM3dGSph* psph, Vec* param_2, f32* pcross_len) { const Vec* pnow_sph_center = psph->GetCP(); - CHECK_FLOAT_CLASS(DEMO_SELECT(2499, 2498), pnow_sph_center->x); - CHECK_FLOAT_CLASS(DEMO_SELECT(2500, 2499), pnow_sph_center->y); - CHECK_FLOAT_CLASS(DEMO_SELECT(2501, 2500), pnow_sph_center->z); - CHECK_FLOAT_CLASS(DEMO_SELECT(2502, 2501), psph->GetR()); + JUT_ASSERT(DEMO_SELECT(2499, 2498), !isnan(pnow_sph_center->x)); + JUT_ASSERT(DEMO_SELECT(2500, 2499), !isnan(pnow_sph_center->y)); + JUT_ASSERT(DEMO_SELECT(2501, 2500), !isnan(pnow_sph_center->z)); + JUT_ASSERT(DEMO_SELECT(2502, 2501), !isnan(psph->GetR())); const Vec* pnow_cyl_center = pcyl->GetCP(); - CHECK_FLOAT_CLASS(DEMO_SELECT(2504, 2503), pnow_cyl_center->x); - CHECK_FLOAT_CLASS(DEMO_SELECT(2505, 2504), pnow_cyl_center->y); - CHECK_FLOAT_CLASS(DEMO_SELECT(2506, 2505), pnow_cyl_center->z); - CHECK_FLOAT_CLASS(DEMO_SELECT(2507, 2506), pcyl->GetH()); - CHECK_FLOAT_CLASS(DEMO_SELECT(2508, 2507), pcyl->GetR()); + JUT_ASSERT(DEMO_SELECT(2504, 2503), !isnan(pnow_cyl_center->x)); + JUT_ASSERT(DEMO_SELECT(2505, 2504), !isnan(pnow_cyl_center->y)); + JUT_ASSERT(DEMO_SELECT(2506, 2505), !isnan(pnow_cyl_center->z)); + JUT_ASSERT(DEMO_SELECT(2507, 2506), !isnan(pcyl->GetH())); + JUT_ASSERT(DEMO_SELECT(2508, 2507), !isnan(pcyl->GetR())); f32 radius_sum = pcyl->GetR() + psph->GetR(); f32 dist = std::sqrtf(cM3d_Len2dSq(pnow_sph_center->x, pnow_sph_center->z, pnow_cyl_center->x, pnow_cyl_center->z)); @@ -1412,7 +1411,7 @@ bool cM3d_Cross_CylSph(const cM3dGCyl* pcyl, const cM3dGSph* psph, Vec* param_2, *param_2 = *pnow_sph_center; } #if VERSION > VERSION_DEMO - CHECK_FLOAT_CLASS(2539, *pcross_len); + JUT_ASSERT(2539, !isnan(*pcross_len)); #endif return true; } @@ -1422,26 +1421,26 @@ bool cM3d_Cross_CylSph(const cM3dGCyl* pcyl, const cM3dGSph* psph, Vec* param_2, /* 8024DB34-8024E1B4 .text cM3d_Cross_SphSph__FPC8cM3dGSphPC8cM3dGSphPfPf */ bool cM3d_Cross_SphSph(const cM3dGSph* i_a, const cM3dGSph* i_b, f32* param_2, f32* i_pcc_crosslen) { - CHECK_FLOAT_CLASS(DEMO_SELECT(2566, 2565), i_a->GetCP()->x); - CHECK_FLOAT_CLASS(DEMO_SELECT(2567, 2566), i_a->GetCP()->y); - CHECK_FLOAT_CLASS(DEMO_SELECT(2568, 2567), i_a->GetCP()->z); - CHECK_FLOAT_CLASS(DEMO_SELECT(2569, 2568), i_a->GetR()); + JUT_ASSERT(DEMO_SELECT(2566, 2565), !isnan(i_a->GetCP()->x)); + JUT_ASSERT(DEMO_SELECT(2567, 2566), !isnan(i_a->GetCP()->y)); + JUT_ASSERT(DEMO_SELECT(2568, 2567), !isnan(i_a->GetCP()->z)); + JUT_ASSERT(DEMO_SELECT(2569, 2568), !isnan(i_a->GetR())); - CHECK_FLOAT_CLASS(DEMO_SELECT(2570, 2569), i_b->GetCP()->x); - CHECK_FLOAT_CLASS(DEMO_SELECT(2571, 2570), i_b->GetCP()->y); - CHECK_FLOAT_CLASS(DEMO_SELECT(2572, 2571), i_b->GetCP()->z); - CHECK_FLOAT_CLASS(DEMO_SELECT(2573, 2572), i_b->GetR()); + JUT_ASSERT(DEMO_SELECT(2570, 2569), !isnan(i_b->GetCP()->x)); + JUT_ASSERT(DEMO_SELECT(2571, 2570), !isnan(i_b->GetCP()->y)); + JUT_ASSERT(DEMO_SELECT(2572, 2571), !isnan(i_b->GetCP()->z)); + JUT_ASSERT(DEMO_SELECT(2573, 2572), !isnan(i_b->GetR())); Vec delta; VECSubtract(i_a->GetCP(), i_b->GetCP(), &delta); *param_2 = VECMag(&delta); *i_pcc_crosslen = i_a->GetR() + i_b->GetR() - *param_2; if (*i_pcc_crosslen > G_CM3D_F_ABS_MIN) { - CHECK_FLOAT_CLASS(DEMO_SELECT(2583, 2582), *i_pcc_crosslen); + JUT_ASSERT(DEMO_SELECT(2583, 2582), !isnan(*i_pcc_crosslen)); return true; } else { *i_pcc_crosslen = 0.0f; - CHECK_FLOAT_CLASS(DEMO_SELECT(2588, 2587), *i_pcc_crosslen); + JUT_ASSERT(DEMO_SELECT(2588, 2587), !isnan(*i_pcc_crosslen)); return false; } } @@ -1554,17 +1553,17 @@ bool cM3d_Cross_SphTri(const cM3dGSph* sph, const cM3dGTri* tri, Vec* param_2) { /* 8024E694-8024EF80 .text cM3d_Cross_CylCyl__FPC8cM3dGCylPC8cM3dGCylPf */ bool cM3d_Cross_CylCyl(const cM3dGCyl* i_cyl1, const cM3dGCyl* i_cyl2, f32* i_pcross_len) { const Vec& c1 = i_cyl1->GetC(); - CHECK_FLOAT_CLASS(DEMO_SELECT(2827, 2826), c1.x); - CHECK_FLOAT_CLASS(DEMO_SELECT(2828, 2827), c1.y); - CHECK_FLOAT_CLASS(DEMO_SELECT(2829, 2828), c1.z); - CHECK_FLOAT_CLASS(DEMO_SELECT(2830, 2829), i_cyl1->GetR()); - CHECK_FLOAT_CLASS(DEMO_SELECT(2831, 2830), i_cyl1->GetH()); + JUT_ASSERT(DEMO_SELECT(2827, 2826), !isnan(c1.x)); + JUT_ASSERT(DEMO_SELECT(2828, 2827), !isnan(c1.y)); + JUT_ASSERT(DEMO_SELECT(2829, 2828), !isnan(c1.z)); + JUT_ASSERT(DEMO_SELECT(2830, 2829), !isnan(i_cyl1->GetR())); + JUT_ASSERT(DEMO_SELECT(2831, 2830), !isnan(i_cyl1->GetH())); const Vec& c2 = i_cyl2->GetC(); - CHECK_FLOAT_CLASS(DEMO_SELECT(2833, 2832), c2.x); - CHECK_FLOAT_CLASS(DEMO_SELECT(2834, 2833), c2.y); - CHECK_FLOAT_CLASS(DEMO_SELECT(2835, 2834), c2.z); - CHECK_FLOAT_CLASS(DEMO_SELECT(2836, 2835), i_cyl2->GetR()); - CHECK_FLOAT_CLASS(DEMO_SELECT(2837, 2836), i_cyl2->GetH()); + JUT_ASSERT(DEMO_SELECT(2833, 2832), !isnan(c2.x)); + JUT_ASSERT(DEMO_SELECT(2834, 2833), !isnan(c2.y)); + JUT_ASSERT(DEMO_SELECT(2835, 2834), !isnan(c2.z)); + JUT_ASSERT(DEMO_SELECT(2836, 2835), !isnan(i_cyl2->GetR())); + JUT_ASSERT(DEMO_SELECT(2837, 2836), !isnan(i_cyl2->GetH())); f32 delta_x = c1.x - c2.x; f32 delta_z = c1.z - c2.z; @@ -1573,18 +1572,18 @@ bool cM3d_Cross_CylCyl(const cM3dGCyl* i_cyl1, const cM3dGCyl* i_cyl2, f32* i_pc if (dist_sq > radius_sum * radius_sum) { *i_pcross_len = 0.0f; - CHECK_FLOAT_CLASS(DEMO_SELECT(2850, 2849), *i_pcross_len); + JUT_ASSERT(DEMO_SELECT(2850, 2849), !isnan(*i_pcross_len)); return false; } if (c1.y + i_cyl1->GetH() < c2.y || c1.y > c2.y + i_cyl2->GetH()) { *i_pcross_len = 0.0f; - CHECK_FLOAT_CLASS(DEMO_SELECT(2858, 2857), *i_pcross_len); + JUT_ASSERT(DEMO_SELECT(2858, 2857), !isnan(*i_pcross_len)); return false; } *i_pcross_len = radius_sum - std::sqrtf(dist_sq); - CHECK_FLOAT_CLASS(DEMO_SELECT(2865, 2864), *i_pcross_len); + JUT_ASSERT(DEMO_SELECT(2865, 2864), !isnan(*i_pcross_len)); return true; } diff --git a/src/SSystem/SComponent/c_m3d_g_cyl.cpp b/src/SSystem/SComponent/c_m3d_g_cyl.cpp index fcc9b103a..fcc8f7976 100644 --- a/src/SSystem/SComponent/c_m3d_g_cyl.cpp +++ b/src/SSystem/SComponent/c_m3d_g_cyl.cpp @@ -7,30 +7,29 @@ #include "SSystem/SComponent/c_m3d.h" #include "JSystem/JUtility/JUTAssert.h" -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); #define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f); #define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f) #if VERSION > VERSION_DEMO /* 80251D88-80252020 .text SetC__8cM3dGCylFRC4cXyz */ void cM3dGCyl::SetC(const cXyz& pos) { - CHECK_FLOAT_CLASS(21, pos.x); - CHECK_FLOAT_CLASS(22, pos.y); - CHECK_FLOAT_CLASS(23, pos.z); + JUT_ASSERT(21, !isnan(pos.x)); + JUT_ASSERT(22, !isnan(pos.y)); + JUT_ASSERT(23, !isnan(pos.z)); CHECK_VEC3_RANGE(26, pos); mCenter = pos; } /* 80252020-8025214C .text SetH__8cM3dGCylFf */ void cM3dGCyl::SetH(f32 h) { - CHECK_FLOAT_CLASS(36, h); + JUT_ASSERT(36, !isnan(h)); CHECK_FLOAT_RANGE(37, h); mHeight = h; } /* 8025214C-80252278 .text SetR__8cM3dGCylFf */ void cM3dGCyl::SetR(f32 r) { - CHECK_FLOAT_CLASS(48, r); + JUT_ASSERT(48, !isnan(r)); CHECK_FLOAT_RANGE(49, r); mRadius = r; } diff --git a/src/SSystem/SComponent/c_m3d_g_sph.cpp b/src/SSystem/SComponent/c_m3d_g_sph.cpp index 75cc872d9..4a07cde47 100644 --- a/src/SSystem/SComponent/c_m3d_g_sph.cpp +++ b/src/SSystem/SComponent/c_m3d_g_sph.cpp @@ -8,23 +8,22 @@ #include "JSystem/JUtility/JUTAssert.h" #include "float.h" -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); #define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f); #define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f) #if VERSION > VERSION_DEMO /* 8025238C-80252624 .text SetC__8cM3dGSphFRC4cXyz */ void cM3dGSph::SetC(const cXyz& p) { - CHECK_FLOAT_CLASS(18, p.x); - CHECK_FLOAT_CLASS(19, p.y); - CHECK_FLOAT_CLASS(20, p.z); + JUT_ASSERT(18, !isnan(p.x)); + JUT_ASSERT(19, !isnan(p.y)); + JUT_ASSERT(20, !isnan(p.z)); CHECK_VEC3_RANGE(23, p); mCenter = p; } /* 80252624-80252750 .text SetR__8cM3dGSphFf */ void cM3dGSph::SetR(float r) { - CHECK_FLOAT_CLASS(32, r); + JUT_ASSERT(32, !isnan(r)); CHECK_FLOAT_RANGE(33, r); mRadius = r; } diff --git a/src/d/d_bg_s.cpp b/src/d/d_bg_s.cpp index 41381cb0c..c7847002d 100644 --- a/src/d/d_bg_s.cpp +++ b/src/d/d_bg_s.cpp @@ -9,7 +9,6 @@ #include "d/d_com_inf_game.h" #include "f_op/f_op_actor_mng.h" -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); #define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f); #define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f) #define CHECK_PVEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v->x && v->x < 1.0e32f && -1.0e32f < v->y && v->y < 1.0e32f && -1.0e32f < v->z && v->z < 1.0e32f) diff --git a/src/d/d_bg_s_acch.cpp b/src/d/d_bg_s_acch.cpp index 1f683a983..685797f4c 100644 --- a/src/d/d_bg_s_acch.cpp +++ b/src/d/d_bg_s_acch.cpp @@ -11,7 +11,6 @@ #include "d/d_com_inf_game.h" #include "d/actor/d_a_sea.h" -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); #define CHECK_FLOAT_RANGE(line, x) JUT_ASSERT(line, -1.0e32f < x && x < 1.0e32f); #define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f) #define CHECK_PVEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v->x && v->x < 1.0e32f && -1.0e32f < v->y && v->y < 1.0e32f && -1.0e32f < v->z && v->z < 1.0e32f) @@ -215,9 +214,9 @@ void dBgS_Acch::CrrPos(dBgS& i_bgs) { JUT_ASSERT(494, pm_pos != NULL); JUT_ASSERT(495, pm_old_pos != NULL); - CHECK_FLOAT_CLASS(535, pm_pos->x); - CHECK_FLOAT_CLASS(536, pm_pos->y); - CHECK_FLOAT_CLASS(537, pm_pos->z); + JUT_ASSERT(535, !isnan(pm_pos->x)); + JUT_ASSERT(536, !isnan(pm_pos->y)); + JUT_ASSERT(537, !isnan(pm_pos->z)); CHECK_PVEC3_RANGE(541, pm_pos); i_bgs.MoveBgCrrPos(m_gnd, ChkGroundHit(), pm_pos, pm_angle, pm_shape_angle); @@ -322,9 +321,9 @@ void dBgS_Acch::CrrPos(dBgS& i_bgs) { } #if VERSION > VERSION_DEMO - CHECK_FLOAT_CLASS(780, pm_pos->x); - CHECK_FLOAT_CLASS(781, pm_pos->y); - CHECK_FLOAT_CLASS(782, pm_pos->z); + JUT_ASSERT(780, !isnan(pm_pos->x)); + JUT_ASSERT(781, !isnan(pm_pos->y)); + JUT_ASSERT(782, !isnan(pm_pos->z)); CHECK_PVEC3_RANGE(786, pm_pos); #endif } diff --git a/src/d/d_bg_w.cpp b/src/d/d_bg_w.cpp index 24433c0fb..d2c608142 100644 --- a/src/d/d_bg_w.cpp +++ b/src/d/d_bg_w.cpp @@ -10,7 +10,6 @@ #include "SSystem/SComponent/c_m2d.h" #include "SSystem/SComponent/c_math.h" -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); /* 800A5C3C-800A5CA8 .text __ct__4dBgWFv */ dBgW::dBgW() { @@ -36,8 +35,8 @@ void dBgW::positionWallCorrect(dBgS_Acch* acch, f32 dist, cM3dGPla& plane, cXyz* f32 move = speed * dist; pupper_pos->x += move * plane.mNormal.x; pupper_pos->z += move * plane.mNormal.z; - CHECK_FLOAT_CLASS(0xd0, pupper_pos->x); - CHECK_FLOAT_CLASS(0xd1, pupper_pos->z); + JUT_ASSERT(0xd0, !isnan(pupper_pos->x)); + JUT_ASSERT(0xd1, !isnan(pupper_pos->z)); } /* 800A5E64-800A6DF8 .text RwgWallCorrect__4dBgWFP9dBgS_AcchUs */ @@ -201,8 +200,8 @@ bool dBgW::RwgWallCorrect(dBgS_Acch* pwi, u16 i_poly_idx) { pwi->GetPos()->x += cx0 - spF0; pwi->GetPos()->z += cy0 - spF4; - CHECK_FLOAT_CLASS(484, pwi->GetPos()->x); - CHECK_FLOAT_CLASS(485, pwi->GetPos()->z); + JUT_ASSERT(484, !isnan(pwi->GetPos()->x)); + JUT_ASSERT(485, !isnan(pwi->GetPos()->z)); pwi->CalcMovePosWork(); pwi->SetWallCirHit(cir_index); @@ -221,8 +220,8 @@ bool dBgW::RwgWallCorrect(dBgS_Acch* pwi, u16 i_poly_idx) { pwi->GetPos()->x += cx1 - spF8; pwi->GetPos()->z += cy1 - spFC; - CHECK_FLOAT_CLASS(524, pwi->GetPos()->x); - CHECK_FLOAT_CLASS(525, pwi->GetPos()->z); + JUT_ASSERT(524, !isnan(pwi->GetPos()->x)); + JUT_ASSERT(525, !isnan(pwi->GetPos()->z)); pwi->CalcMovePosWork(); pwi->SetWallCirHit(cir_index); diff --git a/src/f_op/f_op_actor.cpp b/src/f_op/f_op_actor.cpp index 239f5d231..d3ee3a5da 100644 --- a/src/f_op/f_op_actor.cpp +++ b/src/f_op/f_op_actor.cpp @@ -158,7 +158,6 @@ s32 fopAc_Draw(void* pProc) { return ret; } -#define CHECK_FLOAT_CLASS(line, x) JUT_ASSERT(line, !(fpclassify(x) == 1)); #define CHECK_VEC3_RANGE(line, v) JUT_ASSERT(line, -1.0e32f < v.x && v.x < 1.0e32f && -1.0e32f < v.y && v.y < 1.0e32f && -1.0e32f < v.z && v.z < 1.0e32f) /* 8002362C-80023BDC .text fopAc_Execute__FPv */ @@ -167,9 +166,9 @@ BOOL fopAc_Execute(void* pProc) { BOOL ret = TRUE; #if VERSION > VERSION_DEMO - CHECK_FLOAT_CLASS(0x27d, actor->current.pos.x); - CHECK_FLOAT_CLASS(0x27e, actor->current.pos.y); - CHECK_FLOAT_CLASS(0x27f, actor->current.pos.z); + JUT_ASSERT(0x27d, !isnan(actor->current.pos.x)); + JUT_ASSERT(0x27e, !isnan(actor->current.pos.y)); + JUT_ASSERT(0x27f, !isnan(actor->current.pos.z)); CHECK_VEC3_RANGE(0x286, actor->current.pos); #endif @@ -204,9 +203,9 @@ BOOL fopAc_Execute(void* pProc) { } #if VERSION > VERSION_DEMO - CHECK_FLOAT_CLASS(0x2b4, actor->current.pos.x); - CHECK_FLOAT_CLASS(0x2b5, actor->current.pos.y); - CHECK_FLOAT_CLASS(0x2b6, actor->current.pos.z); + JUT_ASSERT(0x2b4, !isnan(actor->current.pos.x)); + JUT_ASSERT(0x2b5, !isnan(actor->current.pos.y)); + JUT_ASSERT(0x2b6, !isnan(actor->current.pos.z)); CHECK_VEC3_RANGE(0x2bd, actor->current.pos); #endif }