From aa3f1be55e0409e032062cc6779a6d5710941b85 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Sun, 2 Oct 2022 09:07:55 -0700 Subject: [PATCH] Object Tru Docs (Koume) (#1098) * Name everything in xml * Actor docs regarding assets * move header include * PR * Format * PR * MT animation enum * index () --- assets/xml/objects/object_trt.xml | 4 +- assets/xml/objects/object_tru.xml | 217 +++++++------- .../actors/ovl_En_Jc_Mato/z_en_jc_mato.c | 7 +- src/overlays/actors/ovl_En_Tru/z_en_tru.c | 266 ++++++++++-------- src/overlays/actors/ovl_En_Tru/z_en_tru.h | 13 +- .../actors/ovl_En_Tru_Mt/z_en_tru_mt.c | 113 ++++---- .../actors/ovl_En_Tru_Mt/z_en_tru_mt.h | 8 +- tools/disasm/functions.txt | 6 +- 8 files changed, 342 insertions(+), 292 deletions(-) diff --git a/assets/xml/objects/object_trt.xml b/assets/xml/objects/object_trt.xml index 826aa1ef07..9f024f9cb0 100644 --- a/assets/xml/objects/object_trt.xml +++ b/assets/xml/objects/object_trt.xml @@ -51,10 +51,10 @@ - + - + -> diff --git a/assets/xml/objects/object_tru.xml b/assets/xml/objects/object_tru.xml index 138723cebf..db35ec6044 100644 --- a/assets/xml/objects/object_tru.xml +++ b/assets/xml/objects/object_tru.xml @@ -1,108 +1,117 @@  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/overlays/actors/ovl_En_Jc_Mato/z_en_jc_mato.c b/src/overlays/actors/ovl_En_Jc_Mato/z_en_jc_mato.c index 99c17772c2..ced184e682 100644 --- a/src/overlays/actors/ovl_En_Jc_Mato/z_en_jc_mato.c +++ b/src/overlays/actors/ovl_En_Jc_Mato/z_en_jc_mato.c @@ -145,15 +145,14 @@ void EnJcMato_Update(Actor* thisx, PlayState* play) { } } -static Vec3f movement = { 0.0f, -2500.0f, 0.0f }; - void EnJcMato_Draw(Actor* thisx, PlayState* play) { + static Vec3f sOffset = { 0.0f, -2500.0f, 0.0f }; EnJcMato* this = THIS; OPEN_DISPS(play->state.gfxCtx); func_8012C28C(play->state.gfxCtx); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, object_tru_DL_000390); - Matrix_MultVec3f(&movement, &this->pos); + gSPDisplayList(POLY_OPA_DISP++, gKoumeTargetDL); + Matrix_MultVec3f(&sOffset, &this->pos); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_En_Tru/z_en_tru.c b/src/overlays/actors/ovl_En_Tru/z_en_tru.c index 42cbdc22a1..c54d924dfe 100644 --- a/src/overlays/actors/ovl_En_Tru/z_en_tru.c +++ b/src/overlays/actors/ovl_En_Tru/z_en_tru.c @@ -5,7 +5,7 @@ */ #include "z_en_tru.h" -#include "objects/object_tru/object_tru.h" +#include "objects/gameplay_keep/gameplay_keep.h" #define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_8 | ACTOR_FLAG_10 | ACTOR_FLAG_20) @@ -24,6 +24,26 @@ s32 func_80A87DC0(Actor* thisx, PlayState* play); void func_80A87FD0(EnTru* this, PlayState* play); void func_80A881E0(EnTru* this, PlayState* play); +typedef enum { + /* 0x00 */ KOUME_ANIM_INJURED_LYING_DOWN, + /* 0x01 */ KOUME_ANIM_INJURED_LYING_DOWN_MORPH, + /* 0x02 */ KOUME_ANIM_TRY_GET_UP, + /* 0x03 */ KOUME_ANIM_INJURED_RAISE_HEAD, + /* 0x04 */ KOUME_ANIM_INJURED_TALK, + /* 0x05 */ KOUME_ANIM_INJURED_HEAD_UP, + /* 0x06 */ KOUME_ANIM_INJURED_HEAD_UP_MORPH, + /* 0x07 */ KOUME_ANIM_TAKE, + /* 0x08 */ KOUME_ANIM_SHAKE, // Unused + /* 0x09 */ KOUME_ANIM_DRINK, + /* 0x0A */ KOUME_ANIM_FINISHED_DRINKING, + /* 0x0B */ KOUME_ANIM_HEALED, + /* 0x0C */ KOUME_ANIM_HOVER1, + /* 0x0D */ KOUME_ANIM_TAKE_OFF, + /* 0x0E */ KOUME_ANIM_FLY, + /* 0x0F */ KOUME_ANIM_HOVER2, + /* 0x10 */ KOUME_ANIM_MAX +} KoumeAnimation; + static UNK_TYPE D_80A88910[] = { 0x0E08520C, 0x16100000, @@ -69,7 +89,6 @@ const ActorInit En_Tru_InitVars = { }; #include "overlays/ovl_En_Tru/ovl_En_Tru.c" -#include "objects/gameplay_keep/gameplay_keep.h" static Vec3f D_80A8B250 = { 0.0f, 0.02f, 0.0f }; @@ -107,22 +126,22 @@ static ColliderSphereInit sSphereInit = { static CollisionCheckInfoInit2 sColChkInfoInit = { 1, 20, 0, 0, MASS_IMMOVABLE }; static AnimationInfoS sAnimationInfo[] = { - { &object_tru_Anim_00F9A0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, - { &object_tru_Anim_00F9A0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, - { &object_tru_Anim_0108AC, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_009348, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, - { &object_tru_Anim_00EEDC, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, - { &object_tru_Anim_015CA0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, - { &object_tru_Anim_015CA0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, - { &object_tru_Anim_014728, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, - { &object_tru_Anim_01B5C4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, - { &object_tru_Anim_007FA0, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_016B4C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, - { &object_tru_Anim_011F88, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_00446C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, - { &object_tru_Anim_003698, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_002BD8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, - { &object_tru_Anim_00446C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeInjuredLyingDownAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeInjuredLyingDownAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, + { &gKoumeTryGetUpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeInjuredRaiseHeadAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, + { &gKoumeInjuredTalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, + { &gKoumeInjuredHeadUpAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeInjuredHeadUpAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, + { &gKoumeTakeAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, + { &gKoumeShakeAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, + { &gKoumeDrinkAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeFinishedDrinkingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, + { &gKoumeHealedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeHoverAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeTakeOffAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeFlyAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeHoverAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, }; static Vec3f D_80A8B3D8 = { 0.0f, 24.0f, 16.0f }; @@ -275,12 +294,12 @@ void func_80A85F84(EnTruUnkStruct* arg0, PlayState* play) { for (i = 0; i < 30; i++, arg0++) { f32 alpha; - s32 idx; + s32 index; if ((arg0->unk_00 == 3) || (arg0->unk_00 == 4) || (arg0->unk_00 == 5)) { if (!flag) { - POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, sizeof(Gfx) * 0); - gSPDisplayList(POLY_XLU_DISP++, object_tru_DL_01A820); + POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0); + gSPDisplayList(POLY_XLU_DISP++, gKoumeDustMaterialDL); flag = true; } @@ -306,9 +325,9 @@ void func_80A85F84(EnTruUnkStruct* arg0, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - idx = ((f32)arg0->unk_02 / arg0->unk_01) * 8.0f; - gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(sDustTextures[idx])); - gSPDisplayList(POLY_XLU_DISP++, object_tru_DL_01A830); + index = ((f32)arg0->unk_02 / arg0->unk_01) * 8.0f; + gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(sDustTextures[index])); + gSPDisplayList(POLY_XLU_DISP++, gKoumeDustModelDL); Matrix_Pop(); } @@ -414,21 +433,21 @@ s32 func_80A86770(EnTru* this) { return false; } -void func_80A868F8(EnTru* this) { - this->skelAnime.playSpeed = this->unk_358; +void EnTru_UpdateSkelAnime(EnTru* this) { + this->skelAnime.playSpeed = this->playSpeed; SkelAnime_Update(&this->skelAnime); } -s32 func_80A86924(EnTru* this, s32 arg1) { - s32 ret = false; +s32 EnTru_ChangeAnim(EnTru* this, s32 animIndex) { + s32 didChange = false; - if (arg1 != this->unk_37C) { - this->unk_37C = arg1; - ret = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, arg1); - this->unk_358 = this->skelAnime.playSpeed; + if (animIndex != this->animIndex) { + this->animIndex = animIndex; + didChange = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, animIndex); + this->playSpeed = this->skelAnime.playSpeed; } - return ret; + return didChange; } void func_80A8697C(EnTru* this, PlayState* play) { @@ -497,7 +516,7 @@ s32 func_80A86BAC(EnTru* this, PlayState* play) { Matrix_RotateXS(-0x4000, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, object_tru_DL_0020C8); + gSPDisplayList(POLY_OPA_DISP++, gKoumePotionDL); Matrix_Pop(); @@ -515,7 +534,7 @@ s32 func_80A86BAC(EnTru* this, PlayState* play) { Matrix_RotateXS(-0x4000, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, object_tru_DL_001F90); + gSPDisplayList(POLY_XLU_DISP++, gKoumeBottleDL); Matrix_Pop(); @@ -527,104 +546,105 @@ s32 func_80A86BAC(EnTru* this, PlayState* play) { s32 func_80A86DB8(EnTru* this) { if (this->unk_34E & 0x80) { - this->unk_36E = 2; + this->eyeTexIndex = 2; return false; } - switch (this->unk_37C) { - case 0: - case 1: - if (DECR(this->unk_36C) == 0) { + switch (this->animIndex) { + case KOUME_ANIM_INJURED_LYING_DOWN: + case KOUME_ANIM_INJURED_LYING_DOWN_MORPH: + if (DECR(this->blinkTimer) == 0) { s16 rand = Rand_S16Offset(40, 20); - if (this->unk_36E == 2) { - this->unk_36C = 8; + + if (this->eyeTexIndex == 2) { + this->blinkTimer = 8; } else { - this->unk_36C = rand; + this->blinkTimer = rand; } - if (this->unk_36E == 2) { - this->unk_36E = 1; + if (this->eyeTexIndex == 2) { + this->eyeTexIndex = 1; } else { - this->unk_36E = 2; + this->eyeTexIndex = 2; } } return false; - case 2: + case KOUME_ANIM_TRY_GET_UP: if (Animation_OnFrame(&this->skelAnime, 10.0f)) { - this->unk_36E = 1; + this->eyeTexIndex = 1; } else if ((this->skelAnime.curFrame >= 11.0f) && (this->skelAnime.curFrame <= 32.0f)) { - this->unk_36E = 0; + this->eyeTexIndex = 0; } else { - this->unk_36E = 2; + this->eyeTexIndex = 2; } return false; - case 3: + case KOUME_ANIM_INJURED_RAISE_HEAD: if (Animation_OnFrame(&this->skelAnime, 31.0f)) { - this->unk_36E = 1; + this->eyeTexIndex = 1; } else if (this->skelAnime.curFrame <= 32.0f) { - this->unk_36E = 2; + this->eyeTexIndex = 2; } else { - this->unk_36E = 0; + this->eyeTexIndex = 0; } return false; - case 9: + case KOUME_ANIM_DRINK: if (Animation_OnFrame(&this->skelAnime, 57.0f)) { - this->unk_36C = 0; - this->unk_36E = 0; + this->blinkTimer = 0; + this->eyeTexIndex = 0; } if (this->skelAnime.curFrame < 57.0f) { - if (DECR(this->unk_36C) == 0) { - this->unk_36C = Rand_S16Offset(8, 8); - this->unk_36E = 2; + if (DECR(this->blinkTimer) == 0) { + this->blinkTimer = Rand_S16Offset(8, 8); + this->eyeTexIndex = 2; } else { - this->unk_36E = 1; + this->eyeTexIndex = 1; } - } else if (DECR(this->unk_36C) == 0) { - this->unk_36E++; - if (this->unk_36E >= 4) { - this->unk_36C = Rand_S16Offset(20, 10); - this->unk_36E = 0; + } else if (DECR(this->blinkTimer) == 0) { + this->eyeTexIndex++; + if (this->eyeTexIndex >= 4) { + this->blinkTimer = Rand_S16Offset(20, 10); + this->eyeTexIndex = 0; } } return false; - case 10: - this->unk_36E = 0; + case KOUME_ANIM_FINISHED_DRINKING: + this->eyeTexIndex = 0; return false; - case 11: + case KOUME_ANIM_HEALED: if (Animation_OnFrame(&this->skelAnime, 19.0f) || Animation_OnFrame(&this->skelAnime, 45.0f)) { - this->unk_36E = 1; + this->eyeTexIndex = 1; } else if ((this->skelAnime.curFrame >= 19.0f) && (this->skelAnime.curFrame <= 45.0f)) { - this->unk_36E = 2; + this->eyeTexIndex = 2; } else { - this->unk_36E = 3; + this->eyeTexIndex = 3; } return false; - case 13: + case KOUME_ANIM_TAKE_OFF: if (Animation_OnFrame(&this->skelAnime, 19.0f)) { - this->unk_36E = 1; + this->eyeTexIndex = 1; } else if (this->skelAnime.curFrame >= 19.0f) { - this->unk_36E = 2; + this->eyeTexIndex = 2; } else { - this->unk_36E = 0; + this->eyeTexIndex = 0; } return false; default: - if (DECR(this->unk_36C) == 0) { - if ((this->unk_36E != 2) || !(this->unk_34E & 0x80)) { - this->unk_36E++; + if (DECR(this->blinkTimer) == 0) { + if ((this->eyeTexIndex != 2) || !(this->unk_34E & 0x80)) { + this->eyeTexIndex++; } - if (this->unk_36E >= 4) { - this->unk_36C = Rand_S16Offset(30, 30); - this->unk_36E = 0; + if (this->eyeTexIndex >= 4) { + this->blinkTimer = Rand_S16Offset(30, 30); + this->eyeTexIndex = 0; } } return false; @@ -772,11 +792,12 @@ s32 func_80A875AC(Actor* thisx, PlayState* play) { break; case 2: - if ((this->unk_37C != 5) && (this->unk_37C != 6)) { - func_80A86924(this, 3); + if ((this->animIndex != KOUME_ANIM_INJURED_HEAD_UP) && + (this->animIndex != KOUME_ANIM_INJURED_HEAD_UP_MORPH)) { + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_RAISE_HEAD); this->unk_364++; } else { - func_80A86924(this, 4); + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_TALK); ret = true; } break; @@ -784,7 +805,7 @@ s32 func_80A875AC(Actor* thisx, PlayState* play) { case 3: if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { this->unk_364++; - func_80A86924(this, 4); + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_TALK); ret = true; } break; @@ -806,7 +827,7 @@ s32 func_80A875AC(Actor* thisx, PlayState* play) { s32 func_80A8777C(Actor* thisx, PlayState* play) { EnTru* this = THIS; s32 ret = 0; - s32 temp_v0; + s32 itemActionParam; switch (Message_GetState(&play->msgCtx)) { case TEXT_STATE_CHOICE: @@ -816,10 +837,10 @@ s32 func_80A8777C(Actor* thisx, PlayState* play) { } // Fallthrough case TEXT_STATE_16: - temp_v0 = func_80123810(play); - if ((temp_v0 == 35) || (temp_v0 == 36)) { + itemActionParam = func_80123810(play); + if ((itemActionParam == PLAYER_AP_BOTTLE_POTION_RED) || (itemActionParam == PLAYER_AP_BOTTLE_POTION_BLUE)) { this->unk_34E |= 8; - if (temp_v0 == 35) { + if (itemActionParam == PLAYER_AP_BOTTLE_POTION_RED) { this->unk_390 = 1; } else { this->unk_390 = 2; @@ -827,9 +848,9 @@ s32 func_80A8777C(Actor* thisx, PlayState* play) { this->unk_378 = func_80A87880; this->unk_364 = 0; ret = 1; - } else if (temp_v0 < 0) { + } else if (itemActionParam < PLAYER_AP_NONE) { ret = 3; - } else if (temp_v0 != 0) { + } else if (itemActionParam != PLAYER_AP_NONE) { ret = 2; } break; @@ -866,14 +887,14 @@ s32 func_80A87880(Actor* thisx, PlayState* play) { this->unk_34E &= ~0x8; this->actor.shape.rot.y = this->actor.yawTowardsPlayer; this->actor.world.rot.y = this->actor.yawTowardsPlayer; - func_80A86924(this, 7); + EnTru_ChangeAnim(this, KOUME_ANIM_TAKE); this->unk_364++; break; case 3: if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { this->unk_364++; - func_80A86924(this, 9); + EnTru_ChangeAnim(this, KOUME_ANIM_DRINK); this->actor.world.rot.y += 0x4000; } else if (Animation_OnFrame(&this->skelAnime, 12.0f) && !(this->unk_34E & 0x800)) { this->unk_34E |= 0x400; @@ -885,7 +906,7 @@ s32 func_80A87880(Actor* thisx, PlayState* play) { case 4: if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { this->unk_364++; - func_80A86924(this, 10); + EnTru_ChangeAnim(this, KOUME_ANIM_FINISHED_DRINKING); ret = true; } else if (Animation_OnFrame(&this->skelAnime, 18.0f) || Animation_OnFrame(&this->skelAnime, 32.0f) || Animation_OnFrame(&this->skelAnime, 52.0f)) { @@ -923,7 +944,7 @@ s32 func_80A87B48(Actor* thisx, PlayState* play) { switch (this->unk_364) { case 0: - func_80A86924(this, 11); + EnTru_ChangeAnim(this, KOUME_ANIM_HEALED); this->unk_364++; break; @@ -954,7 +975,7 @@ s32 func_80A87B48(Actor* thisx, PlayState* play) { if (player->exchangeItemId != 0) { player->exchangeItemId = 0; } - func_80A86924(this, 12); + EnTru_ChangeAnim(this, KOUME_ANIM_HOVER1); } } else { MREG(64) = 0; @@ -997,7 +1018,7 @@ s32 func_80A87DC0(Actor* thisx, PlayState* play) { AudioSfx_StopById(NA_SE_EN_KOUME_MAGIC); Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_KOUME_AWAY); Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_KOUME_LAUGH); - func_80A86924(this, 13); + EnTru_ChangeAnim(this, KOUME_ANIM_TAKE_OFF); this->skelAnime.baseTransl.y = 0; this->skelAnime.moveFlags = 2; this->unk_34E &= ~0x8; @@ -1010,7 +1031,7 @@ s32 func_80A87DC0(Actor* thisx, PlayState* play) { AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); break; } else { - func_80A86924(this, 14); + EnTru_ChangeAnim(this, KOUME_ANIM_FLY); this->actor.shape.rot.y = this->actor.world.rot.y; this->unk_362 = 20; this->unk_364++; @@ -1049,13 +1070,14 @@ void func_80A87FD0(EnTru* this, PlayState* play) { SubS_UpdateFlags(&this->unk_34E, 0, 7); } - if ((this->unk_37C == 2) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { + if ((this->animIndex == KOUME_ANIM_TRY_GET_UP) && + Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { this->unk_362 = Rand_S16Offset(40, 20); - func_80A86924(this, 1); + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_LYING_DOWN_MORPH); func_80A86460(this); - } else if (this->unk_37C != 2) { + } else if (this->animIndex != KOUME_ANIM_TRY_GET_UP) { if (DECR(this->unk_362) == 0) { - func_80A86924(this, 2); + EnTru_ChangeAnim(this, KOUME_ANIM_TRY_GET_UP); } } } else if (!(gSaveContext.save.weekEventReg[16] & 0x10) && (fabsf(this->actor.playerHeightRel) < 10.0f) && @@ -1084,12 +1106,12 @@ void func_80A881E0(EnTru* this, PlayState* play) { } if (!(this->unk_34E & 0x40) && !(gSaveContext.save.weekEventReg[16] & 0x10)) { - func_80A86924(this, 0); + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_LYING_DOWN); } else if (this->unk_34E & 0x80) { - func_80A86924(this, 0); + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_LYING_DOWN); func_80A86460(this); } else if (gSaveContext.save.weekEventReg[16] & 0x10) { - func_80A86924(this, 6); + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_HEAD_UP_MORPH); } SubS_UpdateFlags(&this->unk_34E, 0, 7); @@ -1111,11 +1133,11 @@ void EnTru_Init(Actor* thisx, PlayState* play) { } ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &object_tru_Skel_01AA60, NULL, this->jointTable, this->morphTable, 27); + SkelAnime_InitFlex(play, &this->skelAnime, &gKoumeSkel, NULL, this->jointTable, this->morphTable, KOUME_LIMB_MAX); Collider_InitAndSetSphere(play, &this->collider, &this->actor, &sSphereInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &sColChkInfoInit); - this->unk_37C = -1; - func_80A86924(this, 0); + this->animIndex = -1; + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_LYING_DOWN); this->path = SubS_GetDayDependentPath(play, ENTRU_GET_PATH(&this->actor), 255, &this->unk_384); if (this->path != NULL) { this->unk_384 = 1; @@ -1126,7 +1148,7 @@ void EnTru_Init(Actor* thisx, PlayState* play) { this->unk_34E = 0; if (gSaveContext.save.weekEventReg[16] & 0x10) { - func_80A86924(this, 5); + EnTru_ChangeAnim(this, KOUME_ANIM_INJURED_HEAD_UP); } else { this->unk_388 = PLAYER_AP_NONE; } @@ -1149,7 +1171,7 @@ void EnTru_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); - func_80A868F8(this); + EnTru_UpdateSkelAnime(this); func_80A86B0C(this, play); func_80A86DB8(this); @@ -1165,7 +1187,7 @@ s32 EnTru_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p s32 pad; EnTru* this = THIS; - if (limbIndex == 21) { + if (limbIndex == KOUME_LIMB_HEAD) { Matrix_MultZero(&this->actor.focus.pos); Math_Vec3f_ToVec3s(&this->collider.dim.worldSphere.center, &this->actor.focus.pos); this->actor.focus.pos.x = (this->actor.focus.pos.x / 10.0f) * 10.0f; @@ -1175,7 +1197,7 @@ s32 EnTru_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p Matrix_MultVec3f(&D_80A8B3FC, &this->unk_1F8); } - if (!(this->unk_34E & 0x200) && (limbIndex == 14)) { + if (!(this->unk_34E & 0x200) && (limbIndex == KOUME_LIMB_BROOM)) { *dList = NULL; } @@ -1185,7 +1207,7 @@ s32 EnTru_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p void EnTru_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { EnTru* this = THIS; - if (limbIndex == 19) { + if (limbIndex == KOUME_LIMB_RIGHT_HAND) { func_80A86BAC(this, play); } } @@ -1212,7 +1234,7 @@ void EnTru_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { overrideRot = false; } - if (limbIndex == 21) { + if (limbIndex == KOUME_LIMB_HEAD) { SubS_UpdateLimb(this->unk_366, this->unk_368 + this->actor.shape.rot.y, &this->unk_1EC, &this->unk_204, stepRot, overrideRot); Matrix_Pop(); @@ -1232,11 +1254,11 @@ void EnTru_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } void EnTru_Draw(Actor* thisx, PlayState* play) { - static TexturePtr D_80A8B408[] = { - object_tru_Tex_018FA0, - object_tru_Tex_0197A0, - object_tru_Tex_019FA0, - object_tru_Tex_0197A0, + static TexturePtr sEyeTextures[] = { + gKoumeEyeOpenTex, + gKoumeEyeHalfTex, + gKoumeEyeClosedTex, + gKoumeEyeHalfTex, }; s32 pad; EnTru* this = THIS; @@ -1245,8 +1267,8 @@ void EnTru_Draw(Actor* thisx, PlayState* play) { func_8012C28C(play->state.gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80A8B408[this->unk_36E])); - gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80A8B408[this->unk_36E])); + gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(sEyeTextures[this->eyeTexIndex])); + gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(sEyeTextures[this->eyeTexIndex])); SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, EnTru_OverrideLimbDraw, EnTru_PostLimbDraw, diff --git a/src/overlays/actors/ovl_En_Tru/z_en_tru.h b/src/overlays/actors/ovl_En_Tru/z_en_tru.h index 7e1c233806..711d5aeb61 100644 --- a/src/overlays/actors/ovl_En_Tru/z_en_tru.h +++ b/src/overlays/actors/ovl_En_Tru/z_en_tru.h @@ -2,6 +2,7 @@ #define Z_EN_TRU_H #include "global.h" +#include "objects/object_tru/object_tru.h" struct EnTru; @@ -31,12 +32,12 @@ typedef struct EnTru { /* 0x1EC */ Vec3f unk_1EC; /* 0x1F8 */ Vec3f unk_1F8; /* 0x204 */ Vec3s unk_204; - /* 0x20A */ Vec3s jointTable[27]; - /* 0x2AC */ Vec3s morphTable[27]; + /* 0x20A */ Vec3s jointTable[KOUME_LIMB_MAX]; + /* 0x2AC */ Vec3s morphTable[KOUME_LIMB_MAX]; /* 0x34E */ u16 unk_34E; /* 0x350 */ UNK_TYPE1 unk350[0x4]; /* 0x354 */ s32* unk_354; - /* 0x358 */ f32 unk_358; + /* 0x358 */ f32 playSpeed; /* 0x35C */ f32 unk_35C; /* 0x360 */ s16 unk_360; /* 0x362 */ s16 unk_362; @@ -44,13 +45,13 @@ typedef struct EnTru { /* 0x366 */ s16 unk_366; /* 0x368 */ s16 unk_368; /* 0x36A */ s16 unk_36A; - /* 0x36C */ s16 unk_36C; - /* 0x36E */ s16 unk_36E; + /* 0x36C */ s16 blinkTimer; + /* 0x36E */ s16 eyeTexIndex; /* 0x370 */ s16 unk_370; /* 0x372 */ s16 unk_372; /* 0x374 */ s16 unk_374; /* 0x378 */ EnTruUnkFunc unk_378; - /* 0x37C */ s32 unk_37C; + /* 0x37C */ s32 animIndex; /* 0x380 */ UNK_TYPE1 unk380[0x4]; /* 0x384 */ s32 unk_384; /* 0x388 */ s32 unk_388; diff --git a/src/overlays/actors/ovl_En_Tru_Mt/z_en_tru_mt.c b/src/overlays/actors/ovl_En_Tru_Mt/z_en_tru_mt.c index ac772a9404..69725414ad 100644 --- a/src/overlays/actors/ovl_En_Tru_Mt/z_en_tru_mt.c +++ b/src/overlays/actors/ovl_En_Tru_Mt/z_en_tru_mt.c @@ -20,6 +20,26 @@ void func_80B76A64(EnTruMt* this, PlayState* play); void func_80B76BB8(EnTruMt* this, PlayState* play); void func_80B76C38(EnTruMt* this, PlayState* play); +typedef enum { + /* 0x00 */ KOUME_MT_ANIM_INJURED_LYING_DOWN, + /* 0x01 */ KOUME_MT_ANIM_INJURED_LYING_DOWN_MORPH, + /* 0x02 */ KOUME_MT_ANIM_TRY_GET_UP, + /* 0x03 */ KOUME_MT_ANIM_INJURED_RAISE_HEAD, + /* 0x04 */ KOUME_MT_ANIM_INJURED_TALK, + /* 0x05 */ KOUME_MT_ANIM_INJURED_HEAD_UP, + /* 0x06 */ KOUME_MT_ANIM_INJURED_HEAD_UP_MORPH, + /* 0x07 */ KOUME_MT_ANIM_TAKE, + /* 0x08 */ KOUME_MT_ANIM_SHAKE, // Unused + /* 0x09 */ KOUME_MT_ANIM_DRINK, + /* 0x0A */ KOUME_MT_ANIM_FINISHED_DRINKING, + /* 0x0B */ KOUME_MT_ANIM_HEALED, + /* 0x0C */ KOUME_MT_ANIM_HOVER1, + /* 0x0D */ KOUME_MT_ANIM_TAKE_OFF, + /* 0x0E */ KOUME_MT_ANIM_FLY, + /* 0x0F */ KOUME_MT_ANIM_HOVER2, + /* 0x10 */ KOUME_MT_ANIM_MAX +} KoumeMtAnimation; + const ActorInit En_Tru_Mt_InitVars = { ACTOR_EN_TRU_MT, ACTORCAT_NPC, @@ -88,57 +108,57 @@ static DamageTable sDamageTable = { }; static AnimationInfoS sAnimationInfo[] = { - { &object_tru_Anim_00F9A0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, - { &object_tru_Anim_00F9A0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, - { &object_tru_Anim_0108AC, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_009348, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_00EEDC, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, - { &object_tru_Anim_015CA0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, - { &object_tru_Anim_015CA0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, - { &object_tru_Anim_014728, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, - { &object_tru_Anim_01B5C4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, - { &object_tru_Anim_007FA0, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_016B4C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, - { &object_tru_Anim_011F88, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_00446C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, - { &object_tru_Anim_003698, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, - { &object_tru_Anim_002BD8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, - { &object_tru_Anim_00446C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeInjuredLyingDownAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeInjuredLyingDownAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, + { &gKoumeTryGetUpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeInjuredRaiseHeadAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeInjuredTalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, + { &gKoumeInjuredHeadUpAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeInjuredHeadUpAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, + { &gKoumeTakeAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, + { &gKoumeShakeAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, + { &gKoumeDrinkAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeFinishedDrinkingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, + { &gKoumeHealedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeHoverAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeTakeOffAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, + { &gKoumeFlyAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, + { &gKoumeHoverAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, }; Vec3f D_80B7765C = { 3000.0f, -800.0f, 0.0f }; Vec3f D_80B77668 = { 0.0f, 0.0f, -3000.0f }; -s32 func_80B76030(SkelAnime* skelAnime, s16 arg1) { +s32 EnTruMt_ChangeAnim(SkelAnime* skelAnime, s16 animIndex) { s16 endFrame; s16 startFrame; - s32 ret = false; + s32 didChange = false; - if ((arg1 >= 0) && (arg1 < ARRAY_COUNT(sAnimationInfo))) { - endFrame = sAnimationInfo[arg1].frameCount; + if ((animIndex >= KOUME_MT_ANIM_INJURED_LYING_DOWN) && (animIndex < KOUME_MT_ANIM_MAX)) { + endFrame = sAnimationInfo[animIndex].frameCount; if (endFrame < 0) { - endFrame = Animation_GetLastFrame(sAnimationInfo[arg1].animation); + endFrame = Animation_GetLastFrame(sAnimationInfo[animIndex].animation); } - startFrame = sAnimationInfo[arg1].startFrame; + startFrame = sAnimationInfo[animIndex].startFrame; if (startFrame < 0) { - startFrame = Animation_GetLastFrame(sAnimationInfo[arg1].animation); + startFrame = Animation_GetLastFrame(sAnimationInfo[animIndex].animation); } - Animation_Change(skelAnime, sAnimationInfo[arg1].animation, sAnimationInfo[arg1].playSpeed, startFrame, - endFrame, sAnimationInfo[arg1].mode, sAnimationInfo[arg1].morphFrames); - ret = true; + Animation_Change(skelAnime, sAnimationInfo[animIndex].animation, sAnimationInfo[animIndex].playSpeed, + startFrame, endFrame, sAnimationInfo[animIndex].mode, sAnimationInfo[animIndex].morphFrames); + didChange = true; } - return ret; + return didChange; } void func_80B76110(EnTruMt* this) { - if (DECR(this->unk_34E) == 0) { - this->unk_34C++; - if (this->unk_34C >= 3) { - this->unk_34E = Rand_S16Offset(30, 30); - this->unk_34C = 0; + if (DECR(this->blinkTimer) == 0) { + this->eyeTexIndex++; + if (this->eyeTexIndex >= 3) { + this->blinkTimer = Rand_S16Offset(30, 30); + this->eyeTexIndex = 0; } } } @@ -404,8 +424,7 @@ void EnTruMt_Init(Actor* thisx, PlayState* play) { } ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &object_tru_Skel_01AA60, NULL, this->jointTable, this->morphTable, - OBJECT_TRU_LIMB_MAX); + SkelAnime_InitFlex(play, &this->skelAnime, &gKoumeSkel, NULL, this->jointTable, this->morphTable, KOUME_LIMB_MAX); Collider_InitSphere(play, &this->collider); Collider_SetSphere(play, &this->collider, &this->actor, &sSphereInit); @@ -421,7 +440,7 @@ void EnTruMt_Init(Actor* thisx, PlayState* play) { this->unk_328 = 0; this->actor.room = -1; this->path = SubS_GetPathByIndex(play, ENTRUMT_GET_FC00(&this->actor), 0x3F); - func_80B76030(&this->skelAnime, 14); + EnTruMt_ChangeAnim(&this->skelAnime, KOUME_MT_ANIM_FLY); this->actionFunc = func_80B76A64; } @@ -477,11 +496,11 @@ void func_80B76ED4(s16 arg0, s16 arg1, Vec3f* arg2, Vec3s* arg3, s32 arg4) { s32 EnTruMt_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { EnTruMt* this = THIS; - if (limbIndex == OBJECT_TRU_LIMB_15) { + if (limbIndex == KOUME_LIMB_HEAD) { Matrix_MultVec3f(&gZeroVec3f, &this->unk_35C); } - if (limbIndex == OBJECT_TRU_LIMB_15) { + if (limbIndex == KOUME_LIMB_HEAD) { Matrix_MultVec3f(&D_80B7765C, &this->unk_350); } return false; @@ -493,7 +512,7 @@ void EnTruMt_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro MtxF* sp54; s32 phi_v0; - if (limbIndex == OBJECT_TRU_LIMB_15) { + if (limbIndex == KOUME_LIMB_HEAD) { if (this->unk_328 & 0x10) { phi_v0 = 1; } else { @@ -507,7 +526,7 @@ void EnTruMt_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro Matrix_RotateZS(this->unk_336.z, MTXMODE_APPLY); } - if (limbIndex == OBJECT_TRU_LIMB_0E) { + if (limbIndex == KOUME_LIMB_BROOM) { func_8012C28C(play->state.gfxCtx); OPEN_DISPS(play->state.gfxCtx); @@ -520,7 +539,7 @@ void EnTruMt_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro Matrix_Scale(0.008f, 0.008f, 0.008f, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, object_tru_DL_0004C8); + gSPDisplayList(POLY_OPA_DISP++, gKoumeChainDL); CLOSE_DISPS(play->state.gfxCtx); @@ -545,7 +564,7 @@ void EnTruMt_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro void EnTruMt_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { EnTruMt* this = THIS; - if (limbIndex == OBJECT_TRU_LIMB_15) { + if (limbIndex == KOUME_LIMB_HEAD) { Matrix_Translate(this->unk_33C.x, this->unk_33C.y, this->unk_33C.z, MTXMODE_NEW); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); Matrix_RotateYS(this->unk_336.y, MTXMODE_APPLY); @@ -556,18 +575,18 @@ void EnTruMt_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { void EnTruMt_Draw(Actor* thisx, PlayState* play) { EnTruMt* this = THIS; - TexturePtr sp48[] = { - object_tru_Tex_018FA0, - object_tru_Tex_0197A0, - object_tru_Tex_019FA0, + TexturePtr eyeTextures[] = { + gKoumeEyeOpenTex, + gKoumeEyeHalfTex, + gKoumeEyeClosedTex, }; OPEN_DISPS(play->state.gfxCtx); func_8012C28C(play->state.gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(sp48[this->unk_34C])); - gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(sp48[this->unk_34C])); + gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(eyeTextures[this->eyeTexIndex])); + gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(eyeTextures[this->eyeTexIndex])); SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, EnTruMt_OverrideLimbDraw, EnTruMt_PostLimbDraw, diff --git a/src/overlays/actors/ovl_En_Tru_Mt/z_en_tru_mt.h b/src/overlays/actors/ovl_En_Tru_Mt/z_en_tru_mt.h index 670d0d728a..54d58326e5 100644 --- a/src/overlays/actors/ovl_En_Tru_Mt/z_en_tru_mt.h +++ b/src/overlays/actors/ovl_En_Tru_Mt/z_en_tru_mt.h @@ -16,16 +16,16 @@ typedef struct EnTruMt { /* 0x144 */ EnTruMtActionFunc actionFunc; /* 0x148 */ SkelAnime skelAnime; /* 0x18C */ ColliderSphere collider; - /* 0x1E4 */ Vec3s jointTable[OBJECT_TRU_LIMB_MAX]; - /* 0x286 */ Vec3s morphTable[OBJECT_TRU_LIMB_MAX]; + /* 0x1E4 */ Vec3s jointTable[KOUME_LIMB_MAX]; + /* 0x286 */ Vec3s morphTable[KOUME_LIMB_MAX]; /* 0x328 */ u16 unk_328; /* 0x32A */ UNK_TYPE1 unk32A[0xC]; /* 0x336 */ Vec3s unk_336; /* 0x33C */ Vec3f unk_33C; /* 0x348 */ s16 unk_348; /* 0x34A */ s16 unk_34A; - /* 0x34C */ s16 unk_34C; - /* 0x34E */ s16 unk_34E; + /* 0x34C */ s16 eyeTexIndex; + /* 0x34E */ s16 blinkTimer; /* 0x350 */ Vec3f unk_350; /* 0x35C */ Vec3f unk_35C; /* 0x368 */ Path* path; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 8a146996da..057170442e 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -11226,8 +11226,8 @@ 0x80A86460:("func_80A86460",), 0x80A86674:("func_80A86674",), 0x80A86770:("func_80A86770",), - 0x80A868F8:("func_80A868F8",), - 0x80A86924:("func_80A86924",), + 0x80A868F8:("EnTru_UpdateSkelAnime",), + 0x80A86924:("EnTru_ChangeAnim",), 0x80A8697C:("func_80A8697C",), 0x80A869DC:("func_80A869DC",), 0x80A86B0C:("func_80A86B0C",), @@ -14437,7 +14437,7 @@ 0x80B75658:("EnJg_OverrideLimbDraw",), 0x80B75708:("EnJg_PostLimbDraw",), 0x80B757AC:("EnJg_Draw",), - 0x80B76030:("func_80B76030",), + 0x80B76030:("EnTruMt_ChangeAnim",), 0x80B76110:("func_80B76110",), 0x80B76188:("func_80B76188",), 0x80B761FC:("func_80B761FC",),