EnKame (Snapper) documented (#1383)

* EnKame (Snapper) documented

* Respond to engineer's review
This commit is contained in:
Tom Overton 2023-09-24 01:25:13 -07:00 committed by GitHub
parent 20f8470ea0
commit 3d3ca57022
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 548 additions and 366 deletions

View File

@ -492,7 +492,7 @@ void EnBigokuta_CheckOneHitKill(EnBigokuta* this, PlayState* play) {
if (this->bodyCollider.info.acHitInfo->toucher.dmgFlags & 0x1000) { // Ice Arrow
this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX;
this->drawDmgEffScale = 1.2f;
this->drawDmgEffFrozenSteamScale = 1.8000001f;
this->drawDmgEffFrozenSteamScale = 1800.0f * 0.001f;
this->drawDmgEffAlpha = 1.0f;
} else if (this->bodyCollider.info.acHitInfo->toucher.dmgFlags & 0x2000) { // Light Arrow
this->drawDmgEffType = ACTOR_DRAW_DMGEFF_LIGHT_ORBS;

View File

@ -150,7 +150,7 @@ void EnDekunuts_Destroy(Actor* thisx, PlayState* play) {
void func_808BD348(EnDekunuts* this) {
this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX;
this->drawDmgEffScale = 0.55f;
this->drawDmgEffFrozenSteamScale = 0.82500005f;
this->drawDmgEffFrozenSteamScale = 825.0f * 0.001f;
this->drawDmgEffAlpha = 1.0f;
this->collider.base.colType = COLTYPE_HIT3;
this->unk_190 = 80;

View File

@ -378,7 +378,7 @@ void func_8089AC70(EnDinofos* this) {
this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX;
this->drawDmgEffScale = 0.55f;
this->colliderJntSph.base.colType = COLTYPE_HIT3;
this->drawDmgEffFrozenSteamScale = 0.82500005f;
this->drawDmgEffFrozenSteamScale = 825.0f * 0.001f;
this->drawDmgEffAlpha = 1.0f;
this->unk_290 = 80;
this->actor.flags &= ~ACTOR_FLAG_400;

View File

@ -224,7 +224,7 @@ void func_808D0930(EnFloormas* this, PlayState* play) {
void func_808D09CC(EnFloormas* this) {
this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX;
this->drawDmgEffScale = 0.55f;
this->drawDmgEffFrozenSteamScale = 0.82500005f;
this->drawDmgEffFrozenSteamScale = 825.0f * 0.001f;
this->drawDmgEffAlpha = 1.0f;
this->collider.base.colType = COLTYPE_HIT3;
this->unk_18E = 80;

File diff suppressed because it is too large Load Diff

View File

@ -14,11 +14,11 @@ typedef enum SnapperBodyPart {
/* 2 */ SNAPPER_BODYPART_FRONT_RIGHT_FOOT,
/* 3 */ SNAPPER_BODYPART_BACK_LEFT_FOOT,
/* 4 */ SNAPPER_BODYPART_BACK_RIGHT_FOOT,
/* 5 */ SNAPPER_BODYPART_5,
/* 6 */ SNAPPER_BODYPART_6,
/* 7 */ SNAPPER_BODYPART_7,
/* 8 */ SNAPPER_BODYPART_8,
/* 9 */ SNAPPER_BODYPART_9,
/* 5 */ SNAPPER_BODYPART_BODY_1,
/* 6 */ SNAPPER_BODYPART_BODY_2,
/* 7 */ SNAPPER_BODYPART_BODY_3,
/* 8 */ SNAPPER_BODYPART_BODY_4,
/* 9 */ SNAPPER_BODYPART_BODY_5,
/* 10 */ SNAPPER_BODYPART_MAX
} SnapperBodyPart;
@ -31,19 +31,26 @@ typedef struct EnKame {
/* 0x268 */ Vec3s spikedSnapperJointTable[SPIKED_SNAPPER_LIMB_MAX];
/* 0x280 */ Vec3s spikedSnapperMorphTable[SPIKED_SNAPPER_LIMB_MAX];
/* 0x298 */ EnKameActionFunc actionFunc;
/* 0x29C */ u8 unk_29C;
/* 0x29C */ u8 eyeIndex;
/* 0x29D */ u8 drawDmgEffType;
/* 0x29E */ s16 unk_29E;
/* 0x2A0 */ s16 unk_2A0;
/* 0x2A2 */ s16 unk_2A2;
/* 0x2A4 */ s16 unk_2A4;
/* 0x2A6 */ s16 unk_2A6;
/* 0x2A8 */ f32 unk_2A8;
/* 0x2AC */ f32 unk_2AC;
/* 0x29E */ union {
s16 timer;
s16 targetAngularVelocityY;
s16 flipType;
};
/* 0x2A0 */ s16 voiceTimer;
/* 0x2A2 */ s16 stunTimer;
/* 0x2A4 */ s16 targetRotY;
/* 0x2A6 */ s16 angularVelocityY;
/* 0x2A8 */ f32 limbScaleXZ;
/* 0x2AC */ union {
f32 limbScaleY; // used the Snapper's regular form (i.e., when it's walking around on its legs)
f32 spikesScale; // used for the Snapper's "spiked" form
};
/* 0x2B0 */ f32 drawDmgEffAlpha;
/* 0x2B4 */ f32 drawDmgEffScale;
/* 0x2B8 */ f32 drawDmgEffFrozenSteamScale;
/* 0x2BC */ Vec3f unk_2BC;
/* 0x2BC */ Vec3f targetPos; // this actor relies on the y-position of this variable to be set in a specific way, see EnKame_SetupPrepareToAttack
/* 0x2C8 */ Vec3f bodyPartsPos[SNAPPER_BODYPART_MAX];
/* 0x340 */ ColliderCylinder collider;
} EnKame; // size = 0x38C

View File

@ -231,7 +231,7 @@ void EnPeehat_Destroy(Actor* thisx, PlayState* play) {
void func_80897170(EnPeehat* this) {
this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX;
this->drawDmgEffScale = 1.1f;
this->drawDmgEffFrozenSteamScale = 1.6500001f;
this->drawDmgEffFrozenSteamScale = 1650.0f * 0.001f;
this->drawDmgEffAlpha = 1.0f;
this->colliderSphere.base.colType = COLTYPE_HIT3;
this->unk_2B0 = 80;

View File

@ -195,7 +195,7 @@ void func_808FA11C(EnRr* this) {
this->collider1.info.elemType = ELEMTYPE_UNK0;
this->unk_1EE = 80;
this->drawDmgEffScale = 0.85f;
this->drawDmgEffFrozenSteamScale = 1.2750001f;
this->drawDmgEffFrozenSteamScale = 1275.0f * 0.001f;
this->drawDmgEffAlpha = 1.0f;
this->actor.flags &= ~ACTOR_FLAG_400;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80);

View File

@ -198,7 +198,7 @@ void EnWallmas_Destroy(Actor* thisx, PlayState* play) {
void EnWallmas_Freeze(EnWallmas* this) {
this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX;
this->drawDmgEffScale = 0.55f;
this->drawDmgEffFrozenSteamScale = 0.82500005f;
this->drawDmgEffFrozenSteamScale = 825.0f * 0.001f;
this->drawDmgEffAlpha = 1.0f;
this->collider.base.colType = 3;
this->timer = 80;

View File

@ -12240,44 +12240,44 @@
0x80AD6CBC:("BgLotus_Draw",),
0x80AD6DD0:("EnKame_Init",),
0x80AD6F08:("EnKame_Destroy",),
0x80AD6F34:("func_80AD6F34",),
0x80AD6F9C:("func_80AD6F9C",),
0x80AD7018:("func_80AD7018",),
0x80AD70A0:("func_80AD70A0",),
0x80AD70EC:("func_80AD70EC",),
0x80AD71B4:("func_80AD71B4",),
0x80AD7254:("func_80AD7254",),
0x80AD73A8:("func_80AD73A8",),
0x80AD7424:("func_80AD7424",),
0x80AD7568:("func_80AD7568",),
0x80AD75A8:("func_80AD75A8",),
0x80AD76CC:("func_80AD76CC",),
0x80AD7798:("func_80AD7798",),
0x80AD792C:("func_80AD792C",),
0x80AD7948:("func_80AD7948",),
0x80AD7B18:("func_80AD7B18",),
0x80AD7B90:("func_80AD7B90",),
0x80AD7C54:("func_80AD7C54",),
0x80AD7D40:("func_80AD7D40",),
0x80AD7DA4:("func_80AD7DA4",),
0x80AD7E0C:("func_80AD7E0C",),
0x80AD7EC0:("func_80AD7EC0",),
0x80AD7F10:("func_80AD7F10",),
0x80AD7FA4:("func_80AD7FA4",),
0x80AD7FF8:("func_80AD7FF8",),
0x80AD8060:("func_80AD8060",),
0x80AD810C:("func_80AD810C",),
0x80AD8148:("func_80AD8148",),
0x80AD825C:("func_80AD825C",),
0x80AD8364:("func_80AD8364",),
0x80AD8388:("func_80AD8388",),
0x80AD84C0:("func_80AD84C0",),
0x80AD6F34:("EnKame_Blink",),
0x80AD6F9C:("EnKame_Freeze",),
0x80AD7018:("EnKame_Thaw",),
0x80AD70A0:("EnKame_SetupIdle",),
0x80AD70EC:("EnKame_Idle",),
0x80AD71B4:("EnKame_SetupWalk",),
0x80AD7254:("EnKame_Walk",),
0x80AD73A8:("EnKame_SetupRetreatIntoShell",),
0x80AD7424:("EnKame_RetreatIntoShell",),
0x80AD7568:("EnKame_SetAttackSpeed",),
0x80AD75A8:("EnKame_ProcessAttackEffects",),
0x80AD76CC:("EnKame_SetupPrepareToAttack",),
0x80AD7798:("EnKame_PrepareToAttack",),
0x80AD792C:("EnKame_SetupAttack",),
0x80AD7948:("EnKame_Attack",),
0x80AD7B18:("EnKame_SetupEmergeFromShell",),
0x80AD7B90:("EnKame_EmergeFromShell",),
0x80AD7C54:("EnKame_SetupFlip",),
0x80AD7D40:("EnKame_Flip",),
0x80AD7DA4:("EnKame_SetupStruggle",),
0x80AD7E0C:("EnKame_Struggle",),
0x80AD7EC0:("EnKame_SetupFlipUpright",),
0x80AD7F10:("EnKame_FlipUpright",),
0x80AD7FA4:("EnKame_SetupStunned",),
0x80AD7FF8:("EnKame_Stunned",),
0x80AD8060:("EnKame_SetupDamaged",),
0x80AD810C:("EnKame_Damaged",),
0x80AD8148:("EnKame_SetupDead",),
0x80AD825C:("EnKame_Dead",),
0x80AD8364:("EnKame_SetupBurstIntoFlames",),
0x80AD8388:("EnKame_BurstIntoFlames",),
0x80AD84C0:("EnKame_UpdateDamage",),
0x80AD881C:("EnKame_Update",),
0x80AD8A48:("func_80AD8A48",),
0x80AD8AF8:("func_80AD8AF8",),
0x80AD8A48:("EnKame_OverrideLimbDraw",),
0x80AD8AF8:("EnKame_PostLimbDraw",),
0x80AD8BC0:("EnKame_Draw",),
0x80AD8CEC:("Enkame_OverrideLimbDraw",),
0x80AD8D64:("func_80AD8D64",),
0x80AD8CEC:("EnKame_SpikedSnapperOverrideLimbDraw",),
0x80AD8D64:("EnKame_DrawSpikedSnapper",),
0x80AD9240:("func_80AD9240",),
0x80AD92FC:("func_80AD92FC",),
0x80AD9358:("func_80AD9358",),

View File

@ -12992,14 +12992,14 @@
0x80AD8DE0:("D_80AD8DE0","UNK_TYPE1","",0x1),
0x80AD8E0C:("D_80AD8E0C","UNK_TYPE1","",0x1),
0x80AD8E14:("D_80AD8E14","UNK_TYPE1","",0x1),
0x80AD8E34:("D_80AD8E34","UNK_TYPE4","",0x4),
0x80AD8E34:("sEyeTextures","UNK_TYPE4","",0x4),
0x80AD8E44:("D_80AD8E44","UNK_TYPE1","",0x1),
0x80AD8E50:("D_80AD8E50","UNK_TYPE4","",0x4),
0x80AD8E54:("D_80AD8E54","UNK_TYPE1","",0x1),
0x80AD8E58:("D_80AD8E58","UNK_TYPE1","",0x1),
0x80AD8E5C:("D_80AD8E5C","UNK_TYPE1","",0x1),
0x80AD8E68:("D_80AD8E68","UNK_TYPE1","",0x1),
0x80AD8EA4:("sLimbToBodyParts","UNK_TYPE1","",0x1),
0x80AD8E50:("sTexturesDesegmented","UNK_TYPE4","",0x4),
0x80AD8E54:("sSnowPrimColor","UNK_TYPE1","",0x1),
0x80AD8E58:("sSnowEnvColor","UNK_TYPE1","",0x1),
0x80AD8E5C:("sVelocity","UNK_TYPE1","",0x1),
0x80AD8E68:("sBodyLimbBodyPartOffsets","Vec3f","[5]",0x3C),
0x80AD8EA4:("sLimbToBodyParts","s8","[13]",0xD),
0x80AD8EA5:("D_80AD8EA5","UNK_TYPE1","",0x1),
0x80AD8EC0:("D_80AD8EC0","f32","",0x4),
0x80AD8EC4:("D_80AD8EC4","f32","",0x4),