reapply changes needed for C23 build on develop (#5467)

This commit is contained in:
Pepper0ni 2025-05-17 05:41:14 +01:00 committed by GitHub
parent b900f8599a
commit 5b6844ccd8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 89 additions and 86 deletions

View file

@ -1378,7 +1378,7 @@ void func_800AA0B4();
void func_800AA0F0(void); void func_800AA0F0(void);
u32 func_800AA148(); u32 func_800AA148();
void func_800AA15C(); void func_800AA15C();
void func_800AA16C(); void Rumble_ClearRequests();
void func_800AA178(u32); void func_800AA178(u32);
View* View_New(GraphicsContext* gfxCtx); View* View_New(GraphicsContext* gfxCtx);
void View_Free(View* view); void View_Free(View* view);

View file

@ -260,9 +260,12 @@ typedef struct SkelAnime {
/* 0x24 */ Vec3s* morphTable; // Table of values used to morph between animations /* 0x24 */ Vec3s* morphTable; // Table of values used to morph between animations
/* 0x28 */ f32 morphWeight; // Weight of the current animation morph as a fraction in [0,1] /* 0x28 */ f32 morphWeight; // Weight of the current animation morph as a fraction in [0,1]
/* 0x2C */ f32 morphRate; // Reciprocal of the number of frames in the morph /* 0x2C */ f32 morphRate; // Reciprocal of the number of frames in the morph
/* 0x30 */ s32 (*update)(); // Can be Loop, Partial loop, Play once, Morph, or Tapered morph. Link only has Loop, Play once, and Morph. /* 0x30 */ union {
s32 (*normal)(struct SkelAnime*); // Can be Loop, Partial loop, Play once, Morph, or Tapered morph
s32 (*link)(struct PlayState*, struct SkelAnime*); // Can be Loop, Play once, or Morph
} update;
/* 0x34 */ s8 initFlags; // Flags used when initializing Link's skeleton /* 0x34 */ s8 initFlags; // Flags used when initializing Link's skeleton
/* 0x35 */ u8 moveFlags; // Flags used for animations that move the actor in worldspace. /* 0x35 */ u8 movementFlags; // Flags used for animations that move the actor in worldspace.
/* 0x36 */ s16 prevRot; // Previous rotation in worldspace. /* 0x36 */ s16 prevRot; // Previous rotation in worldspace.
/* 0x38 */ Vec3s prevTransl; // Previous modelspace translation. /* 0x38 */ Vec3s prevTransl; // Previous modelspace translation.
/* 0x3E */ Vec3s baseTransl; // Base modelspace translation. /* 0x3E */ Vec3s baseTransl; // Base modelspace translation.

View file

@ -84,7 +84,7 @@ void func_800AA15C(void) {
D_80160FD0.unk_104 = 2; D_80160FD0.unk_104 = 2;
} }
void func_800AA16C(void) { void Rumble_ClearRequests(void) {
D_80160FD0.unk_104 = 0; D_80160FD0.unk_104 = 0;
} }

View file

