mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-07-08 05:51:03 -07:00
reapply changes needed for C23 build on develop (#5467)
This commit is contained in:
parent
b900f8599a
commit
5b6844ccd8
17 changed files with 89 additions and 86 deletions
|
@ -1378,7 +1378,7 @@ void func_800AA0B4();
|
|||
void func_800AA0F0(void);
|
||||
u32 func_800AA148();
|
||||
void func_800AA15C();
|
||||
void func_800AA16C();
|
||||
void Rumble_ClearRequests();
|
||||
void func_800AA178(u32);
|
||||
View* View_New(GraphicsContext* gfxCtx);
|
||||
void View_Free(View* view);
|
||||
|
|
|
@ -245,27 +245,30 @@ typedef void (*PostCurveLimbDraw)(struct PlayState* play, SkelAnimeCurve* skelCu
|
|||
typedef s32 (*AnimUpdateFunc)();
|
||||
|
||||
typedef struct SkelAnime {
|
||||
/* 0x00 */ u8 limbCount; // Number of limbs in the skeleton
|
||||
/* 0x01 */ u8 mode; // See `AnimationMode`
|
||||
/* 0x02 */ u8 dListCount; // Number of display lists in a flexible skeleton
|
||||
/* 0x03 */ s8 taper; // Tapering to use when morphing between animations. Only used by Door_Warp1.
|
||||
/* 0x04 */ void** skeleton; // An array of pointers to limbs. Can be StandardLimb, LodLimb, or SkinLimb.
|
||||
/* 0x08 */ void* animation; // Can be an AnimationHeader or LinkAnimationHeader.
|
||||
/* 0x0C */ f32 startFrame; // In mode ANIMMODE_LOOP_PARTIAL*, start of partial loop.
|
||||
/* 0x10 */ f32 endFrame; // In mode ANIMMODE_ONCE*, Update returns true when curFrame is equal to this. In mode ANIMMODE_LOOP_PARTIAL*, end of partial loop.
|
||||
/* 0x14 */ f32 animLength; // Total number of frames in the current animation.
|
||||
/* 0x18 */ f32 curFrame; // Current frame in the animation
|
||||
/* 0x1C */ f32 playSpeed; // Multiplied by R_UPDATE_RATE / 3 to get the animation's frame rate.
|
||||
/* 0x00 */ u8 limbCount; // Number of limbs in the skeleton
|
||||
/* 0x01 */ u8 mode; // See `AnimationMode`
|
||||
/* 0x02 */ u8 dListCount; // Number of display lists in a flexible skeleton
|
||||
/* 0x03 */ s8 taper; // Tapering to use when morphing between animations. Only used by Door_Warp1.
|
||||
/* 0x04 */ void** skeleton; // An array of pointers to limbs. Can be StandardLimb, LodLimb, or SkinLimb.
|
||||
/* 0x08 */ void* animation; // Can be an AnimationHeader or LinkAnimationHeader.
|
||||
/* 0x0C */ f32 startFrame; // In mode ANIMMODE_LOOP_PARTIAL*, start of partial loop.
|
||||
/* 0x10 */ f32 endFrame; // In mode ANIMMODE_ONCE*, Update returns true when curFrame is equal to this. In mode ANIMMODE_LOOP_PARTIAL*, end of partial loop.
|
||||
/* 0x14 */ f32 animLength; // Total number of frames in the current animation.
|
||||
/* 0x18 */ f32 curFrame; // Current frame in the animation
|
||||
/* 0x1C */ f32 playSpeed; // Multiplied by R_UPDATE_RATE / 3 to get the animation's frame rate.
|
||||
/* 0x20 */ Vec3s* jointTable; // Current translation of model and rotations of all limbs
|
||||
/* 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]
|
||||
/* 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.
|
||||
/* 0x34 */ s8 initFlags; // Flags used when initializing Link's skeleton
|
||||
/* 0x35 */ u8 moveFlags; // Flags used for animations that move the actor in worldspace.
|
||||
/* 0x36 */ s16 prevRot; // Previous rotation in worldspace.
|
||||
/* 0x38 */ Vec3s prevTransl; // Previous modelspace translation.
|
||||
/* 0x3E */ Vec3s baseTransl; // Base modelspace translation.
|
||||
/* 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
|
||||
/* 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
|
||||
/* 0x35 */ u8 movementFlags; // Flags used for animations that move the actor in worldspace.
|
||||
/* 0x36 */ s16 prevRot; // Previous rotation in worldspace.
|
||||
/* 0x38 */ Vec3s prevTransl; // Previous modelspace translation.
|
||||
/* 0x3E */ Vec3s baseTransl; // Base modelspace translation.
|
||||
SkeletonHeader* skeletonHeader;
|
||||
} SkelAnime; // size = 0x44
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ void func_800AA15C(void) {
|
|||
D_80160FD0.unk_104 = 2;
|
||||
}
|
||||
|
||||
void func_800AA16C(void) {
|
||||
void Rumble_ClearRequests(void) {
|
||||
D_80160FD0.unk_104 = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -892,7 +892,7 @@ void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContex
|
|||
|
||||
if ((((void)0, gSaveContext.gameMode) != GAMEMODE_NORMAL) &&
|
||||
(((void)0, gSaveContext.gameMode) != GAMEMODE_END_CREDITS)) {
|
||||
func_800AA16C(play);
|
||||
Rumble_ClearRequests();
|
||||
}
|
||||
|
||||
if (pauseCtx->state == 0) {
|
||||
|
|
|
@ -1289,12 +1289,12 @@ s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx**
|
|||
D_80160000 = &this->meleeWeaponInfo[2].base;
|
||||
|
||||
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->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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1170,9 +1170,9 @@ void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeade
|
|||
*/
|
||||
void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
|
||||
if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) {
|
||||
skelAnime->update = LinkAnimation_Loop;
|
||||
skelAnime->update.link = LinkAnimation_Loop;
|
||||
} else {
|
||||
skelAnime->update = LinkAnimation_Once;
|
||||
skelAnime->update.link = LinkAnimation_Once;
|
||||
}
|
||||
skelAnime->morphWeight = 0.0f;
|
||||
}
|
||||
|
@ -1182,7 +1182,7 @@ void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
|
|||
* finishes.
|
||||
*/
|
||||
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);
|
||||
morphFrames = -morphFrames;
|
||||
} else {
|
||||
skelAnime->update = LinkAnimation_Morph;
|
||||
skelAnime->update.link = LinkAnimation_Morph;
|
||||
AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount,
|
||||
skelAnime->morphTable);
|
||||
}
|
||||
|
@ -1559,11 +1559,11 @@ s32 SkelAnime_InitSkin(PlayState* play, SkelAnime* skelAnime, SkeletonHeader* sk
|
|||
*/
|
||||
void SkelAnime_SetUpdate(SkelAnime* skelAnime) {
|
||||
if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) {
|
||||
skelAnime->update = SkelAnime_LoopFull;
|
||||
skelAnime->update.normal = SkelAnime_LoopFull;
|
||||
} else if (skelAnime->mode <= ANIMMODE_ONCE_INTERP) {
|
||||
skelAnime->update = SkelAnime_Once;
|
||||
skelAnime->update.normal = SkelAnime_Once;
|
||||
} else {
|
||||
skelAnime->update = SkelAnime_LoopPartial;
|
||||
skelAnime->update.normal = SkelAnime_LoopPartial;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1572,7 +1572,7 @@ void SkelAnime_SetUpdate(SkelAnime* skelAnime) {
|
|||
* finishes.
|
||||
*/
|
||||
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;
|
||||
} else {
|
||||
if (taper != ANIMTAPER_NONE) {
|
||||
skelAnime->update = SkelAnime_MorphTaper;
|
||||
skelAnime->update.normal = SkelAnime_MorphTaper;
|
||||
skelAnime->taper = taper;
|
||||
} else {
|
||||
skelAnime->update = SkelAnime_Morph;
|
||||
skelAnime->update.normal = SkelAnime_Morph;
|
||||
}
|
||||
SkelAnime_GetFrameData(animation, startFrame, skelAnime->limbCount, skelAnime->morphTable);
|
||||
}
|
||||
|
@ -1895,7 +1895,7 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle) {
|
|||
f32 sin;
|
||||
f32 cos;
|
||||
|
||||
if (skelAnime->moveFlags & ANIM_FLAG_NOMOVE) {
|
||||
if (skelAnime->movementFlags & ANIM_FLAG_NOMOVE) {
|
||||
diff->x = diff->z = 0.0f;
|
||||
} else {
|
||||
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->prevTransl.z = skelAnime->jointTable[0].z;
|
||||
skelAnime->jointTable[0].z = skelAnime->baseTransl.z;
|
||||
if (skelAnime->moveFlags & ANIM_FLAG_UPDATEY) {
|
||||
if (skelAnime->moveFlags & ANIM_FLAG_NOMOVE) {
|
||||
if (skelAnime->movementFlags & ANIM_FLAG_UPDATEY) {
|
||||
if (skelAnime->movementFlags & ANIM_FLAG_NOMOVE) {
|
||||
diff->y = 0.0f;
|
||||
} else {
|
||||
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;
|
||||
skelAnime->prevTransl.y = skelAnime->jointTable[0].y;
|
||||
}
|
||||
skelAnime->moveFlags &= ~ANIM_FLAG_NOMOVE;
|
||||
skelAnime->movementFlags &= ~ANIM_FLAG_NOMOVE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -175,19 +175,19 @@ void DemoEc_UpdateBgFlags(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);
|
||||
}
|
||||
|
||||
void func_8096D5D4(DemoEc* this, PlayState* play) {
|
||||
this->skelAnime.baseTransl = 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);
|
||||
}
|
||||
|
||||
void func_8096D64C(DemoEc* this, PlayState* play) {
|
||||
this->skelAnime.moveFlags |= 3;
|
||||
this->skelAnime.movementFlags |= 3;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
|
||||
}
|
||||
|
||||
|
|
|
@ -55,12 +55,12 @@ s32 DemoIk_CheckCue(PlayState* play, u16 action, s32 index) {
|
|||
}
|
||||
|
||||
void DemoIk_SetMove(DemoIk* this, PlayState* play) {
|
||||
this->skelAnime.moveFlags |= 1;
|
||||
this->skelAnime.movementFlags |= 1;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
|
||||
}
|
||||
|
||||
void DemoIk_EndMove(DemoIk* this) {
|
||||
this->skelAnime.moveFlags &= ~1;
|
||||
this->skelAnime.movementFlags &= ~1;
|
||||
}
|
||||
|
||||
f32 DemoIk_GetCurFrame(DemoIk* this) {
|
||||
|
|
|
@ -342,7 +342,7 @@ void func_80A795C8(EnIn* this, PlayState* play) {
|
|||
|
||||
void func_80A79690(SkelAnime* skelAnime, EnIn* this, PlayState* play) {
|
||||
if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) {
|
||||
skelAnime->moveFlags |= 3;
|
||||
skelAnime->movementFlags |= 3;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -743,7 +743,7 @@ void EnNb_InitDemo6KInConfrontation(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);
|
||||
}
|
||||
|
||||
|
|
|
@ -393,17 +393,17 @@ s32 EnRu1_UpdateSkelAnime(EnRu1* this) {
|
|||
}
|
||||
|
||||
void func_80AEB364(EnRu1* this, PlayState* play) {
|
||||
this->skelAnime.moveFlags |= 1;
|
||||
this->skelAnime.movementFlags |= 1;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
|
||||
}
|
||||
|
||||
void func_80AEB3A4(EnRu1* this, PlayState* play) {
|
||||
this->skelAnime.moveFlags |= 1;
|
||||
this->skelAnime.movementFlags |= 1;
|
||||
func_80AEB364(this, play);
|
||||
}
|
||||
|
||||
void func_80AEB3CC(EnRu1* this) {
|
||||
this->skelAnime.moveFlags &= ~0x1;
|
||||
this->skelAnime.movementFlags &= ~0x1;
|
||||
}
|
||||
|
||||
void func_80AEB3DC(EnRu1* this, PlayState* play) {
|
||||
|
@ -464,7 +464,7 @@ void func_80AEB6E0(EnRu1* this, PlayState* play) {
|
|||
SkelAnime* skelAnime = &this->skelAnime;
|
||||
|
||||
if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) {
|
||||
skelAnime->moveFlags |= 3;
|
||||
skelAnime->movementFlags |= 3;
|
||||
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->prevTransl = skelAnime->jointTable[0];
|
||||
if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) {
|
||||
skelAnime->moveFlags |= 3;
|
||||
skelAnime->movementFlags |= 3;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void func_80AEB7D0(EnRu1* this) {
|
||||
this->skelAnime.moveFlags &= ~0x3;
|
||||
this->skelAnime.movementFlags &= ~0x3;
|
||||
}
|
||||
|
||||
f32 func_80AEB7E0(CsCmdActorCue* csCmdNPCAction, PlayState* play) {
|
||||
|
|
|
@ -1595,7 +1595,7 @@ void func_8086318C(EnTest* this, PlayState* play) {
|
|||
|
||||
void EnTest_SetupRecoil(EnTest* this) {
|
||||
this->meleeWeaponState = 0;
|
||||
this->skelAnime.moveFlags = 2;
|
||||
this->skelAnime.movementFlags = 2;
|
||||
this->unk_7C8 = 0x13;
|
||||
this->skelAnime.playSpeed = -1.0f;
|
||||
this->skelAnime.startFrame = this->skelAnime.curFrame;
|
||||
|
|
|
@ -249,25 +249,25 @@ void func_80B3C8CC(EnXc* this, PlayState* play) {
|
|||
SkelAnime* skelAnime = &this->skelAnime;
|
||||
|
||||
if (skelAnime->jointTable[0].y >= skelAnime->baseTransl.y) {
|
||||
skelAnime->moveFlags |= 3;
|
||||
skelAnime->movementFlags |= 3;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, skelAnime, 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void func_80B3C924(EnXc* this, PlayState* play) {
|
||||
this->skelAnime.moveFlags |= 3;
|
||||
this->skelAnime.movementFlags |= 3;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
|
||||
}
|
||||
|
||||
void func_80B3C964(EnXc* this, PlayState* play) {
|
||||
this->skelAnime.baseTransl = 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);
|
||||
}
|
||||
|
||||
void func_80B3C9DC(EnXc* this) {
|
||||
this->skelAnime.moveFlags &= ~0x3;
|
||||
this->skelAnime.movementFlags &= ~0x3;
|
||||
}
|
||||
|
||||
void func_80B3C9EC(EnXc* this) {
|
||||
|
|
|
@ -348,7 +348,7 @@ void func_80B4B834(CsCmdActorCue* npcAction, Vec3f* pos) {
|
|||
}
|
||||
|
||||
void func_80B4B874(EnZl1* this, PlayState* play) {
|
||||
this->skelAnime.moveFlags |= 1;
|
||||
this->skelAnime.movementFlags |= 1;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
|
||||
}
|
||||
|
||||
|
|
|
@ -305,7 +305,7 @@ void EnZl4_UpdateFace(EnZl4* this) {
|
|||
}
|
||||
|
||||
void EnZl4_SetMove(EnZl4* this, PlayState* play) {
|
||||
this->skelAnime.moveFlags |= 1;
|
||||
this->skelAnime.movementFlags |= 1;
|
||||
AnimationContext_SetMoveActor(play, &this->actor, &this->skelAnime, 1.0f);
|
||||
}
|
||||
|
||||
|
|
|
@ -53,12 +53,12 @@ void ObjHsblock_SetupAction(ObjHsblock* this, ObjHsblockActionFunc 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;
|
||||
CollisionHeader* colHeader = NULL;
|
||||
s32 pad2[2];
|
||||
|
||||
DynaPolyActor_Init(&this->dyna, moveFlags);
|
||||
DynaPolyActor_Init(&this->dyna, movementFlags);
|
||||
CollisionHeader_GetVirtual(collision, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
if (this->dyna.bgId == BG_ACTOR_MAX) {
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
void Player_FinishAnimMovement(Player* this) {
|
||||
if (this->skelAnime.moveFlags != 0) {
|
||||
if (this->skelAnime.movementFlags != 0) {
|
||||
Player_ApplyYawFromAnim(this);
|
||||
|
||||
this->skelAnime.jointTable[0].x = this->skelAnime.baseTransl.x;
|
||||
this->skelAnime.jointTable[0].z = this->skelAnime.baseTransl.z;
|
||||
|
||||
if (this->skelAnime.moveFlags & 8) {
|
||||
if (this->skelAnime.moveFlags & 2) {
|
||||
if (this->skelAnime.movementFlags & 8) {
|
||||
if (this->skelAnime.movementFlags & 2) {
|
||||
this->skelAnime.jointTable[0].y = this->skelAnime.prevTransl.y;
|
||||
}
|
||||
} else {
|
||||
|
@ -1942,7 +1942,7 @@ void Player_FinishAnimMovement(Player* 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) {
|
||||
Vec3f diff;
|
||||
|
||||
this->skelAnime.moveFlags = movementFlags;
|
||||
this->skelAnime.movementFlags = movementFlags;
|
||||
this->skelAnime.prevTransl = this->skelAnime.baseTransl;
|
||||
|
||||
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) {
|
||||
if (flags & PLAYER_ANIM_MOVEMENT_RESET_BY_AGE) {
|
||||
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
|
||||
// `PLAYER_ANIM_MOVEMENT_RESET_BY_AGE` is not set, then this case will be used.
|
||||
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`
|
||||
this->skelAnime.moveFlags = flags /*&& 0xFF*/;
|
||||
this->skelAnime.movementFlags = flags /*&& 0xFF*/;
|
||||
|
||||
Player_ZeroSpeedXZ(this);
|
||||
AnimationContext_DisableQueue(play);
|
||||
|
@ -3138,7 +3138,7 @@ s32 func_80835588(Player* this, PlayState* play) {
|
|||
void Player_SetParallel(Player* this) {
|
||||
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)) {
|
||||
// snap to the wall
|
||||
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) {
|
||||
s32 savedMovementFlags;
|
||||
|
||||
savedMovementFlags = this->skelAnime.moveFlags;
|
||||
savedMovementFlags = this->skelAnime.movementFlags;
|
||||
|
||||
// Setting `skelAnime.movementFlags` to 0 will prevent `Player_FinishAnimMovement` from ending
|
||||
// AnimMovement when `Player_SetupAction` is called.
|
||||
this->skelAnime.moveFlags = 0;
|
||||
this->skelAnime.movementFlags = 0;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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)) {
|
||||
|
||||
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) &&
|
||||
(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);
|
||||
}
|
||||
func_8083D0A8(play, this, this->actor.velocity.y);
|
||||
|
@ -12059,7 +12059,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
|
|||
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)) ||
|
||||
((this->currentBoots == PLAYER_BOOTS_HOVER || GameInteractor_GetSlipperyFloorActive()) &&
|
||||
!(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);
|
||||
|
||||
if (this->skelAnime.moveFlags & 8) {
|
||||
if (this->skelAnime.movementFlags & 8) {
|
||||
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);
|
||||
|
@ -13113,7 +13113,7 @@ void Player_Action_Talk(Player* this, PlayState* play) {
|
|||
} else if (func_808332B8(this)) {
|
||||
Player_Action_8084D610(this, play);
|
||||
} else if (!Player_CheckHostileLockOn(this) && LinkAnimation_Update(play, &this->skelAnime)) {
|
||||
if (this->skelAnime.moveFlags != 0) {
|
||||
if (this->skelAnime.movementFlags != 0) {
|
||||
Player_FinishAnimMovement(this);
|
||||
|
||||
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 (!(this->stateFlags1 & PLAYER_STATE1_LOADING)) {
|
||||
if (this->skelAnime.moveFlags != 0) {
|
||||
this->skelAnime.moveFlags = 0;
|
||||
if (this->skelAnime.movementFlags != 0) {
|
||||
this->skelAnime.movementFlags = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -15261,7 +15261,7 @@ void Player_Action_808502D0(Player* this, PlayState* play) {
|
|||
|
||||
if (LinkAnimation_Update(play, &this->skelAnime)) {
|
||||
if (!Player_ActionHandler_7(this, play)) {
|
||||
u8 sp43 = this->skelAnime.moveFlags;
|
||||
u8 sp43 = this->skelAnime.movementFlags;
|
||||
LinkAnimationHeader* sp3C;
|
||||
|
||||
if (Player_CheckHostileLockOn(this)) {
|
||||
|
@ -15271,7 +15271,7 @@ void Player_Action_808502D0(Player* this, PlayState* play) {
|
|||
}
|
||||
|
||||
func_80832318(this);
|
||||
this->skelAnime.moveFlags = 0;
|
||||
this->skelAnime.movementFlags = 0;
|
||||
|
||||
if ((sp3C == &gPlayerAnim_link_fighter_Lpower_jump_kiru_end) &&
|
||||
(this->modelAnimType != PLAYER_ANIMTYPE_3)) {
|
||||
|
@ -15280,7 +15280,7 @@ void Player_Action_808502D0(Player* this, PlayState* play) {
|
|||
|
||||
func_8083A098(this, sp3C, play);
|
||||
|
||||
this->skelAnime.moveFlags = sp43;
|
||||
this->skelAnime.movementFlags = sp43;
|
||||
this->stateFlags3 |= PLAYER_STATE3_FINISHED_ATTACKING;
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
|
||||
this->skelAnime.moveFlags = 0;
|
||||
this->skelAnime.movementFlags = 0;
|
||||
Player_ZeroRootLimbYaw(this);
|
||||
}
|
||||
|
||||
|
@ -16564,7 +16564,7 @@ void func_80852B4C(PlayState* play, Player* this, CsCmdActorCue* cue, struct_808
|
|||
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;
|
||||
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);
|
||||
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) {
|
||||
if (this->csAction != this->prevCsAction) {
|
||||
D_80858AA0 = this->skelAnime.moveFlags;
|
||||
D_80858AA0 = this->skelAnime.movementFlags;
|
||||
|
||||
Player_FinishAnimMovement(this);
|
||||
this->prevCsAction = this->csAction;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue