remove the remaining link stuff

This commit is contained in:
Angie 2022-11-13 18:50:14 -03:00
parent d92e2cfc78
commit bf6e97aab2
6 changed files with 40 additions and 42 deletions

View File

@ -2078,7 +2078,7 @@ void AnimationContext_CopyTrue(PlayState* play, AnimationEntryData* data);
void AnimationContext_CopyFalse(PlayState* play, AnimationEntryData* data); void AnimationContext_CopyFalse(PlayState* play, AnimationEntryData* data);
void AnimationContext_MoveActor(PlayState* play, AnimationEntryData* data); void AnimationContext_MoveActor(PlayState* play, AnimationEntryData* data);
void AnimationContext_Update(PlayState* play, AnimationContext* animationCtx); void AnimationContext_Update(PlayState* play, AnimationContext* animationCtx);
void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, PlayerAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer, s32 limbBufCount); void SkelAnime_InitPlayer(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, PlayerAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer, s32 limbBufCount);
void PlayerAnimation_SetUpdateFunction(SkelAnime* skelAnime); void PlayerAnimation_SetUpdateFunction(SkelAnime* skelAnime);
s32 PlayerAnimation_Update(PlayState* play, SkelAnime* skelAnime); s32 PlayerAnimation_Update(PlayState* play, SkelAnime* skelAnime);
void Animation_SetMorph(PlayState* play, SkelAnime* skelAnime, f32 morphFrames); void Animation_SetMorph(PlayState* play, SkelAnime* skelAnime, f32 morphFrames);

View File