@ -892,7 +892,7 @@ void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContex
if ((((void)0, gSaveContext.gameMode) != GAMEMODE_NORMAL) && if ((((void)0, gSaveContext.gameMode) != GAMEMODE_NORMAL) &&
(((void)0, gSaveContext.gameMode) != GAMEMODE_END_CREDITS)) { (((void)0, gSaveContext.gameMode) != GAMEMODE_END_CREDITS)) {
func_800AA16C(play); Rumble_ClearRequests();
} }
if (pauseCtx->state == 0) { if (pauseCtx->state == 0) {

View file

@ -1289,12 +1289,12 @@ s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx**
D_80160000 = &this->meleeWeaponInfo[2].base; D_80160000 = &this->meleeWeaponInfo[2].base;
if (!LINK_IS_ADULT) { if (!LINK_IS_ADULT) {
if (!(this->skelAnime.moveFlags & 4) || (this->skelAnime.moveFlags & 1)) { if (!(this->skelAnime.movementFlags & 4) || (this->skelAnime.movementFlags & 1)) {
pos->x *= 0.64f; pos->x *= 0.64f;
pos->z *= 0.64f; pos->z *= 0.64f;
} }
if (!(this->skelAnime.moveFlags & 4) || (this->skelAnime.moveFlags & 2)) { if (!(this->skelAnime.movementFlags & 4) || (this->skelAnime.movementFlags & 2)) {
pos->y *= 0.64f; pos->y *= 0.64f;
} }
} }

View file

@ -1170,9 +1170,9 @@ void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeade
*/ */
void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) { void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) { if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) {
skelAnime->update = LinkAnimation_Loop; skelAnime->update.link = LinkAnimation_Loop;
} else { } else {
skelAnime->update = LinkAnimation_Once; skelAnime->update.link = LinkAnimation_Once;
} }
skelAnime->morphWeight = 0.0f; skelAnime->morphWeight = 0.0f;
} }
@ -1182,7 +1182,7 @@ void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
* finishes. * finishes.
*/ */
s32 LinkAnimation_Update(PlayState* play, SkelAnime* skelAnime) { s32 LinkAnimation_Update(PlayState* play, SkelAnime* skelAnime) {
return skelAnime->update(play, skelAnime); return skelAnime->update.link(play, skelAnime);
} }
/** /**
@ -1294,7 +1294,7 @@ void LinkAnimation_Change(PlayState* play, SkelAnime* skelAnime, LinkAnimationHe
SkelAnime_CopyFrameTable(skelAnime, skelAnime->morphTable, skelAnime->jointTable); SkelAnime_CopyFrameTable(skelAnime, skelAnime->morphTable, skelAnime->jointTable);
morphFrames = -morphFrames; morphFrames = -morphFrames;
} else { } else {
skelAnime->update = LinkAnimation_Morph; skelAnime->update.link = LinkAnimation_Morph;
AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount, AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount,
skelAnime->morphTable); skelAnime->morphTable);
} }
@ -1559,11 +1559,11 @@ s32 SkelAnime_InitSkin(PlayState* play, SkelAnime* skelAnime, SkeletonHeader* sk
*/ */
void SkelAnime_SetUpdate(SkelAnime* skelAnime) { void SkelAnime_SetUpdate(SkelAnime* skelAnime) {
if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) { if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) {
skelAnime->update = SkelAnime_LoopFull; skelAnime->update.normal = SkelAnime_LoopFull;
} else if (skelAnime->mode <= ANIMMODE_ONCE_INTERP) { } else if (skelAnime->mode <= ANIMMODE_ONCE_INTERP) {
skelAnime->update = SkelAnime_Once; skelAnime->update.normal = SkelAnime_Once;
} else { } else {
skelAnime->update = SkelAnime_LoopPartial; skelAnime->update.normal = SkelAnime_LoopPartial;
} }
} }
@ -1572,7 +1572,7 @@ void SkelAnime_SetUpdate(SkelAnime* skelAnime) {
* finishes. * finishes.
*/ */
s32 SkelAnime_Update(SkelAnime* skelAnime) { s32 SkelAnime_Update(SkelAnime* skelAnime) {
return skelAnime->update(skelAnime); return skelAnime->update.normal(skelAnime);
} }
/** /**
@ -1741,10 +1741,10 @@ void Animation_ChangeImpl(SkelAnime* skelAnime, AnimationHeader* animation, f32
morphFrames = -morphFrames; morphFrames = -morphFrames;
} else { } else {
if (taper != ANIMTAPER_NONE) { if (taper != ANIMTAPER_NONE) {
skelAnime->update = SkelAnime_MorphTaper; skelAnime->update.normal = SkelAnime_MorphTaper;
skelAnime->taper = taper; skelAnime->taper = taper;
} else { } else {
skelAnime->update = SkelAnime_Morph; skelAnime->update.normal = SkelAnime_Morph;
} }
SkelAnime_GetFrameData(animation, startFrame, skelAnime->limbCount, skelAnime->morphTable); SkelAnime_GetFrameData(animation, startFrame, skelAnime->limbCount, skelAnime->morphTable);
} }
@ -1895,7 +1895,7 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle) {
f32 sin; f32 sin;
f32 cos; f32 cos;
if (skelAnime->moveFlags & ANIM_FLAG_NOMOVE) { if (skelAnime->movementFlags & ANIM_FLAG_NOMOVE) {
diff->x = diff->z = 0.0f; diff->x = diff->z = 0.0f;
} else { } else {
x = skelAnime->jointTable[0].x; x = skelAnime->jointTable[0].x;
@ -1917,8 +1917,8 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle) {
skelAnime->jointTable[0].x = skelAnime->baseTransl.x; skelAnime->jointTable[0].x = skelAnime->baseTransl.x;
skelAnime->prevTransl.z = skelAnime->jointTable[0].z; skelAnime->prevTransl.z = skelAnime->jointTable[0].z;
skelAnime->jointTable[0].z = skelAnime->baseTransl.z; skelAnime->jointTable[0].z = skelAnime->baseTransl.z;
if (skelAnime->moveFlags & ANIM_FLAG_UPDATEY) { if (skelAnime->movementFlags & ANIM_FLAG_UPDATEY) {
if (skelAnime->moveFlags & ANIM_FLAG_NOMOVE) { if (skelAnime->movementFlags & ANIM_FLAG_NOMOVE) {
diff->y = 0.0f; diff->y = 0.0f;
} else { } else {
diff->y = skelAnime->jointTable[0].y - skelAnime->prevTransl.y; diff->y = skelAnime->jointTable[0].y - skelAnime->prevTransl.y;
@ -1929,7 +1929,7 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle) {
diff->y = 0.0f; diff->y = 0.0f;
skelAnime->prevTransl.y = skelAnime->jointTable[0].y; skelAnime->prevTransl.y = skelAnime->jointTable[0].y;
} }
skelAnime->moveFlags &= ~ANIM_FLAG_NOMOVE; skelAnime->movementFlags &= ~ANIM_FLAG_NOMOVE;
} }
/** /**

View file

@ -175,19 +175,19 @@ void DemoEc_UpdateBgFlags(DemoEc* this, PlayState* play) {
} }
void func_8096D594(DemoEc* this, PlayState* play) { void func_8096D594(DemoEc* this, PlayState* play) {
this->skelAnime.moveFlags |= 3; this->skelAnime.movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }
void func_8096D5D4(DemoEc* this, PlayState* play) { void func_8096D5D4(DemoEc* this, PlayState* play) {
this->skelAnime.baseTransl = this->skelAnime.jointTable[0]; this->skelAnime.baseTransl = this->skelAnime.jointTable[0];
this->skelAnime.prevTransl = this->skelAnime.jointTable[0]; this->skelAnime.prevTransl = this->skelAnime.jointTable[0];
this->skelAnime.moveFlags |= 3; this->skelAnime.movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }
void func_8096D64C(DemoEc* this, PlayState* play) { void func_8096D64C(DemoEc* this, PlayState* play) {
this->skelAnime.moveFlags |= 3; this->skelAnime.movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }

View file

@ -55,12 +55,12 @@ s32 DemoIk_CheckCue(PlayState* play, u16 action, s32 index) {
} }
void DemoIk_SetMove(DemoIk* this, PlayState* play) { void DemoIk_SetMove(DemoIk* this, PlayState* play) {
this->skelAnime.moveFlags |= 1; this->skelAnime.movementFlags |= 1;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }
void DemoIk_EndMove(DemoIk* this) { void DemoIk_EndMove(DemoIk* this) {
this->skelAnime.moveFlags &= ~1; this->skelAnime.movementFlags &= ~1;
} }
f32 DemoIk_GetCurFrame(DemoIk* this) { f32 DemoIk_GetCurFrame(DemoIk* this) {

View file

@ -342,7 +342,7 @@ void func_80A795C8(EnIn* this, PlayState* play) {
void func_80A79690(SkelAnime* skelAnime, EnIn* this, PlayState* play) { void func_80A79690(SkelAnime* skelAnime, EnIn* this, PlayState* play) {
if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) {
skelAnime->moveFlags |= 3; skelAnime->movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f);
} }
} }

View file

@ -743,7 +743,7 @@ void EnNb_InitDemo6KInConfrontation(EnNb* this, PlayState* play) {
} }
void func_80AB2688(EnNb* this, PlayState* play) { void func_80AB2688(EnNb* this, PlayState* play) {
this->skelAnime.moveFlags |= 1; this->skelAnime.movementFlags |= 1;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }

View file

@ -393,17 +393,17 @@ s32 EnRu1_UpdateSkelAnime(EnRu1* this) {
} }
void func_80AEB364(EnRu1* this, PlayState* play) { void func_80AEB364(EnRu1* this, PlayState* play) {
this->skelAnime.moveFlags |= 1; this->skelAnime.movementFlags |= 1;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }
void func_80AEB3A4(EnRu1* this, PlayState* play) { void func_80AEB3A4(EnRu1* this, PlayState* play) {
this->skelAnime.moveFlags |= 1; this->skelAnime.movementFlags |= 1;
func_80AEB364(this, play); func_80AEB364(this, play);
} }
void func_80AEB3CC(EnRu1* this) { void func_80AEB3CC(EnRu1* this) {
this->skelAnime.moveFlags &= ~0x1; this->skelAnime.movementFlags &= ~0x1;
} }
void func_80AEB3DC(EnRu1* this, PlayState* play) { void func_80AEB3DC(EnRu1* this, PlayState* play) {
@ -464,7 +464,7 @@ void func_80AEB6E0(EnRu1* this, PlayState* play) {
SkelAnime* skelAnime = &this->skelAnime; SkelAnime* skelAnime = &this->skelAnime;
if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) {
skelAnime->moveFlags |= 3; skelAnime->movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f);
} }
} }
@ -475,13 +475,13 @@ void func_80AEB738(EnRu1* this, PlayState* play) {
skelAnime->baseTransl = skelAnime->jointTable[0]; skelAnime->baseTransl = skelAnime->jointTable[0];
skelAnime->prevTransl = skelAnime->jointTable[0]; skelAnime->prevTransl = skelAnime->jointTable[0];
if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) { if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) {
skelAnime->moveFlags |= 3; skelAnime->movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f);
} }
} }
void func_80AEB7D0(EnRu1* this) { void func_80AEB7D0(EnRu1* this) {
this->skelAnime.moveFlags &= ~0x3; this->skelAnime.movementFlags &= ~0x3;
} }
f32 func_80AEB7E0(CsCmdActorCue* csCmdNPCAction, PlayState* play) { f32 func_80AEB7E0(CsCmdActorCue* csCmdNPCAction, PlayState* play) {

View file

@ -1595,7 +1595,7 @@ void func_8086318C(EnTest* this, PlayState* play) {
void EnTest_SetupRecoil(EnTest* this) { void EnTest_SetupRecoil(EnTest* this) {
this->meleeWeaponState = 0; this->meleeWeaponState = 0;
this->skelAnime.moveFlags = 2; this->skelAnime.movementFlags = 2;
this->unk_7C8 = 0x13; this->unk_7C8 = 0x13;
this->skelAnime.playSpeed = -1.0f; this->skelAnime.playSpeed = -1.0f;
this->skelAnime.startFrame = this->skelAnime.curFrame; this->skelAnime.startFrame = this->skelAnime.curFrame;

View file

@ -249,25 +249,25 @@ void func_80B3C8CC(EnXc* this, PlayState* play) {
SkelAnime* skelAnime = &this->skelAnime; SkelAnime* skelAnime = &this->skelAnime;
if (skelAnime->jointTable[0].y >= skelAnime->baseTransl.y) { if (skelAnime->jointTable[0].y >= skelAnime->baseTransl.y) {
skelAnime->moveFlags |= 3; skelAnime->movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f);
} }
} }
void func_80B3C924(EnXc* this, PlayState* play) { void func_80B3C924(EnXc* this, PlayState* play) {
this->skelAnime.moveFlags |= 3; this->skelAnime.movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }
void func_80B3C964(EnXc* this, PlayState* play) { void func_80B3C964(EnXc* this, PlayState* play) {
this->skelAnime.baseTransl = this->skelAnime.jointTable[0]; this->skelAnime.baseTransl = this->skelAnime.jointTable[0];
this->skelAnime.prevTransl = this->skelAnime.jointTable[0]; this->skelAnime.prevTransl = this->skelAnime.jointTable[0];
this->skelAnime.moveFlags |= 3; this->skelAnime.movementFlags |= 3;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }
void func_80B3C9DC(EnXc* this) { void func_80B3C9DC(EnXc* this) {
this->skelAnime.moveFlags &= ~0x3; this->skelAnime.movementFlags &= ~0x3;
} }
void func_80B3C9EC(EnXc* this) { void func_80B3C9EC(EnXc* this) {

View file

@ -348,7 +348,7 @@ void func_80B4B834(CsCmdActorCue* npcAction, Vec3f* pos) {
} }
void func_80B4B874(EnZl1* this, PlayState* play) { void func_80B4B874(EnZl1* this, PlayState* play) {
this->skelAnime.moveFlags |= 1; this->skelAnime.movementFlags |= 1;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }

View file

@ -305,7 +305,7 @@ void EnZl4_UpdateFace(EnZl4* this) {
} }
void EnZl4_SetMove(EnZl4* this, PlayState* play) { void EnZl4_SetMove(EnZl4* this, PlayState* play) {
this->skelAnime.moveFlags |= 1; this->skelAnime.movementFlags |= 1;
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f); AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
} }

View file

@ -53,12 +53,12 @@ void ObjHsblock_SetupAction(ObjHsblock* this, ObjHsblockActionFunc actionFunc) {
this->actionFunc = actionFunc; this->actionFunc = actionFunc;
} }
void func_80B93B68(ObjHsblock* this, PlayState* play, CollisionHeader* collision, s32 moveFlags) { void func_80B93B68(ObjHsblock* this, PlayState* play, CollisionHeader* collision, s32 movementFlags) {
s32 pad; s32 pad;
CollisionHeader* colHeader = NULL; CollisionHeader* colHeader = NULL;
s32 pad2[2]; s32 pad2[2];
DynaPolyActor_Init(&this->dyna, moveFlags); DynaPolyActor_Init(&this->dyna, movementFlags);
CollisionHeader_GetVirtual(collision, &colHeader); CollisionHeader_GetVirtual(collision, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
if (this->dyna.bgId == BG_ACTOR_MAX) { if (this->dyna.bgId == BG_ACTOR_MAX) {

View file

@ -1926,14 +1926,14 @@ void Player_ZeroRootLimbYaw(Player* this) {
* it can also be called within action functions to change animations in the middle of an action. * it can also be called within action functions to change animations in the middle of an action.
*/ */
void Player_FinishAnimMovement(Player* this) { void Player_FinishAnimMovement(Player* this) {
if (this->skelAnime.moveFlags != 0) { if (this->skelAnime.movementFlags != 0) {
Player_ApplyYawFromAnim(this); Player_ApplyYawFromAnim(this);
this->skelAnime.jointTable[0].x = this->skelAnime.baseTransl.x; this->skelAnime.jointTable[0].x = this->skelAnime.baseTransl.x;
this->skelAnime.jointTable[0].z = this->skelAnime.baseTransl.z; this->skelAnime.jointTable[0].z = this->skelAnime.baseTransl.z;
if (this->skelAnime.moveFlags & 8) { if (this->skelAnime.movementFlags & 8) {
if (this->skelAnime.moveFlags & 2) { if (this->skelAnime.movementFlags & 2) {
this->skelAnime.jointTable[0].y = this->skelAnime.prevTransl.y; this->skelAnime.jointTable[0].y = this->skelAnime.prevTransl.y;
} }
} else { } else {
@ -1942,7 +1942,7 @@ void Player_FinishAnimMovement(Player* this) {
Player_ResetAnimMovement(this); Player_ResetAnimMovement(this);
this->skelAnime.moveFlags = 0; this->skelAnime.movementFlags = 0;
} }
} }
@ -1958,7 +1958,7 @@ void Player_FinishAnimMovement(Player* this) {
void Player_ApplyAnimMovementScaledByAge(Player* this, s32 movementFlags) { void Player_ApplyAnimMovementScaledByAge(Player* this, s32 movementFlags) {
Vec3f diff; Vec3f diff;
this->skelAnime.moveFlags = movementFlags; this->skelAnime.movementFlags = movementFlags;
this->skelAnime.prevTransl = this->skelAnime.baseTransl; this->skelAnime.prevTransl = this->skelAnime.baseTransl;
SkelAnime_UpdateTranslation(&this->skelAnime, &diff, this->actor.shape.rot.y); SkelAnime_UpdateTranslation(&this->skelAnime, &diff, this->actor.shape.rot.y);
@ -2005,7 +2005,7 @@ void Player_ApplyAnimMovementScaledByAge(Player* this, s32 movementFlags) {
void Player_StartAnimMovement(PlayState* play, Player* this, s32 flags) { void Player_StartAnimMovement(PlayState* play, Player* this, s32 flags) {
if (flags & PLAYER_ANIM_MOVEMENT_RESET_BY_AGE) { if (flags & PLAYER_ANIM_MOVEMENT_RESET_BY_AGE) {
Player_ResetAnimMovementScaledByAge(this); Player_ResetAnimMovementScaledByAge(this);
} else if ((flags & PLAYER_ANIM_MOVEMENT_RESET) || (this->skelAnime.moveFlags != 0)) { } else if ((flags & PLAYER_ANIM_MOVEMENT_RESET) || (this->skelAnime.movementFlags != 0)) {
// If AnimMovement is already in use when this function is called and // If AnimMovement is already in use when this function is called and
// `PLAYER_ANIM_MOVEMENT_RESET_BY_AGE` is not set, then this case will be used. // `PLAYER_ANIM_MOVEMENT_RESET_BY_AGE` is not set, then this case will be used.
Player_ResetAnimMovement(this); Player_ResetAnimMovement(this);
@ -2017,7 +2017,7 @@ void Player_StartAnimMovement(PlayState* play, Player* this, s32 flags) {
} }
// Remove Player specific flags by masking the lower byte before setting to `skelAnime.movementFlags` // Remove Player specific flags by masking the lower byte before setting to `skelAnime.movementFlags`
this->skelAnime.moveFlags = flags /*&& 0xFF*/; this->skelAnime.movementFlags = flags /*&& 0xFF*/;
Player_ZeroSpeedXZ(this); Player_ZeroSpeedXZ(this);
AnimationContext_DisableQueue(play); AnimationContext_DisableQueue(play);
@ -3138,7 +3138,7 @@ s32 func_80835588(Player* this, PlayState* play) {
void Player_SetParallel(Player* this) { void Player_SetParallel(Player* this) {
this->stateFlags1 |= PLAYER_STATE1_PARALLEL; this->stateFlags1 |= PLAYER_STATE1_PARALLEL;
if (!(this->skelAnime.moveFlags & 0x80) && (this->actor.bgCheckFlags & 0x200) && if (!(this->skelAnime.movementFlags & 0x80) && (this->actor.bgCheckFlags & 0x200) &&
(sShapeYawToTouchedWall < 0x2000)) { (sShapeYawToTouchedWall < 0x2000)) {
// snap to the wall // snap to the wall
this->yaw = this->actor.shape.rot.y = this->actor.wallYaw + 0x8000; this->yaw = this->actor.shape.rot.y = this->actor.wallYaw + 0x8000;
@ -3362,14 +3362,14 @@ s32 Player_SetupAction(PlayState* play, Player* this, PlayerActionFunc actionFun
void Player_SetupActionPreserveAnimMovement(PlayState* play, Player* this, PlayerActionFunc actionFunc, s32 flags) { void Player_SetupActionPreserveAnimMovement(PlayState* play, Player* this, PlayerActionFunc actionFunc, s32 flags) {
s32 savedMovementFlags; s32 savedMovementFlags;
savedMovementFlags = this->skelAnime.moveFlags; savedMovementFlags = this->skelAnime.movementFlags;
// Setting `skelAnime.movementFlags` to 0 will prevent `Player_FinishAnimMovement` from ending // Setting `skelAnime.movementFlags` to 0 will prevent `Player_FinishAnimMovement` from ending
// AnimMovement when `Player_SetupAction` is called. // AnimMovement when `Player_SetupAction` is called.
this->skelAnime.moveFlags = 0; this->skelAnime.movementFlags = 0;
Player_SetupAction(play, this, actionFunc, flags); Player_SetupAction(play, this, actionFunc, flags);
this->skelAnime.moveFlags = savedMovementFlags; this->skelAnime.movementFlags = savedMovementFlags;
} }
/** /**
@ -5779,7 +5779,7 @@ void func_8083AA10(Player* this, PlayState* play) {
return; return;
} }
if (!(this->stateFlags3 & PLAYER_STATE3_MIDAIR) && !(this->skelAnime.moveFlags & 0x80) && if (!(this->stateFlags3 & PLAYER_STATE3_MIDAIR) && !(this->skelAnime.movementFlags & 0x80) &&
(Player_Action_8084411C != this->actionFunc) && (Player_Action_80844A44 != this->actionFunc)) { (Player_Action_8084411C != this->actionFunc) && (Player_Action_80844A44 != this->actionFunc)) {
if ((sPrevFloorProperty == 7) || (this->meleeWeaponState != 0)) { if ((sPrevFloorProperty == 7) || (this->meleeWeaponState != 0)) {
@ -6927,7 +6927,7 @@ void func_8083D53C(PlayState* play, Player* this) {
} }
} else if ((this->stateFlags1 & PLAYER_STATE1_IN_WATER) && } else if ((this->stateFlags1 & PLAYER_STATE1_IN_WATER) &&
(this->actor.yDistToWater < this->ageProperties->unk_24)) { (this->actor.yDistToWater < this->ageProperties->unk_24)) {
if ((this->skelAnime.moveFlags == 0) && (this->currentBoots != PLAYER_BOOTS_IRON)) { if ((this->skelAnime.movementFlags == 0) && (this->currentBoots != PLAYER_BOOTS_IRON)) {
Player_SetupTurnInPlace(play, this, this->actor.shape.rot.y); Player_SetupTurnInPlace(play, this, this->actor.shape.rot.y);
} }
func_8083D0A8(play, this, this->actor.velocity.y); func_8083D0A8(play, this, this->actor.velocity.y);
@ -12059,7 +12059,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
func_8084FF7C(this); func_8084FF7C(this);
} }
if (!(this->skelAnime.moveFlags & 0x80)) { if (!(this->skelAnime.movementFlags & 0x80)) {
if (((this->actor.bgCheckFlags & 1) && (sFloorType == 5) && (this->currentBoots != PLAYER_BOOTS_IRON)) || if (((this->actor.bgCheckFlags & 1) && (sFloorType == 5) && (this->currentBoots != PLAYER_BOOTS_IRON)) ||
((this->currentBoots == PLAYER_BOOTS_HOVER || GameInteractor_GetSlipperyFloorActive()) && ((this->currentBoots == PLAYER_BOOTS_HOVER || GameInteractor_GetSlipperyFloorActive()) &&
!(this->stateFlags1 & (PLAYER_STATE1_IN_WATER | PLAYER_STATE1_IN_CUTSCENE)))) { !(this->stateFlags1 & (PLAYER_STATE1_IN_WATER | PLAYER_STATE1_IN_CUTSCENE)))) {
@ -12246,9 +12246,9 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
Player_UpdateCamAndSeqModes(play, this); Player_UpdateCamAndSeqModes(play, this);
if (this->skelAnime.moveFlags & 8) { if (this->skelAnime.movementFlags & 8) {
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime,
(this->skelAnime.moveFlags & 4) ? 1.0f : this->ageProperties->unk_08); (this->skelAnime.movementFlags & 4) ? 1.0f : this->ageProperties->unk_08);
} }
Player_UpdateShapeYaw(this, play); Player_UpdateShapeYaw(this, play);
@ -13113,7 +13113,7 @@ void Player_Action_Talk(Player* this, PlayState* play) {
} else if (func_808332B8(this)) { } else if (func_808332B8(this)) {
Player_Action_8084D610(this, play); Player_Action_8084D610(this, play);
} else if (!Player_CheckHostileLockOn(this) && LinkAnimation_Update(play, &this->skelAnime)) { } else if (!Player_CheckHostileLockOn(this) && LinkAnimation_Update(play, &this->skelAnime)) {
if (this->skelAnime.moveFlags != 0) { if (this->skelAnime.movementFlags != 0) {
Player_FinishAnimMovement(this); Player_FinishAnimMovement(this);
if ((this->talkActor->category == ACTORCAT_NPC) && (this->heldItemAction != PLAYER_IA_FISHING_POLE)) { if ((this->talkActor->category == ACTORCAT_NPC) && (this->heldItemAction != PLAYER_IA_FISHING_POLE)) {
@ -13551,8 +13551,8 @@ void Player_Action_8084C760(Player* this, PlayState* play) {
if (LinkAnimation_Update(play, &this->skelAnime)) { if (LinkAnimation_Update(play, &this->skelAnime)) {
if (!(this->stateFlags1 & PLAYER_STATE1_LOADING)) { if (!(this->stateFlags1 & PLAYER_STATE1_LOADING)) {
if (this->skelAnime.moveFlags != 0) { if (this->skelAnime.movementFlags != 0) {
this->skelAnime.moveFlags = 0; this->skelAnime.movementFlags = 0;
return; return;
} }
@ -15261,7 +15261,7 @@ void Player_Action_808502D0(Player* this, PlayState* play) {
if (LinkAnimation_Update(play, &this->skelAnime)) { if (LinkAnimation_Update(play, &this->skelAnime)) {
if (!Player_ActionHandler_7(this, play)) { if (!Player_ActionHandler_7(this, play)) {
u8 sp43 = this->skelAnime.moveFlags; u8 sp43 = this->skelAnime.movementFlags;
LinkAnimationHeader* sp3C; LinkAnimationHeader* sp3C;
if (Player_CheckHostileLockOn(this)) { if (Player_CheckHostileLockOn(this)) {
@ -15271,7 +15271,7 @@ void Player_Action_808502D0(Player* this, PlayState* play) {
} }
func_80832318(this); func_80832318(this);
this->skelAnime.moveFlags = 0; this->skelAnime.movementFlags = 0;
if ((sp3C == &gPlayerAnim_link_fighter_Lpower_jump_kiru_end) && if ((sp3C == &gPlayerAnim_link_fighter_Lpower_jump_kiru_end) &&
(this->modelAnimType != PLAYER_ANIMTYPE_3)) { (this->modelAnimType != PLAYER_ANIMTYPE_3)) {
@ -15280,7 +15280,7 @@ void Player_Action_808502D0(Player* this, PlayState* play) {
func_8083A098(this, sp3C, play); func_8083A098(this, sp3C, play);
this->skelAnime.moveFlags = sp43; this->skelAnime.movementFlags = sp43;
this->stateFlags3 |= PLAYER_STATE3_FINISHED_ATTACKING; this->stateFlags3 |= PLAYER_STATE3_FINISHED_ATTACKING;
} }
} else if (this->heldItemAction == PLAYER_IA_HAMMER) { } else if (this->heldItemAction == PLAYER_IA_HAMMER) {
@ -16553,7 +16553,7 @@ void func_80852A54(PlayState* play, Player* this, CsCmdActorCue* cue) {
func_808529D0(play, this, cue); func_808529D0(play, this, cue);
} }
this->skelAnime.moveFlags = 0; this->skelAnime.movementFlags = 0;
Player_ZeroRootLimbYaw(this); Player_ZeroRootLimbYaw(this);
} }
@ -16564,7 +16564,7 @@ void func_80852B4C(PlayState* play, Player* this, CsCmdActorCue* cue, struct_808
arg3->func(play, this, cue); arg3->func(play, this, cue);
} }
if ((D_80858AA0 & 4) && !(this->skelAnime.moveFlags & 4)) { if ((D_80858AA0 & 4) && !(this->skelAnime.movementFlags & 4)) {
this->skelAnime.morphTable[0].y /= this->ageProperties->unk_08; this->skelAnime.morphTable[0].y /= this->ageProperties->unk_08;
D_80858AA0 = 0; D_80858AA0 = 0;
} }
@ -16603,7 +16603,7 @@ void func_80852C50(PlayState* play, Player* this, CsCmdActorCue* cue) {
} }
} }
D_80858AA0 = this->skelAnime.moveFlags; D_80858AA0 = this->skelAnime.movementFlags;
Player_FinishAnimMovement(this); Player_FinishAnimMovement(this);
osSyncPrintf("TOOL MODE=%d\n", sp24); osSyncPrintf("TOOL MODE=%d\n", sp24);
@ -16626,7 +16626,7 @@ void func_80852C50(PlayState* play, Player* this, CsCmdActorCue* cue) {
void Player_Action_CsAction(Player* this, PlayState* play) { void Player_Action_CsAction(Player* this, PlayState* play) {
if (this->csAction != this->prevCsAction) { if (this->csAction != this->prevCsAction) {
D_80858AA0 = this->skelAnime.moveFlags; D_80858AA0 = this->skelAnime.movementFlags;
Player_FinishAnimMovement(this); Player_FinishAnimMovement(this);
this->prevCsAction = this->csAction; this->prevCsAction = this->csAction;