diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml
index b35e505ce..2f12d6683 100644
--- a/assets/xml/objects/object_an1.xml
+++ b/assets/xml/objects/object_an1.xml
@@ -1,15 +1,16 @@
-
-
+
+
+
-
+
-
+
@@ -41,7 +42,7 @@
-
+
@@ -91,6 +92,6 @@
-
+
diff --git a/assets/xml/objects/object_an4.xml b/assets/xml/objects/object_an4.xml
index a6bb94e37..a3116b65c 100644
--- a/assets/xml/objects/object_an4.xml
+++ b/assets/xml/objects/object_an4.xml
@@ -1,15 +1,18 @@
+
-
-
-
-
+
+
+
+
+
-
+
+
-
-
-
-
+
+
+
+
diff --git a/include/z64cutscene.h b/include/z64cutscene.h
index af427d1a7..93389b2b8 100644
--- a/include/z64cutscene.h
+++ b/include/z64cutscene.h
@@ -482,7 +482,7 @@ typedef enum {
/* 0x22A */ CS_CMD_ACTOR_CUE_554,
/* 0x22B */ CS_CMD_ACTOR_CUE_555,
/* 0x22C */ CS_CMD_ACTOR_CUE_556,
- /* 0x22D */ CS_CMD_ACTOR_CUE_557,
+ /* 0x22D */ CS_CMD_ACTOR_CUE_557, // Moon mask cs, Anju
/* 0x22E */ CS_CMD_ACTOR_CUE_558,
/* 0x22F */ CS_CMD_ACTOR_CUE_559,
/* 0x230 */ CS_CMD_ACTOR_CUE_560,
diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.c b/src/overlays/actors/ovl_Dm_An/z_dm_an.c
index 79e83e4fb..583ee1507 100644
--- a/src/overlays/actors/ovl_Dm_An/z_dm_an.c
+++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.c
@@ -53,20 +53,20 @@ typedef enum {
} DmAnAnimation;
static AnimationInfoS sAnimationInfo[DMAN_ANIM_MAX] = {
- { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_0
- { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_1
- { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_2
- { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_3
- { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_4
- { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_5
- { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_6
- { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_7
- { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_8
- { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_9
- { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_10
- { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_11
- { &object_an4_Anim_004A78, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_12
- { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_13
+ { &gAnju1SittingInDisbelieveAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_0
+ { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_1
+ { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_2
+ { &gAnju1HoldingHandsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_3
+ { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_4
+ { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_5
+ { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_6
+ { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_7
+ { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_8
+ { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_9
+ { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_10
+ { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_11
+ { &gAnju4SittingRaiseFaceAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_12
+ { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_13
};
s32 DmAn_UpdateSkelAnime(DmAn* this, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c
index d2081ece9..960088a22 100644
--- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c
+++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c
@@ -53,20 +53,20 @@ typedef enum {
} DmGmAnimation;
static AnimationInfoS sAnimationInfo[DMGM_ANIM_MAX] = {
- { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_0
- { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_1
- { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_2
- { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_3
- { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_4
- { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_5
- { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_6
- { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_7
- { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_8
- { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_9
- { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_10
- { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_11
- { &object_an4_Anim_004A78, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_12
- { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_13
+ { &gAnju1SittingInDisbelieveAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_0
+ { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_1
+ { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_2
+ { &gAnju1HoldingHandsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_3
+ { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_4
+ { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_5
+ { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_6
+ { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_7
+ { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_8
+ { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_9
+ { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_10
+ { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_11
+ { &gAnju4SittingRaiseFaceAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_12
+ { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_13
};
s32 DmGm_UpdateSkelAnime(DmGm* this, PlayState* play) {
diff --git a/src/overlays/actors/ovl_En_An/z_en_an.c b/src/overlays/actors/ovl_En_An/z_en_an.c
index 1c4b7c013..2290276eb 100644
--- a/src/overlays/actors/ovl_En_An/z_en_an.c
+++ b/src/overlays/actors/ovl_En_An/z_en_an.c
@@ -92,7 +92,7 @@ typedef enum AnjuScheduleResult {
/* 61 */ ANJU_SCH_3D,
/* 62 */ ANJU_SCH_3E,
/* 63 */ ANJU_SCH_3F,
- /* 64 */ ANJU_SCH_MAX // ?
+ /* 64 */ ANJU_SCH_MAX
} AnjuScheduleResult;
static u8 sScheduleScript[] = {
@@ -595,7 +595,7 @@ EnDoor* EnAn_FindDoor(PlayState* play, s32 scheduleOutputResult) {
*/
typedef enum EnAnAnimation {
/* -1 */ ENAN_ANIM_NONE = -1,
- /* 0 */ ENAN_ANIM_0,
+ /* 0 */ ENAN_ANIM_HOLDING_HANDS,
/* 1 */ ENAN_ANIM_IDLE,
/* 2 */ ENAN_ANIM_IDLE_MORPH,
/* 3 */ ENAN_ANIM_BOWING,
@@ -606,10 +606,10 @@ typedef enum EnAnAnimation {
/* 8 */ ENAN_ANIM_WALK2, // Duplicate of ENAN_ANIM_WALK
/* 9 */ ENAN_ANIM_SIT,
/* 10 */ ENAN_ANIM_SIT_MORPH,
- /* 11 */ ENAN_ANIM_11,
- /* 12 */ ENAN_ANIM_12,
- /* 13 */ ENAN_ANIM_13,
- /* 14 */ ENAN_ANIM_14,
+ /* 11 */ ENAN_ANIM_SITTING_IN_DISBELIEVE,
+ /* 12 */ ENAN_ANIM_COOKING,
+ /* 13 */ ENAN_ANIM_TASTING,
+ /* 14 */ ENAN_ANIM_TASTING_END,
/* 15 */ ENAN_ANIM_WAITING_WITH_TRAY,
/* 16 */ ENAN_ANIM_WALKING_WITH_TRAY,
@@ -635,29 +635,29 @@ typedef enum EnAnAnimation {
/* 31 */ ENAN_ANIM_31,
/* 32 */ ENAN_ANIM_32,
/* 33 */ ENAN_ANIM_33,
- /* 34 */ ENAN_ANIM_34,
+ /* 34 */ ENAN_ANIM_SITTING_RAISE_FACE,
/* 35 */ ENAN_ANIM_35,
/* 36 */ ENAN_ANIM_MAX
} EnAnAnimation;
static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = {
- { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0
- { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_IDLE
- { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_IDLE_MORPH
- { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_BOWING
- { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_BOWING_MORPH
- { &gAnju1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED
- { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6
- { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK
- { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK2
- { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT
- { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH
- { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11
- { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12
- { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13
- { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14
- { &gAnju1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY
- { &gAnju1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY
+ { &gAnju1HoldingHandsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_HOLDING_HANDS
+ { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_IDLE
+ { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_IDLE_MORPH
+ { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_BOWING
+ { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_BOWING_MORPH
+ { &gAnju1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED
+ { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6
+ { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK
+ { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK2
+ { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT
+ { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH
+ { &gAnju1SittingInDisbelieveAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SITTING_IN_DISBELIEVE
+ { &gAnju1CookingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_COOKING
+ { &gAnju1TastingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_TASTING
+ { &gAnju1TastingEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_TASTING_END
+ { &gAnju1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY
+ { &gAnju1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY
// ENAN_ANIMOBJ_AN2
{ &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17
@@ -673,17 +673,17 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = {
{ &gAnju2UmbrellaSitAnim, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_24
// ENAN_ANIMOBJ_AN4
- { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_25
- { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_26
- { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_27
- { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_28
- { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_29
- { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_30
- { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_31
- { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_32
- { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_33
- { &object_an4_Anim_004A78, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_34
- { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_35
+ { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_25
+ { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_26
+ { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_27
+ { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_28
+ { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_29
+ { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_30
+ { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_31
+ { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_32
+ { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_33
+ { &gAnju4SittingRaiseFaceAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SITTING_RAISE_FACE
+ { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_35
};
s32 EnAn_UpdateSkel(EnAn* this, PlayState* play) {
@@ -1198,7 +1198,7 @@ s32 func_80B54C5C(Actor* thisx, PlayState* play) {
switch (this->unk_394) {
case 0x0:
- EnAn_ChangeAnim(this, play, ENAN_ANIM_13);
+ EnAn_ChangeAnim(this, play, ENAN_ANIM_TASTING);
this->unk_394++;
break;
@@ -1211,7 +1211,7 @@ s32 func_80B54C5C(Actor* thisx, PlayState* play) {
break;
case 0x2:
- EnAn_ChangeAnim(this, play, ENAN_ANIM_14);
+ EnAn_ChangeAnim(this, play, ENAN_ANIM_TASTING_END);
this->unk_394++;
break;
}
@@ -1437,7 +1437,7 @@ s32 func_80B552E4(EnAn* this, PlayState* play) {
u16 scriptIndex = play->csCtx.scriptIndex;
s32 ret = false;
- if ((play->csCtx.state != 0) && (play->sceneId == SCENE_YADOYA) && (gSaveContext.sceneLayer == 0) &&
+ if ((play->csCtx.state != CS_STATE_IDLE) && (play->sceneId == SCENE_YADOYA) && (gSaveContext.sceneLayer == 0) &&
((scriptIndex == 0) || (scriptIndex == 1))) {
if (!this->forceDraw) {
this->unk_38A = ENAN_FACE_0;
@@ -1530,7 +1530,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) {
break;
case ANJU_SCH_E:
- EnAn_ChangeAnim(this, play, ENAN_ANIM_12);
+ EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING);
break;
case ANJU_SCH_15:
@@ -2308,7 +2308,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) {
break;
case ANJU_SCH_E:
- EnAn_ChangeAnim(this, play, ENAN_ANIM_12);
+ EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING);
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200;
@@ -2332,7 +2332,7 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) {
Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot);
if (scheduleOutput->result == ANJU_SCH_C) {
- EnAn_ChangeAnim(this, play, ENAN_ANIM_11);
+ EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE);
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200;
@@ -2363,7 +2363,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) {
break;
case ANJU_SCH_18:
- EnAn_ChangeAnim(this, play, ENAN_ANIM_11);
+ EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE);
this->unk_38A = ENAN_FACE_5;
this->faceIndex = ENAN_FACE_5;
this->eyeTimer = 8;
@@ -2384,7 +2384,7 @@ s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) {
Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58EA4);
Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot);
- EnAn_ChangeAnim(this, play, ENAN_ANIM_0);
+ EnAn_ChangeAnim(this, play, ENAN_ANIM_HOLDING_HANDS);
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200;
@@ -2875,18 +2875,18 @@ void EnAn_Talk(EnAn* this, PlayState* play) {
}
}
-void func_80B57B48(EnAn* this, PlayState* play) {
+void EnAn_HandleCutscene(EnAn* this, PlayState* play) {
s32 animIds[] = {
- /* 0 */ ENAN_ANIM_0,
- /* 1 */ ENAN_ANIM_11,
- /* 2 */ ENAN_ANIM_34,
+ /* 0 */ ENAN_ANIM_HOLDING_HANDS,
+ /* 1 */ ENAN_ANIM_SITTING_IN_DISBELIEVE,
+ /* 2 */ ENAN_ANIM_SITTING_RAISE_FACE,
/* 3 */ ENAN_ANIM_25,
/* 4 */ ENAN_ANIM_26,
/* 5 */ ENAN_ANIM_28,
/* 6 */ ENAN_ANIM_30,
/* 7 */ ENAN_ANIM_32,
/* 8 */ ENAN_ANIM_33,
- /* 9 */ ENAN_ANIM_0,
+ /* 9 */ ENAN_ANIM_HOLDING_HANDS,
};
s32 pad;
@@ -2899,6 +2899,7 @@ void func_80B57B48(EnAn* this, PlayState* play) {
if (this->cueId != (cueId & 0xFF)) {
this->cueId = cueId;
+
if (this->cueId == 3) {
SET_WEEKEVENTREG(WEEKEVENTREG_87_02);
this->drawMoonMask = true;
@@ -2906,15 +2907,17 @@ void func_80B57B48(EnAn* this, PlayState* play) {
if (this->cueId == 9) {
this->drawMoonMask = false;
}
+
EnAn_ChangeAnim(this, play, animIds[cueId]);
}
if ((this->animIndex == ENAN_ANIM_26) || (this->animIndex == ENAN_ANIM_28) ||
- (this->animIndex == ENAN_ANIM_30) || (this->animIndex == ENAN_ANIM_34)) {
+ (this->animIndex == ENAN_ANIM_30) || (this->animIndex == ENAN_ANIM_SITTING_RAISE_FACE)) {
if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
EnAn_ChangeAnim(this, play, this->animIndex + 1);
}
}
+
Cutscene_ActorTranslateAndYaw(&this->actor, play, cueChannel);
}
}
@@ -2967,7 +2970,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) {
}
if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && func_80B552E4(this, play)) {
- func_80B57B48(this, play);
+ EnAn_HandleCutscene(this, play);
EnAn_UpdateSkel(this, play);
EnAn_UpdateFace(this);
return;
diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h
index 7bdb61b0c..80f51ca5f 100644
--- a/src/overlays/actors/ovl_En_An/z_en_an.h
+++ b/src/overlays/actors/ovl_En_An/z_en_an.h
@@ -75,23 +75,23 @@ typedef struct EnAn {
/* 0x384 */ s16 timePathTimeSpeed;
/* 0x386 */ s16 unk_386; // timer
/* 0x388 */ s16 unk_388; // timer
- /* 0x38A */ s16 unk_38A; // face enum
- /* 0x38C */ s16 faceIndex; // face enum
+ /* 0x38A */ s16 unk_38A; // EnAnFace enum
+ /* 0x38C */ s16 faceIndex; // EnAnFace enum
/* 0x38E */ s16 eyeTimer;
/* 0x390 */ s16 eyeTexIndex;
/* 0x392 */ s16 mouthTexIndex;
/* 0x394 */ s16 unk_394;
/* 0x396 */ s16 dialogueFuncState;
/* 0x398 */ MsgEventFunc msgEventFunc;
- /* 0x39C */ s32 animIndex;
+ /* 0x39C */ s32 animIndex; // EnAnAnimation enum
/* 0x3A0 */ UNK_TYPE1 unk_3A0[0x8];
- /* 0x3A8 */ u32 unk_3A8;
- /* 0x3AC */ u32 unk_3AC;
+ /* 0x3A8 */ u32 unk_3A8; // TwoTexScroll
+ /* 0x3AC */ u32 unk_3AC; // TwoTexScroll
/* 0x3B0 */ s32 forceDraw;
/* 0x3B4 */ s32 drawMoonMask;
/* 0x3B8 */ s32 slotsInitialized;
/* 0x3BC */ s32 unk_3BC;
- /* 0x3C0 */ s32 unk_3C0;
+ /* 0x3C0 */ s32 unk_3C0; // true if ENAN_8000
/* 0x3C4 */ s32 unk_3C4; // set but not read
} EnAn; // size = 0x3C8
diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt
index 4fab9d98d..5dabe2207 100644
--- a/tools/disasm/functions.txt
+++ b/tools/disasm/functions.txt
@@ -14061,7 +14061,7 @@
0x80B577F0:("EnAn_Initialize",),
0x80B578F8:("EnAn_FollowSchedule",),
0x80B57A44:("EnAn_Talk",),
- 0x80B57B48:("func_80B57B48",),
+ 0x80B57B48:("EnAn_HandleCutscene",),
0x80B57C9C:("EnAn_Init",),
0x80B57D70:("EnAn_Destroy",),
0x80B57D9C:("EnAn_Update",),