mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-11 11:32:42 -04:00
More demo work, cleanup
This commit is contained in:
@@ -16,6 +16,10 @@
|
||||
#include "dolphin/mtx/mtxvec.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
#pragma nosyminline on
|
||||
#endif
|
||||
|
||||
/* 80247500-8024754C .text ASSERT_SOLDHEAP__Fv */
|
||||
void ASSERT_SOLDHEAP() {
|
||||
if (JKRHeap::sCurrentHeap->getHeapType() != 'SLID')
|
||||
@@ -467,7 +471,7 @@ bool cBgW::LineCheckGrpRp(cBgS_LinChk* chk, int grp_id, int depth) {
|
||||
bool cBgW::RwgGroundCheckCommon(f32 y, u16 poly_index, cBgS_GndChk* chk) {
|
||||
if (y < chk->GetPointP()->y && y > chk->GetNowY()) {
|
||||
cBgD_Tri_t* tri = &pm_bgd->m_t_tbl[poly_index];
|
||||
if (cM3d_CrossY_Tri_Front(pm_vtx_tbl[tri->vtx0], pm_vtx_tbl[tri->vtx1], pm_vtx_tbl[tri->vtx2], &chk->m_pos) && !ChkPolyThrough(poly_index, chk->GetPolyPassChk())) {
|
||||
if (cM3d_CrossY_Tri_Front(pm_vtx_tbl[tri->vtx0], pm_vtx_tbl[tri->vtx1], pm_vtx_tbl[tri->vtx2], chk->GetPointP()) && !ChkPolyThrough(poly_index, chk->GetPolyPassChk())) {
|
||||
chk->SetNowY(y);
|
||||
chk->SetPolyIndex(poly_index);
|
||||
return true;
|
||||
@@ -653,7 +657,7 @@ void cBgW::RwgShdwDraw(int index, cBgS_ShdwDraw* shdw) {
|
||||
if (rwg->next == 0xFFFF)
|
||||
break;
|
||||
index = rwg->next;
|
||||
JUT_ASSERT(0xbc6, 0 <= index && index < pm_bgd->m_t_num);
|
||||
JUT_ASSERT(VERSION_SELECT(3013, 3014, 3014, 3014), 0 <= index && index < pm_bgd->m_t_num);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -726,7 +730,7 @@ bool cBgW::ChkGrpThrough(int, cBgS_GrpPassChk*, int) {
|
||||
|
||||
/* 80249940-80249A18 .text GetGrpToRoomIndex__4cBgWCFi */
|
||||
u32 cBgW::GetGrpToRoomIndex(int grp_index) const {
|
||||
JUT_ASSERT(0xc77, 0 <= grp_index && grp_index < pm_bgd->m_g_num);
|
||||
JUT_ASSERT(VERSION_SELECT(3190, 3191, 3191, 3191), 0 <= grp_index && grp_index < pm_bgd->m_g_num);
|
||||
cBgD_Grp_t * g_tbl = pm_bgd->m_g_tbl;
|
||||
if (g_tbl[grp_index].m_parent == 0xFFFF || g_tbl[g_tbl[grp_index].m_parent].m_parent == 0xFFFF)
|
||||
return 0xFFFF;
|
||||
@@ -742,7 +746,7 @@ void cBgW::GetTrans(cXyz* dst) const {
|
||||
|
||||
/* 80249A58-80249B64 .text GetTriPnt__4cBgWCFiP4cXyzP4cXyzP4cXyz */
|
||||
void cBgW::GetTriPnt(int i_no, cXyz* p0, cXyz* p1, cXyz* p2) const {
|
||||
JUT_ASSERT(0xcb3, pm_bgd != NULL);
|
||||
JUT_ASSERT(VERSION_SELECT(3250, 3251, 3251, 3251), pm_bgd != NULL);
|
||||
|
||||
cBgD_Tri_t * tri = &pm_bgd->m_t_tbl[i_no];
|
||||
p0->set(pm_vtx_tbl[tri->vtx0]);
|
||||
|
||||
@@ -204,6 +204,7 @@ void cCcD_Stts::Ct() {
|
||||
m_dmg = 0;
|
||||
}
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
/* 802419C4-80241C5C .text PlusCcMove__9cCcD_SttsFfff */
|
||||
void cCcD_Stts::PlusCcMove(f32 x, f32 y, f32 z) {
|
||||
m_cc_move.x += x;
|
||||
@@ -214,6 +215,7 @@ void cCcD_Stts::PlusCcMove(f32 x, f32 y, f32 z) {
|
||||
CHECK_FLOAT_CLASS(0x1bd, m_cc_move.z);
|
||||
CHECK_VEC3_RANGE(0x1c1, m_cc_move);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80241C5C-80241C98 .text Set__8cCcD_ObjFRC11cCcD_SrcObj */
|
||||
void cCcD_Obj::Set(const cCcD_SrcObj& src) {
|
||||
|
||||
@@ -6,6 +6,10 @@
|
||||
#include "SSystem/SComponent/c_cc_s.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
#pragma nosyminline on
|
||||
#endif
|
||||
|
||||
#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)
|
||||
@@ -185,7 +189,10 @@ void cCcS::ChkCo() {
|
||||
cCcD_ShapeAttr* co2ShapeAttr = (*objCo2)->GetShapeAttr();
|
||||
if (objCo2 == NULL)
|
||||
continue;
|
||||
f32 cross_len = 0.0f;
|
||||
f32 cross_len;
|
||||
#if VERSION > VERSION_DEMO
|
||||
cross_len = 0.0f;
|
||||
#endif
|
||||
if (co1ShapeAttr->CrossCo(*co2ShapeAttr, &cross_len)) {
|
||||
SetCoCommonHitInf(*objCo1, co1ShapeAttr->GetCoCP(), *objCo2, co2ShapeAttr->GetCoCP(), cross_len);
|
||||
}
|
||||
@@ -249,7 +256,9 @@ 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);
|
||||
#if VERSION > VERSION_DEMO
|
||||
CHECK_FLOAT_RANGE(605, cross_len);
|
||||
#endif
|
||||
|
||||
if (obj1->ChkCoNoCrr() || obj2->ChkCoNoCrr()) {
|
||||
return;
|
||||
@@ -260,9 +269,15 @@ void cCcS::SetPosCorrect(cCcD_Obj* obj1, cXyz* ppos1, cCcD_Obj* obj2, cXyz* ppos
|
||||
if (obj1->GetStts()->GetActor() != NULL && obj1->GetStts()->GetActor() == obj2->GetStts()->GetActor()) {
|
||||
return;
|
||||
}
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (std::fabsf(cross_len) < G_CM3D_F_ABS_MIN) {
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (std::fabsf(cross_len) < (1.0f / 125.0f)) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
SetCoGCorrectProc(obj1, obj2);
|
||||
|
||||
@@ -362,6 +377,7 @@ 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);
|
||||
@@ -370,12 +386,14 @@ void cCcS::SetPosCorrect(cCcD_Obj* obj1, cXyz* ppos1, cCcD_Obj* obj2, cXyz* ppos
|
||||
CHECK_FLOAT_CLASS(800, vec2.z);
|
||||
CHECK_VEC3_RANGE(804, vec1);
|
||||
CHECK_VEC3_RANGE(808, vec2);
|
||||
#endif
|
||||
|
||||
obj1->GetStts()->PlusCcMove(vec1.x, vec1.y, vec1.z);
|
||||
obj2->GetStts()->PlusCcMove(vec2.x, vec2.y, vec2.z);
|
||||
(*ppos1) += vec1;
|
||||
(*ppos2) += vec2;
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
CHECK_FLOAT_CLASS(817, ppos1->x);
|
||||
CHECK_FLOAT_CLASS(818, ppos1->y);
|
||||
CHECK_FLOAT_CLASS(819, ppos1->z);
|
||||
@@ -384,6 +402,7 @@ void cCcS::SetPosCorrect(cCcD_Obj* obj1, cXyz* ppos1, cCcD_Obj* obj2, cXyz* ppos
|
||||
CHECK_FLOAT_CLASS(823, ppos2->z);
|
||||
CHECK_PVEC3_RANGE(827, ppos1);
|
||||
CHECK_PVEC3_RANGE(831, ppos2);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 80244750-80244894 .text CalcArea__4cCcSFv */
|
||||
@@ -447,25 +466,3 @@ void cCcS::DrawClear() {
|
||||
/* 8024498C-80244990 .text SetCoGCorrectProc__4cCcSFP8cCcD_ObjP8cCcD_Obj */
|
||||
void cCcS::SetCoGCorrectProc(cCcD_Obj*, cCcD_Obj*) {
|
||||
}
|
||||
|
||||
/* 80244990-80244998 .text ChkNoHitGCo__4cCcSFP8cCcD_ObjP8cCcD_Obj */
|
||||
bool cCcS::ChkNoHitGCo(cCcD_Obj*, cCcD_Obj*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80244998-8024499C .text SetAtTgGObjInf__4cCcSFbbP8cCcD_ObjP8cCcD_ObjP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GSttsP4cXyz */
|
||||
void cCcS::SetAtTgGObjInf(bool, bool, cCcD_Obj*, cCcD_Obj*, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, cCcD_GStts*, cXyz*) {
|
||||
}
|
||||
|
||||
/* 8024499C-802449A4 .text ChkAtTgHitAfterCross__4cCcSFbbPC12cCcD_GObjInfPC12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts */
|
||||
bool cCcS::ChkAtTgHitAfterCross(bool, bool, const cCcD_GObjInf*, const cCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, cCcD_GStts*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 802449A4-802449A8 .text SetCoGObjInf__4cCcSFbbP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GStts */
|
||||
void cCcS::SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, cCcD_GStts*) {
|
||||
}
|
||||
|
||||
/* 802449A8-802449AC .text MoveAfterCheck__4cCcSFv */
|
||||
void cCcS::MoveAfterCheck() {
|
||||
}
|
||||
|
||||
@@ -107,7 +107,12 @@ f32 cM3d_SignedLenPlaAndPos(const cM3dGPla* plane, const Vec* pos) {
|
||||
void cM3d_CalcPla(const Vec* p0, const Vec* p1, const Vec* p2, Vec* pDst, f32* pT) {
|
||||
cM3d_VectorProduct(p0, p1, p2, pDst);
|
||||
f32 t = VECMag(pDst);
|
||||
if (std::fabsf(t) >= 0.02f) {
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (!cM3d_IsZero(t))
|
||||
#else
|
||||
if (std::fabsf(t) >= 0.02f)
|
||||
#endif
|
||||
{
|
||||
VECScale(pDst, pDst, 1.0f / t);
|
||||
*pT = -VECDotProduct(pDst, p0);
|
||||
} else {
|
||||
@@ -1372,16 +1377,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(2498, pnow_sph_center->x);
|
||||
CHECK_FLOAT_CLASS(2499, pnow_sph_center->y);
|
||||
CHECK_FLOAT_CLASS(2500, pnow_sph_center->z);
|
||||
CHECK_FLOAT_CLASS(2501, psph->GetR());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2499, 2498, 2498, 2498), pnow_sph_center->x);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2500, 2499, 2499, 2499), pnow_sph_center->y);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2501, 2500, 2500, 2500), pnow_sph_center->z);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2502, 2501, 2501, 2501), psph->GetR());
|
||||
const Vec* pnow_cyl_center = pcyl->GetCP();
|
||||
CHECK_FLOAT_CLASS(2503, pnow_cyl_center->x);
|
||||
CHECK_FLOAT_CLASS(2504, pnow_cyl_center->y);
|
||||
CHECK_FLOAT_CLASS(2505, pnow_cyl_center->z);
|
||||
CHECK_FLOAT_CLASS(2506, pcyl->GetH());
|
||||
CHECK_FLOAT_CLASS(2507, pcyl->GetR());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2504, 2503, 2503, 2503), pnow_cyl_center->x);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2505, 2504, 2504, 2504), pnow_cyl_center->y);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2506, 2505, 2505, 2505), pnow_cyl_center->z);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2507, 2506, 2506, 2506), pcyl->GetH());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2508, 2507, 2507, 2507), 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));
|
||||
|
||||
@@ -1406,7 +1411,9 @@ bool cM3d_Cross_CylSph(const cM3dGCyl* pcyl, const cM3dGSph* psph, Vec* param_2,
|
||||
} else {
|
||||
*param_2 = *pnow_sph_center;
|
||||
}
|
||||
#if VERSION > VERSION_DEMO
|
||||
CHECK_FLOAT_CLASS(2539, *pcross_len);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1415,26 +1422,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(2565, i_a->GetCP()->x);
|
||||
CHECK_FLOAT_CLASS(2566, i_a->GetCP()->y);
|
||||
CHECK_FLOAT_CLASS(2567, i_a->GetCP()->z);
|
||||
CHECK_FLOAT_CLASS(2568, i_a->GetR());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2566, 2565, 2565, 2565), i_a->GetCP()->x);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2567, 2566, 2566, 2566), i_a->GetCP()->y);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2568, 2567, 2567, 2567), i_a->GetCP()->z);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2569, 2568, 2568, 2568), i_a->GetR());
|
||||
|
||||
CHECK_FLOAT_CLASS(2569, i_b->GetCP()->x);
|
||||
CHECK_FLOAT_CLASS(2570, i_b->GetCP()->y);
|
||||
CHECK_FLOAT_CLASS(2571, i_b->GetCP()->z);
|
||||
CHECK_FLOAT_CLASS(2572, i_b->GetR());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2570, 2569, 2569, 2569), i_b->GetCP()->x);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2571, 2570, 2570, 2570), i_b->GetCP()->y);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2572, 2571, 2571, 2571), i_b->GetCP()->z);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2573, 2572, 2572, 2572), 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(2582, *i_pcc_crosslen);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2583, 2582, 2582, 2582), *i_pcc_crosslen);
|
||||
return true;
|
||||
} else {
|
||||
*i_pcc_crosslen = 0.0f;
|
||||
CHECK_FLOAT_CLASS(2587, *i_pcc_crosslen);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2588, 2587, 2587, 2587), *i_pcc_crosslen);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1547,17 +1554,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(2826, c1.x);
|
||||
CHECK_FLOAT_CLASS(2827, c1.y);
|
||||
CHECK_FLOAT_CLASS(2828, c1.z);
|
||||
CHECK_FLOAT_CLASS(2829, i_cyl1->GetR());
|
||||
CHECK_FLOAT_CLASS(2830, i_cyl1->GetH());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2827, 2826, 2826, 2826), c1.x);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2828, 2827, 2827, 2827), c1.y);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2829, 2828, 2828, 2828), c1.z);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2830, 2829, 2829, 2829), i_cyl1->GetR());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2831, 2830, 2830, 2830), i_cyl1->GetH());
|
||||
const Vec& c2 = i_cyl2->GetC();
|
||||
CHECK_FLOAT_CLASS(2832, c2.x);
|
||||
CHECK_FLOAT_CLASS(2833, c2.y);
|
||||
CHECK_FLOAT_CLASS(2834, c2.z);
|
||||
CHECK_FLOAT_CLASS(2835, i_cyl2->GetR());
|
||||
CHECK_FLOAT_CLASS(2836, i_cyl2->GetH());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2833, 2832, 2832, 2832), c2.x);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2834, 2833, 2833, 2833), c2.y);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2835, 2834, 2834, 2834), c2.z);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2836, 2835, 2835, 2835), i_cyl2->GetR());
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2837, 2836, 2836, 2836), i_cyl2->GetH());
|
||||
|
||||
f32 delta_x = c1.x - c2.x;
|
||||
f32 delta_z = c1.z - c2.z;
|
||||
@@ -1566,18 +1573,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(2849, *i_pcross_len);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2850, 2849, 2849, 2849), *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(2857, *i_pcross_len);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2858, 2857, 2857, 2857), *i_pcross_len);
|
||||
return false;
|
||||
}
|
||||
|
||||
*i_pcross_len = radius_sum - std::sqrtf(dist_sq);
|
||||
CHECK_FLOAT_CLASS(2864, *i_pcross_len);
|
||||
CHECK_FLOAT_CLASS(VERSION_SELECT(2865, 2864, 2864, 2864), *i_pcross_len);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1632,7 +1639,7 @@ bool cM3d_Cross_CylTri(const cM3dGCyl* cyl, const cM3dGTri* tri, Vec* param_2) {
|
||||
}
|
||||
|
||||
Vec vec1, vec2;
|
||||
f32 min_len_sq = 1.0e9f;
|
||||
f32 min_len_sq = G_CM3D_F_INF;
|
||||
if (cM3d_Cross_CylPntPnt(cyl, &tri->mA, &tri->mB, &vec1, &vec2)) {
|
||||
min_len_sq = cM3d_LenSq(&vec1, &tri->mA);
|
||||
*param_2 = vec1;
|
||||
@@ -1652,7 +1659,7 @@ bool cM3d_Cross_CylTri(const cM3dGCyl* cyl, const cM3dGTri* tri, Vec* param_2) {
|
||||
}
|
||||
}
|
||||
|
||||
if (min_len_sq != 1.0e9f) {
|
||||
if (min_len_sq != G_CM3D_F_INF) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -199,3 +199,16 @@ void cM_initRnd2(int p0, int p1, int p2) {
|
||||
r12 = p1;
|
||||
r22 = p2;
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
float cM_rnd2(void) {
|
||||
r02 = (r02 * 0xAB) % 0x763D;
|
||||
r12 = (r12 * 0xAC) % 0x7663;
|
||||
r22 = (r22 * 0xAA) % 0x7673;
|
||||
return std::fabsf(std::fmodf(r02 / 30269.0f + r12 / 30307.0f + r22 / 30323.0f, 1.0));
|
||||
}
|
||||
|
||||
float cM_rndFX2(float f) {
|
||||
return f * (cM_rnd2() - 0.5f) * 2.0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user