@ -99,18 +99,18 @@ typedef struct {
} LegacyAnimationHeader; // size = 0xC } LegacyAnimationHeader; // size = 0xC
typedef enum { typedef enum {
ANIMATION_LINKANIMETION, /* 0 */ ANIMATION_LINKANIMETION,
ANIMENTRY_COPYALL, /* 1 */ ANIMENTRY_COPYALL,
ANIMENTRY_INTERP, /* 2 */ ANIMENTRY_INTERP,
ANIMENTRY_COPYTRUE, /* 3 */ ANIMENTRY_COPYTRUE,
ANIMENTRY_COPYFALSE, /* 4 */ ANIMENTRY_COPYFALSE,
ANIMENTRY_MOVEACTOR /* 5 */ ANIMENTRY_MOVEACTOR
} AnimationType; } AnimationType;
typedef struct { typedef struct {
/* 0x00 */ DmaRequest req; /* 0x00 */ DmaRequest req;
/* 0x20 */ OSMesgQueue msgQueue; /* 0x20 */ OSMesgQueue msgQueue;
/* 0x38 */ OSMesg msg; /* 0x38 */ OSMesg msg[1];
} AnimEntryLoadFrame; // size = 0x3C } AnimEntryLoadFrame; // size = 0x3C
typedef struct { typedef struct {
@ -195,9 +195,9 @@ typedef struct SkelAnime {
/* 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 */ union { /* 0x30 */ union {
s32 (*normal)(struct SkelAnime*);// Can be Loop, Partial loop, Play once, Morph, or Tapered morph s32 (*normal)(struct SkelAnime*);// Can be Loop, Partial loop, Play once, Morph, or Tapered morph
s32 (*link)(struct PlayState*, struct SkelAnime*); // Loop, Play once, and Morph s32 (*player)(struct PlayState*, struct SkelAnime*); // Loop, Play once, and Morph
} update; } update;
/* 0x34 */ s8 initFlags; // Flags used when initializing Link's skeleton /* 0x34 */ s8 initFlags; // Flags used when initializing Player's skeleton
/* 0x35 */ u8 moveFlags; // Flags used for animations that move the actor in worldspace. /* 0x35 */ u8 moveFlags; // 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.
@ -228,8 +228,6 @@ typedef void (*TransformLimbDraw)(struct PlayState* play, s32 limbIndex, struct
typedef void (*AnimationEntryCallback)(struct PlayState*, AnimationEntryData*); typedef void (*AnimationEntryCallback)(struct PlayState*, AnimationEntryData*);
extern u32 link_animetion_segment;
typedef struct { typedef struct {
/* 0x00 */ AnimationHeader* animation; /* 0x00 */ AnimationHeader* animation;
/* 0x04 */ f32 playSpeed; /* 0x04 */ f32 playSpeed;

View File

@ -988,19 +988,19 @@ AnimationEntry* AnimationContext_AddEntry(AnimationContext* animationCtx, Animat
} }
/** /**
* Requests loading frame data from the Link animation into frameTable * Requests loading frame data from the Player animation into frameTable
*/ */
void AnimationContext_SetLoadFrame(PlayState* play, PlayerAnimationHeader* animation, s32 frame, s32 limbCount, void AnimationContext_SetLoadFrame(PlayState* play, PlayerAnimationHeader* animation, s32 frame, s32 limbCount,
Vec3s* frameTable) { Vec3s* frameTable) {
AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMATION_LINKANIMETION); AnimationEntry* entry = AnimationContext_AddEntry(&play->animationCtx, ANIMATION_LINKANIMETION);
if (entry != NULL) { if (entry != NULL) {
PlayerAnimationHeader* linkAnimHeader = Lib_SegmentedToVirtual(animation); PlayerAnimationHeader* playerAnimHeader = Lib_SegmentedToVirtual(animation);
uintptr_t ram = frameTable; uintptr_t ram = frameTable;
osCreateMesgQueue(&entry->data.load.msgQueue, &entry->data.load.msg, 1); osCreateMesgQueue(&entry->data.load.msgQueue, entry->data.load.msg, ARRAY_COUNT(entry->data.load.msg));
DmaMgr_SendRequestImpl(&entry->data.load.req, ram, DmaMgr_SendRequestImpl(&entry->data.load.req, ram,
LINK_ANIMETION_OFFSET(linkAnimHeader->segment, (sizeof(Vec3s) * limbCount + 2) * frame), LINK_ANIMETION_OFFSET(playerAnimHeader->segment, (sizeof(Vec3s) * limbCount + 2) * frame),
sizeof(Vec3s) * limbCount + 2, 0, &entry->data.load.msgQueue, NULL); sizeof(Vec3s) * limbCount + 2, 0, &entry->data.load.msgQueue, NULL);
} }
} }
@ -1078,7 +1078,7 @@ void AnimationContext_SetMoveActor(PlayState* play, Actor* actor, SkelAnime* ske
} }
/** /**
* Receives the request for Link's animation frame data * Receives the request for Player's animation frame data
*/ */
void AnimationContext_LoadFrame(PlayState* play, AnimationEntryData* data) { void AnimationContext_LoadFrame(PlayState* play, AnimationEntryData* data) {
AnimEntryLoadFrame* entry = &data->load; AnimEntryLoadFrame* entry = &data->load;
@ -1183,10 +1183,10 @@ void AnimationContext_Update(PlayState* play, AnimationContext* animationCtx) {
} }
/** /**
* Initializes a skeleton to be used with Link animations to a looping animation, dynamically allocating the frame * Initializes a skeleton to be used with Player animations to a looping animation, dynamically allocating the frame
* tables if not given. * tables if not given.
*/ */
void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, void SkelAnime_InitPlayer(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg,
PlayerAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer, PlayerAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer,
s32 limbBufCount) { s32 limbBufCount) {
FlexSkeletonHeader* skeletonHeader; FlexSkeletonHeader* skeletonHeader;
@ -1228,23 +1228,23 @@ void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeade
} }
/** /**
* Sets the update function of a SkelAnime that uses Link animations based on its mode * Sets the update function of a SkelAnime that uses Player animations based on its mode
*/ */
void PlayerAnimation_SetUpdateFunction(SkelAnime* skelAnime) { void PlayerAnimation_SetUpdateFunction(SkelAnime* skelAnime) {
if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) { if (skelAnime->mode <= ANIMMODE_LOOP_INTERP) {
skelAnime->update.link = PlayerAnimation_Loop; skelAnime->update.player = PlayerAnimation_Loop;
} else { } else {
skelAnime->update.link = PlayerAnimation_Once; skelAnime->update.player = PlayerAnimation_Once;
} }
skelAnime->morphWeight = 0.0f; skelAnime->morphWeight = 0.0f;
} }
/** /**
* Advances the current Link animation and updates all frame tables. If the animation plays once, returns true when it * Advances the current Player animation and updates all frame tables. If the animation plays once, returns true when it
* finishes. * finishes.
*/ */
s32 PlayerAnimation_Update(PlayState* play, SkelAnime* skelAnime) { s32 PlayerAnimation_Update(PlayState* play, SkelAnime* skelAnime) {
return skelAnime->update.link(play, skelAnime); return skelAnime->update.player(play, skelAnime);
} }
/** /**
@ -1266,7 +1266,7 @@ s32 PlayerAnimation_Morph(PlayState* play, SkelAnime* skelAnime) {
} }
/** /**
* Requests a load of the next frame of a Link animation, advances the morph, and requests an interpolation between * Requests a load of the next frame of a Player animation, advances the morph, and requests an interpolation between
* jointTable and morphTable * jointTable and morphTable
*/ */
void PlayerAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime) { void PlayerAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime) {
@ -1285,7 +1285,7 @@ void PlayerAnimation_AnimateFrame(PlayState* play, SkelAnime* skelAnime) {
} }
/** /**
* Advances a Link animation that loops over its full length * Advances a Player animation that loops over its full length
*/ */
s32 PlayerAnimation_Loop(PlayState* play, SkelAnime* skelAnime) { s32 PlayerAnimation_Loop(PlayState* play, SkelAnime* skelAnime) {
f32 updateRate = (s32)play->state.framerateDivisor * 0.5f; f32 updateRate = (s32)play->state.framerateDivisor * 0.5f;
@ -1301,7 +1301,7 @@ s32 PlayerAnimation_Loop(PlayState* play, SkelAnime* skelAnime) {
} }
/** /**
* Advances a Link animation that stops at endFrame and returns true when it is reached. * Advances a Player animation that stops at endFrame and returns true when it is reached.
*/ */
s32 PlayerAnimation_Once(PlayState* play, SkelAnime* skelAnime) { s32 PlayerAnimation_Once(PlayState* play, SkelAnime* skelAnime) {
f32 updateRate = (s32)play->state.framerateDivisor * 0.5f; f32 updateRate = (s32)play->state.framerateDivisor * 0.5f;
@ -1335,7 +1335,7 @@ void Animation_SetMorph(PlayState* play, SkelAnime* skelAnime, f32 morphFrames)
} }
/** /**
* General way to set a new Link animation, allowing choice of playback speed, start frame, end frame, play mode, and * General way to set a new Player animation, allowing choice of playback speed, start frame, end frame, play mode, and
* number of transition frames. Positive morph frames morph from the current pose to the start pose of the new * number of transition frames. Positive morph frames morph from the current pose to the start pose of the new
* animation, then start the new animation. Negative morph frames start the new animation immediately, modified by the * animation, then start the new animation. Negative morph frames start the new animation immediately, modified by the
* pose immediately before the animation change. * pose immediately before the animation change.
@ -1349,7 +1349,7 @@ void PlayerAnimation_Change(PlayState* play, SkelAnime* skelAnime, PlayerAnimati
SkelAnime_CopyFrameTable(skelAnime, skelAnime->morphTable, skelAnime->jointTable); SkelAnime_CopyFrameTable(skelAnime, skelAnime->morphTable, skelAnime->jointTable);
morphFrames = -morphFrames; morphFrames = -morphFrames;
} else { } else {
skelAnime->update.link = PlayerAnimation_Morph; skelAnime->update.player = PlayerAnimation_Morph;
AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount, AnimationContext_SetLoadFrame(play, animation, (s32)startFrame, skelAnime->limbCount,
skelAnime->morphTable); skelAnime->morphTable);
} }
@ -1371,7 +1371,7 @@ void PlayerAnimation_Change(PlayState* play, SkelAnime* skelAnime, PlayerAnimati
} }
/** /**
* Immediately changes to a Link animation that plays once at the default speed. * Immediately changes to a Player animation that plays once at the default speed.
*/ */
void PlayerAnimation_PlayOnce(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation) { void PlayerAnimation_PlayOnce(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation) {
PlayerAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(&animation->common), PlayerAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(&animation->common),
@ -1379,7 +1379,7 @@ void PlayerAnimation_PlayOnce(PlayState* play, SkelAnime* skelAnime, PlayerAnima
} }
/** /**
* Immediately changes to a Link animation that plays once at the specified speed. * Immediately changes to a Player animation that plays once at the specified speed.
*/ */
void PlayerAnimation_PlayOnceSetSpeed(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, void PlayerAnimation_PlayOnceSetSpeed(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation,
f32 playSpeed) { f32 playSpeed) {
@ -1388,7 +1388,7 @@ void PlayerAnimation_PlayOnceSetSpeed(PlayState* play, SkelAnime* skelAnime, Pla
} }
/** /**
* Immediately changes to a Link animation that loops at the default speed. * Immediately changes to a Player animation that loops at the default speed.
*/ */
void PlayerAnimation_PlayLoop(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation) { void PlayerAnimation_PlayLoop(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation) {
PlayerAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(&animation->common), PlayerAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(&animation->common),
@ -1396,7 +1396,7 @@ void PlayerAnimation_PlayLoop(PlayState* play, SkelAnime* skelAnime, PlayerAnima
} }
/** /**
* Immediately changes to a Link animation that loops at the specified speed. * Immediately changes to a Player animation that loops at the specified speed.
*/ */
void PlayerAnimation_PlayLoopSetSpeed(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, void PlayerAnimation_PlayLoopSetSpeed(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation,
f32 playSpeed) { f32 playSpeed) {
@ -1419,14 +1419,14 @@ void PlayerAnimation_CopyMorphToJoint(PlayState* play, SkelAnime* skelAnime) {
} }
/** /**
* Requests loading frame data from the Link animation into morphTable * Requests loading frame data from the Player animation into morphTable
*/ */
void PlayerAnimation_LoadToMorph(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 frame) { void PlayerAnimation_LoadToMorph(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 frame) {
AnimationContext_SetLoadFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->morphTable); AnimationContext_SetLoadFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->morphTable);
} }
/** /**
* Requests loading frame data from the Link animation into jointTable * Requests loading frame data from the Player animation into jointTable
*/ */
void PlayerAnimation_LoadToJoint(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 frame) { void PlayerAnimation_LoadToJoint(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 frame) {
AnimationContext_SetLoadFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->jointTable); AnimationContext_SetLoadFrame(play, animation, (s32)frame, skelAnime->limbCount, skelAnime->jointTable);
@ -1440,7 +1440,7 @@ void PlayerAnimation_InterpJointMorph(PlayState* play, SkelAnime* skelAnime, f32
} }
/** /**
* Requests loading frame data from the Link animations and blending them, placing the result in jointTable * Requests loading frame data from the Player animations and blending them, placing the result in jointTable
*/ */
void PlayerAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation1, f32 frame1, void PlayerAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation1, f32 frame1,
PlayerAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) { PlayerAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) {
@ -1455,7 +1455,7 @@ void PlayerAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, PlayerA
} }
/** /**
* Requests loading frame data from the Link animations and blending them, placing the result in morphTable * Requests loading frame data from the Player animations and blending them, placing the result in morphTable
*/ */
void PlayerAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation1, f32 frame1, void PlayerAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation1, f32 frame1,
PlayerAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) { PlayerAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) {
@ -1505,7 +1505,7 @@ s32 Animation_OnFrameImpl(SkelAnime* skelAnime, f32 frame, f32 updateRate) {
} }
/** /**
* Checks if the current Link animation has reached the specified frame * Checks if the current Player animation has reached the specified frame
*/ */
s32 PlayerAnimation_OnFrame(SkelAnime* skelAnime, f32 frame) { s32 PlayerAnimation_OnFrame(SkelAnime* skelAnime, f32 frame) {
f32 updateRate = gFramerateDivisorHalf; f32 updateRate = gFramerateDivisorHalf;

View File

@ -2558,7 +2558,7 @@
0x80135DB8:("AnimationContext_CopyFalse",), 0x80135DB8:("AnimationContext_CopyFalse",),
0x80135E3C:("AnimationContext_MoveActor",), 0x80135E3C:("AnimationContext_MoveActor",),
0x80135EE8:("AnimationContext_Update",), 0x80135EE8:("AnimationContext_Update",),
0x80135F88:("SkelAnime_InitLink",), 0x80135F88:("SkelAnime_InitPlayer",),
0x801360A8:("PlayerAnimation_SetUpdateFunction",), 0x801360A8:("PlayerAnimation_SetUpdateFunction",),
0x801360E0:("PlayerAnimation_Update",), 0x801360E0:("PlayerAnimation_Update",),
0x80136104:("PlayerAnimation_Morph",), 0x80136104:("PlayerAnimation_Morph",),

View File

@ -200,7 +200,7 @@ wordReplace = {
"SkelAnime_AnimationType4Loaded": "AnimationContext_CopyFalse", "SkelAnime_AnimationType4Loaded": "AnimationContext_CopyFalse",
"SkelAnime_AnimationType5Loaded": "AnimationContext_MoveActor", "SkelAnime_AnimationType5Loaded": "AnimationContext_MoveActor",
"func_80135EE8": "AnimationContext_Update", "func_80135EE8": "AnimationContext_Update",
"SkelAnime_InitLinkAnimetion": "SkelAnime_InitLink", "SkelAnime_InitLink": "SkelAnime_InitPlayer",
"LinkAnimation_SetUpdateFunction": "PlayerAnimation_SetUpdateFunction", "LinkAnimation_SetUpdateFunction": "PlayerAnimation_SetUpdateFunction",
"LinkAnimation_Update": "PlayerAnimation_Update", "LinkAnimation_Update": "PlayerAnimation_Update",
"SkelAnime_SetTransition": "Animation_SetMorph", "SkelAnime_SetTransition": "Animation_SetMorph",

View File

@ -2072,7 +2072,7 @@ asm/non_matchings/code/z_skelanime/AnimationContext_CopyTrue.s,AnimationContext_
asm/non_matchings/code/z_skelanime/AnimationContext_CopyFalse.s,AnimationContext_CopyFalse,0x80135DB8,0x21 asm/non_matchings/code/z_skelanime/AnimationContext_CopyFalse.s,AnimationContext_CopyFalse,0x80135DB8,0x21
asm/non_matchings/code/z_skelanime/AnimationContext_MoveActor.s,AnimationContext_MoveActor,0x80135E3C,0x2B 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/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/SkelAnime_InitPlayerAnimetion.s,SkelAnime_InitPlayerAnimetion,0x80135F88,0x48
asm/non_matchings/code/z_skelanime/PlayerAnimation_SetUpdateFunction.s,PlayerAnimation_SetUpdateFunction,0x801360A8,0xE 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_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_Morph.s,PlayerAnimation_Morph,0x80136104,0x2E

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
2072 asm/non_matchings/code/z_skelanime/AnimationContext_CopyFalse.s AnimationContext_CopyFalse 0x80135DB8 0x21
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 asm/non_matchings/code/z_skelanime/SkelAnime_InitPlayerAnimetion.s SkelAnime_InitLinkAnimetion SkelAnime_InitPlayerAnimetion 0x80135F88 0x48
2076 asm/non_matchings/code/z_skelanime/PlayerAnimation_SetUpdateFunction.s PlayerAnimation_SetUpdateFunction 0x801360A8 0xE
2077 asm/non_matchings/code/z_skelanime/PlayerAnimation_Update.s PlayerAnimation_Update 0x801360E0 0x9
2078 asm/non_matchings/code/z_skelanime/PlayerAnimation_Morph.s PlayerAnimation_Morph 0x80136104 0x2E