Animation Cleanup: En_L* and some En_M* (#1493)

* cleanup L, some M

* small fix

* typo

* brackets

* more brackets
This commit is contained in:
engineer124
2023-11-15 11:46:54 +11:00
committed by GitHub
parent 3d150f3e1d
commit d9585d7444
15 changed files with 310 additions and 210 deletions
+1 -1
View File
@@ -3526,7 +3526,7 @@ s32 Target_InTargetableScreenRegion(PlayState* play, Actor* actor) {
* - Must not be blocked by a surface (?)
*
* This function also checks for the nearest enemy actor, which allows determining if enemy background music should be
* played. This actor is stored in `targetContext.bgmEnemy` and its distance is stored in `sBgmEnemyDistSq`
* played. This actor is stored in `targetCtx.bgmEnemy` and its distance is stored in `sBgmEnemyDistSq`
*
* This function is expected to be called with almost every actor category in each cycle. On a new cycle its global
* variables must be reset by the caller, otherwise the information of the previous cycle will be retained on this one.
+1 -1
View File
@@ -7484,7 +7484,7 @@ Vec3s Camera_Update(Camera* camera) {
bgCamIndex = Camera_GetBgCamIndex(camera, &bgId, sp90);
if ((bgCamIndex != -1) && (camera->bgId == BGCHECK_SCENE)) {
if (Camera_IsUsingZoraFins(camera) == 0) {
if (!Camera_IsUsingZoraFins(camera)) {
camera->nextCamSceneDataId = bgCamIndex | CAM_DATA_IS_BG;
}
}
@@ -405,7 +405,7 @@ void BgNumaHana_Draw(Actor* thisx, PlayState* play2) {
}
objectSlot = Object_GetSlot(&play->objectCtx, OBJECT_SYOKUDAI);
if ((objectSlot > OBJECT_SLOT_NONE) && (Object_IsLoaded(&play->objectCtx, objectSlot))) {
if ((objectSlot > OBJECT_SLOT_NONE) && Object_IsLoaded(&play->objectCtx, objectSlot)) {
Matrix_SetTranslateRotateYXZ(this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y - 64.5f,
this->dyna.actor.world.pos.z, &this->dyna.actor.shape.rot);
Matrix_Scale(1.5f, 1.5f, 1.5f, MTXMODE_APPLY);
@@ -474,7 +474,7 @@ void EnBomChu_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play);
if ((this->actionFunc != EnBomChu_WaitForDeath) &&
(SurfaceType_IsWallDamage(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId))) {
SurfaceType_IsWallDamage(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId)) {
EnBomChu_Explode(this, play);
return;
}
@@ -84,26 +84,27 @@ typedef enum {
/* 19 */ ENLIFTNUTS_ANIM_MAX
} EnLiftNutsAnimation;
static AnimationInfo sAnimations[ENLIFTNUTS_ANIM_MAX] = {
{ &gBusinessScrubStandingAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f },
{ &gBusinessScrubWalkAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f },
{ &gBusinessScrubRiseUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f },
{ &gBusinessScrubBurrowAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f },
{ &gBusinessScrubExcitedStartAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
{ &gBusinessScrubExcitedLoopAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f },
{ &gBusinessScrubExcitedEndAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
{ &gBusinessScrubTakeOffHatAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f },
{ &gBusinessScrubFlyStartAnim, 0.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f },
{ &gBusinessScrubFlyLoopAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f },
{ &gBusinessScrubShockedStartAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -2.0f },
static AnimationInfo sAnimationInfo[ENLIFTNUTS_ANIM_MAX] = {
{ &gBusinessScrubStandingAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENLIFTNUTS_ANIM_STANDING
{ &gBusinessScrubWalkAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENLIFTNUTS_ANIM_WALK
{ &gBusinessScrubRiseUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENLIFTNUTS_ANIM_RISE_UP
{ &gBusinessScrubBurrowAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENLIFTNUTS_ANIM_BURROW_LONG
{ &gBusinessScrubExcitedStartAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, // ENLIFTNUTS_ANIM_EXCITED_START
{ &gBusinessScrubExcitedLoopAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENLIFTNUTS_ANIM_EXCITED_LOOP
{ &gBusinessScrubExcitedEndAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, // ENLIFTNUTS_ANIM_EXCITED_END
{ &gBusinessScrubTakeOffHatAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENLIFTNUTS_ANIM_TAKE_OFF_HAT
{ &gBusinessScrubFlyStartAnim, 0.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENLIFTNUTS_ANIM_FLY_START
{ &gBusinessScrubFlyLoopAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENLIFTNUTS_ANIM_FLY_LOOP
{ &gBusinessScrubShockedStartAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -2.0f }, // ENLIFTNUTS_ANIM_SHOCKED_START
// ENLIFTNUTS_ANIM_SHOCKED_SHAKE_HEAD
{ &gBusinessScrubShockedShakeHeadAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f },
{ &gBusinessScrubShockedPoundAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f },
{ &gBusinessScrubShockedEndAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
{ &gBusinessScrubThinkAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f },
{ &gBusinessScrubBobAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f },
{ &gBusinessScrubJumpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f },
{ &gBusinessScrubBurrowAnim, 1.0f, 4.0f, 0.0f, ANIMMODE_ONCE, -4.0f },
{ &gBusinessScrubBurrowAnim, 1.0f, 8.0f, 0.0f, ANIMMODE_ONCE, 0.0f },
{ &gBusinessScrubShockedPoundAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENLIFTNUTS_ANIM_SHOCKED_POUND
{ &gBusinessScrubShockedEndAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f }, // ENLIFTNUTS_ANIM_SHOCKED_END
{ &gBusinessScrubThinkAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENLIFTNUTS_ANIM_THINK
{ &gBusinessScrubBobAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -4.0f }, // ENLIFTNUTS_ANIM_BOB
{ &gBusinessScrubJumpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENLIFTNUTS_ANIM_JUMP
{ &gBusinessScrubBurrowAnim, 1.0f, 4.0f, 0.0f, ANIMMODE_ONCE, -4.0f }, // ENLIFTNUTS_ANIM_BURROW_HALF
{ &gBusinessScrubBurrowAnim, 1.0f, 8.0f, 0.0f, ANIMMODE_ONCE, 0.0f }, // ENLIFTNUTS_ANIM_BURROW_SHORT
};
Gfx* sEyeTextures[] = { gBusinessScrubEyesDL, gBusinessScrubEyesWideDL, gBusinessScrubEyesSquintDL };
@@ -323,7 +324,7 @@ void EnLiftNuts_Destroy(Actor* thisx, PlayState* play) {
}
void EnLiftNuts_SetupIdleHidden(EnLiftNuts* this) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_BURROW_SHORT);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_BURROW_SHORT);
this->actionFunc = EnLiftNuts_IdleHidden;
this->timer = 0;
}
@@ -338,9 +339,9 @@ void EnLiftNuts_IdleHidden(EnLiftNuts* this, PlayState* play) {
void EnLiftNuts_SetupBurrow(EnLiftNuts* this) {
if (this->actionFunc == EnLiftNuts_Idle) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_BURROW_HALF);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_BURROW_HALF);
} else {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_BURROW_LONG);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_BURROW_LONG);
}
Actor_PlaySfx(&this->actor, NA_SE_EN_AKINDONUTS_HIDE);
@@ -359,7 +360,7 @@ void EnLiftNuts_SetupIdle(EnLiftNuts* this) {
if (EnLiftNuts_MinigameState(ENLIFTNUTS_MINIGAME_STATE_MODE_CHECK, ENLIFTNUTS_MINIGAME_STATE_STARTING)) {
this->actionFunc = EnLiftNuts_Idle;
} else {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_RISE_UP);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_RISE_UP);
Actor_PlaySfx(&this->actor, NA_SE_EN_AKINDONUTS_HIDE);
this->actionFunc = EnLiftNuts_RiseUp;
}
@@ -367,7 +368,7 @@ void EnLiftNuts_SetupIdle(EnLiftNuts* this) {
void EnLiftNuts_RiseUp(EnLiftNuts* this, PlayState* play) {
if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_BOB);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_BOB);
this->actionFunc = EnLiftNuts_Idle;
} else if (Animation_OnFrame(&this->skelAnime, 8.0f)) {
EnLiftNuts_SpawnDust(this, play);
@@ -441,12 +442,15 @@ void EnLiftNuts_Idle(EnLiftNuts* this, PlayState* play) {
this->textId = 0x27E1;
}
break;
default:
break;
}
} else if (EnLiftNuts_MinigameState(ENLIFTNUTS_MINIGAME_STATE_MODE_CHECK,
ENLIFTNUTS_MINIGAME_STATE_AFTER)) {
if (Flags_GetSwitch(play, 0x40)) {
Flags_UnsetSwitch(play, 0x40);
Inventory_SaveDekuPlaygroundHighScore(4);
Inventory_SaveDekuPlaygroundHighScore(TIMER_ID_MINIGAME_2);
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_1) &&
CHECK_WEEKEVENTREG(WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_2) && (CURRENT_DAY == 3)) {
this->timer = 0;
@@ -527,13 +531,13 @@ void EnLiftNuts_HandleConversationChoice(EnLiftNuts* this, PlayState* play) {
Rupees_ChangeBy(-10);
} else {
Audio_PlaySfx(NA_SE_SY_ERROR);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_WALK);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_WALK);
Message_StartTextbox(play, 0x27E4, &this->actor);
this->textId = 0x27E4;
}
} else {
Audio_PlaySfx_MessageCancel();
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_WALK);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_WALK);
Message_StartTextbox(play, 0x27E3, &this->actor);
this->textId = 0x27E3;
}
@@ -586,7 +590,7 @@ void EnLiftNuts_HandleConversation5(EnLiftNuts* this, PlayState* play) {
break;
case 0x27E6:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_WALK);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_WALK);
switch (CURRENT_DAY) {
case 1:
Message_StartTextbox(play, 0x27E7, &this->actor);
@@ -622,7 +626,7 @@ void EnLiftNuts_HandleConversation5(EnLiftNuts* this, PlayState* play) {
break;
case 0x27EE:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_JUMP);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_JUMP);
Message_StartTextbox(play, 0x27EF, &this->actor);
this->textId = 0x27EF;
break;
@@ -639,7 +643,7 @@ void EnLiftNuts_HandleConversation5(EnLiftNuts* this, PlayState* play) {
break;
case 0x27F2:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_WALK);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_WALK);
Message_StartTextbox(play, 0x27F3, &this->actor);
this->textId = 0x27F3;
break;
@@ -675,7 +679,7 @@ void EnLiftNuts_SetupStartConversation(EnLiftNuts* this) {
if (EnLiftNuts_MinigameState(ENLIFTNUTS_MINIGAME_STATE_MODE_CHECK, ENLIFTNUTS_MINIGAME_STATE_NONE)) {
Actor_PlaySfx(&this->actor, NA_SE_EN_AKINDONUTS_HIDE);
}
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_JUMP);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_JUMP);
}
this->actionFunc = EnLiftNuts_StartConversation;
}
@@ -683,9 +687,9 @@ void EnLiftNuts_SetupStartConversation(EnLiftNuts* this) {
void EnLiftNuts_StartConversation(EnLiftNuts* this, PlayState* play) {
if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
if ((this->textId == 0x27EE) || (this->textId == 0x27F4) || (this->textId == 0x27F5)) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_SHOCKED_START);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_SHOCKED_START);
} else {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_STANDING);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_STANDING);
}
this->actionFunc = EnLiftNuts_HandleConversation;
}
@@ -728,19 +732,19 @@ void EnLiftNuts_HandleConversation(EnLiftNuts* this, PlayState* play) {
if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
switch (this->textId) {
case 0x27EE:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_SHOCKED_SHAKE_HEAD);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_SHOCKED_SHAKE_HEAD);
break;
case 0x27EF:
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_WALK);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_WALK);
break;
case 0x27F4:
if (this->timer == 0) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_SHOCKED_SHAKE_HEAD);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_SHOCKED_SHAKE_HEAD);
this->timer++;
} else if (this->timer == 4) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_SHOCKED_POUND);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_SHOCKED_POUND);
this->timer = 0;
} else {
this->timer++;
@@ -756,7 +760,7 @@ void EnLiftNuts_HandleConversation(EnLiftNuts* this, PlayState* play) {
void EnLiftNuts_SetupMove(EnLiftNuts* this) {
this->actor.speed = 2.0f;
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_WALK);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_WALK);
EnLiftNuts_Autotalk(this, ENLIFTNUTS_AUTOTALK_MODE_SET_ON);
EnLiftNuts_MinigameState(ENLIFTNUTS_MINIGAME_STATE_MODE_SET, ENLIFTNUTS_MINIGAME_STATE_STARTING);
this->actionFunc = EnLiftNuts_Move;
@@ -943,11 +947,11 @@ void EnLiftNuts_ResumeConversation(EnLiftNuts* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_1) &&
CHECK_WEEKEVENTREG(WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_2) && (CURRENT_DAY == 3)) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_SHOCKED_END);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_SHOCKED_END);
Message_StartTextbox(play, 0x27F5, &this->actor);
this->textId = 0x27F5;
} else if (EnLiftNuts_GetNumDaysWon() > 0) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_WALK);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_WALK);
Message_StartTextbox(play, 0x27F0, &this->actor);
this->textId = 0x27F0;
} else {
@@ -983,7 +987,7 @@ void EnLiftNuts_SetupStartHiding(EnLiftNuts* this) {
this->isFirstTimeHiding = true;
}
if (this->actionFunc == EnLiftNuts_IdleHidden) {
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_BOB);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_BOB);
}
this->timer = 0;
this->actionFunc = EnLiftNuts_StartHiding;
@@ -995,7 +999,7 @@ void EnLiftNuts_StartHiding(EnLiftNuts* this, PlayState* play) {
Message_StartTextbox(play, 0x27F6, &this->actor);
this->textId = 0x27F6;
}
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, ENLIFTNUTS_ANIM_BURROW_HALF);
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENLIFTNUTS_ANIM_BURROW_HALF);
this->actionFunc = EnLiftNuts_Hide;
}
this->timer++;
@@ -219,12 +219,14 @@ void EnLookNuts_StandAndWait(EnLookNuts* this, PlayState* play) {
this->waitTimer++;
this->headRotTarget.y *= -1.0f;
break;
case 5:
this->headRotTarget.y = 0.0f;
randOffset = Rand_S16Offset(1, 2);
this->eventTimer = 0;
this->waitTimer += randOffset;
break;
case 6:
if (fabsf(this->headRotTarget.y - this->headRotation.y) < 10.0f) {
this->waitTimer = 10;
@@ -232,27 +234,34 @@ void EnLookNuts_StandAndWait(EnLookNuts* this, PlayState* play) {
this->eventTimer = 5;
}
break;
case 7:
if (fabsf(this->headRotTarget.y - this->headRotation.y) < 10.0f) {
this->headRotTarget.z = 4000.0f;
this->waitTimer++;
}
break;
case 8:
this->waitTimer = 10;
this->eventTimer = 20;
this->headRotTarget.z = -8000.0f;
break;
case 10:
Math_Vec3f_Copy(&this->headRotTarget, &gZeroVec3f);
this->waitTimer = 11;
break;
case 11:
if ((fabsf(this->headRotation.x) < 30.0f) && (fabsf(this->headRotation.y) < 30.0f) &&
(fabsf(this->headRotation.z) < 30.0f)) {
this->waitTimer = 12;
}
break;
default:
break;
}
if (this->waitTimer == 12) {
this->waitTimer = 0;
@@ -66,7 +66,15 @@ static u8 sDamages[] = {
1, 2, 3, 4, // Great Spin
};
static u16 sChargingSfxIds[] = {
typedef enum {
/* 0 */ ENMTHUNDER_SUBTYPE_SPIN_GREAT,
/* 1 */ ENMTHUNDER_SUBTYPE_SPIN_REGULAR,
/* 2 */ ENMTHUNDER_SUBTYPE_SWORDBEAM_GREAT,
/* 3 */ ENMTHUNDER_SUBTYPE_SWORDBEAM_REGULAR,
/* 4 */ ENMTHUNDER_SUBTYPE_MAX
} EnMThunderSubType;
static u16 sChargingSfxIds[ENMTHUNDER_SUBTYPE_MAX] = {
NA_SE_IT_ROLLING_CUT_LV2, // ENMTHUNDER_SUBTYPE_SPIN_GREAT
NA_SE_IT_ROLLING_CUT_LV1, // ENMTHUNDER_SUBTYPE_SPIN_REGULAR
NA_SE_IT_ROLLING_CUT_LV2, // ENMTHUNDER_SUBTYPE_SWORDBEAM_GREAT
@@ -75,13 +83,6 @@ static u16 sChargingSfxIds[] = {
static f32 sScales[] = { 0.1f, 0.15f, 0.2f, 0.25f, 0.3f, 0.25f, 0.2f, 0.15f, 0.0f };
typedef enum {
/* 0 */ ENMTHUNDER_SUBTYPE_SPIN_GREAT,
/* 1 */ ENMTHUNDER_SUBTYPE_SPIN_REGULAR,
/* 2 */ ENMTHUNDER_SUBTYPE_SWORDBEAM_GREAT,
/* 3 */ ENMTHUNDER_SUBTYPE_SWORDBEAM_REGULAR
} EnMThunderSubType;
void EnMThunder_UnkType_Setup(EnMThunder* this, PlayState* play) {
Player* player = GET_PLAYER(play);
+76 -50
View File
@@ -111,33 +111,58 @@ void EnMa4_UpdateEyes(EnMa4* this) {
}
}
static AnimationSpeedInfo sAnimationInfo[] = {
{ &gRomaniIdleAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniIdleAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniLookAroundAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniLookAroundAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniSingStartAnim, 1.0f, ANIMMODE_ONCE, 0.0f },
{ &gRomaniSingStartAnim, 1.0f, ANIMMODE_ONCE, -6.0f },
{ &gRomaniSingLoopAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniSingLoopAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniRunAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniRunAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniWalkAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniWalkAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniShootBowAnim, 1.0f, ANIMMODE_ONCE, 0.0f },
{ &gRomaniShootBowAnim, 1.0f, ANIMMODE_ONCE, -6.0f },
{ &gRomaniSittingAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniSittingAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniSittingHeadShakeAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniSittingHeadShakeAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
typedef enum EnMa4Animation {
/* -1 */ ENMA4_ANIM_NONE = -1,
/* 0 */ ENMA4_ANIM_0,
/* 1 */ ENMA4_ANIM_1,
/* 2 */ ENMA4_ANIM_2,
/* 3 */ ENMA4_ANIM_3,
/* 4 */ ENMA4_ANIM_4,
/* 5 */ ENMA4_ANIM_5,
/* 6 */ ENMA4_ANIM_6,
/* 7 */ ENMA4_ANIM_7,
/* 8 */ ENMA4_ANIM_8,
/* 9 */ ENMA4_ANIM_9,
/* 10 */ ENMA4_ANIM_10,
/* 11 */ ENMA4_ANIM_11,
/* 12 */ ENMA4_ANIM_12,
/* 13 */ ENMA4_ANIM_13,
/* 14 */ ENMA4_ANIM_14,
/* 15 */ ENMA4_ANIM_15,
/* 16 */ ENMA4_ANIM_16,
/* 17 */ ENMA4_ANIM_17,
/* 18 */ ENMA4_ANIM_18,
/* 19 */ ENMA4_ANIM_19,
/* 20 */ ENMA4_ANIM_MAX
} EnMa4Animation;
static AnimationSpeedInfo sAnimationSpeedInfo[ENMA4_ANIM_MAX] = {
{ &gRomaniIdleAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMA4_ANIM_0
{ &gRomaniIdleAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMA4_ANIM_1
{ &gRomaniLookAroundAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMA4_ANIM_2
{ &gRomaniLookAroundAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMA4_ANIM_3
{ &gRomaniSingStartAnim, 1.0f, ANIMMODE_ONCE, 0.0f }, // ENMA4_ANIM_4
{ &gRomaniSingStartAnim, 1.0f, ANIMMODE_ONCE, -6.0f }, // ENMA4_ANIM_5
{ &gRomaniSingLoopAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMA4_ANIM_6
{ &gRomaniSingLoopAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMA4_ANIM_7
{ &gRomaniRunAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMA4_ANIM_8
{ &gRomaniRunAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMA4_ANIM_9
{ &gRomaniWalkAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMA4_ANIM_10
{ &gRomaniWalkAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMA4_ANIM_11
{ &gRomaniShootBowAnim, 1.0f, ANIMMODE_ONCE, 0.0f }, // ENMA4_ANIM_12
{ &gRomaniShootBowAnim, 1.0f, ANIMMODE_ONCE, -6.0f }, // ENMA4_ANIM_13
{ &gRomaniSittingAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMA4_ANIM_14
{ &gRomaniSittingAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMA4_ANIM_15
{ &gRomaniSittingHeadShakeAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMA4_ANIM_16
{ &gRomaniSittingHeadShakeAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMA4_ANIM_17
{ &gRomaniSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMA4_ANIM_18
{ &gRomaniSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMA4_ANIM_19
};
void EnMa4_ChangeAnim(EnMa4* this, s32 animIndex) {
Animation_Change(&this->skelAnime, sAnimationInfo[animIndex].animation, 1.0f, 0.0f,
Animation_GetLastFrame(sAnimationInfo[animIndex].animation), sAnimationInfo[animIndex].mode,
sAnimationInfo[animIndex].morphFrames);
Animation_Change(&this->skelAnime, sAnimationSpeedInfo[animIndex].animation, 1.0f, 0.0f,
Animation_GetLastFrame(sAnimationSpeedInfo[animIndex].animation),
sAnimationSpeedInfo[animIndex].mode, sAnimationSpeedInfo[animIndex].morphFrames);
}
void func_80ABDD9C(EnMa4* this, PlayState* play) {
@@ -210,24 +235,24 @@ void EnMa4_Init(Actor* thisx, PlayState* play) {
}
if (Cutscene_GetSceneLayer(play) != 0) {
EnMa4_ChangeAnim(this, 0);
EnMa4_ChangeAnim(this, ENMA4_ANIM_0);
this->state = MA4_STATE_HORSEBACKGAME;
EnMa4_InitHorsebackGame(this, play);
} else {
EnMa4_InitPath(this, play);
if (gSaveContext.save.entrance == ENTRANCE(ROMANI_RANCH, 1)) {
EnMa4_ChangeAnim(this, 0);
EnMa4_ChangeAnim(this, ENMA4_ANIM_0);
this->state = MA4_STATE_AFTERHORSEBACKGAME;
} else if (gSaveContext.save.entrance == ENTRANCE(ROMANI_RANCH, 10)) {
EnMa4_ChangeAnim(this, 0);
EnMa4_ChangeAnim(this, ENMA4_ANIM_0);
this->state = MA4_STATE_AFTERDESCRIBETHEMCS;
} else {
if (this->type == MA4_TYPE_ALIENS_WON) {
EnMa4_ChangeAnim(this, 14);
EnMa4_ChangeAnim(this, ENMA4_ANIM_14);
this->actor.shape.shadowScale = 0.0f;
} else {
EnMa4_ChangeAnim(this, 8);
EnMa4_ChangeAnim(this, ENMA4_ANIM_8);
}
this->state = MA4_STATE_DEFAULT;
}
@@ -245,30 +270,30 @@ void EnMa4_Destroy(Actor* thisx, PlayState* play) {
// Running in circles in the ranch
void EnMa4_RunInCircles(EnMa4* this, PlayState* play) {
static s32 sAnimIndex = 9;
static s32 sAnimIndex = ENMA4_ANIM_9;
static s32 D_80AC0250 = 0;
static s16 D_80AC0254 = 10;
Vec3f sp34;
s32 pad;
s16 sp2E;
if ((sAnimIndex != 9) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
if (sAnimIndex == 3) {
if ((sAnimIndex != ENMA4_ANIM_9) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
if (sAnimIndex == ENMA4_ANIM_3) {
if (D_80AC0250 < 3) {
D_80AC0250++;
} else {
D_80AC0250 = 0;
EnMa4_ChangeAnim(this, 13);
sAnimIndex = 13;
EnMa4_ChangeAnim(this, ENMA4_ANIM_13);
sAnimIndex = ENMA4_ANIM_13;
}
} else {
this->actor.speed = 2.7f;
EnMa4_ChangeAnim(this, 9);
sAnimIndex = 9;
EnMa4_ChangeAnim(this, ENMA4_ANIM_9);
sAnimIndex = ENMA4_ANIM_9;
}
}
if ((sAnimIndex == 13) && Animation_OnFrame(&this->skelAnime, 37.0f)) {
if ((sAnimIndex == ENMA4_ANIM_13) && Animation_OnFrame(&this->skelAnime, 37.0f)) {
Actor_PlaySfx(&this->actor, NA_SE_EV_ROMANI_BOW_FLICK);
}
@@ -283,8 +308,8 @@ void EnMa4_RunInCircles(EnMa4* this, PlayState* play) {
if ((D_80AC0254 == 0) && ((Rand_Next() % 4) == 0)) {
this->actor.speed = 0.0f;
D_80AC0254 = 2;
EnMa4_ChangeAnim(this, 3);
sAnimIndex = 3;
EnMa4_ChangeAnim(this, ENMA4_ANIM_3);
sAnimIndex = ENMA4_ANIM_3;
} else {
if (D_80AC0254 > 0) {
D_80AC0254--;
@@ -310,14 +335,14 @@ void EnMa4_RunInCircles(EnMa4* this, PlayState* play) {
void EnMa4_SetupWait(EnMa4* this) {
if ((this->state != MA4_STATE_AFTERHORSEBACKGAME) && (this->state != MA4_STATE_AFTERDESCRIBETHEMCS)) {
if (this->type != MA4_TYPE_ALIENS_WON) {
EnMa4_ChangeAnim(this, 9);
EnMa4_ChangeAnim(this, ENMA4_ANIM_9);
this->actor.speed = 2.7f;
} else {
EnMa4_ChangeAnim(this, 15);
EnMa4_ChangeAnim(this, ENMA4_ANIM_15);
this->actor.speed = 0.0f;
}
} else {
EnMa4_ChangeAnim(this, 1);
EnMa4_ChangeAnim(this, ENMA4_ANIM_1);
this->actor.speed = 0.0f;
}
@@ -338,10 +363,10 @@ void EnMa4_Wait(EnMa4* this, PlayState* play) {
} else if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
this->animTimer++;
if (this->animTimer == 5) {
EnMa4_ChangeAnim(this, 17); // Traumatized anim
EnMa4_ChangeAnim(this, ENMA4_ANIM_17); // Traumatized anim
} else if (this->animTimer == 8) {
this->animTimer = 0;
EnMa4_ChangeAnim(this, 15); // Sitting anim
EnMa4_ChangeAnim(this, ENMA4_ANIM_15); // Sitting anim
}
}
@@ -626,9 +651,9 @@ void EnMa4_ChooseNextDialogue(EnMa4* this, PlayState* play) {
void EnMa4_SetupDialogueHandler(EnMa4* this) {
if (this->type != MA4_TYPE_ALIENS_WON) {
EnMa4_ChangeAnim(this, 1);
EnMa4_ChangeAnim(this, ENMA4_ANIM_1);
} else {
EnMa4_ChangeAnim(this, 15);
EnMa4_ChangeAnim(this, ENMA4_ANIM_15);
}
this->actionFunc = EnMa4_DialogueHandler;
}
@@ -720,7 +745,7 @@ void EnMa4_HorsebackGameWait(EnMa4* this, PlayState* play) {
player->stateFlags3 |= PLAYER_STATE3_400;
EnMa4_HorsebackGameCheckPlayerInteractions(this, play);
if (this->poppedBalloonCounter != D_80AC0258) {
if (D_80AC0258 != this->poppedBalloonCounter) {
D_80AC0258 = this->poppedBalloonCounter;
play->interfaceCtx.minigamePoints = 1;
}
@@ -805,6 +830,7 @@ void EnMa4_SetupEponasSongCs(EnMa4* this) {
}
static u16 sCueId = 99;
void EnMa4_EponasSongCs(EnMa4* this, PlayState* play) {
if (Cutscene_IsCueInChannel(play, CS_CMD_ACTOR_CUE_120)) {
s32 cueChannel = Cutscene_GetCueChannel(play, CS_CMD_ACTOR_CUE_120);
@@ -817,12 +843,12 @@ void EnMa4_EponasSongCs(EnMa4* this, PlayState* play) {
switch (play->csCtx.actorCues[cueChannel]->id) {
case 1:
this->hasBow = true;
EnMa4_ChangeAnim(this, 1);
EnMa4_ChangeAnim(this, ENMA4_ANIM_1);
break;
case 2:
this->hasBow = false;
EnMa4_ChangeAnim(this, 4);
EnMa4_ChangeAnim(this, ENMA4_ANIM_4);
break;
default:
@@ -833,7 +859,7 @@ void EnMa4_EponasSongCs(EnMa4* this, PlayState* play) {
Cutscene_ActorTranslateAndYaw(&this->actor, play, cueChannel);
if ((sCueId == 2) && (this->animTimer == 0) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
EnMa4_ChangeAnim(this, 7);
EnMa4_ChangeAnim(this, ENMA4_ANIM_7);
}
} else {
Player* player = GET_PLAYER(play);
+95 -64
View File
@@ -105,31 +105,60 @@ static CollisionCheckInfoInit2 sColChkInfoInit2 = {
0, 0, 0, 0, MASS_IMMOVABLE,
};
static AnimationSpeedInfo sAnimationInfo[] = {
{ &gCremiaIdleAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaIdleAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gCremiaSpreadArmsStartAnim, 1.0f, ANIMMODE_ONCE, 0.0f },
{ &gCremiaSpreadArmsStartAnim, 1.0f, ANIMMODE_ONCE, -6.0f },
{ &gCremiaSpreadArmsLoopAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaSpreadArmsLoopAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gCremiaWalkAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaWalkAnim, 1.0f, ANIMMODE_LOOP, -8.0f },
{ &gCremiaThinkAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaThinkAnim, 1.0f, ANIMMODE_LOOP, -8.0f },
{ &gCremiaPetCowAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaPetCowAnim, 1.0f, ANIMMODE_LOOP, -10.0f },
{ &gCremiaSittingPetCowAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaSittingPetCowAnim, 1.0f, ANIMMODE_LOOP, -8.0f },
{ &gCremiaSittingAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaSittingAnim, 1.0f, ANIMMODE_LOOP, -8.0f },
{ &gCremiaSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, -8.0f },
{ &gCremiaHugStartAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaHugStartAnim, 1.0f, ANIMMODE_LOOP, -8.0f },
{ &gCremiaHugLoopAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaHugLoopAnim, 1.0f, ANIMMODE_LOOP, -8.0f },
{ &gCremiaClapAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gCremiaClapAnim, 1.0f, ANIMMODE_LOOP, -8.0f },
typedef enum CremiaAnimation {
/* -1 */ CREMIA_ANIM_NONE = -1,
/* 0 */ CREMIA_ANIM_0,
/* 1 */ CREMIA_ANIM_1,
/* 2 */ CREMIA_ANIM_2,
/* 3 */ CREMIA_ANIM_3,
/* 4 */ CREMIA_ANIM_4,
/* 5 */ CREMIA_ANIM_5,
/* 6 */ CREMIA_ANIM_6,
/* 7 */ CREMIA_ANIM_7,
/* 8 */ CREMIA_ANIM_8,
/* 9 */ CREMIA_ANIM_9,
/* 10 */ CREMIA_ANIM_10,
/* 11 */ CREMIA_ANIM_11,
/* 12 */ CREMIA_ANIM_12,
/* 13 */ CREMIA_ANIM_13,
/* 14 */ CREMIA_ANIM_14,
/* 15 */ CREMIA_ANIM_15,
/* 16 */ CREMIA_ANIM_16,
/* 17 */ CREMIA_ANIM_17,
/* 18 */ CREMIA_ANIM_18,
/* 19 */ CREMIA_ANIM_19,
/* 20 */ CREMIA_ANIM_20,
/* 21 */ CREMIA_ANIM_21,
/* 22 */ CREMIA_ANIM_22,
/* 23 */ CREMIA_ANIM_23,
/* 24 */ CREMIA_ANIM_MAX
} CremiaAnimation;
static AnimationSpeedInfo sAnimationSpeedInfo[CREMIA_ANIM_MAX] = {
{ &gCremiaIdleAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_0
{ &gCremiaIdleAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // CREMIA_ANIM_1
{ &gCremiaSpreadArmsStartAnim, 1.0f, ANIMMODE_ONCE, 0.0f }, // CREMIA_ANIM_2
{ &gCremiaSpreadArmsStartAnim, 1.0f, ANIMMODE_ONCE, -6.0f }, // CREMIA_ANIM_3
{ &gCremiaSpreadArmsLoopAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_4
{ &gCremiaSpreadArmsLoopAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // CREMIA_ANIM_5
{ &gCremiaWalkAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_6
{ &gCremiaWalkAnim, 1.0f, ANIMMODE_LOOP, -8.0f }, // CREMIA_ANIM_7
{ &gCremiaThinkAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_8
{ &gCremiaThinkAnim, 1.0f, ANIMMODE_LOOP, -8.0f }, // CREMIA_ANIM_9
{ &gCremiaPetCowAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_10
{ &gCremiaPetCowAnim, 1.0f, ANIMMODE_LOOP, -10.0f }, // CREMIA_ANIM_11
{ &gCremiaSittingPetCowAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_12
{ &gCremiaSittingPetCowAnim, 1.0f, ANIMMODE_LOOP, -8.0f }, // CREMIA_ANIM_13
{ &gCremiaSittingAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_14
{ &gCremiaSittingAnim, 1.0f, ANIMMODE_LOOP, -8.0f }, // CREMIA_ANIM_15
{ &gCremiaSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_16
{ &gCremiaSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, -8.0f }, // CREMIA_ANIM_17
{ &gCremiaHugStartAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_18
{ &gCremiaHugStartAnim, 1.0f, ANIMMODE_LOOP, -8.0f }, // CREMIA_ANIM_19
{ &gCremiaHugLoopAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_20
{ &gCremiaHugLoopAnim, 1.0f, ANIMMODE_LOOP, -8.0f }, // CREMIA_ANIM_21
{ &gCremiaClapAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // CREMIA_ANIM_22
{ &gCremiaClapAnim, 1.0f, ANIMMODE_LOOP, -8.0f }, // CREMIA_ANIM_23
};
static TexturePtr sMouthTextures[] = {
@@ -228,35 +257,35 @@ s32 EnMaYto_CheckValidSpawn(EnMaYto* this, PlayState* play) {
void EnMaYto_InitAnimation(EnMaYto* this, PlayState* play) {
switch (this->type) {
case MA_YTO_TYPE_DEFAULT:
EnMaYto_ChangeAnim(this, 10);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_10);
break;
case MA_YTO_TYPE_DINNER:
if (CURRENT_DAY == 1) {
EnMaYto_ChangeAnim(this, 14);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_14);
} else {
EnMaYto_ChangeAnim(this, 16);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_16);
}
break;
case MA_YTO_TYPE_BARN:
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DEFENDED_AGAINST_THEM)) {
EnMaYto_ChangeAnim(this, 12);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_12);
} else {
EnMaYto_ChangeAnim(this, 8);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_8);
}
break;
case MA_YTO_TYPE_AFTERMILKRUN:
EnMaYto_ChangeAnim(this, 0);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_0);
break;
case MA_YTO_TYPE_4:
EnMaYto_ChangeAnim(this, 0);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_0);
break;
default:
EnMaYto_ChangeAnim(this, 0);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_0);
break;
}
}
@@ -310,10 +339,10 @@ s32 EnMaYto_SearchRomani(EnMaYto* this, PlayState* play) {
this->actor.child = &romani->actor;
romani->actor.parent = &this->actor;
return true;
} else {
npcActor = npcActor->next;
continue;
}
npcActor = npcActor->next;
continue;
}
npcActor = npcActor->next;
}
@@ -355,9 +384,10 @@ s32 EnMaYto_TryFindRomani(EnMaYto* this, PlayState* play) {
case MA_YTO_TYPE_4:
return 0;
}
return 0;
default:
return 0;
}
}
void EnMaYto_Destroy(Actor* thisx, PlayState* play) {
@@ -378,11 +408,11 @@ void EnMaYto_KeepLookingForRomani(EnMaYto* this, PlayState* play) {
void EnMaYto_SetupDefaultWait(EnMaYto* this) {
if (this->actor.shape.rot.y == this->actor.home.rot.y) {
this->animIndex = 11;
EnMaYto_ChangeAnim(this, 11);
this->animIndex = CREMIA_ANIM_11;
EnMaYto_ChangeAnim(this, CREMIA_ANIM_11);
} else {
this->animIndex = 1;
EnMaYto_ChangeAnim(this, 1);
this->animIndex = CREMIA_ANIM_1;
EnMaYto_ChangeAnim(this, CREMIA_ANIM_1);
}
EnMaYto_InitFaceExpression(this);
@@ -396,9 +426,9 @@ void EnMaYto_DefaultWait(EnMaYto* this, PlayState* play) {
direction = rotY - this->actor.yawTowardsPlayer;
if (!Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.home.rot.y, 5, 0x3000, 0x100) &&
(this->animIndex == 1)) {
this->animIndex = 11;
EnMaYto_ChangeAnim(this, 11);
(this->animIndex == CREMIA_ANIM_1)) {
this->animIndex = CREMIA_ANIM_11;
EnMaYto_ChangeAnim(this, CREMIA_ANIM_11);
}
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
@@ -410,7 +440,7 @@ void EnMaYto_DefaultWait(EnMaYto* this, PlayState* play) {
}
void EnMaYto_SetupDefaultDialogueHandler(EnMaYto* this) {
EnMaYto_ChangeAnim(this, 1);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_1);
this->unk31E = 2;
this->actionFunc = EnMaYto_DefaultDialogueHandler;
}
@@ -436,13 +466,14 @@ void EnMaYto_DefaultDialogueHandler(EnMaYto* this, PlayState* play) {
case TEXT_STATE_1:
case TEXT_STATE_CLOSING:
case TEXT_STATE_3:
default:
break;
}
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, 0x3000, 0x100);
if ((this->textId == 0x3395) && (this->skelAnime.animation == &gCremiaSpreadArmsStartAnim) &&
Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
EnMaYto_ChangeAnim(this, 4);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_4);
}
}
@@ -451,12 +482,10 @@ void EnMaYto_DefaultHandlePlayerChoice(EnMaYto* this, PlayState* play) {
if (play->msgCtx.choiceIndex == 0) { // Yes
Audio_PlaySfx_MessageDecide();
EnMaYto_SetFaceExpression(this, 0, 3);
// "Milk Road is fixed!"
Message_StartTextbox(play, 0x3392, &this->actor);
this->textId = 0x3392;
} else { // No
Audio_PlaySfx_MessageCancel();
// "Don't lie!"
Message_StartTextbox(play, 0x3391, &this->actor);
this->textId = 0x3391;
}
@@ -480,13 +509,13 @@ void EnMaYto_DefaultChooseNextDialogue(EnMaYto* this, PlayState* play) {
break;
case 0x3394:
EnMaYto_ChangeAnim(this, 2);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_2);
Message_StartTextbox(play, 0x3395, &this->actor);
this->textId = 0x3395;
break;
case 0x3395:
EnMaYto_ChangeAnim(this, 1);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_1);
Message_StartTextbox(play, 0x3396, &this->actor);
this->textId = 0x3396;
Message_BombersNotebookQueueEvent(play, BOMBERS_NOTEBOOK_EVENT_MET_CREMIA);
@@ -570,6 +599,7 @@ void EnMaYto_DinnerDialogueHandler(EnMaYto* this, PlayState* play) {
case TEXT_STATE_1:
case TEXT_STATE_CLOSING:
case TEXT_STATE_3:
default:
break;
}
}
@@ -579,12 +609,10 @@ void EnMaYto_DinnerHandlePlayerChoice(EnMaYto* this, PlayState* play) {
if (play->msgCtx.choiceIndex == 0) { // Yes
Audio_PlaySfx_MessageDecide();
EnMaYto_SetFaceExpression(this, 0, 3);
// "Milk Road is fixed!"
Message_StartTextbox(play, 0x3399, &this->actor);
this->textId = 0x3399;
} else { // No
Audio_PlaySfx_MessageCancel();
// "Don't lie!"
Message_StartTextbox(play, 0x3398, &this->actor);
this->textId = 0x3398;
}
@@ -695,12 +723,12 @@ void EnMaYto_DinnerChooseNextDialogue(EnMaYto* this, PlayState* play) {
void EnMaYto_SetupBarnWait(EnMaYto* this) {
if ((CURRENT_DAY == 1) || CHECK_WEEKEVENTREG(WEEKEVENTREG_DEFENDED_AGAINST_THEM)) {
EnMaYto_ChangeAnim(this, 13);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_13);
func_80B90E50(this, 0);
this->unk31E = 0;
} else {
this->unk320 = 0;
EnMaYto_ChangeAnim(this, 9);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_9);
func_80B90E50(this, 2);
this->unk31E = 2;
}
@@ -761,6 +789,7 @@ void EnMaYto_BarnDialogueHandler(EnMaYto* this, PlayState* play) {
case TEXT_STATE_CLOSING:
case TEXT_STATE_3:
case TEXT_STATE_CHOICE:
default:
break;
}
}
@@ -821,7 +850,6 @@ void EnMaYto_BarnChooseNextDialogue(EnMaYto* this, PlayState* play) {
case 0x33B1:
this->unk31E = 2;
EnMaYto_SetFaceExpression(this, 5, 3);
// "I should had believed what Romani said"
Message_StartTextbox(play, 0x33B2, &this->actor);
this->textId = 0x33B2;
Message_BombersNotebookQueueEvent(play, BOMBERS_NOTEBOOK_EVENT_MET_CREMIA);
@@ -935,6 +963,9 @@ void EnMaYto_AfterMilkRunDialogueHandler(EnMaYto* this, PlayState* play) {
case TEXT_STATE_5:
EnMaYto_AfterMilkRunChooseNextDialogue(this, play);
break;
default:
break;
}
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, 0x71C, 0xB6);
@@ -945,7 +976,6 @@ void EnMaYto_AfterMilkRunChooseNextDialogue(EnMaYto* this, PlayState* play) {
switch (this->textId) {
case 0x33C1:
EnMaYto_SetFaceExpression(this, 3, 1);
// "Thank you. You were cool back there."
Message_StartTextbox(play, 0x33C2, &this->actor);
this->textId = 0x33C2;
break;
@@ -1040,22 +1070,23 @@ void EnMaYto_WarmFuzzyFeelingCs(EnMaYto* this, PlayState* play) {
if (play->csCtx.curFrame == play->csCtx.actorCues[cueChannel]->startFrame) {
u16 cueId = play->csCtx.actorCues[cueChannel]->id;
//! FAKE:
if (1) {}
if (cueId != sCueId) {
sCueId = cueId;
switch (cueId) {
case 1:
EnMaYto_ChangeAnim(this, 0);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_0);
break;
case 2:
SET_WEEKEVENTREG(WEEKEVENTREG_14_01);
EnMaYto_ChangeAnim(this, 18);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_18);
break;
case 3:
EnMaYto_ChangeAnim(this, 22);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_22);
break;
default:
@@ -1067,7 +1098,7 @@ void EnMaYto_WarmFuzzyFeelingCs(EnMaYto* this, PlayState* play) {
Cutscene_ActorTranslateAndYaw(&this->actor, play, cueChannel);
if ((sCueId == 2) && (this->skelAnime.animation == &gCremiaHugStartAnim) &&
Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
EnMaYto_ChangeAnim(this, 20);
EnMaYto_ChangeAnim(this, CREMIA_ANIM_20);
}
} else {
sCueId = 99;
@@ -1277,9 +1308,9 @@ void EnMaYto_BarnStartDialogue(EnMaYto* this, PlayState* play) {
}
void EnMaYto_ChangeAnim(EnMaYto* this, s32 animIndex) {
Animation_Change(&this->skelAnime, sAnimationInfo[animIndex].animation, 1.0f, 0.0f,
Animation_GetLastFrame(sAnimationInfo[animIndex].animation), sAnimationInfo[animIndex].mode,
sAnimationInfo[animIndex].morphFrames);
Animation_Change(&this->skelAnime, sAnimationSpeedInfo[animIndex].animation, 1.0f, 0.0f,
Animation_GetLastFrame(sAnimationSpeedInfo[animIndex].animation),
sAnimationSpeedInfo[animIndex].mode, sAnimationSpeedInfo[animIndex].morphFrames);
}
void func_80B90C78(EnMaYto* this, PlayState* play) {
+66 -37
View File
@@ -77,29 +77,56 @@ static CollisionCheckInfoInit2 sColChkInfoInit2 = {
0, 0, 0, 0, MASS_IMMOVABLE,
};
static AnimationSpeedInfo sAnimationInfo[] = {
{ &gRomaniIdleAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniIdleAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniSingStartAnim, 1.0f, ANIMMODE_ONCE, 0.0f },
{ &gRomaniSingStartAnim, 1.0f, ANIMMODE_ONCE, -6.0f },
{ &gRomaniSingLoopAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniSingLoopAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniRunAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniRunAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniWalkAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniWalkAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniLookAroundAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniLookAroundAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniShootBowAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniShootBowAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniSittingAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniSittingAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniSittingHeadShakeAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniSittingHeadShakeAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gRomaniSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, -6.0f },
{ &gRomaniTurnAroundAndFlickHairAnim, 1.0f, ANIMMODE_ONCE, 0.0f },
{ &gRomaniTurnAroundAndFlickHairAnim, 1.0f, ANIMMODE_ONCE, -6.0f },
typedef enum EnMaYtsAnimation {
/* -1 */ ENMATYS_ANIM_NONE = -1,
/* 0 */ ENMATYS_ANIM_0,
/* 1 */ ENMATYS_ANIM_1,
/* 2 */ ENMATYS_ANIM_2,
/* 3 */ ENMATYS_ANIM_3,
/* 4 */ ENMATYS_ANIM_4,
/* 5 */ ENMATYS_ANIM_5,
/* 6 */ ENMATYS_ANIM_6,
/* 7 */ ENMATYS_ANIM_7,
/* 8 */ ENMATYS_ANIM_8,
/* 9 */ ENMATYS_ANIM_9,
/* 10 */ ENMATYS_ANIM_10,
/* 11 */ ENMATYS_ANIM_11,
/* 12 */ ENMATYS_ANIM_12,
/* 13 */ ENMATYS_ANIM_13,
/* 14 */ ENMATYS_ANIM_14,
/* 15 */ ENMATYS_ANIM_15,
/* 16 */ ENMATYS_ANIM_16,
/* 17 */ ENMATYS_ANIM_17,
/* 18 */ ENMATYS_ANIM_18,
/* 19 */ ENMATYS_ANIM_19,
/* 20 */ ENMATYS_ANIM_20,
/* 21 */ ENMATYS_ANIM_21,
/* 22 */ ENMATYS_ANIM_MAX
} EnMaYtsAnimation;
static AnimationSpeedInfo sAnimationSpeedInfo[ENMATYS_ANIM_MAX] = {
{ &gRomaniIdleAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_0
{ &gRomaniIdleAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_1
{ &gRomaniSingStartAnim, 1.0f, ANIMMODE_ONCE, 0.0f }, // ENMATYS_ANIM_2
{ &gRomaniSingStartAnim, 1.0f, ANIMMODE_ONCE, -6.0f }, // ENMATYS_ANIM_3
{ &gRomaniSingLoopAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_4
{ &gRomaniSingLoopAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_5
{ &gRomaniRunAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_6
{ &gRomaniRunAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_7
{ &gRomaniWalkAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_8
{ &gRomaniWalkAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_9
{ &gRomaniLookAroundAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_10
{ &gRomaniLookAroundAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_11
{ &gRomaniShootBowAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_12
{ &gRomaniShootBowAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_13
{ &gRomaniSittingAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_14
{ &gRomaniSittingAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_15
{ &gRomaniSittingHeadShakeAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_16
{ &gRomaniSittingHeadShakeAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_17
{ &gRomaniSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, 0.0f }, // ENMATYS_ANIM_18
{ &gRomaniSittingLookDownAnim, 1.0f, ANIMMODE_LOOP, -6.0f }, // ENMATYS_ANIM_19
{ &gRomaniTurnAroundAndFlickHairAnim, 1.0f, ANIMMODE_ONCE, 0.0f }, // ENMATYS_ANIM_20
{ &gRomaniTurnAroundAndFlickHairAnim, 1.0f, ANIMMODE_ONCE, -6.0f }, // ENMATYS_ANIM_21
};
static TexturePtr sMouthTextures[] = {
@@ -114,9 +141,9 @@ static TexturePtr sEyeTextures[] = {
};
void EnMaYts_ChangeAnim(EnMaYts* this, s32 animIndex) {
Animation_Change(&this->skelAnime, sAnimationInfo[animIndex].animation, 1.0f, 0.0f,
Animation_GetLastFrame(sAnimationInfo[animIndex].animation), sAnimationInfo[animIndex].mode,
sAnimationInfo[animIndex].morphFrames);
Animation_Change(&this->skelAnime, sAnimationSpeedInfo[animIndex].animation, 1.0f, 0.0f,
Animation_GetLastFrame(sAnimationSpeedInfo[animIndex].animation),
sAnimationSpeedInfo[animIndex].mode, sAnimationSpeedInfo[animIndex].morphFrames);
}
void func_80B8D12C(EnMaYts* this, PlayState* play) {
@@ -138,32 +165,32 @@ void EnMaYts_InitAnimation(EnMaYts* this, PlayState* play) {
switch (this->type) {
case MA_YTS_TYPE_BARN:
this->actor.targetMode = TARGET_MODE_0;
EnMaYts_ChangeAnim(this, 0);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_0);
break;
case MA_YTS_TYPE_SITTING:
this->actor.targetMode = TARGET_MODE_6;
// Day 1 or "Winning" the alien invasion
if ((CURRENT_DAY == 1) || CHECK_WEEKEVENTREG(WEEKEVENTREG_DEFENDED_AGAINST_THEM)) {
EnMaYts_ChangeAnim(this, 14);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_14);
} else {
EnMaYts_ChangeAnim(this, 18);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_18);
}
break;
case MA_YTS_TYPE_SLEEPING:
this->actor.targetMode = TARGET_MODE_0;
this->actor.draw = EnMaYts_DrawSleeping;
EnMaYts_ChangeAnim(this, 0);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_0);
break;
case MA_YTS_TYPE_ENDCREDITS:
this->actor.targetMode = TARGET_MODE_0;
EnMaYts_ChangeAnim(this, 0);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_0);
break;
default:
EnMaYts_ChangeAnim(this, 0);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_0);
break;
}
}
@@ -374,6 +401,7 @@ void EnMaYts_DialogueHandler(EnMaYts* this, PlayState* play) {
case TEXT_STATE_CLOSING:
case TEXT_STATE_3:
case TEXT_STATE_CHOICE:
default:
break;
}
}
@@ -385,6 +413,7 @@ void EnMaYts_SetupEndCreditsHandler(EnMaYts* this) {
}
static u16 sCueId = 99;
void EnMaYts_EndCreditsHandler(EnMaYts* this, PlayState* play) {
if (Cutscene_IsCueInChannel(play, CS_CMD_ACTOR_CUE_120)) {
s32 cueChannel = Cutscene_GetCueChannel(play, CS_CMD_ACTOR_CUE_120);
@@ -396,22 +425,22 @@ void EnMaYts_EndCreditsHandler(EnMaYts* this, PlayState* play) {
switch (play->csCtx.actorCues[cueChannel]->id) {
case 1:
this->hasBow = true;
EnMaYts_ChangeAnim(this, 0);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_0);
break;
case 2:
this->hasBow = false;
EnMaYts_ChangeAnim(this, 2);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_2);
break;
case 3:
this->hasBow = true;
EnMaYts_ChangeAnim(this, 12);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_12);
break;
case 4:
this->hasBow = true;
EnMaYts_ChangeAnim(this, 20);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_20);
break;
default:
@@ -424,7 +453,7 @@ void EnMaYts_EndCreditsHandler(EnMaYts* this, PlayState* play) {
if ((sCueId == 2) && (this->endCreditsFlag == 0) &&
Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) {
this->endCreditsFlag++;
EnMaYts_ChangeAnim(this, 5);
EnMaYts_ChangeAnim(this, ENMATYS_ANIM_5);
}
} else {
sCueId = 99;
+1 -1
View File
@@ -281,7 +281,7 @@ void func_80A4E2E8(EnMkk* this, PlayState* play) {
func_80A4E190(this);
} else if ((this->unk_149 == 0) && (!(player->stateFlags3 & PLAYER_STATE3_100)) &&
(Player_GetMask(play) != PLAYER_MASK_STONE) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) &&
(Actor_IsFacingPlayer(&this->actor, 0x1800)) && (this->actor.xzDistToPlayer < 120.0f) &&
Actor_IsFacingPlayer(&this->actor, 0x1800) && (this->actor.xzDistToPlayer < 120.0f) &&
(fabsf(this->actor.playerHeightRel) < 100.0f)) {
func_80A4E58C(this);
}
+1 -1
View File
@@ -68,7 +68,7 @@ void EnMm2_WaitForRead(EnMm2* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
Message_StartTextbox(play, 0x277B, &this->actor);
this->actionFunc = EnMm2_Reading;
} else if ((this->actor.xzDistToPlayer < 60.0f) && (Player_IsFacingActor(&this->actor, 0x3000, play))) {
} else if ((this->actor.xzDistToPlayer < 60.0f) && Player_IsFacingActor(&this->actor, 0x3000, play)) {
Actor_OfferTalk(&this->actor, play, 110.0f);
}
}
@@ -161,7 +161,7 @@ void func_80A44F40(EnSekihi* this, PlayState* play) {
void func_80A450B0(EnSekihi* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->dyna.actor, &play->state)) {
this->actionFunc = func_80A44F40;
} else if ((this->dyna.actor.xzDistToPlayer < 100.0f) && (Player_IsFacingActor(&this->dyna.actor, 0x2600, play))) {
} else if ((this->dyna.actor.xzDistToPlayer < 100.0f) && Player_IsFacingActor(&this->dyna.actor, 0x2600, play)) {
Actor_OfferTalk(&this->dyna.actor, play, 120.0f);
}
}
@@ -407,7 +407,7 @@ void EnSlime_MoveInDirection(EnSlime* this, PlayState* play) {
// If actor is too far from home, start return home cycle
EnSlime_SetupMoveToHome(this);
} else if ((Player_GetMask(play) != PLAYER_MASK_STONE) && (this->actor.xzDistToPlayer < 280.0f) &&
(Actor_IsFacingPlayer(&this->actor, 0x5000))) {
Actor_IsFacingPlayer(&this->actor, 0x5000)) {
// If player is close enough to chuchu while not wearing the stone mask, and the chuchu is facing player,
// initialize attack cycle
EnSlime_SetupTurnToPlayer(this);
@@ -4074,7 +4074,7 @@ s32 func_80830E30(Player* this, PlayState* play) {
}
PlayerAnimation_PlayOnce(play, &this->skelAnimeUpper,
(Player_IsHoldingHookshot(this))
Player_IsHoldingHookshot(this)
? &gPlayerAnim_link_hook_shot_ready
: ((this->transformation == PLAYER_FORM_DEKU) ? &gPlayerAnim_pn_tamahakidf
: &gPlayerAnim_link_bow_bow_ready));