dAcEKs_c State ChaseAttack, Fighting, AttackReady, Attack, Damage, Stun, WindBlow and PathMove

This commit is contained in:
elijah-thomas774
2026-05-24 14:29:43 -04:00
parent f65d59d315
commit 0b6f97ed73
7 changed files with 855 additions and 32 deletions
+1
View File
@@ -12,6 +12,7 @@ s16 offsetPos(mVec3_c &target, const mVec3_c &v1, s16 angle, const mVec3_c &v2);
void addCalcPos2(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep);
f32 addCalcPosXZ(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep, f32 minStep);
f32 addCalcPos(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep, f32 minStep);
bool chasePos(mVec3_c &, mVec3_c &, f32);
bool chasePosXZ(mVec3_c &, mVec3_c &, f32);
// made up name
+5 -3
View File
@@ -186,7 +186,9 @@ private:
/* 0xC48 */ f32 field_0xC48;
/* 0xC4C */ u8 _0xC4C[0xC70 - 0xC4C];
/* 0xC70 */ f32 field_0xC70;
/* 0xC74 */ u8 _0xC74[0xCE0 - 0xC74];
/* 0xC74 */ u8 _0xC74[0xC90 - 0xC74];
/* 0xC90 */ f32 field_0xC90;
/* 0xC94 */ u8 _0xC94[0xCE0 - 0xC94];
/* 0xCE0 */ f32 field_0xCE0;
/* 0xCE4 */ f32 field_0xCE4;
/* 0xCE8 */ u8 _0xCE8[0xCF8 - 0xCE8];
@@ -232,7 +234,7 @@ private:
/* 0xD74 */ s16 field_0xD74;
/* 0xD76 */ s16 field_0xD76;
/* 0xD78 */ s16 mBlinkTimer;
/* 0xD7A */ s16 field_0xD7A;
/* 0xD7A */ u16 field_0xD7A;
/* 0xD7C */ s16 field_0xD7C;
/* 0xD7E */ s16 mSqueakSoundTimer;
/* 0xD80 */ s16 mStunSoundTimer;
@@ -252,7 +254,7 @@ private:
/* 0xD9C */ s16 field_0xD9C;
/* 0xD9E */ s16 field_0xD9E;
/* 0xDA0 */ s16 field_0xDA0;
/* 0xDA2 */ u8 _0xDA2[0xDA4 - 0xDA2];
/* 0xDA2 */ s16 field_0xDA2;
/* 0xDA4 */ u8 field_0xDA4;
/* 0xDA5 */ u8 field_0xDA5;
/* 0xDA6 */ u8 field_0xDA6;
+9 -3
View File
@@ -51,12 +51,14 @@ public:
/* 0x33C */ u32 mInteractionFlags;
/* 0x340 */ u16 field_0x338;
/* 0x342 */ u16 mHealth;
/* 0x344 */ u8 _344[0x358 - 0x344];
/* 0x344 */ u8 _0x344[0x346 - 0x344];
/* 0x346 */ u8 field_0x346;
/* 0x347 */ u8 _0x347[0x358 - 0x347];
/* 0x358 */ mVec3_c mFinalBlowPosition;
/* 0x364 */ u8 _364[0x374 - 0x364];
/* 0x364 */ u8 _0x364[0x374 - 0x364];
/* 0x374 */ dAcEnData *mpEnemyData;
bool checkInteractionFlags(u32 mask) {
bool checkInteractionFlags(u32 mask) const {
return mInteractionFlags & mask;
}
void setInteractionFlags(u32 flag) {
@@ -65,6 +67,9 @@ public:
void resetInteractionFlags(u32 flag) {
mInteractionFlags &= ~flag;
}
void setFinalBlowPosition(const mVec3_c &v) {
mFinalBlowPosition = v;
}
dAcBomb_c *getBombWithinRadius(f32 radius); // fn_8002f700
@@ -78,6 +83,7 @@ public:
// Returns 0-3 based on collision
int fn_800301b0(const mVec3_c &pos, mAng ang, bool, f32);
void fn_80030400(m3d::mdl_c &, u8, bool, u8);
bool fn_80030570(m3d::mdl_c &, u8, f32); // lighting related
void fn_800306D0();
void fn_80030700();
dAcObjBase_c *targetPlayerOrScrapper(f32 biasToScrapper);
+18
View File
@@ -59,6 +59,11 @@ public:
return mpPathPtr->pointCount;
}
s32 getLastPointIdx() const {
s32 pnt = getNumPoints() - 1;
return pnt >= 0 ? pnt : 0;
}
bool initWithPathId(s32 pathId, s32 roomId, bool pathSubtype);
bool initWithPathIndex(s32 pathIndex, s32 roomId, bool pathSubtype);
@@ -138,10 +143,18 @@ public:
mSpeed = speed;
}
f32 getSpeed() const {
return mSpeed;
}
void getDirection(mVec3_c &result) {
mPath.getDirection(mSegmentIndex, mSegmentTime, result);
}
const Vec *getPoint(s32 idx) const {
return mPath.getPoint(idx);
}
bool checkFlag(u32 flags) const {
return (mFlags & flags) != 0;
}
@@ -154,6 +167,11 @@ public:
mFlags |= flags;
}
const dPath_c &getPath() const {
return mPath;
}
s32 getNextPointIndex2() const;
private:
s32 getNextPointIndex(s32 point) const;
s32 getNextPointIndex() const;