diff --git a/asm/non_matchings/overlays/actors/ovl_player_actor/func_8084CC98.s b/asm/non_matchings/overlays/actors/ovl_player_actor/func_8084CC98.s index e5729df99f..a252f6fde7 100644 --- a/asm/non_matchings/overlays/actors/ovl_player_actor/func_8084CC98.s +++ b/asm/non_matchings/overlays/actors/ovl_player_actor/func_8084CC98.s @@ -147,7 +147,7 @@ glabel func_8084CC98 /* 1AC9C 8084CEAC 8DAD493C */ lw $t5, %lo(D_8085493C)($t5) /* 1ACA0 8084CEB0 3C064100 */ lui $a2, 0x4100 ## $a2 = 41000000 /* 1ACA4 8084CEB4 AE0D01BC */ sw $t5, 0x01BC($s0) ## 000001BC -/* 1ACA8 8084CEB8 0C028FBA */ jal func_800A3EE8 +/* 1ACA8 8084CEB8 0C028FBA */ jal SkelAnime_SetTransition /* 1ACAC 8084CEBC 8FA40054 */ lw $a0, 0x0054($sp) /* 1ACB0 8084CEC0 86020850 */ lh $v0, 0x0850($s0) ## 00000850 /* 1ACB4 8084CEC4 8FA40054 */ lw $a0, 0x0054($sp) diff --git a/include/functions.h b/include/functions.h index 0e061c5cc0..68580870f8 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1175,7 +1175,7 @@ void SkelAnime_InitLinkAnimetion(GlobalContext* globalCtx, SkelAnime* skelAnime, void func_800A3B8C(SkelAnime* skelAnime); s32 func_800A3BC0(GlobalContext* globalCtx, SkelAnime* skelAnime); void func_800A3C9C(GlobalContext* globalCtx, SkelAnime* skelAnime); -void func_800A3EE8(GlobalContext* globalCtx, SkelAnime* skelAnime, f32 arg2); +void SkelAnime_SetTransition(GlobalContext* globalCtx, SkelAnime* skelAnime, f32 transitionRate); void SkelAnime_LinkChangeAnimation(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, f32 playbackSpeed, f32 frame, f32 frameCount, u8 arg6, f32 transitionRate); @@ -1193,10 +1193,12 @@ void func_800A425C(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetion void func_800A42A0(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, f32 frame); void func_800A42E4(GlobalContext* globalCtx, SkelAnime* skelAnime, f32 frame); -void func_800A431C(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, f32 frame, - LinkAnimetionEntry* linkAnimetionEntrySeg2, f32 arg5, f32 arg6, Vec3s* arg7); -void func_800A43B8(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, f32 frame, - LinkAnimetionEntry* linkAnimetionEntrySeg2, f32 arg5, f32 arg6, Vec3s* arg7); +void func_800A431C(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, + f32 transitionFrame, LinkAnimetionEntry* linkAnimetionEntrySeg2, f32 frame, f32 transitionRate, + Vec3s* actorDrawTable); +void func_800A43B8(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, + f32 transitionFrame, LinkAnimetionEntry* linkAnimetionEntrySeg2, f32 frame, f32 transitionRate, + Vec3s* arg7); s32 func_800A4530(SkelAnime* skelAnime, f32 arg1); void SkelAnime_Init(GlobalContext* globalCtx, SkelAnime* skelAnime, SkeletonHeader* skeletonHeaderSeg, AnimationHeader* animationseg, Vec3s* actorDrawTable, Vec3s* arg5, s32 limbCount); diff --git a/src/code/z_skelanime.c b/src/code/z_skelanime.c index 954de5a414..b7f854aafa 100644 --- a/src/code/z_skelanime.c +++ b/src/code/z_skelanime.c @@ -1060,8 +1060,8 @@ void func_800A390C(GlobalContext* globalCtx, AnimationContext* animationCtx) { } void SkelAnime_InitLinkAnimetion(GlobalContext* globalCtx, SkelAnime* skelAnime, SkeletonHeader* skeletonHeaderSeg, - LinkAnimetionEntry* linkAnimetionEntrySeg, s32 flags, Vec3s* actorDrawTbl, Vec3s* arg6, - s32 limbBufCount) { + LinkAnimetionEntry* linkAnimetionEntrySeg, s32 flags, Vec3s* actorDrawTbl, + Vec3s* transitionDrawTbl, s32 limbBufCount) { char pad[8]; SkeletonHeader* skeletonHeader; size_t allocSize; @@ -1099,7 +1099,7 @@ void SkelAnime_InitLinkAnimetion(GlobalContext* globalCtx, SkelAnime* skelAnime, } skelAnime->actorDrawTbl = (Vec3s*)ALIGN16((u32)actorDrawTbl); - skelAnime->transitionDrawTbl = (Vec3s*)ALIGN16((u32)arg6); + skelAnime->transitionDrawTbl = (Vec3s*)ALIGN16((u32)transitionDrawTbl); } if ((skelAnime->actorDrawTbl == NULL) || (skelAnime->transitionDrawTbl == NULL)) { @@ -1191,7 +1191,7 @@ s32 func_800A3E0C(GlobalContext* globalCtx, SkelAnime* skelAnime) { return 0; } -void func_800A3EE8(GlobalContext* globalCtx, SkelAnime* skelAnime, f32 transitionRate) { +void SkelAnime_SetTransition(GlobalContext* globalCtx, SkelAnime* skelAnime, f32 transitionRate) { skelAnime->transCurrentFrame = 1.0f; skelAnime->transitionStep = 1.0f / transitionRate; } @@ -1276,37 +1276,43 @@ void func_800A42A0(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetion skelAnime->actorDrawTbl); } -void func_800A42E4(GlobalContext* globalCtx, SkelAnime* skelAnime, f32 arg2) { +void func_800A42E4(GlobalContext* globalCtx, SkelAnime* skelAnime, f32 frame) { SkelAnime_LoadAnimationType2(globalCtx, skelAnime->limbCount, skelAnime->actorDrawTbl, skelAnime->transitionDrawTbl, - arg2); + frame); } -void func_800A431C(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, f32 frame, - LinkAnimetionEntry* linkAnimetionEntrySeg2, f32 arg5, f32 arg6, Vec3s* arg7) { - Vec3s* alignedArg7; - SkelAnime_LoadLinkAnimetion(globalCtx, linkAnimetionEntrySeg, (s32)frame, skelAnime->limbCount, +void func_800A431C(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, + f32 transitionFrame, LinkAnimetionEntry* linkAnimetionEntrySeg2, f32 frame, f32 transitionRate, + Vec3s* actorDrawTbl) { + Vec3s* alignedActorDrawTbl; + SkelAnime_LoadLinkAnimetion(globalCtx, linkAnimetionEntrySeg, (s32)transitionFrame, skelAnime->limbCount, skelAnime->actorDrawTbl); - alignedArg7 = (Vec3s*)ALIGN16((u32)arg7); + alignedActorDrawTbl = (Vec3s*)ALIGN16((u32)actorDrawTbl); - SkelAnime_LoadLinkAnimetion(globalCtx, linkAnimetionEntrySeg2, (s32)arg5, skelAnime->limbCount, alignedArg7); - SkelAnime_LoadAnimationType2(globalCtx, skelAnime->limbCount, skelAnime->actorDrawTbl, alignedArg7, arg6); + SkelAnime_LoadLinkAnimetion(globalCtx, linkAnimetionEntrySeg2, (s32)frame, skelAnime->limbCount, + alignedActorDrawTbl); + SkelAnime_LoadAnimationType2(globalCtx, skelAnime->limbCount, skelAnime->actorDrawTbl, alignedActorDrawTbl, + transitionRate); } -void func_800A43B8(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, f32 frame, - LinkAnimetionEntry* linkAnimetionEntrySeg2, f32 arg5, f32 arg6, Vec3s* arg7) { - Vec3s* alignedArg7; +void func_800A43B8(GlobalContext* globalCtx, SkelAnime* skelAnime, LinkAnimetionEntry* linkAnimetionEntrySeg, + f32 transitionFrame, LinkAnimetionEntry* linkAnimetionEntrySeg2, f32 frame, f32 transitionRate, + Vec3s* actorDrawTbl) { + Vec3s* alignedActorDrawTbl; - SkelAnime_LoadLinkAnimetion(globalCtx, linkAnimetionEntrySeg, (s32)frame, skelAnime->limbCount, + SkelAnime_LoadLinkAnimetion(globalCtx, linkAnimetionEntrySeg, (s32)transitionFrame, skelAnime->limbCount, skelAnime->transitionDrawTbl); - alignedArg7 = (Vec3s*)ALIGN16((u32)arg7); + alignedActorDrawTbl = (Vec3s*)ALIGN16((u32)actorDrawTbl); - SkelAnime_LoadLinkAnimetion(globalCtx, linkAnimetionEntrySeg2, (s32)arg5, skelAnime->limbCount, alignedArg7); - SkelAnime_LoadAnimationType2(globalCtx, skelAnime->limbCount, skelAnime->transitionDrawTbl, alignedArg7, arg6); + SkelAnime_LoadLinkAnimetion(globalCtx, linkAnimetionEntrySeg2, (s32)frame, skelAnime->limbCount, + alignedActorDrawTbl); + SkelAnime_LoadAnimationType2(globalCtx, skelAnime->limbCount, skelAnime->transitionDrawTbl, alignedActorDrawTbl, + transitionRate); } -void func_800A4454(SkelAnime* skelAnime) { +void SkelAnime_SetModeStop(SkelAnime* skelAnime) { skelAnime->mode = 2; func_800A3B8C(skelAnime); }