1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-22 06:45:31 +00:00

Document animations

This commit is contained in:
feacur 2024-11-10 03:55:31 +01:00
parent ba0bb1094d
commit 40203d0143
4 changed files with 79 additions and 73 deletions

View file

@ -2,17 +2,17 @@
<!-- Goron --> <!-- Goron -->
<File Name="object_oF1d_map" Segment="6"> <File Name="object_oF1d_map" Segment="6">
<!-- animations --> <!-- animations -->
<Animation Name="gGoronAnim_000750" Offset="0x750"/> <Animation Name="gGoronSobbingLoopAnim" Offset="0x750"/>
<Animation Name="gGoronAnim_000D5C" Offset="0xD5C"/> <Animation Name="gGoronShakingLoopAnim" Offset="0xD5C"/>
<Animation Name="gGoronAnim_00161C" Offset="0x161C"/> <Animation Name="gGoronUncurlToProneAnim" Offset="0x161C"/>
<Animation Name="gGoronAnim_001A00" Offset="0x1A00"/> <Animation Name="gGoronProneLoopAnim" Offset="0x1A00"/>
<Animation Name="gGoronAnim_0021D0" Offset="0x21D0"/> <Animation Name="gGoronScratchingLoopAnim" Offset="0x21D0"/>
<Animation Name="gGoronAnim_0029A8" Offset="0x29A8"/> <Animation Name="gGoronWalkingLoopAnim" Offset="0x29A8"/>
<Animation Name="gGoronAnim_002D80" Offset="0x2D80"/> <Animation Name="gGoronEyedropsTakenAnim" Offset="0x2D80"/>
<Animation Name="gGoronAnim_003768" Offset="0x3768"/> <Animation Name="gGoronCryingLoopAnim" Offset="0x3768"/>
<Animation Name="gGoronAnim_0038E4" Offset="0x38E4"/> <Animation Name="gGoronEyeropsLoopAnim" Offset="0x38E4"/>
<Animation Name="gGoronAnim_004930" Offset="0x4930"/> <Animation Name="gGoronUncurlSitStandAnim" Offset="0x4930"/>
<Animation Name="gGoronAnim_010590" Offset="0x10590"/> <Animation Name="gGoronSidestepLoopAnim" Offset="0x10590"/>
<!-- skeleton, limb none --> <!-- skeleton, limb none -->
<Skeleton Name="gGoronSkel" Type="Flex" LimbType="Standard" Offset="0xFEF0"/> <Skeleton Name="gGoronSkel" Type="Flex" LimbType="Standard" Offset="0xFEF0"/>

View file

@ -254,7 +254,7 @@ void func_8097CEEC(DemoGo* this, PlayState* play) {
} }
void func_8097CF20(DemoGo* this, PlayState* play, s32 arg2) { void func_8097CF20(DemoGo* this, PlayState* play, s32 arg2) {
AnimationHeader* animation = &gGoronAnim_0029A8; AnimationHeader* animation = &gGoronWalkingLoopAnim;
if (arg2 != 0) { if (arg2 != 0) {
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_LOOP, Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_LOOP,
-8.0f); -8.0f);
@ -328,7 +328,7 @@ void DemoGo_Update(Actor* thisx, PlayState* play) {
void DemoGo_Init(Actor* thisx, PlayState* play) { void DemoGo_Init(Actor* thisx, PlayState* play) {
DemoGo* this = (DemoGo*)thisx; DemoGo* this = (DemoGo*)thisx;
AnimationHeader* animation = &gGoronAnim_004930; AnimationHeader* animation = &gGoronUncurlSitStandAnim;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gGoronSkel, NULL, NULL, NULL, 0); SkelAnime_InitFlex(play, &this->skelAnime, &gGoronSkel, NULL, NULL, NULL, 0);

View file

@ -69,17 +69,17 @@ static ColliderCylinderInit sCylinderInit = {
static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE };
typedef enum EnGoAnimation { typedef enum EnGoAnimation {
/* 0 */ ENGO_ANIM_0, /* 0 */ ENGO_ANIM_UNCURL_SIT_STAND_IDLE, // default idle
/* 1 */ ENGO_ANIM_1, /* 1 */ ENGO_ANIM_UNCURL_SIT_STAND,
/* 2 */ ENGO_ANIM_2, /* 2 */ ENGO_ANIM_WALKING_LOOP,
/* 3 */ ENGO_ANIM_3 /* 3 */ ENGO_ANIM_SIDESTEP_LOOP
} EnGoAnimation; } EnGoAnimation;
static AnimationSpeedInfo sAnimationInfo[] = { static AnimationSpeedInfo sAnimationInfo[] = {
{ &gGoronAnim_004930, 0.0f, ANIMMODE_LOOP_INTERP, 0.0f }, { &gGoronUncurlSitStandAnim, 0.0f, ANIMMODE_LOOP_INTERP, 0.0f },
{ &gGoronAnim_004930, 0.0f, ANIMMODE_LOOP_INTERP, -10.0f }, { &gGoronUncurlSitStandAnim, 0.0f, ANIMMODE_LOOP_INTERP, -10.0f },
{ &gGoronAnim_0029A8, 1.0f, ANIMMODE_LOOP_INTERP, -10.0f }, { &gGoronWalkingLoopAnim, 1.0f, ANIMMODE_LOOP_INTERP, -10.0f },
{ &gGoronAnim_010590, 1.0f, ANIMMODE_LOOP_INTERP, -10.0f }, { &gGoronSidestepLoopAnim, 1.0f, ANIMMODE_LOOP_INTERP, -10.0f },
}; };
void EnGo_SetupAction(EnGo* this, EnGoActionFunc actionFunc) { void EnGo_SetupAction(EnGo* this, EnGoActionFunc actionFunc) {
@ -455,8 +455,8 @@ void EnGo_ReverseAnimation(EnGo* this) {
void EnGo_UpdateShadow(EnGo* this) { void EnGo_UpdateShadow(EnGo* this) {
s16 shadowAlpha; s16 shadowAlpha;
f32 currentFrame = this->skelAnime.curFrame; f32 currentFrame = this->skelAnime.curFrame;
s16 shadowAlphaTarget = (this->skelAnime.animation == &gGoronAnim_004930 && currentFrame > 32.0f) || s16 shadowAlphaTarget = (this->skelAnime.animation == &gGoronUncurlSitStandAnim && currentFrame > 32.0f) ||
this->skelAnime.animation != &gGoronAnim_004930 this->skelAnime.animation != &gGoronUncurlSitStandAnim
? 255 ? 255
: 0; : 0;
@ -643,7 +643,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) {
this->actor.flags &= ~ACTOR_FLAG_5; this->actor.flags &= ~ACTOR_FLAG_5;
} }
EnGo_ChangeAnim(this, ENGO_ANIM_0); EnGo_ChangeAnim(this, ENGO_ANIM_UNCURL_SIT_STAND_IDLE);
this->actor.attentionRangeType = ATTENTION_RANGE_6; this->actor.attentionRangeType = ATTENTION_RANGE_6;
this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
this->actor.gravity = -1.0f; this->actor.gravity = -1.0f;
@ -661,7 +661,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) {
} }
break; break;
case 0x10: case 0x10:
this->skelAnime.curFrame = Animation_GetLastFrame(&gGoronAnim_004930); this->skelAnime.curFrame = Animation_GetLastFrame(&gGoronUncurlSitStandAnim);
Actor_SetScale(&this->actor, 0.01f); Actor_SetScale(&this->actor, 0.01f);
EnGo_SetupAction(this, EnGo_FireGenericActionFunc); EnGo_SetupAction(this, EnGo_FireGenericActionFunc);
break; break;
@ -840,7 +840,7 @@ void func_80A405CC(EnGo* this, PlayState* play) {
f32 lastFrame; f32 lastFrame;
f32 frame; f32 frame;
lastFrame = Animation_GetLastFrame(&gGoronAnim_004930); lastFrame = Animation_GetLastFrame(&gGoronUncurlSitStandAnim);
Math_SmoothStepToF(&this->skelAnime.playSpeed, PARAMS_GET_NOSHIFT(this->actor.params, 4, 4) == 0x90 ? 0.5f : 1.0f, Math_SmoothStepToF(&this->skelAnime.playSpeed, PARAMS_GET_NOSHIFT(this->actor.params, 4, 4) == 0x90 ? 0.5f : 1.0f,
0.1f, 1000.0f, 0.1f); 0.1f, 1000.0f, 0.1f);
@ -866,7 +866,7 @@ void EnGo_BiggoronActionFunc(EnGo* this, PlayState* play) {
this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
} else { } else {
if (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_EYE_DROPS) { if (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_EYE_DROPS) {
EnGo_ChangeAnim(this, ENGO_ANIM_2); EnGo_ChangeAnim(this, ENGO_ANIM_WALKING_LOOP);
this->unk_21E = 100; this->unk_21E = 100;
this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
EnGo_SetupAction(this, EnGo_Eyedrops); EnGo_SetupAction(this, EnGo_Eyedrops);
@ -928,13 +928,13 @@ void func_80A408D8(EnGo* this, PlayState* play) {
} }
void func_80A40A54(EnGo* this, PlayState* play) { void func_80A40A54(EnGo* this, PlayState* play) {
f32 float1 = ((f32)0x8000 / Animation_GetLastFrame(&gGoronAnim_010590)); f32 float1 = ((f32)0x8000 / Animation_GetLastFrame(&gGoronSidestepLoopAnim));
f32 float2 = this->skelAnime.curFrame * float1; f32 float2 = this->skelAnime.curFrame * float1;
this->actor.speed = Math_SinS((s16)float2); this->actor.speed = Math_SinS((s16)float2);
if (EnGo_FollowPath(this, play) && this->unk_218 == 0) { if (EnGo_FollowPath(this, play) && this->unk_218 == 0) {
EnGo_ChangeAnim(this, ENGO_ANIM_1); EnGo_ChangeAnim(this, ENGO_ANIM_UNCURL_SIT_STAND);
this->skelAnime.curFrame = Animation_GetLastFrame(&gGoronAnim_004930); this->skelAnime.curFrame = Animation_GetLastFrame(&gGoronUncurlSitStandAnim);
this->actor.speed = 0.0f; this->actor.speed = 0.0f;
EnGo_SetupAction(this, EnGo_BiggoronActionFunc); EnGo_SetupAction(this, EnGo_BiggoronActionFunc);
} }
@ -942,7 +942,7 @@ void func_80A40A54(EnGo* this, PlayState* play) {
void func_80A40B1C(EnGo* this, PlayState* play) { void func_80A40B1C(EnGo* this, PlayState* play) {
if (GET_INFTABLE(INFTABLE_EB)) { if (GET_INFTABLE(INFTABLE_EB)) {
EnGo_ChangeAnim(this, ENGO_ANIM_3); EnGo_ChangeAnim(this, ENGO_ANIM_SIDESTEP_LOOP);
EnGo_SetupAction(this, func_80A40A54); EnGo_SetupAction(this, func_80A40A54);
} else { } else {
EnGo_BiggoronActionFunc(this, play); EnGo_BiggoronActionFunc(this, play);
@ -1015,8 +1015,8 @@ void EnGo_Eyedrops(EnGo* this, PlayState* play) {
void func_80A40DCC(EnGo* this, PlayState* play) { void func_80A40DCC(EnGo* this, PlayState* play) {
if (this->interactInfo.talkState == NPC_TALK_STATE_ACTION) { if (this->interactInfo.talkState == NPC_TALK_STATE_ACTION) {
EnGo_ChangeAnim(this, ENGO_ANIM_1); EnGo_ChangeAnim(this, ENGO_ANIM_UNCURL_SIT_STAND);
this->skelAnime.curFrame = Animation_GetLastFrame(&gGoronAnim_004930); this->skelAnime.curFrame = Animation_GetLastFrame(&gGoronUncurlSitStandAnim);
Message_CloseTextbox(play); Message_CloseTextbox(play);
EnGo_SetupAction(this, EnGo_GetItem); EnGo_SetupAction(this, EnGo_GetItem);
EnGo_GetItem(this, play); EnGo_GetItem(this, play);

View file

@ -118,29 +118,35 @@ static f32 sPlayerTrackingYOffsets[14][2] = {
}; };
typedef enum EnGo2Animation { typedef enum EnGo2Animation {
/* 0 */ ENGO2_ANIM_0, /* 0 */ ENGO2_ANIM_UNCURL_SIT_STAND_IDLE, // default idle
/* 1 */ ENGO2_ANIM_1, /* 1 */ ENGO2_ANIM_UNCURL_SIT_STAND,
/* 2 */ ENGO2_ANIM_2, /* 2 */ ENGO2_ANIM_WALKING_LOOP,
/* 3 */ ENGO2_ANIM_3, /* 3 */ ENGO2_ANIM_SIDESTEP_LOOP,
/* 4 */ ENGO2_ANIM_4, /* 4 */ ENGO2_ANIM_CRYING_LOOP,
/* 5 */ ENGO2_ANIM_5, /* 5 */ ENGO2_ANIM_EYEDROPS_LOOP,
/* 6 */ ENGO2_ANIM_6, /* 6 */ ENGO2_ANIM_EYEDROPS_TAKEN,
/* 7 */ ENGO2_ANIM_7, /* 7 */ ENGO2_ANIM_UNCURL_PRONE_UNUSED,
/* 8 */ ENGO2_ANIM_8, /* 8 */ ENGO2_ANIM_PRONE_LOOP_UNUSED,
/* 9 */ ENGO2_ANIM_9, /* 9 */ ENGO2_ANIM_SCRATCHING_LOOP,
/* 10 */ ENGO2_ANIM_10, /* 10 */ ENGO2_ANIM_UNCURL_SIT_STAND_BIG,
/* 11 */ ENGO2_ANIM_11, /* 11 */ ENGO2_ANIM_SOBBING_LOOP,
/* 12 */ ENGO2_ANIM_12 /* 12 */ ENGO2_ANIM_SHAKING_LOOP
} EnGo2Animation; } EnGo2Animation;
static AnimationInfo sAnimationInfo[] = { static AnimationInfo sAnimationInfo[] = {
{ &gGoronAnim_004930, 0.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gGoronAnim_004930, 0.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronUncurlSitStandAnim, 0.0f, 0.0f, -1.0f, 0x00, 0.0f },
{ &gGoronAnim_0029A8, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronAnim_010590, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronUncurlSitStandAnim, 0.0f, 0.0f, -1.0f, 0x00, -8.0f },
{ &gGoronAnim_003768, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronAnim_0038E4, 1.0f, 0.0f, -1.0f, 0x02, -8.0f }, { &gGoronWalkingLoopAnim, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
{ &gGoronAnim_002D80, 1.0f, 0.0f, -1.0f, 0x02, -8.0f }, { &gGoronAnim_00161C, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronSidestepLoopAnim, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
{ &gGoronAnim_001A00, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronAnim_0021D0, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronCryingLoopAnim, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
{ &gGoronAnim_004930, 0.0f, 0.0f, -1.0f, 0x01, -8.0f }, { &gGoronAnim_000750, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronEyeropsLoopAnim, 1.0f, 0.0f, -1.0f, 0x02, -8.0f },
{ &gGoronAnim_000D5C, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gGoronEyedropsTakenAnim, 1.0f, 0.0f, -1.0f, 0x02, -8.0f },
{ &gGoronUncurlToProneAnim, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
{ &gGoronProneLoopAnim, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
{ &gGoronScratchingLoopAnim, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
{ &gGoronUncurlSitStandAnim, 0.0f, 0.0f, -1.0f, 0x01, -8.0f },
{ &gGoronSobbingLoopAnim, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
{ &gGoronShakingLoopAnim, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
}; };
static EnGo2DustEffectData sDustEffectData[2][4] = { static EnGo2DustEffectData sDustEffectData[2][4] = {
@ -1099,7 +1105,7 @@ void func_80A45288(EnGo2* this, PlayState* play) {
void func_80A45360(EnGo2* this, f32* alpha) { void func_80A45360(EnGo2* this, f32* alpha) {
f32 alphaTarget = f32 alphaTarget =
(this->skelAnime.animation == &gGoronAnim_004930) && (this->skelAnime.curFrame <= 32.0f) ? 0.0f : 255.0f; (this->skelAnime.animation == &gGoronUncurlSitStandAnim) && (this->skelAnime.curFrame <= 32.0f) ? 0.0f : 255.0f;
Math_ApproachF(alpha, alphaTarget, 0.4f, 100.0f); Math_ApproachF(alpha, alphaTarget, 0.4f, 100.0f);
this->actor.shape.shadowAlpha = (u8)(u32)*alpha; this->actor.shape.shadowAlpha = (u8)(u32)*alpha;
@ -1126,12 +1132,12 @@ void func_80A454CC(EnGo2* this) {
case GORON_CITY_ENTRANCE: case GORON_CITY_ENTRANCE:
case GORON_CITY_STAIRWELL: case GORON_CITY_STAIRWELL:
case GORON_DMT_FAIRY_HINT: case GORON_DMT_FAIRY_HINT:
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_9); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_SCRATCHING_LOOP);
break; break;
case GORON_DMT_BIGGORON: case GORON_DMT_BIGGORON:
if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_BROKEN_GORONS_SWORD && if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_BROKEN_GORONS_SWORD &&
INV_CONTENT(ITEM_TRADE_ADULT) <= ITEM_EYE_DROPS) { INV_CONTENT(ITEM_TRADE_ADULT) <= ITEM_EYE_DROPS) {
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_4); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_CRYING_LOOP);
break; break;
} }
FALLTHROUGH; FALLTHROUGH;
@ -1270,7 +1276,7 @@ void EnGo2_EyeMouthTexState(EnGo2* this) {
} }
void EnGo2_SitDownAnimation(EnGo2* this) { void EnGo2_SitDownAnimation(EnGo2* this) {
if ((this->skelAnime.playSpeed != 0.0f) && (this->skelAnime.animation == &gGoronAnim_004930)) { if ((this->skelAnime.playSpeed != 0.0f) && (this->skelAnime.animation == &gGoronUncurlSitStandAnim)) {
if (this->skelAnime.playSpeed > 0.0f && this->skelAnime.curFrame == 14.0f) { if (this->skelAnime.playSpeed > 0.0f && this->skelAnime.curFrame == 14.0f) {
if (PARAMS_GET_S(this->actor.params, 0, 5) != GORON_DMT_BIGGORON) { if (PARAMS_GET_S(this->actor.params, 0, 5) != GORON_DMT_BIGGORON) {
Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_SIT_DOWN); Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_SIT_DOWN);
@ -1300,10 +1306,10 @@ void EnGo2_GetDustData(EnGo2* this, s32 index2) {
void EnGo2_RollingAnimation(EnGo2* this, PlayState* play) { void EnGo2_RollingAnimation(EnGo2* this, PlayState* play) {
if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_DMT_BIGGORON) { if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_DMT_BIGGORON) {
this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_10); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_UNCURL_SIT_STAND_BIG);
this->skelAnime.playSpeed = -0.5f; this->skelAnime.playSpeed = -0.5f;
} else { } else {
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_1); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_UNCURL_SIT_STAND);
this->skelAnime.playSpeed = -1.0f; this->skelAnime.playSpeed = -1.0f;
} }
EnGo2_SwapInitialFrameAnimFrameCount(this); EnGo2_SwapInitialFrameAnimFrameCount(this);
@ -1323,17 +1329,17 @@ void EnGo2_WakeUp(EnGo2* this, PlayState* play) {
} }
if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_DMT_BIGGORON) { if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_DMT_BIGGORON) {
OnePointCutscene_Init(play, 4200, -99, &this->actor, CAM_ID_MAIN); OnePointCutscene_Init(play, 4200, -99, &this->actor, CAM_ID_MAIN);
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_10); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_UNCURL_SIT_STAND_BIG);
this->skelAnime.playSpeed = 0.5f; this->skelAnime.playSpeed = 0.5f;
} else { } else {
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_1); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_UNCURL_SIT_STAND);
this->skelAnime.playSpeed = 1.0f; this->skelAnime.playSpeed = 1.0f;
} }
this->actionFunc = func_80A46B40; this->actionFunc = func_80A46B40;
} }
void EnGo2_GetItemAnimation(EnGo2* this, PlayState* play) { void EnGo2_GetItemAnimation(EnGo2* this, PlayState* play) {
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_1); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_UNCURL_SIT_STAND);
this->unk_211 = true; this->unk_211 = true;
this->actionFunc = func_80A46B40; this->actionFunc = func_80A46B40;
this->skelAnime.playSpeed = 0.0f; this->skelAnime.playSpeed = 0.0f;
@ -1399,7 +1405,7 @@ s32 EnGo2_IsGoronDmtBombFlower(EnGo2* this) {
return false; return false;
} }
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_3); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_SIDESTEP_LOOP);
this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
this->isAwake = false; this->isAwake = false;
this->trackingMode = NPC_TRACKING_NONE; this->trackingMode = NPC_TRACKING_NONE;
@ -1454,21 +1460,21 @@ void EnGo2_GoronLinkAnimation(EnGo2* this, PlayState* play) {
if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_CITY_LINK) { if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_CITY_LINK) {
if ((this->actor.textId == 0x3035 && this->unk_20C == 0) || if ((this->actor.textId == 0x3035 && this->unk_20C == 0) ||
(this->actor.textId == 0x3036 && this->unk_20C == 0)) { (this->actor.textId == 0x3036 && this->unk_20C == 0)) {
if (this->skelAnime.animation != &gGoronAnim_000D5C) { if (this->skelAnime.animation != &gGoronShakingLoopAnim) {
animation = ENGO2_ANIM_12; animation = ENGO2_ANIM_SHAKING_LOOP;
this->eyeMouthTexState = 0; this->eyeMouthTexState = 0;
} }
} }
if ((this->actor.textId == 0x3032 && this->unk_20C == 12) || (this->actor.textId == 0x3033) || if ((this->actor.textId == 0x3032 && this->unk_20C == 12) || (this->actor.textId == 0x3033) ||
(this->actor.textId == 0x3035 && this->unk_20C == 6)) { (this->actor.textId == 0x3035 && this->unk_20C == 6)) {
if (this->skelAnime.animation != &gGoronAnim_000750) { if (this->skelAnime.animation != &gGoronSobbingLoopAnim) {
animation = ENGO2_ANIM_11; animation = ENGO2_ANIM_SOBBING_LOOP;
this->eyeMouthTexState = 1; this->eyeMouthTexState = 1;
} }
} }
if (this->skelAnime.animation == &gGoronAnim_000750) { if (this->skelAnime.animation == &gGoronSobbingLoopAnim) {
if (this->skelAnime.curFrame == 20.0f) { if (this->skelAnime.curFrame == 20.0f) {
Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_CRY); Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_CRY);
} }
@ -1542,7 +1548,7 @@ void EnGo2_Init(Actor* thisx, PlayState* play) {
EnGo2_SetColliderDim(this); EnGo2_SetColliderDim(this);
EnGo2_SetShape(this); EnGo2_SetShape(this);
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_0); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_UNCURL_SIT_STAND_IDLE);
this->actor.gravity = -1.0f; this->actor.gravity = -1.0f;
this->alpha = this->actor.shape.shadowAlpha = 0; this->alpha = this->actor.shape.shadowAlpha = 0;
this->reverse = 0; this->reverse = 0;
@ -1832,7 +1838,7 @@ void EnGo2_SetGetItem(EnGo2* this, PlayState* play) {
void EnGo2_BiggoronEyedrops(EnGo2* this, PlayState* play) { void EnGo2_BiggoronEyedrops(EnGo2* this, PlayState* play) {
switch (this->goronState) { switch (this->goronState) {
case 0: case 0:
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_5); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_EYEDROPS_LOOP);
this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
this->actor.shape.rot.y += 0x5B0; this->actor.shape.rot.y += 0x5B0;
this->trackingMode = NPC_TRACKING_NONE; this->trackingMode = NPC_TRACKING_NONE;
@ -1851,7 +1857,7 @@ void EnGo2_BiggoronEyedrops(EnGo2* this, PlayState* play) {
} }
} else { } else {
func_800F4524(&gSfxDefaultPos, NA_SE_EN_GOLON_GOOD_BIG, 60); func_800F4524(&gSfxDefaultPos, NA_SE_EN_GOLON_GOOD_BIG, 60);
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_6); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_EYEDROPS_TAKEN);
Message_ContinueTextbox(play, 0x305A); Message_ContinueTextbox(play, 0x305A);
this->eyeMouthTexState = 3; this->eyeMouthTexState = 3;
this->goronState++; this->goronState++;
@ -1863,7 +1869,7 @@ void EnGo2_BiggoronEyedrops(EnGo2* this, PlayState* play) {
this->eyeMouthTexState = 0; this->eyeMouthTexState = 0;
} }
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_1); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_UNCURL_SIT_STAND);
this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED;
this->trackingMode = NPC_TRACKING_HEAD_AND_TORSO; this->trackingMode = NPC_TRACKING_HEAD_AND_TORSO;
this->skelAnime.playSpeed = 0.0f; this->skelAnime.playSpeed = 0.0f;
@ -1914,7 +1920,7 @@ void EnGo2_GoronFireGenericAction(EnGo2* this, PlayState* play) {
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
EnGo2_GoronFireCamera(this, play); EnGo2_GoronFireCamera(this, play);
play->msgCtx.msgMode = MSGMODE_PAUSED; play->msgCtx.msgMode = MSGMODE_PAUSED;
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_2); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENGO2_ANIM_WALKING_LOOP);
this->waypoint = 1; this->waypoint = 1;
this->skelAnime.playSpeed = 2.0f; this->skelAnime.playSpeed = 2.0f;
func_80A44D84(this); func_80A44D84(this);