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",),