mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-29 02:40:55 -04:00
d_jnt_hit OK on demo
This commit is contained in:
+16
-14
@@ -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));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user