Rename LinkAnimation to PlayerAnimation

This commit is contained in:
Angie 2022-11-13 18:41:23 -03:00
parent a0c65bb3c6
commit d92e2cfc78
11 changed files with 149 additions and 150 deletions

View File

@ -2036,7 +2036,9 @@ s32 Entrance_GetSceneId(u16 entrance);
s32 Entrance_GetSceneIdAbsolute(u16 entrance);
s32 Entrance_GetSpawnNum(u16 entrance);
s32 Entrance_GetTransitionFlags(u16 entrance);
s32 Schedule_RunScript(PlayState* play, u8* script, ScheduleOutput* output);
void SkelAnime_DrawLimbLod(PlayState* play, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor, s32 lod);
void SkelAnime_DrawLod(PlayState* play, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor, s32 lod);
void SkelAnime_DrawFlexLimbLod(PlayState* play, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawFlex overrideLimbDraw, PostLimbDrawFlex postLimbDraw, Actor* actor, s32 lod, Mtx** mtx);
@ -2063,7 +2065,7 @@ void AnimationContext_Reset(AnimationContext* animationCtx);
void AnimationContext_SetNextQueue(PlayState* play);
void AnimationContext_DisableQueue(PlayState* play);
AnimationEntry* AnimationContext_AddEntry(AnimationContext* animationCtx, AnimationType type);
void AnimationContext_SetLoadFrame(PlayState* play, LinkAnimationHeader* animation, s32 frame, s32 limbCount, Vec3s* frameTable);
void AnimationContext_SetLoadFrame(PlayState* play, PlayerAnimationHeader* animation, s32 frame, s32 limbCount, Vec3s* frameTable);
void AnimationContext_SetCopyAll(PlayState* play, s32 vecCount, Vec3s* dst, Vec3s* src);
void AnimationContext_SetInterp(PlayState* play, s32 vecCount, Vec3s* base, Vec3s* mod, f32 weight);
void AnimationContext_SetCopyTrue(PlayState* play, s32 vecCount, Vec3s* dst, Vec3s* src, u8* copyFlag);
@ -2076,29 +2078,25 @@ void AnimationContext_CopyTrue(PlayState* play, AnimationEntryData* data);
void AnimationContext_CopyFalse(PlayState* play, AnimationEntryData* data);
void AnimationContext_MoveActor(PlayState* play, AnimationEntryData* data);
void AnimationContext_Update(PlayState* play, AnimationContext* animationCtx);
void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, LinkAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer, s32 limbBufCount);
void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime);
s32 LinkAnimation_Update(PlayState* play, SkelAnime* skelAnime);
s32 LinkAnimation_Morph(PlayState* play, SkelAnime* skelAnime);
void LinkAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime);
s32 LinkAnimation_Loop(PlayState* play, SkelAnime* skelAnime);
s32 LinkAnimation_Once(PlayState* play, SkelAnime* skelAnime);
void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, PlayerAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer, s32 limbBufCount);
void PlayerAnimation_SetUpdateFunction(SkelAnime* skelAnime);
s32 PlayerAnimation_Update(PlayState* play, SkelAnime* skelAnime);
void Animation_SetMorph(PlayState* play, SkelAnime* skelAnime, f32 morphFrames);
void LinkAnimation_Change(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 playSpeed, f32 startFrame, f32 endFrame, u8 mode, f32 morphFrames);
void LinkAnimation_PlayOnce(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation);
void LinkAnimation_PlayOnceSetSpeed(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 playSpeed);
void LinkAnimation_PlayLoop(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation);
void LinkAnimation_PlayLoopSetSpeed(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 playSpeed);
void LinkAnimation_CopyJointToMorph(PlayState* play, SkelAnime* skelAnime);
void LinkAnimation_CopyMorphToJoint(PlayState* play, SkelAnime* skelAnime);
void LinkAnimation_LoadToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 frame);
void LinkAnimation_LoadToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 frame);
void LinkAnimation_InterpJointMorph(PlayState* play, SkelAnime* skelAnime, f32 weight);
void LinkAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1, LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer);
void LinkAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1, LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer);
void LinkAnimation_EndLoop(SkelAnime* skelAnime);
void PlayerAnimation_Change(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 playSpeed, f32 startFrame, f32 endFrame, u8 mode, f32 morphFrames);
void PlayerAnimation_PlayOnce(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation);
void PlayerAnimation_PlayOnceSetSpeed(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 playSpeed);
void PlayerAnimation_PlayLoop(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation);
void PlayerAnimation_PlayLoopSetSpeed(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 playSpeed);
void PlayerAnimation_CopyJointToMorph(PlayState* play, SkelAnime* skelAnime);
void PlayerAnimation_CopyMorphToJoint(PlayState* play, SkelAnime* skelAnime);
void PlayerAnimation_LoadToMorph(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 frame);
void PlayerAnimation_LoadToJoint(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 frame);
void PlayerAnimation_InterpJointMorph(PlayState* play, SkelAnime* skelAnime, f32 weight);
void PlayerAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation1, f32 frame1, PlayerAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer);
void PlayerAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation1, f32 frame1, PlayerAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer);
void PlayerAnimation_EndLoop(SkelAnime* skelAnime);
s32 Animation_OnFrameImpl(SkelAnime* skelAnime, f32 frame, f32 updateRate);
s32 LinkAnimation_OnFrame(SkelAnime* skelAnime, f32 frame);
s32 PlayerAnimation_OnFrame(SkelAnime* skelAnime, f32 frame);
void SkelAnime_Init(PlayState* play, SkelAnime* skelAnime, SkeletonHeader* skeletonHeaderSeg, AnimationHeader* animation, Vec3s* jointTable, Vec3s* morphTable, s32 limbCount);
void SkelAnime_InitFlex(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, AnimationHeader* animation, Vec3s* jointTable, Vec3s* morphTable, s32 limbCount);
void SkelAnime_InitSkin(GameState* gameState, SkelAnime* skelAnime, SkeletonHeader* skeletonHeaderSeg, AnimationHeader* animation);
@ -2126,6 +2124,7 @@ void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle);
s32 Animation_OnFrame(SkelAnime* skelAnime, f32 frame);
void SkelAnime_Free(SkelAnime* skelAnime, PlayState* play);
void SkelAnime_CopyFrameTable(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src);
void SkinMatrix_Vec3fMtxFMultXYZW(MtxF* mf, Vec3f* src, Vec3f* xyzDest, f32* wDest);
void SkinMatrix_Vec3fMtxFMultXYZ(MtxF* mf, Vec3f* src, Vec3f* dest);
void SkinMatrix_MtxFMtxFMult(MtxF* mfB, MtxF* mfA, MtxF* dest);

View File

@ -1049,7 +1049,7 @@ struct PlayState {
/* 0x1878C */ void (*unk_1878C)(struct PlayState* play);
/* 0x18790 */ void (*unk_18790)(struct PlayState* play, s16 arg1);
/* 0x18794 */ PlayerItemAction (*unk_18794)(struct PlayState* play, Player* player, ItemId itemId);
/* 0x18798 */ s32 (*setPlayerTalkAnim)(struct PlayState* play, LinkAnimationHeader* talkAnim, s32 animMode);
/* 0x18798 */ s32 (*setPlayerTalkAnim)(struct PlayState* play, PlayerAnimationHeader* talkAnim, s32 animMode);
/* 0x1879C */ s16 playerActorCsIds[10];
/* 0x187B0 */ MtxF viewProjectionMtxF;
/* 0x187F0 */ Vec3f unk_187F0;

View File

@ -175,7 +175,7 @@ typedef struct {
void* segmentVoid;
struct PlayerAnimationFrame* segment;
};
} LinkAnimationHeader; // size = 0x8
} PlayerAnimationHeader; // size = 0x8
typedef struct SkelAnime {
/* 0x00 */ u8 limbCount; // Number of limbs in the skeleton
@ -183,7 +183,7 @@ typedef struct SkelAnime {
/* 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.
/* 0x08 */ void* animation; // Can be an AnimationHeader or PlayerAnimationHeader.
/* 0x0C */ f32 startFrame; // In mode 4, start of partial loop.
/* 0x10 */ f32 endFrame; // In mode 2, Update returns true when curFrame is equal to this. In mode 4, end of partial loop.
/* 0x14 */ f32 animLength; // Total number of frames in the current animation's file.
@ -324,4 +324,8 @@ typedef s32 (*OverrideKeyframeDrawScaled)(struct PlayState* play, SkeletonInfo*
typedef void (*PostKeyframeDrawScaled)(struct PlayState* play, SkeletonInfo* skeleton, s32 limbIndex, Gfx** dList,
u8* flags, struct Actor* actor, Vec3f* scale, Vec3s* rot, Vec3f* pos);
// ZAPD compatibility typedefs
// TODO: Remove when ZAPD adds support for them
typedef PlayerAnimationHeader LinkAnimationHeader;
#endif

View File

@ -399,15 +399,15 @@ typedef struct PlayerAgeProperties {
/* 0x94 */ u16 surfaceSfxIdOffset;
/* 0x98 */ f32 unk_98;
/* 0x9C */ f32 unk_9C;
/* 0xA0 */ LinkAnimationHeader* unk_A0;
/* 0xA4 */ LinkAnimationHeader* unk_A4;
/* 0xA8 */ LinkAnimationHeader* unk_A8;
/* 0xAC */ LinkAnimationHeader* unk_AC;
/* 0xB0 */ LinkAnimationHeader* unk_B0;
/* 0xB4 */ LinkAnimationHeader* unk_B4[4];
/* 0xC4 */ LinkAnimationHeader* unk_C4[2];
/* 0xCC */ LinkAnimationHeader* unk_CC[2];
/* 0xD4 */ LinkAnimationHeader* unk_D4[2];
/* 0xA0 */ PlayerAnimationHeader* unk_A0;
/* 0xA4 */ PlayerAnimationHeader* unk_A4;
/* 0xA8 */ PlayerAnimationHeader* unk_A8;
/* 0xAC */ PlayerAnimationHeader* unk_AC;
/* 0xB0 */ PlayerAnimationHeader* unk_B0;
/* 0xB4 */ PlayerAnimationHeader* unk_B4[4];
/* 0xC4 */ PlayerAnimationHeader* unk_C4[2];
/* 0xCC */ PlayerAnimationHeader* unk_CC[2];
/* 0xD4 */ PlayerAnimationHeader* unk_D4[2];
} PlayerAgeProperties; // size = 0xDC
typedef struct {

View File

@ -2,14 +2,14 @@
#define ANIM_INTERP 1
s32 LinkAnimation_Loop(PlayState* play, SkelAnime* skelAnime);
s32 LinkAnimation_Once(PlayState* play, SkelAnime* skelAnime);
s32 PlayerAnimation_Loop(PlayState* play, SkelAnime* skelAnime);
s32 PlayerAnimation_Once(PlayState* play, SkelAnime* skelAnime);
s32 SkelAnime_LoopFull(SkelAnime* skelAnime);
s32 SkelAnime_LoopPartial(SkelAnime* skelAnime);
s32 SkelAnime_Once(SkelAnime* skelAnime);
void Animation_PlayLoop(SkelAnime* skelAnime, AnimationHeader* animation);
void SkelAnime_UpdateTranslation(SkelAnime* skelAnime, Vec3f* diff, s16 angle);
void LinkAnimation_Change(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 playSpeed,
void PlayerAnimation_Change(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 playSpeed,
f32 startFrame, f32 endFrame, u8 mode, f32 morphFrames);
void SkelAnime_CopyFrameTable(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src);
@ -43,7 +43,7 @@ void SkelAnime_DrawLimbLod(PlayState* play, s32 limbIndex, void** skeleton, Vec3
pos.z = limb->jointPos.z;
dList = limb->dLists[lod];
if ((overrideLimbDraw == NULL) || (overrideLimbDraw(play, limbIndex, &dList, &pos, &rot, actor) == 0)) {
if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, limbIndex, &dList, &pos, &rot, actor)) {
Matrix_TranslateRotateZYX(&pos, &rot);
if (dList != NULL) {
Gfx* polyTemp = POLY_OPA_DISP;
@ -990,12 +990,12 @@ AnimationEntry* AnimationContext_AddEntry(AnimationContext* animationCtx, Animat
/**
* Requests loading frame data from the Link animation into frameTable
*/
void AnimationContext_SetLoadFrame(PlayState* play, LinkAnimationHeader* animation, s32 frame, s32 limbCount,
void AnimationContext_SetLoadFrame(PlayState* play, PlayerAnimationHeader* animation, s32 frame, s32 limbCount,
Vec3s* frameTable) {
AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMATION_LINKANIMETION);
if (entry != NULL) {
LinkAnimationHeader* linkAnimHeader = Lib_SegmentedToVirtual(animation);
PlayerAnimationHeader* linkAnimHeader = Lib_SegmentedToVirtual(animation);
uintptr_t ram = frameTable;
osCreateMesgQueue(&entry->data.load.msgQueue, &entry->data.load.msg, 1);
@ -1187,7 +1187,7 @@ void AnimationContext_Update(PlayState* play, AnimationContext* animationCtx) {
* tables if not given.
*/
void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg,
LinkAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer,
PlayerAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer,
s32 limbBufCount) {
FlexSkeletonHeader* skeletonHeader;
s32 headerJointCount;
@ -1224,17 +1224,17 @@ void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeade
skelAnime->morphTable = (void*)ALIGN16((uintptr_t)morphTableBuffer);
}
LinkAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f);
PlayerAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f);
}
/**
* Sets the update function of a SkelAnime that uses Link animations based on its mode
*/
void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
void PlayerAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) {
skelAnime->update.link = LinkAnimation_Loop;
skelAnime->update.link = PlayerAnimation_Loop;
} else {
skelAnime->update.link = LinkAnimation_Once;
skelAnime->update.link = PlayerAnimation_Once;
}
skelAnime->morphWeight = 0.0f;
}
@ -1243,7 +1243,7 @@ void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
* Advances the current Link animation and updates all frame tables. If the animation plays once, returns true when it
* finishes.
*/
s32 LinkAnimation_Update(PlayState* play, SkelAnime* skelAnime) {
s32 PlayerAnimation_Update(PlayState* play, SkelAnime* skelAnime) {
return skelAnime->update.link(play, skelAnime);
}
@ -1251,13 +1251,13 @@ s32 LinkAnimation_Update(PlayState* play, SkelAnime* skelAnime) {
* Requests an interpolation between the pose in jointTable to the one in morphTable, advancing the morph but not the
* animation frame
*/
s32 LinkAnimation_Morph(PlayState* play, SkelAnime* skelAnime) {
s32 PlayerAnimation_Morph(PlayState* play, SkelAnime* skelAnime) {
f32 prevMorphWeight = skelAnime->morphWeight;
f32 updateRate = (s32)play->state.framerateDivisor * 0.5f;
skelAnime->morphWeight -= skelAnime->morphRate * updateRate;
if (skelAnime->morphWeight <= 0.0f) {
LinkAnimation_SetUpdateFunction(skelAnime);
PlayerAnimation_SetUpdateFunction(skelAnime);
}
AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable,
@ -1269,7 +1269,7 @@ s32 LinkAnimation_Morph(PlayState* play, SkelAnime* skelAnime) {
* Requests a load of the next frame of a Link animation, advances the morph, and requests an interpolation between
* jointTable and morphTable
*/
void LinkAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime) {
void PlayerAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime) {
AnimationContext_SetLoadFrame(play, skelAnime->animation, skelAnime->curFrame, skelAnime->limbCount,
skelAnime->jointTable);
if (skelAnime->morphWeight != 0) {
@ -1287,7 +1287,7 @@ void LinkAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime) {
/**
* Advances a Link animation that loops over its full length
*/
s32 LinkAnimation_Loop(PlayState* play, SkelAnime* skelAnime) {
s32 PlayerAnimation_Loop(PlayState* play, SkelAnime* skelAnime) {
f32 updateRate = (s32)play->state.framerateDivisor * 0.5f;
skelAnime->curFrame += skelAnime->playSpeed * updateRate;
@ -1296,18 +1296,18 @@ s32 LinkAnimation_Loop(PlayState* play, SkelAnime* skelAnime) {
} else if (skelAnime->animLength <= skelAnime->curFrame) {
skelAnime->curFrame -= skelAnime->animLength;
}
LinkAnimation_AnimateFrame(play, skelAnime);
PlayerAnimation_AnimateFrame(play, skelAnime);
return 0;
}
/**
* Advances a Link animation that stops at endFrame and returns true when it is reached.
*/
s32 LinkAnimation_Once(PlayState* play, SkelAnime* skelAnime) {
s32 PlayerAnimation_Once(PlayState* play, SkelAnime* skelAnime) {
f32 updateRate = (s32)play->state.framerateDivisor * 0.5f;
if (skelAnime->curFrame == skelAnime->endFrame) {
LinkAnimation_AnimateFrame(play, skelAnime);
PlayerAnimation_AnimateFrame(play, skelAnime);
return 1;
}
@ -1322,7 +1322,7 @@ s32 LinkAnimation_Once(PlayState* play, SkelAnime* skelAnime) {
skelAnime->curFrame -= skelAnime->animLength;
}
}
LinkAnimation_AnimateFrame(play, skelAnime);
PlayerAnimation_AnimateFrame(play, skelAnime);
return 0;
}
@ -1340,23 +1340,23 @@ void Animation_SetMorph(PlayState* play, SkelAnime* skelAnime, f32 morphFrames)
* animation, then start the new animation. Negative morph frames start the new animation immediately, modified by the
* pose immediately before the animation change.
*/
void LinkAnimation_Change(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 playSpeed,
void PlayerAnimation_Change(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 playSpeed,
f32 startFrame, f32 endFrame, u8 mode, f32 morphFrames) {
skelAnime->mode = mode;
if ((morphFrames != 0.0f) && ((animation != skelAnime->animation) || (startFrame != skelAnime->curFrame))) {
if (morphFrames < 0) {
LinkAnimation_SetUpdateFunction(skelAnime);
PlayerAnimation_SetUpdateFunction(skelAnime);
SkelAnime_CopyFrameTable(skelAnime, skelAnime->morphTable, skelAnime->jointTable);
morphFrames = -morphFrames;
} else {
skelAnime->update.link = LinkAnimation_Morph;
skelAnime->update.link = PlayerAnimation_Morph;
AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount,
skelAnime->morphTable);
}
skelAnime->morphWeight = 1.0f;
skelAnime->morphRate = 1.0f / morphFrames;
} else {
LinkAnimation_SetUpdateFunction(skelAnime);
PlayerAnimation_SetUpdateFunction(skelAnime);
AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount, skelAnime->jointTable);
skelAnime->morphWeight = 0.0f;
}
@ -1373,77 +1373,77 @@ void LinkAnimation_Change(PlayState* play, SkelAnime* skelAnime, LinkAnimationHe
/**
* Immediately changes to a Link animation that plays once at the default speed.
*/
void LinkAnimation_PlayOnce(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation) {
LinkAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(&animation->common),
void PlayerAnimation_PlayOnce(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation) {
PlayerAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(&animation->common),
ANIMMODE_ONCE, 0.0f);
}
/**
* Immediately changes to a Link animation that plays once at the specified speed.
*/
void LinkAnimation_PlayOnceSetSpeed(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation,
void PlayerAnimation_PlayOnceSetSpeed(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation,
f32 playSpeed) {
LinkAnimation_Change(play, skelAnime, animation, playSpeed, 0.0f, Animation_GetLastFrame(&animation->common),
PlayerAnimation_Change(play, skelAnime, animation, playSpeed, 0.0f, Animation_GetLastFrame(&animation->common),
ANIMMODE_ONCE, 0.0f);
}
/**
* Immediately changes to a Link animation that loops at the default speed.
*/
void LinkAnimation_PlayLoop(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation) {
LinkAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(&animation->common),
void PlayerAnimation_PlayLoop(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation) {
PlayerAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(&animation->common),
ANIMMODE_LOOP, 0.0f);
}
/**
* Immediately changes to a Link animation that loops at the specified speed.
*/
void LinkAnimation_PlayLoopSetSpeed(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation,
void PlayerAnimation_PlayLoopSetSpeed(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation,
f32 playSpeed) {
LinkAnimation_Change(play, skelAnime, animation, playSpeed, 0.0f, Animation_GetLastFrame(&animation->common),
PlayerAnimation_Change(play, skelAnime, animation, playSpeed, 0.0f, Animation_GetLastFrame(&animation->common),
ANIMMODE_LOOP, 0.0f);
}
/**
* Requests copying jointTable to morphTable
*/
void LinkAnimation_CopyJointToMorph(PlayState* play, SkelAnime* skelAnime) {
void PlayerAnimation_CopyJointToMorph(PlayState* play, SkelAnime* skelAnime) {
AnimationContext_SetCopyAll(play, skelAnime->limbCount, skelAnime->morphTable, skelAnime->jointTable);
}
/**
* Requests copying morphTable to jointTable
*/
void LinkAnimation_CopyMorphToJoint(PlayState* play, SkelAnime* skelAnime) {
void PlayerAnimation_CopyMorphToJoint(PlayState* play, SkelAnime* skelAnime) {
AnimationContext_SetCopyAll(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable);
}
/**
* Requests loading frame data from the Link animation into morphTable
*/
void LinkAnimation_LoadToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 frame) {
void PlayerAnimation_LoadToMorph(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 frame) {
AnimationContext_SetLoadFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->morphTable);
}
/**
* Requests loading frame data from the Link animation into jointTable
*/
void LinkAnimation_LoadToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 frame) {
void PlayerAnimation_LoadToJoint(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 frame) {
AnimationContext_SetLoadFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->jointTable);
}
/**
* Requests interpolating between jointTable and morphTable, placing the result in jointTable
*/
void LinkAnimation_InterpJointMorph(PlayState* play, SkelAnime* skelAnime, f32 weight) {
void PlayerAnimation_InterpJointMorph(PlayState* play, SkelAnime* skelAnime, f32 weight) {
AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->jointTable, skelAnime->morphTable, weight);
}
/**
* Requests loading frame data from the Link animations and blending them, placing the result in jointTable
*/
void LinkAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1,
LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) {
void PlayerAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation1, f32 frame1,
PlayerAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) {
void* alignedBlendTable;
AnimationContext_SetLoadFrame(play, animation1, (s32)frame1, skelAnime->limbCount, skelAnime->jointTable);
@ -1457,8 +1457,8 @@ void LinkAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnima
/**
* Requests loading frame data from the Link animations and blending them, placing the result in morphTable
*/
void LinkAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1,
LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) {
void PlayerAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation1, f32 frame1,
PlayerAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) {
void* alignedBlendTable;
AnimationContext_SetLoadFrame(play, animation1, (s32)frame1, skelAnime->limbCount, skelAnime->morphTable);
@ -1472,9 +1472,9 @@ void LinkAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnima
/**
* Changes a looping animation to one that stops at the end.
*/
void LinkAnimation_EndLoop(SkelAnime* skelAnime) {
void PlayerAnimation_EndLoop(SkelAnime* skelAnime) {
skelAnime->mode = ANIMMODE_ONCE;
LinkAnimation_SetUpdateFunction(skelAnime);
PlayerAnimation_SetUpdateFunction(skelAnime);
}
/**
@ -1507,7 +1507,7 @@ s32 Animation_OnFrameImpl(SkelAnime* skelAnime, f32 frame, f32 updateRate) {
/**
* Checks if the current Link animation has reached the specified frame
*/
s32 LinkAnimation_OnFrame(SkelAnime* skelAnime, f32 frame) {
s32 PlayerAnimation_OnFrame(SkelAnime* skelAnime, f32 frame) {
f32 updateRate = gFramerateDivisorHalf;
return Animation_OnFrameImpl(skelAnime, frame, updateRate);

View File

@ -203,7 +203,7 @@ void EnRz_ChangeAnim(PlayState* play, EnRz* this, s16 animIndex, u8 animMode, f3
&gRosaSistersStandingAnim, &gRosaSistersStandingAnim, &gRosaSistersWalkingAnim, &gRosaSistersSittingAnim,
&gRosaSistersApplaudingAnim, &gRosaSistersOnKneesAnim, &gRosaSistersDancingAnim,
};
static LinkAnimationHeader* sLinkAnimations[] = {
static PlayerAnimationHeader* sPlayerAnimations[] = {
&gPlayerAnim_link_normal_wait_free,
&gPlayerAnim_alink_dance_loop,
};
@ -219,12 +219,12 @@ void EnRz_ChangeAnim(PlayState* play, EnRz* this, s16 animIndex, u8 animMode, f3
if ((animIndex >= EN_RZ_ANIM_THINKING) && (animIndex < EN_RZ_ANIM_MAX) &&
((animIndex != this->animIndex) || (animMode != ANIMMODE_LOOP))) {
if (animIndex >= ARRAY_COUNT(sJudoAnimations)) {
endFrame = Animation_GetLastFrame(sLinkAnimations[animIndex - ARRAY_COUNT(sJudoAnimations)]);
endFrame = Animation_GetLastFrame(sPlayerAnimations[animIndex - ARRAY_COUNT(sJudoAnimations)]);
if (animMode == ANIMMODE_LOOP) {
LinkAnimation_Change(play, &this->skelAnime, sLinkAnimations[animIndex - ARRAY_COUNT(sJudoAnimations)],
PlayerAnimation_Change(play, &this->skelAnime, sPlayerAnimations[animIndex - ARRAY_COUNT(sJudoAnimations)],
2.0f / 3.0f, 0.0f, endFrame, ANIMMODE_LOOP, morphFrames);
} else {
LinkAnimation_Change(play, &this->skelAnime, sLinkAnimations[animIndex - ARRAY_COUNT(sJudoAnimations)],
PlayerAnimation_Change(play, &this->skelAnime, sPlayerAnimations[animIndex - ARRAY_COUNT(sJudoAnimations)],
2.0f / 3.0f, 0.0f, endFrame, ANIMMODE_LOOP, morphFrames);
}
} else {
@ -325,7 +325,7 @@ s32 EnRz_UpdateSkelAnime(EnRz* this, PlayState* play) {
if (this->animIndex < EN_RZ_ANIM_LINK_NORMAL_WAIT_FREE) {
return SkelAnime_Update(&this->skelAnime);
} else {
return LinkAnimation_Update(play, &this->skelAnime);
return PlayerAnimation_Update(play, &this->skelAnime);
}
}

View File

@ -320,7 +320,7 @@ s32 func_80A3E898(EnTest3* this, PlayState* play) {
func_80151938(play, textId);
}
if (textId == 0x296B) {
LinkAnimation_PlayOnceSetSpeed(play, &this->player.skelAnime, &gPlayerAnim_al_yareyare, 2.0f / 3.0f);
PlayerAnimation_PlayOnceSetSpeed(play, &this->player.skelAnime, &gPlayerAnim_al_yareyare, 2.0f / 3.0f);
}
return false;
}

View File

@ -68,7 +68,7 @@ static ColliderCylinderInit sCylinderInit = {
// assumption: draw uses two different skeleton functions, might be incompatible
static AnimationHeader* gYbUnusedAnimations[] = { &object_yb_Anim_000200 };
static LinkAnimationHeader* gLinkAnimations[] = { &gPlayerAnim_link_normal_wait_free, &gPlayerAnim_alink_dance_loop };
static PlayerAnimationHeader* gPlayerAnimations[] = { &gPlayerAnim_link_normal_wait_free, &gPlayerAnim_alink_dance_loop };
static Vec3f D_80BFB2E8 = { 0.0f, 0.5f, 0.0f };
@ -171,13 +171,13 @@ void EnYb_ChangeAnim(PlayState* play, EnYb* this, s16 animIndex, u8 animMode, f3
if (animIndex != this->animIndex || animMode != ANIMMODE_LOOP) {
if (animIndex > 0) {
if (animMode == ANIMMODE_LOOP) {
LinkAnimation_Change(play, &this->skelAnime, gLinkAnimations[animIndex - 1], 1.0f, 0.0f,
Animation_GetLastFrame(gLinkAnimations[animIndex - 1]), ANIMMODE_LOOP,
PlayerAnimation_Change(play, &this->skelAnime, gPlayerAnimations[animIndex - 1], 1.0f, 0.0f,
Animation_GetLastFrame(gPlayerAnimations[animIndex - 1]), ANIMMODE_LOOP,
morphFrames);
} else {
// unused case, (only called once with animMode = ANIMMODE_LOOP)
LinkAnimation_Change(play, &this->skelAnime, gLinkAnimations[animIndex - 1], 1.0f, 0.0f,
Animation_GetLastFrame(gLinkAnimations[animIndex - 1]), ANIMMODE_LOOP,
PlayerAnimation_Change(play, &this->skelAnime, gPlayerAnimations[animIndex - 1], 1.0f, 0.0f,
Animation_GetLastFrame(gPlayerAnimations[animIndex - 1]), ANIMMODE_LOOP,
morphFrames);
}
} else {
@ -207,7 +207,7 @@ void EnYb_UpdateAnimation(EnYb* this, PlayState* play) {
if (this->animIndex <= 0) {
SkelAnime_Update(&this->skelAnime);
} else {
LinkAnimation_Update(play, &this->skelAnime);
PlayerAnimation_Update(play, &this->skelAnime);
}
}

View File

@ -2559,28 +2559,28 @@
0x80135E3C:("AnimationContext_MoveActor",),
0x80135EE8:("AnimationContext_Update",),
0x80135F88:("SkelAnime_InitLink",),
0x801360A8:("LinkAnimation_SetUpdateFunction",),
0x801360E0:("LinkAnimation_Update",),
0x80136104:("LinkAnimation_Morph",),
0x801361BC:("LinkAnimation_AnimateFrame",),
0x80136288:("LinkAnimation_Loop",),
0x8013631C:("LinkAnimation_Once",),
0x801360A8:("PlayerAnimation_SetUpdateFunction",),
0x801360E0:("PlayerAnimation_Update",),
0x80136104:("PlayerAnimation_Morph",),
0x801361BC:("PlayerAnimation_AnimateFrame",),
0x80136288:("PlayerAnimation_Loop",),
0x8013631C:("PlayerAnimation_Once",),
0x801363F0:("Animation_SetMorph",),
0x80136414:("LinkAnimation_Change",),
0x8013658C:("LinkAnimation_PlayOnce",),
0x801365EC:("LinkAnimation_PlayOnceSetSpeed",),
0x80136650:("LinkAnimation_PlayLoop",),
0x801366AC:("LinkAnimation_PlayLoopSetSpeed",),
0x8013670C:("LinkAnimation_CopyJointToMorph",),
0x8013673C:("LinkAnimation_CopyMorphToJoint",),
0x8013676C:("LinkAnimation_LoadToMorph",),
0x801367B0:("LinkAnimation_LoadToJoint",),
0x801367F4:("LinkAnimation_InterpJointMorph",),
0x8013682C:("LinkAnimation_BlendToJoint",),
0x801368CC:("LinkAnimation_BlendToMorph",),
0x8013696C:("LinkAnimation_EndLoop",),
0x80136414:("PlayerAnimation_Change",),
0x8013658C:("PlayerAnimation_PlayOnce",),
0x801365EC:("PlayerAnimation_PlayOnceSetSpeed",),
0x80136650:("PlayerAnimation_PlayLoop",),
0x801366AC:("PlayerAnimation_PlayLoopSetSpeed",),
0x8013670C:("PlayerAnimation_CopyJointToMorph",),
0x8013673C:("PlayerAnimation_CopyMorphToJoint",),
0x8013676C:("PlayerAnimation_LoadToMorph",),
0x801367B0:("PlayerAnimation_LoadToJoint",),
0x801367F4:("PlayerAnimation_InterpJointMorph",),
0x8013682C:("PlayerAnimation_BlendToJoint",),
0x801368CC:("PlayerAnimation_BlendToMorph",),
0x8013696C:("PlayerAnimation_EndLoop",),
0x80136990:("Animation_OnFrameImpl",),
0x80136A48:("LinkAnimation_OnFrame",),
0x80136A48:("PlayerAnimation_OnFrame",),
0x80136A7C:("SkelAnime_Init",),
0x80136B30:("SkelAnime_InitFlex",),
0x80136BEC:("SkelAnime_InitSkin",),

View File

@ -201,28 +201,24 @@ wordReplace = {
"SkelAnime_AnimationType5Loaded": "AnimationContext_MoveActor",
"func_80135EE8": "AnimationContext_Update",
"SkelAnime_InitLinkAnimetion": "SkelAnime_InitLink",
"func_801360A8": "LinkAnimation_SetUpdateFunction",
"func_801360E0": "LinkAnimation_Update",
"func_80136104": "LinkAnimation_Morph",
"func_801361BC": "LinkAnimation_AnimateFrame",
"func_80136288": "LinkAnimation_Loop",
"func_8013631C": "LinkAnimation_Once",
"LinkAnimation_SetUpdateFunction": "PlayerAnimation_SetUpdateFunction",
"LinkAnimation_Update": "PlayerAnimation_Update",
"SkelAnime_SetTransition": "Animation_SetMorph",
"SkelAnime_ChangeLinkAnim": "LinkAnimation_Change",
"SkelAnime_ChangeLinkAnimDefaultStop": "LinkAnimation_PlayOnce",
"SkelAnime_ChangeLinkAnimPlaybackStop": "LinkAnimation_PlayOnceSetSpeed",
"SkelAnime_ChangeLinkAnimDefaultRepeat": "LinkAnimation_PlayLoop",
"SkelAnime_ChangeLinkAnimPlaybackRepeat": "LinkAnimation_PlayLoopSetSpeed",
"func_8013670C": "LinkAnimation_CopyJointToMorph",
"func_8013673C": "LinkAnimation_CopyMorphToJoint",
"func_8013676C": "LinkAnimation_LoadToMorph",
"func_801367B0": "LinkAnimation_LoadToJoint",
"func_801367F4": "LinkAnimation_InterpJointMorph",
"func_8013682C": "LinkAnimation_BlendToJoint",
"func_801368CC": "LinkAnimation_BlendToMorph",
"SkelAnime_SetModeStop": "LinkAnimation_EndLoop",
"LinkAnimation_Change": "PlayerAnimation_Change",
"LinkAnimation_PlayOnce": "PlayerAnimation_PlayOnce",
"LinkAnimation_PlayOnceSetSpeed": "PlayerAnimation_PlayOnceSetSpeed",
"LinkAnimation_PlayLoop": "PlayerAnimation_PlayLoop",
"LinkAnimation_PlayLoopSetSpeed": "PlayerAnimation_PlayLoopSetSpeed",
"LinkAnimation_CopyJointToMorph": "PlayerAnimation_CopyJointToMorph",
"LinkAnimation_CopyMorphToJoint": "PlayerAnimation_CopyMorphToJoint",
"LinkAnimation_LoadToMorph": "PlayerAnimation_LoadToMorph",
"LinkAnimation_LoadToJoint": "PlayerAnimation_LoadToJoint",
"LinkAnimation_InterpJointMorph": "PlayerAnimation_InterpJointMorph",
"LinkAnimation_BlendToJoint": "PlayerAnimation_BlendToJoint",
"LinkAnimation_BlendToMorph": "PlayerAnimation_BlendToMorph",
"LinkAnimation_EndLoop": "PlayerAnimation_EndLoop",
"func_80136990": "Animation_OnFrameImpl",
"func_80136A48": "LinkAnimation_OnFrame",
"LinkAnimation_OnFrame": "PlayerAnimation_OnFrame",
"SkelAnime_InitSV": "SkelAnime_InitFlex",
"func_80136C84": "SkelAnime_SetUpdate",
"SkelAnime_FrameUpdateMatrix": "SkelAnime_Update",

View File

@ -2073,28 +2073,28 @@ asm/non_matchings/code/z_skelanime/AnimationContext_CopyFalse.s,AnimationContext
asm/non_matchings/code/z_skelanime/AnimationContext_MoveActor.s,AnimationContext_MoveActor,0x80135E3C,0x2B
asm/non_matchings/code/z_skelanime/AnimationContext_Update.s,AnimationContext_Update,0x80135EE8,0x28
asm/non_matchings/code/z_skelanime/SkelAnime_InitLinkAnimetion.s,SkelAnime_InitLinkAnimetion,0x80135F88,0x48
asm/non_matchings/code/z_skelanime/LinkAnimation_SetUpdateFunction.s,LinkAnimation_SetUpdateFunction,0x801360A8,0xE
asm/non_matchings/code/z_skelanime/LinkAnimation_Update.s,LinkAnimation_Update,0x801360E0,0x9
asm/non_matchings/code/z_skelanime/LinkAnimation_Morph.s,LinkAnimation_Morph,0x80136104,0x2E
asm/non_matchings/code/z_skelanime/LinkAnimation_AnimateFrame.s,LinkAnimation_AnimateFrame,0x801361BC,0x33
asm/non_matchings/code/z_skelanime/LinkAnimation_Loop.s,LinkAnimation_Loop,0x80136288,0x25
asm/non_matchings/code/z_skelanime/LinkAnimation_Once.s,LinkAnimation_Once,0x8013631C,0x35
asm/non_matchings/code/z_skelanime/PlayerAnimation_SetUpdateFunction.s,PlayerAnimation_SetUpdateFunction,0x801360A8,0xE
asm/non_matchings/code/z_skelanime/PlayerAnimation_Update.s,PlayerAnimation_Update,0x801360E0,0x9
asm/non_matchings/code/z_skelanime/PlayerAnimation_Morph.s,PlayerAnimation_Morph,0x80136104,0x2E
asm/non_matchings/code/z_skelanime/PlayerAnimation_AnimateFrame.s,PlayerAnimation_AnimateFrame,0x801361BC,0x33
asm/non_matchings/code/z_skelanime/PlayerAnimation_Loop.s,PlayerAnimation_Loop,0x80136288,0x25
asm/non_matchings/code/z_skelanime/PlayerAnimation_Once.s,PlayerAnimation_Once,0x8013631C,0x35
asm/non_matchings/code/z_skelanime/Animation_SetMorph.s,Animation_SetMorph,0x801363F0,0x9
asm/non_matchings/code/z_skelanime/LinkAnimation_Change.s,LinkAnimation_Change,0x80136414,0x5E
asm/non_matchings/code/z_skelanime/LinkAnimation_ChangeDefaultStop.s,LinkAnimation_ChangeDefaultStop,0x8013658C,0x18
asm/non_matchings/code/z_skelanime/LinkAnimation_ChangePlaybackStop.s,LinkAnimation_ChangePlaybackStop,0x801365EC,0x19
asm/non_matchings/code/z_skelanime/LinkAnimation_ChangeDefaultRepeat.s,LinkAnimation_ChangeDefaultRepeat,0x80136650,0x17
asm/non_matchings/code/z_skelanime/LinkAnimation_ChangePlaybackRepeat.s,LinkAnimation_ChangePlaybackRepeat,0x801366AC,0x18
asm/non_matchings/code/z_skelanime/LinkAnimation_CopyJointToMorph.s,LinkAnimation_CopyJointToMorph,0x8013670C,0xC
asm/non_matchings/code/z_skelanime/LinkAnimation_CopyMorphToJoint.s,LinkAnimation_CopyMorphToJoint,0x8013673C,0xC
asm/non_matchings/code/z_skelanime/LinkAnimation_LoadToMorph.s,LinkAnimation_LoadToMorph,0x8013676C,0x11
asm/non_matchings/code/z_skelanime/LinkAnimation_LoadToJoint.s,LinkAnimation_LoadToJoint,0x801367B0,0x11
asm/non_matchings/code/z_skelanime/LinkAnimation_InterpJointMorph.s,LinkAnimation_InterpJointMorph,0x801367F4,0xE
asm/non_matchings/code/z_skelanime/LinkAnimation_BlendToJoint.s,LinkAnimation_BlendToJoint,0x8013682C,0x28
asm/non_matchings/code/z_skelanime/LinkAnimation_BlendToMorph.s,LinkAnimation_BlendToMorph,0x801368CC,0x28
asm/non_matchings/code/z_skelanime/LinkAnimation_EndLoop.s,LinkAnimation_EndLoop,0x8013696C,0x9
asm/non_matchings/code/z_skelanime/PlayerAnimation_Change.s,PlayerAnimation_Change,0x80136414,0x5E
asm/non_matchings/code/z_skelanime/PlayerAnimation_ChangeDefaultStop.s,PlayerAnimation_ChangeDefaultStop,0x8013658C,0x18
asm/non_matchings/code/z_skelanime/PlayerAnimation_ChangePlaybackStop.s,PlayerAnimation_ChangePlaybackStop,0x801365EC,0x19
asm/non_matchings/code/z_skelanime/PlayerAnimation_ChangeDefaultRepeat.s,PlayerAnimation_ChangeDefaultRepeat,0x80136650,0x17
asm/non_matchings/code/z_skelanime/PlayerAnimation_ChangePlaybackRepeat.s,PlayerAnimation_ChangePlaybackRepeat,0x801366AC,0x18
asm/non_matchings/code/z_skelanime/PlayerAnimation_CopyJointToMorph.s,PlayerAnimation_CopyJointToMorph,0x8013670C,0xC
asm/non_matchings/code/z_skelanime/PlayerAnimation_CopyMorphToJoint.s,PlayerAnimation_CopyMorphToJoint,0x8013673C,0xC
asm/non_matchings/code/z_skelanime/PlayerAnimation_LoadToMorph.s,PlayerAnimation_LoadToMorph,0x8013676C,0x11
asm/non_matchings/code/z_skelanime/PlayerAnimation_LoadToJoint.s,PlayerAnimation_LoadToJoint,0x801367B0,0x11
asm/non_matchings/code/z_skelanime/PlayerAnimation_InterpJointMorph.s,PlayerAnimation_InterpJointMorph,0x801367F4,0xE
asm/non_matchings/code/z_skelanime/PlayerAnimation_BlendToJoint.s,PlayerAnimation_BlendToJoint,0x8013682C,0x28
asm/non_matchings/code/z_skelanime/PlayerAnimation_BlendToMorph.s,PlayerAnimation_BlendToMorph,0x801368CC,0x28
asm/non_matchings/code/z_skelanime/PlayerAnimation_EndLoop.s,PlayerAnimation_EndLoop,0x8013696C,0x9
asm/non_matchings/code/z_skelanime/Animation_OnFrameImpl.s,Animation_OnFrameImpl,0x80136990,0x2E
asm/non_matchings/code/z_skelanime/LinkAnimation_OnFrame.s,LinkAnimation_OnFrame,0x80136A48,0xD
asm/non_matchings/code/z_skelanime/PlayerAnimation_OnFrame.s,PlayerAnimation_OnFrame,0x80136A48,0xD
asm/non_matchings/code/z_skelanime/SkelAnime_Init.s,SkelAnime_Init,0x80136A7C,0x2D
asm/non_matchings/code/z_skelanime/SkelAnime_InitFlex.s,SkelAnime_InitFlex,0x80136B30,0x2F
asm/non_matchings/code/z_skelanime/SkelAnime_InitSkin.s,SkelAnime_InitSkin,0x80136BEC,0x26

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
2073 asm/non_matchings/code/z_skelanime/AnimationContext_MoveActor.s AnimationContext_MoveActor 0x80135E3C 0x2B
2074 asm/non_matchings/code/z_skelanime/AnimationContext_Update.s AnimationContext_Update 0x80135EE8 0x28
2075 asm/non_matchings/code/z_skelanime/SkelAnime_InitLinkAnimetion.s SkelAnime_InitLinkAnimetion 0x80135F88 0x48
2076 asm/non_matchings/code/z_skelanime/LinkAnimation_SetUpdateFunction.s asm/non_matchings/code/z_skelanime/PlayerAnimation_SetUpdateFunction.s LinkAnimation_SetUpdateFunction PlayerAnimation_SetUpdateFunction 0x801360A8 0xE
2077 asm/non_matchings/code/z_skelanime/LinkAnimation_Update.s asm/non_matchings/code/z_skelanime/PlayerAnimation_Update.s LinkAnimation_Update PlayerAnimation_Update 0x801360E0 0x9
2078 asm/non_matchings/code/z_skelanime/LinkAnimation_Morph.s asm/non_matchings/code/z_skelanime/PlayerAnimation_Morph.s LinkAnimation_Morph PlayerAnimation_Morph 0x80136104 0x2E
2079 asm/non_matchings/code/z_skelanime/LinkAnimation_AnimateFrame.s asm/non_matchings/code/z_skelanime/PlayerAnimation_AnimateFrame.s LinkAnimation_AnimateFrame PlayerAnimation_AnimateFrame 0x801361BC 0x33
2080 asm/non_matchings/code/z_skelanime/LinkAnimation_Loop.s asm/non_matchings/code/z_skelanime/PlayerAnimation_Loop.s LinkAnimation_Loop PlayerAnimation_Loop 0x80136288 0x25
2081 asm/non_matchings/code/z_skelanime/LinkAnimation_Once.s asm/non_matchings/code/z_skelanime/PlayerAnimation_Once.s LinkAnimation_Once PlayerAnimation_Once 0x8013631C 0x35
2082 asm/non_matchings/code/z_skelanime/Animation_SetMorph.s Animation_SetMorph 0x801363F0 0x9
2083 asm/non_matchings/code/z_skelanime/LinkAnimation_Change.s asm/non_matchings/code/z_skelanime/PlayerAnimation_Change.s LinkAnimation_Change PlayerAnimation_Change 0x80136414 0x5E
2084 asm/non_matchings/code/z_skelanime/LinkAnimation_ChangeDefaultStop.s asm/non_matchings/code/z_skelanime/PlayerAnimation_ChangeDefaultStop.s LinkAnimation_ChangeDefaultStop PlayerAnimation_ChangeDefaultStop 0x8013658C 0x18
2085 asm/non_matchings/code/z_skelanime/LinkAnimation_ChangePlaybackStop.s asm/non_matchings/code/z_skelanime/PlayerAnimation_ChangePlaybackStop.s LinkAnimation_ChangePlaybackStop PlayerAnimation_ChangePlaybackStop 0x801365EC 0x19
2086 asm/non_matchings/code/z_skelanime/LinkAnimation_ChangeDefaultRepeat.s asm/non_matchings/code/z_skelanime/PlayerAnimation_ChangeDefaultRepeat.s LinkAnimation_ChangeDefaultRepeat PlayerAnimation_ChangeDefaultRepeat 0x80136650 0x17
2087 asm/non_matchings/code/z_skelanime/LinkAnimation_ChangePlaybackRepeat.s asm/non_matchings/code/z_skelanime/PlayerAnimation_ChangePlaybackRepeat.s LinkAnimation_ChangePlaybackRepeat PlayerAnimation_ChangePlaybackRepeat 0x801366AC 0x18
2088 asm/non_matchings/code/z_skelanime/LinkAnimation_CopyJointToMorph.s asm/non_matchings/code/z_skelanime/PlayerAnimation_CopyJointToMorph.s LinkAnimation_CopyJointToMorph PlayerAnimation_CopyJointToMorph 0x8013670C 0xC
2089 asm/non_matchings/code/z_skelanime/LinkAnimation_CopyMorphToJoint.s asm/non_matchings/code/z_skelanime/PlayerAnimation_CopyMorphToJoint.s LinkAnimation_CopyMorphToJoint PlayerAnimation_CopyMorphToJoint 0x8013673C 0xC
2090 asm/non_matchings/code/z_skelanime/LinkAnimation_LoadToMorph.s asm/non_matchings/code/z_skelanime/PlayerAnimation_LoadToMorph.s LinkAnimation_LoadToMorph PlayerAnimation_LoadToMorph 0x8013676C 0x11
2091 asm/non_matchings/code/z_skelanime/LinkAnimation_LoadToJoint.s asm/non_matchings/code/z_skelanime/PlayerAnimation_LoadToJoint.s LinkAnimation_LoadToJoint PlayerAnimation_LoadToJoint 0x801367B0 0x11
2092 asm/non_matchings/code/z_skelanime/LinkAnimation_InterpJointMorph.s asm/non_matchings/code/z_skelanime/PlayerAnimation_InterpJointMorph.s LinkAnimation_InterpJointMorph PlayerAnimation_InterpJointMorph 0x801367F4 0xE
2093 asm/non_matchings/code/z_skelanime/LinkAnimation_BlendToJoint.s asm/non_matchings/code/z_skelanime/PlayerAnimation_BlendToJoint.s LinkAnimation_BlendToJoint PlayerAnimation_BlendToJoint 0x8013682C 0x28
2094 asm/non_matchings/code/z_skelanime/LinkAnimation_BlendToMorph.s asm/non_matchings/code/z_skelanime/PlayerAnimation_BlendToMorph.s LinkAnimation_BlendToMorph PlayerAnimation_BlendToMorph 0x801368CC 0x28
2095 asm/non_matchings/code/z_skelanime/LinkAnimation_EndLoop.s asm/non_matchings/code/z_skelanime/PlayerAnimation_EndLoop.s LinkAnimation_EndLoop PlayerAnimation_EndLoop 0x8013696C 0x9
2096 asm/non_matchings/code/z_skelanime/Animation_OnFrameImpl.s Animation_OnFrameImpl 0x80136990 0x2E
2097 asm/non_matchings/code/z_skelanime/LinkAnimation_OnFrame.s asm/non_matchings/code/z_skelanime/PlayerAnimation_OnFrame.s LinkAnimation_OnFrame PlayerAnimation_OnFrame 0x80136A48 0xD
2098 asm/non_matchings/code/z_skelanime/SkelAnime_Init.s SkelAnime_Init 0x80136A7C 0x2D
2099 asm/non_matchings/code/z_skelanime/SkelAnime_InitFlex.s SkelAnime_InitFlex 0x80136B30 0x2F
2100 asm/non_matchings/code/z_skelanime/SkelAnime_InitSkin.s SkelAnime_InitSkin 0x80136BEC 0x26