d_jnt_hit progress

This commit is contained in:
LagoLunatic
2023-10-20 14:11:21 -04:00
parent 273221a500
commit 7f796fffa8
3 changed files with 101 additions and 15 deletions
+3 -3
View File
@@ -1209,10 +1209,10 @@ static BOOL useHeapInit(fopAc_ac_c* i_actor) {
};
static __jnt_hit_data_c search_data[] = {
{
/* field_0x0 */ 2,
/* mShapeType */ 2, // Cylinder
/* mJointIndex */ 0x05, // hitomi (pupil) joint
/* field_0x4 */ 5.0f,
/* field_0x8 */ (cXyz*)&cyl2_eye_offset,
/* mRadius */ 5.0f,
/* mpOffsets */ (cXyz*)&cyl2_eye_offset,
},
};
i_this->mEyeJntHit = JntHit_create(i_this->mpMorf->getModel(), search_data, ARRAY_SIZE(search_data));
+55 -2
View File
@@ -8,12 +8,65 @@
/* 80060BE8-80060C44 .text __ct__12JntHit_HIO_cFv */
JntHit_HIO_c::JntHit_HIO_c() {
/* Nonmatching */
m06 = 0;
m08 = 0;
m0C = 50.0f;
m10.set(cXyz::Zero);
m1C = 0.0f;
m20 = 0.0f;
m24 = 100.0f;
mChildID = -1;
}
/* 80060C44-80060EC4 .text CreateInit__8JntHit_cFv */
BOOL JntHit_c::CreateInit() {
/* Nonmatching */
__jnt_hit_data_c* pHitData = mpHitData;
int posCount = 0;
int i;
for (i = 0; i < mHitDataCount; i++) {
if (isCylinder(pHitData->mShapeType)) {
posCount += 2;
} else if (isSphere(pHitData->mShapeType)) {
posCount += 1;
}
pHitData++;
}
mpShapeTypes = new s16[mHitDataCount];
mpOffsets = new cXyz[posCount];
mpRadiuses = new f32[mHitDataCount];
mpJointIndexes = new s16[mHitDataCount];
if (!mpShapeTypes || !mpOffsets || !mpRadiuses || !mpJointIndexes) {
return FALSE;
}
pHitData = mpHitData;
s16* pShapeType = mpShapeTypes;
s16* pJointIndex = mpJointIndexes;
f32* pRadius = mpRadiuses;
cXyz* pOffset = mpOffsets;
for (i = 0; i < mHitDataCount;) {
pShapeType[0] = pHitData->mShapeType;
pJointIndex[0] = pHitData->mJointIndex;
pRadius[0] = pHitData->mRadius;
if (isCylinder(pShapeType[0])) {
pOffset[0] = pHitData->mpOffsets[0];
pOffset[1] = pHitData->mpOffsets[1];
pOffset++;
} else if (isSphere(pShapeType[0])) {
pOffset[0] = pHitData->mpOffsets[0];
}
pOffset++;
i++;
pHitData++;
pShapeType++;
pJointIndex++;
pRadius++;
}
return TRUE;
}
/* 80060EC4-80061440 .text CylHitPosAngleOffset__8JntHit_cFP4cXyzP5csXyzP4cXyzP5csXyz4cXyz4cXyzf */