d_jnt_hit OK on demo

This commit is contained in:
LagoLunatic
2025-08-15 20:51:11 -04:00
parent b4e022a336
commit 9d986dc64c
2 changed files with 17 additions and 15 deletions
+16 -14
View File
@@ -85,9 +85,9 @@ BOOL JntHit_c::CylHitPosAngleOffset(cXyz* r27, csXyz* r28, cXyz* r29, csXyz* r30
f32 sinX = cM_ssin(r28->x);
f32 cosX = cM_scos(r28->x);
f32 x = cM_ssin(r28->y) * cosX;
f32 z = cM_scos(r28->y) * cosX;
cXyz r1_C4(x, -sinX, z);
f32 sinY = cM_ssin(r28->y);
f32 cosY = cM_scos(r28->y);
cXyz r1_C4(cosX * sinY, -sinX, cosX * cosY);
f1 = r1_C4.inprod(r1_F4);
cXyz r1_B8 = r1_C4;
r1_D0 = r1_F4;
@@ -98,7 +98,8 @@ BOOL JntHit_c::CylHitPosAngleOffset(cXyz* r27, csXyz* r28, cXyz* r29, csXyz* r30
f32 temp = f31*f31 + f28*f28 - r1_DC.abs2();
if (temp < 0.0f)
temp = 0.0f;
r1_E8 = r1_C4 * (-f31 - std::sqrtf(temp));
f32 temp2 = (-f31 - std::sqrtf(temp));
r1_E8 = r1_C4 * temp2;
r1_E8 += *r27;
if (temp == 0.0f) {
cXyz r1_AC = r1_E8;
@@ -142,13 +143,13 @@ BOOL JntHit_c::Cyl2HitPosAngleOffset(cXyz* r27, csXyz* r29, cXyz* r30, csXyz* r3
cXyz r1_88 = r1_94.normZP();
f32 f29 = r1_94.abs();
f32 f30 = r27->inprod(r1_88);
f32 sinX = cM_ssin(r29->x);
f32 cosX = cM_scos(r29->x);
f32 x = cM_ssin(r29->y) * cosX;
f32 z = cM_scos(r29->y) * cosX;
f32 sinY = cM_ssin(r29->y);
f32 cosY = cM_scos(r29->y);
cXyz r1_7C;
cXyz r1_70(x, -sinX, z);
cXyz r1_70(cosX * sinY, -sinX, cosX * cosY);
f32 f1 = r1_70.inprod(r1_88);
if (!cLib_IsZero(f1)) {
if (f1 > 0.0f) {
@@ -189,15 +190,15 @@ BOOL JntHit_c::Cyl2HitPosAngleOffset(cXyz* r27, csXyz* r29, cXyz* r30, csXyz* r3
BOOL JntHit_c::SphHitPosAngleOffset(cXyz* r27, csXyz* r29, cXyz* r30, csXyz* r31, cXyz r28, f32 f30) {
f32 sinX = cM_ssin(r29->x);
f32 cosX = cM_scos(r29->x);
f32 x = cM_ssin(r29->y) * cosX;
f32 z = cM_scos(r29->y) * cosX;
cXyz r1_34(x, -sinX, z);
f32 sinY = cM_ssin(r29->y);
f32 cosY = cM_scos(r29->y);
cXyz r1_34(cosX * sinY, -sinX, cosX * cosY);
f32 f31 = r27->inprod(r1_34);
f32 temp = f31*f31 + f30*f30 - r27->abs2();
if (temp < 0.0f)
temp = 0.0f;
cXyz r1_28 = r1_34 * (-f31 - std::sqrtf(temp));
f32 temp2 = (-f31 - std::sqrtf(temp));
cXyz r1_28 = r1_34 * temp2;
r1_28 += *r27;
if (r1_28.abs() > f30) {
r1_28.normalizeZP();
@@ -269,7 +270,8 @@ s32 JntHit_c::searchJntHitPosAngleOffset(cXyz* r18, csXyz* r28, cXyz* r29, csXyz
int posIndex = 0;
int hitIndex = 0;
int hitPosIndex = 0;
int r1_20 = JntHitIdx_NONE_e;
int tmp = JntHitIdx_NONE_e;
int r1_20 = tmp;
for (; j++ < mMaxNum; i++) {
mDoMtx_stack_c::copy(model->getAnmMtx(*pJointIndex));