SubS Skelanime functions (#572)

* Bring code over

* Change ActorDraw typedefs from actor to thisx

* Rename functions

* Format

* Rename and clean up limb draws

* Some more limb draw cleanup

* Some more cleanup

* Function comments

* Last bit of cleanup

* update tutorial

* More tutorial and format

* Remove extra newlines form actorfixer

* Missed one

* Remove some unnecessary casts

* Fix SkelAnime transform functions in functions.h

* Remove bug comments, and add note

* Remove some more unneeded casts and rename one variable

* format

* Fix merge

* Format
This commit is contained in:
Derek Hensley 2022-01-16 12:14:34 -08:00 committed by GitHub
parent a9c2449c11
commit aa90d1ee2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
53 changed files with 411 additions and 271 deletions

View File

@ -262,7 +262,7 @@ void EnRecepgirl_Draw(Actor *thisx, GlobalContext *globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, D_80C106B0[this->unk_2AC]); gSPSegment(POLY_OPA_DISP++, 0x08, D_80C106B0[this->unk_2AC]);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, func_80C10558, NULL, func_80C10590, &this->actor); SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, func_80C10558, NULL, func_80C10590, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }
@ -273,7 +273,7 @@ void EnRecepgirl_Draw(Actor *thisx, GlobalContext *globalCtx) {
(We can delete the `GLOBAL_ASM` lines now.) (We can delete the `GLOBAL_ASM` lines now.)
The worst part of documentation is finding somewhere to start. We have a decent place to start here, though, in that we already know the function (or rather, the use) of a couple of the functions, namely the LimbDraws. So we can rename `func_80C10558` to `EnRecepgirl_OverrideLimbDraw` and `func_80C10590` to `EnRecepgirl_UnkLimbDraw`. Remember to do a global rename so that the functions in the assembly are renamed, use `rename_global_asm`, The worst part of documentation is finding somewhere to start. We have a decent place to start here, though, in that we already know the function (or rather, the use) of a couple of the functions, namely the LimbDraws. So we can rename `func_80C10558` to `EnRecepgirl_OverrideLimbDraw` and `func_80C10590` to `EnRecepgirl_TransformLimbDraw`. Remember to do a global rename so that the functions in the assembly are renamed, use `rename_global_asm`,
``` ```
$ ./tools/rename_global_asm.py $ ./tools/rename_global_asm.py
asm/non_matchings/overlays/ovl_En_Recepgirl/func_80C10558.s --> asm/non_matchings/overlays/ovl_En_Recepgirl/EnRecepgirl_OverrideLimbDraw.s asm/non_matchings/overlays/ovl_En_Recepgirl/func_80C10558.s --> asm/non_matchings/overlays/ovl_En_Recepgirl/EnRecepgirl_OverrideLimbDraw.s

View File

@ -34,7 +34,7 @@ void EnRecepgirl_Draw(Actor *thisx, GlobalContext *globalCtx) {
sp30->polyOpa.p = temp_v1 + 8; sp30->polyOpa.p = temp_v1 + 8;
temp_v1->words.w0 = 0xDB060020; temp_v1->words.w0 = 0xDB060020;
temp_v1->words.w1 = (u32) D_80C106B0[this->unk_2AC]; temp_v1->words.w1 = (u32) D_80C106B0[this->unk_2AC];
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, (s32) this->skelAnime.dListCount, func_80C10558, NULL, func_80C10590, (Actor *) this); SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, (s32) this->skelAnime.dListCount, func_80C10558, NULL, func_80C10590, (Actor *) this);
} }
``` ```
@ -107,7 +107,7 @@ void EnRecepgirl_Draw(Actor *thisx, GlobalContext *globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, D_80C106B0[this->unk_2AC]); gSPSegment(POLY_OPA_DISP++, 0x08, D_80C106B0[this->unk_2AC]);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, func_80C10558, NULL, func_80C10590, &this->actor); SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, func_80C10558, NULL, func_80C10590, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }
@ -115,28 +115,28 @@ void EnRecepgirl_Draw(Actor *thisx, GlobalContext *globalCtx) {
And this matches. And this matches.
The last two functions in the actor are used as arguments in `func_801343C0`. This is a `SkelAnime` function, except unlike the OoT ones, it has three function callback arguments instead of two: in `functions.h` or `z_skelanime.c`, we find The last two functions in the actor are used as arguments in `SkelAnime_DrawTransformFlexOpa`. This is a `SkelAnime` function, except unlike the OoT ones, it has three function callback arguments instead of two: in `functions.h` or `z_skelanime.c`, we find
```C ```C
void func_801343C0(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, void SkelAnime_DrawTransformFlexOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount,
OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, UnkActorDraw unkDraw, Actor* actor) OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, TransformLimbDrawOpa transformLimbDraw, Actor* actor)
``` ```
The typedefs of the callbacks it uses are in `z64animation.h`: The typedefs of the callbacks it uses are in `z64animation.h`:
```C ```C
typedef s32 (*OverrideLimbDraw)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, typedef s32 (*OverrideLimbDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
struct Actor* actor); struct Actor* thisx);
typedef void (*PostLimbDraw)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, typedef void (*PostLimbDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot,
struct Actor* actor); struct Actor* thisx);
[...] [...]
typedef void (*UnkActorDraw)(struct GlobalContext* globalCtx, s32 limbIndex, struct Actor* actor); typedef void (*TransformLimbDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, struct Actor* thisx);
``` ```
which is where mips2c got them from. which is where mips2c got them from.
In this case, only two of them are used, and it is these that are the last functions standing between us and a decompiled actor. In this case, only two of them are used, and it is these that are the last functions standing between us and a decompiled actor.
## OverrideLimbDraw, PostLimbDraw, UnkActorDraw ## OverrideLimbDraw, PostLimbDraw, TransformLimbDraw
Well, we don't have a PostLimbDraw here, but as we see from the prototype, it's much the same as the OverrideLimbDraw but without the `pos` argument and no return value. Well, we don't have a PostLimbDraw here, but as we see from the prototype, it's much the same as the OverrideLimbDraw but without the `pos` argument and no return value.
```C ```C
@ -159,7 +159,7 @@ s32 func_80C10558(GlobalContext *globalCtx, s32 limbIndex, Gfx **dList, Vec3f *p
} }
``` ```
As for the UnkActorDraw, it has a much simpler prototype. mips2c gives As for the TransformLimbDraw, it has a much simpler prototype. mips2c gives
```C ```C
void func_80C10590(GlobalContext *globalCtx, s32 limbIndex, Actor *actor) { void func_80C10590(GlobalContext *globalCtx, s32 limbIndex, Actor *actor) {
if (limbIndex == 5) { if (limbIndex == 5) {

View File

@ -2375,8 +2375,8 @@ void SkelAnime_DrawLimbOpa(GlobalContext* globalCtx, s32 limbIndex, void** skele
void SkelAnime_DrawOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor); void SkelAnime_DrawOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor);
void SkelAnime_DrawFlexLimbOpa(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor, Mtx** limbMatricies); void SkelAnime_DrawFlexLimbOpa(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor, Mtx** limbMatricies);
void SkelAnime_DrawFlexOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor); void SkelAnime_DrawFlexOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor);
void func_80134148(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, UnkActorDrawOpa unkDraw, Actor* actor, Mtx** mtx); void SkelAnime_DrawTransformFlexLimbOpa(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, TransformLimbDrawOpa transformLimbDraw, Actor* actor, Mtx** mtx);
void func_801343C0(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, UnkActorDrawOpa unkDraw, Actor* actor); void SkelAnime_DrawTransformFlexOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, TransformLimbDrawOpa transformLimbDraw, Actor* actor);
void SkelAnime_GetFrameData(AnimationHeader* animationSeg, s32 currentFrame, s32 limbCount, Vec3s* dst); void SkelAnime_GetFrameData(AnimationHeader* animationSeg, s32 currentFrame, s32 limbCount, Vec3s* dst);
s16 Animation_GetLength(void* animation); s16 Animation_GetLength(void* animation);
s16 Animation_GetLastFrame(void* animation); s16 Animation_GetLastFrame(void* animation);
@ -2504,8 +2504,8 @@ u32 func_8013A4C4(s32 flag);
s16 func_8013A504(s16 val); s16 func_8013A504(s16 val);
s32 func_8013A530(GlobalContext* globalCtx, Actor* actor, s32 flag, Vec3f* pos, Vec3s* rot, f32 distanceMin, f32 distanceMax, s16 angleError); s32 func_8013A530(GlobalContext* globalCtx, Actor* actor, s32 flag, Vec3f* pos, Vec3s* rot, f32 distanceMin, f32 distanceMax, s16 angleError);
struct EnDoor* SubS_FindDoor(GlobalContext* globalCtx, s32 unk_1A5); struct EnDoor* SubS_FindDoor(GlobalContext* globalCtx, s32 unk_1A5);
Gfx* func_8013A860(GlobalContext* globalCtx, s32 idx, void** skeleton, Vec3s* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, UnkActorDraw unkActorDraw, Actor* actor, Mtx** mtx, Gfx* gfx); Gfx* SubS_DrawTransformFlexLimb(GlobalContext* globalCtx, s32 idx, void** skeleton, Vec3s* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, TransformLimbDraw transformLimbDraw, Actor* actor, Mtx** mtx, Gfx* gfx);
Gfx* func_8013AB00(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, UnkActorDraw unkActorDraw, Actor* actor, Gfx* gfx); Gfx* SubS_DrawTransformFlex(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, TransformLimbDraw transformLimbDraw, Actor* actor, Gfx* gfx);
s32 func_8013AD6C(GlobalContext* globalCtx); s32 func_8013AD6C(GlobalContext* globalCtx);
s32 func_8013AD9C(s16 arg0, s16 arg1, Vec3f* arg2, Vec3s* arg3, s32 arg4, s32 arg5); s32 func_8013AD9C(s16 arg0, s16 arg1, Vec3f* arg2, Vec3s* arg3, s32 arg4, s32 arg5);
void func_8013AED4(u16* arg0, u16 arg1, u16 arg2); void func_8013AED4(u16* arg0, u16 arg1, u16 arg2);

View File

@ -18,7 +18,6 @@ struct Lights;
struct CollisionPoly; struct CollisionPoly;
struct EnBox; struct EnBox;
struct EnDoor;
typedef void(*ActorFunc)(struct Actor* this, struct GlobalContext* globalCtx); typedef void(*ActorFunc)(struct Actor* this, struct GlobalContext* globalCtx);

View File

@ -204,26 +204,26 @@ typedef struct SkelAnime {
} SkelAnime; // size = 0x44 } SkelAnime; // size = 0x44
typedef s32 (*OverrideLimbDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, typedef s32 (*OverrideLimbDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
struct Actor* actor); struct Actor* thisx);
typedef void (*PostLimbDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, typedef void (*PostLimbDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot,
struct Actor* actor); struct Actor* thisx);
typedef s32 (*OverrideLimbDraw)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, typedef s32 (*OverrideLimbDraw)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
struct Actor* actor, Gfx** gfx); struct Actor* thisx, Gfx** gfx);
typedef void (*PostLimbDraw)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, typedef void (*PostLimbDraw)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot,
struct Actor* actor, Gfx** gfx); struct Actor* thisx, Gfx** gfx);
typedef s32 (*OverrideLimbDrawFlex)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, typedef s32 (*OverrideLimbDrawFlex)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
struct Actor* actor); struct Actor* thisx);
typedef void (*PostLimbDrawFlex)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList1, Gfx** dList2, Vec3s* rot, typedef void (*PostLimbDrawFlex)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList1, Gfx** dList2, Vec3s* rot,
struct Actor* actor); struct Actor* thisx);
typedef void (*UnkActorDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, struct Actor* actor); typedef void (*TransformLimbDrawOpa)(struct GlobalContext* globalCtx, s32 limbIndex, struct Actor* thisx);
typedef void (*UnkActorDraw)(struct GlobalContext* globalCtx, s32 limbIndex, struct Actor* actor, Gfx** gfx); typedef void (*TransformLimbDraw)(struct GlobalContext* globalCtx, s32 limbIndex, struct Actor* thisx, Gfx** gfx);
typedef void (*AnimationEntryCallback)(struct GlobalContext*, AnimationEntryData*); typedef void (*AnimationEntryCallback)(struct GlobalContext*, AnimationEntryData*);

View File

@ -35,7 +35,7 @@ void SkelAnime_DrawLimbLod(GlobalContext* globalCtx, s32 limbIndex, void** skele
OPEN_DISPS(globalCtx->state.gfxCtx); OPEN_DISPS(globalCtx->state.gfxCtx);
Matrix_StatePush(); Matrix_StatePush();
limb = (LodLimb*)Lib_SegmentedToVirtual(skeleton[limbIndex]); limb = Lib_SegmentedToVirtual(skeleton[limbIndex]);
limbIndex++; limbIndex++;
rot = jointTable[limbIndex]; rot = jointTable[limbIndex];
@ -94,7 +94,7 @@ void SkelAnime_DrawLod(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTa
Matrix_StatePush(); Matrix_StatePush();
rootLimb = (LodLimb*)Lib_SegmentedToVirtual(skeleton[0]); rootLimb = Lib_SegmentedToVirtual(skeleton[0]);
pos.x = jointTable[0].x; pos.x = jointTable[0].x;
pos.y = jointTable[0].y; pos.y = jointTable[0].y;
pos.z = jointTable[0].z; pos.z = jointTable[0].z;
@ -146,7 +146,7 @@ void SkelAnime_DrawFlexLimbLod(GlobalContext* globalCtx, s32 limbIndex, void** s
Matrix_StatePush(); Matrix_StatePush();
limb = (LodLimb*)Lib_SegmentedToVirtual(skeleton[limbIndex]); limb = Lib_SegmentedToVirtual(skeleton[limbIndex]);
limbIndex++; limbIndex++;
rot = jointTable[limbIndex]; rot = jointTable[limbIndex];
@ -203,7 +203,7 @@ void SkelAnime_DrawFlexLod(GlobalContext* globalCtx, void** skeleton, Vec3s* joi
Gfx* limbDList; Gfx* limbDList;
Vec3f pos; Vec3f pos;
Vec3s rot; Vec3s rot;
Mtx* mtx = (Mtx*)GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(sizeof(Mtx) * dListCount)); Mtx* mtx = GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(sizeof(Mtx) * dListCount));
if (skeleton == NULL) { if (skeleton == NULL) {
return; return;
@ -214,7 +214,7 @@ void SkelAnime_DrawFlexLod(GlobalContext* globalCtx, void** skeleton, Vec3s* joi
gSPSegment(POLY_OPA_DISP++, 0x0D, mtx); gSPSegment(POLY_OPA_DISP++, 0x0D, mtx);
Matrix_StatePush(); Matrix_StatePush();
rootLimb = (LodLimb*)Lib_SegmentedToVirtual(skeleton[0]); rootLimb = Lib_SegmentedToVirtual(skeleton[0]);
pos.x = jointTable[0].x; pos.x = jointTable[0].x;
pos.y = jointTable[0].y; pos.y = jointTable[0].y;
pos.z = jointTable[0].z; pos.z = jointTable[0].z;
@ -266,7 +266,7 @@ void SkelAnime_DrawLimbOpa(GlobalContext* globalCtx, s32 limbIndex, void** skele
Matrix_StatePush(); Matrix_StatePush();
limb = (StandardLimb*)Lib_SegmentedToVirtual(skeleton[limbIndex]); limb = Lib_SegmentedToVirtual(skeleton[limbIndex]);
limbIndex++; limbIndex++;
rot = jointTable[limbIndex]; rot = jointTable[limbIndex];
pos.x = limb->jointPos.x; pos.x = limb->jointPos.x;
@ -421,7 +421,7 @@ void SkelAnime_DrawFlexOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* joi
Gfx* limbDList; Gfx* limbDList;
Vec3f pos; Vec3f pos;
Vec3s rot; Vec3s rot;
Mtx* mtx = (Mtx*)GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(sizeof(Mtx) * dListCount)); Mtx* mtx = GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(sizeof(Mtx) * dListCount));
if (skeleton == NULL) { if (skeleton == NULL) {
return; return;
@ -473,9 +473,9 @@ void SkelAnime_DrawFlexOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* joi
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }
void func_80134148(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable, void SkelAnime_DrawTransformFlexLimbOpa(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable,
OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, UnkActorDrawOpa unkDraw, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw,
Actor* actor, Mtx** mtx) { TransformLimbDrawOpa transformLimbDraw, Actor* actor, Mtx** mtx) {
StandardLimb* limb; StandardLimb* limb;
Gfx* newDList; Gfx* newDList;
Gfx* limbDList; Gfx* limbDList;
@ -486,7 +486,7 @@ void func_80134148(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec
Matrix_StatePush(); Matrix_StatePush();
limb = (StandardLimb*)Lib_SegmentedToVirtual(skeleton[limbIndex]); limb = Lib_SegmentedToVirtual(skeleton[limbIndex]);
limbIndex++; limbIndex++;
rot = jointTable[limbIndex]; rot = jointTable[limbIndex];
@ -500,8 +500,8 @@ void func_80134148(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec
Matrix_JointPosition(&pos, &rot); Matrix_JointPosition(&pos, &rot);
Matrix_StatePush(); Matrix_StatePush();
//! @bug Does not check unkDraw is not NULL before calling it. transformLimbDraw(globalCtx, limbIndex, actor);
unkDraw(globalCtx, limbIndex, actor);
if (newDList != NULL) { if (newDList != NULL) {
Gfx* polyTemp = POLY_OPA_DISP; Gfx* polyTemp = POLY_OPA_DISP;
@ -523,23 +523,32 @@ void func_80134148(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec
} }
if (limb->child != LIMB_DONE) { if (limb->child != LIMB_DONE) {
func_80134148(globalCtx, limb->child, skeleton, jointTable, overrideLimbDraw, postLimbDraw, unkDraw, actor, SkelAnime_DrawTransformFlexLimbOpa(globalCtx, limb->child, skeleton, jointTable, overrideLimbDraw, postLimbDraw,
mtx); transformLimbDraw, actor, mtx);
} }
Matrix_StatePop(); Matrix_StatePop();
if (limb->sibling != LIMB_DONE) { if (limb->sibling != LIMB_DONE) {
func_80134148(globalCtx, limb->sibling, skeleton, jointTable, overrideLimbDraw, postLimbDraw, unkDraw, actor, SkelAnime_DrawTransformFlexLimbOpa(globalCtx, limb->sibling, skeleton, jointTable, overrideLimbDraw,
mtx); postLimbDraw, transformLimbDraw, actor, mtx);
} }
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }
void func_801343C0(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, /**
OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, UnkActorDrawOpa unkDraw, * Draw all limbs of type `StandardLimb` in a given flexible skeleton to the polyOpa buffer
Actor* actor) { * Limbs in a flexible skeleton have meshes that can stretch to line up with other limbs.
* An array of matrices is dynamically allocated so each limb can access any transform to ensure its meshes line up.
*
* Also makes use of a `TransformLimbDraw`, which transforms limbs based on world coordinates, as opposed to local limb
* coordinates.
* Note that the `TransformLimbDraw` does not have a NULL check, so must be provided even if empty.
*/
void SkelAnime_DrawTransformFlexOpa(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount,
OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw,
TransformLimbDrawOpa transformLimbDraw, Actor* actor) {
StandardLimb* rootLimb; StandardLimb* rootLimb;
s32 pad; s32 pad;
Gfx* newDList; Gfx* newDList;
@ -554,13 +563,13 @@ void func_801343C0(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable,
OPEN_DISPS(globalCtx->state.gfxCtx); OPEN_DISPS(globalCtx->state.gfxCtx);
mtx = (Mtx*)GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(sizeof(Mtx) * dListCount)); mtx = GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(sizeof(Mtx) * dListCount));
gSPSegment(POLY_OPA_DISP++, 0x0D, mtx); gSPSegment(POLY_OPA_DISP++, 0x0D, mtx);
Matrix_StatePush(); Matrix_StatePush();
rootLimb = (StandardLimb*)Lib_SegmentedToVirtual(skeleton[0]); rootLimb = Lib_SegmentedToVirtual(skeleton[0]);
pos.x = jointTable[0].x; pos.x = jointTable[0].x;
pos.y = jointTable[0].y; pos.y = jointTable[0].y;
@ -573,8 +582,7 @@ void func_801343C0(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable,
Matrix_JointPosition(&pos, &rot); Matrix_JointPosition(&pos, &rot);
Matrix_StatePush(); Matrix_StatePush();
//! @bug Does not check unkDraw is not NULL before calling it. transformLimbDraw(globalCtx, 1, actor);
unkDraw(globalCtx, 1, actor);
if (newDList != NULL) { if (newDList != NULL) {
Gfx* polyTemp = POLY_OPA_DISP; Gfx* polyTemp = POLY_OPA_DISP;
@ -596,8 +604,8 @@ void func_801343C0(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable,
} }
if (rootLimb->child != LIMB_DONE) { if (rootLimb->child != LIMB_DONE) {
func_80134148(globalCtx, rootLimb->child, skeleton, jointTable, overrideLimbDraw, postLimbDraw, unkDraw, actor, SkelAnime_DrawTransformFlexLimbOpa(globalCtx, rootLimb->child, skeleton, jointTable, overrideLimbDraw,
&mtx); postLimbDraw, transformLimbDraw, actor, &mtx);
} }
Matrix_StatePop(); Matrix_StatePop();
@ -655,7 +663,7 @@ Gfx* SkelAnime_DrawLimb(GlobalContext* globalCtx, s32 limbIndex, void** skeleton
Matrix_StatePush(); Matrix_StatePush();
limb = (StandardLimb*)Lib_SegmentedToVirtual(skeleton[limbIndex]); limb = Lib_SegmentedToVirtual(skeleton[limbIndex]);
limbIndex++; limbIndex++;
rot = jointTable[limbIndex]; rot = jointTable[limbIndex];
@ -711,7 +719,7 @@ Gfx* SkelAnime_Draw(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable
Matrix_StatePush(); Matrix_StatePush();
rootLimb = (StandardLimb*)Lib_SegmentedToVirtual(skeleton[0]); rootLimb = Lib_SegmentedToVirtual(skeleton[0]);
pos.x = jointTable[0].x; pos.x = jointTable[0].x;
pos.y = jointTable[0].y; pos.y = jointTable[0].y;
@ -758,7 +766,7 @@ Gfx* SkelAnime_DrawFlexLimb(GlobalContext* globalCtx, s32 limbIndex, void** skel
Matrix_StatePush(); Matrix_StatePush();
limb = (StandardLimb*)Lib_SegmentedToVirtual(skeleton[limbIndex]); limb = Lib_SegmentedToVirtual(skeleton[limbIndex]);
limbIndex++; limbIndex++;
rot = jointTable[limbIndex]; rot = jointTable[limbIndex];
@ -821,7 +829,7 @@ Gfx* SkelAnime_DrawFlex(GlobalContext* globalCtx, void** skeleton, Vec3s* jointT
return NULL; return NULL;
} }
mtx = (Mtx*)GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(sizeof(Mtx) * dListCount)); mtx = GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(sizeof(Mtx) * dListCount));
gSPSegment(gfx++, 0x0D, mtx); gSPSegment(gfx++, 0x0D, mtx);
@ -994,7 +1002,7 @@ void AnimationContext_SetLoadFrame(GlobalContext* globalCtx, LinkAnimationHeader
AnimationEntry* entry = AnimationContext_AddEntry(&globalCtx->animationCtx, ANIMATION_LINKANIMETION); AnimationEntry* entry = AnimationContext_AddEntry(&globalCtx->animationCtx, ANIMATION_LINKANIMETION);
if (entry != NULL) { if (entry != NULL) {
LinkAnimationHeader* linkAnimHeader = (LinkAnimationHeader*)Lib_SegmentedToVirtual(animation); LinkAnimationHeader* linkAnimHeader = Lib_SegmentedToVirtual(animation);
u32 ram = frameTable; u32 ram = frameTable;
osCreateMesgQueue(&entry->data.load.msgQueue, &entry->data.load.msg, 1); osCreateMesgQueue(&entry->data.load.msgQueue, &entry->data.load.msg, 1);

View File

@ -36,9 +36,119 @@ EnDoor* SubS_FindDoor(GlobalContext* globalCtx, s32 unk_1A5) {
return door; return door;
} }
#pragma GLOBAL_ASM("asm/non_matchings/code/z_sub_s/func_8013A860.s") Gfx* SubS_DrawTransformFlexLimb(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* jointTable,
OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw,
TransformLimbDraw transformLimbDraw, Actor* actor, Mtx** mtx, Gfx* gfx) {
StandardLimb* limb;
Gfx* newDList;
Gfx* limbDList;
Vec3f pos;
Vec3s rot;
#pragma GLOBAL_ASM("asm/non_matchings/code/z_sub_s/func_8013AB00.s") Matrix_StatePush();
limb = Lib_SegmentedToVirtual(skeleton[limbIndex]);
limbIndex++;
rot = jointTable[limbIndex];
pos.x = limb->jointPos.x;
pos.y = limb->jointPos.y;
pos.z = limb->jointPos.z;
newDList = limbDList = limb->dList;
if ((overrideLimbDraw == NULL) || !overrideLimbDraw(globalCtx, limbIndex, &newDList, &pos, &rot, actor, &gfx)) {
Matrix_JointPosition(&pos, &rot);
Matrix_StatePush();
transformLimbDraw(globalCtx, limbIndex, actor, &gfx);
if (newDList != NULL) {
Matrix_ToMtx(*mtx);
gSPMatrix(gfx++, *mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfx++, newDList);
(*mtx)++;
} else if (limbDList != NULL) {
Matrix_ToMtx(*mtx);
(*mtx)++;
}
Matrix_StatePop();
}
if (postLimbDraw != NULL) {
postLimbDraw(globalCtx, limbIndex, &limbDList, &rot, actor, &gfx);
}
if (limb->child != LIMB_DONE) {
gfx = SubS_DrawTransformFlexLimb(globalCtx, limb->child, skeleton, jointTable, overrideLimbDraw, postLimbDraw,
transformLimbDraw, actor, mtx, gfx);
}
Matrix_StatePop();
if (limb->sibling != LIMB_DONE) {
gfx = SubS_DrawTransformFlexLimb(globalCtx, limb->sibling, skeleton, jointTable, overrideLimbDraw, postLimbDraw,
transformLimbDraw, actor, mtx, gfx);
}
return gfx;
}
/**
* Draw all limbs of type `StandardLimb` in a given flexible skeleton
* Limbs in a flexible skeleton have meshes that can stretch to line up with other limbs.
* An array of matrices is dynamically allocated so each limb can access any transform to ensure its meshes line up.
*
* Also makes use of a `TransformLimbDraw`, which transforms limbs based on world coordinates, as opposed to local limb
* coordinates.
* Note that the `TransformLimbDraw` does not have a NULL check, so must be provided even if empty.
*/
Gfx* SubS_DrawTransformFlex(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount,
OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw,
TransformLimbDraw transformLimbDraw, Actor* actor, Gfx* gfx) {
StandardLimb* rootLimb;
s32 pad;
Gfx* newDlist;
Gfx* limbDList;
Vec3f pos;
Vec3s rot;
Mtx* mtx = GRAPH_ALLOC(globalCtx->state.gfxCtx, ALIGN16(dListCount * sizeof(Mtx)));
if (skeleton == NULL) {
return NULL;
}
gSPSegment(gfx++, 0x0D, mtx);
Matrix_StatePush();
rootLimb = Lib_SegmentedToVirtual(skeleton[0]);
pos.x = jointTable->x;
pos.y = jointTable->y;
pos.z = jointTable->z;
rot = jointTable[1];
newDlist = rootLimb->dList;
limbDList = rootLimb->dList;
if (overrideLimbDraw == NULL || !overrideLimbDraw(globalCtx, 1, &newDlist, &pos, &rot, actor, &gfx)) {
Matrix_JointPosition(&pos, &rot);
Matrix_StatePush();
transformLimbDraw(globalCtx, 1, actor, &gfx);
if (newDlist != NULL) {
Matrix_ToMtx(mtx);
gSPMatrix(gfx++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfx++, newDlist);
mtx++;
} else if (limbDList != NULL) {
Matrix_ToMtx(mtx);
mtx++;
}
Matrix_StatePop();
}
if (postLimbDraw != NULL) {
postLimbDraw(globalCtx, 1, &limbDList, &rot, actor, &gfx);
}
if (rootLimb->child != LIMB_DONE) {
gfx = SubS_DrawTransformFlexLimb(globalCtx, rootLimb->child, skeleton, jointTable, overrideLimbDraw,
postLimbDraw, transformLimbDraw, actor, &mtx, gfx);
}
Matrix_StatePop();
return gfx;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_sub_s/func_8013AD6C.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_sub_s/func_8013AD6C.s")

View File

@ -91,13 +91,13 @@ void DmNb_Update(Actor* thisx, GlobalContext* globalCtx) {
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 30.0f, 12.0f, 0.0f, 4); Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 30.0f, 12.0f, 0.0f, 4);
} }
void DmNb_UnkActorDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void DmNb_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
} }
void DmNb_Draw(Actor* thisx, GlobalContext* globalCtx) { void DmNb_Draw(Actor* thisx, GlobalContext* globalCtx) {
DmNb* this = THIS; DmNb* this = THIS;
func_8012C5B0(globalCtx->state.gfxCtx); func_8012C5B0(globalCtx->state.gfxCtx);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
NULL, DmNb_UnkActorDraw, &this->actor); this->skelAnime.dListCount, NULL, NULL, DmNb_TransformLimbDraw, &this->actor);
} }

View File

@ -74,14 +74,14 @@ void DmSa_Update(Actor* thisx, GlobalContext* globalCtx) {
this->actionFunc(this, globalCtx); this->actionFunc(this, globalCtx);
} }
s32 func_80A2EB10(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor) { s32 DmSa_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
return 0; return false;
} }
void func_80A2EB2C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor) { void DmSa_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
} }
void func_80A2EB44(GlobalContext* globalCtx, s32 limbIndex, Actor* actor) { void DmSa_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
} }
Gfx* func_80A2EB58(GraphicsContext* gfxCtx, u32 alpha) { Gfx* func_80A2EB58(GraphicsContext* gfxCtx, u32 alpha) {
@ -120,8 +120,9 @@ void DmSa_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x0C, func_80A2EBB0(globalCtx->state.gfxCtx, this->alpha)); gSPSegment(POLY_OPA_DISP++, 0x0C, func_80A2EBB0(globalCtx->state.gfxCtx, this->alpha));
} }
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
func_80A2EB10, func_80A2EB2C, func_80A2EB44, &this->actor); this->skelAnime.dListCount, DmSa_OverrideLimbDraw, DmSa_PostLimbDraw,
DmSa_TransformLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -1670,13 +1670,13 @@ s32 EnAkindonuts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx**
*dList = object_dnt_DL_008290; *dList = object_dnt_DL_008290;
} }
} }
return 0; return false;
} }
void EnAkindonuts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnAkindonuts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
} }
void EnAkindonuts_UnkActorDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnAkindonuts_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnAkindonuts* this = THIS; EnAkindonuts* this = THIS;
if (((this->unk_33E == 1) || (this->unk_33E == 2)) && ((limbIndex == 23) || (limbIndex == 24))) { if (((this->unk_33E == 1) || (this->unk_33E == 2)) && ((limbIndex == 23) || (limbIndex == 24))) {
@ -1696,6 +1696,7 @@ void EnAkindonuts_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnAkindonuts* this = THIS; EnAkindonuts* this = THIS;
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnAkindonuts_OverrideLimbDraw, EnAkindonuts_PostLimbDraw, EnAkindonuts_UnkActorDraw, &this->actor); this->skelAnime.dListCount, EnAkindonuts_OverrideLimbDraw, EnAkindonuts_PostLimbDraw,
EnAkindonuts_TransformLimbDraw, &this->actor);
} }

View File

@ -979,7 +979,7 @@ void EnAob01_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 EnAob01_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, s32 EnAob01_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* thisx) { Actor* thisx) {
EnAob01* this = THIS; EnAob01* this = THIS;
UNK_TYPE sp38[] = { TexturePtr sp38[] = {
&object_aob_Tex_000658, &object_aob_Tex_000658,
&object_aob_Tex_000E58, &object_aob_Tex_000E58,
&object_aob_Tex_001658, &object_aob_Tex_001658,
@ -1023,7 +1023,7 @@ void EnAob01_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
} }
} }
void EnAob01_UnkDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnAob01_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
} }
void EnAob01_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnAob01_Draw(Actor* thisx, GlobalContext* globalCtx) {
@ -1040,8 +1040,9 @@ void EnAob01_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_EnvColor(globalCtx->state.gfxCtx, 50, 80, 0, 0)); gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_EnvColor(globalCtx->state.gfxCtx, 50, 80, 0, 0));
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnAob01_OverrideLimbDraw, EnAob01_PostLimbDraw, EnAob01_UnkDraw, &this->actor); this->skelAnime.dListCount, EnAob01_OverrideLimbDraw, EnAob01_PostLimbDraw,
EnAob01_TransformLimbDraw, &this->actor);
if (this->actor.draw != NULL) { if (this->actor.draw != NULL) {
func_8012C2DC(globalCtx->state.gfxCtx); func_8012C2DC(globalCtx->state.gfxCtx);

View File

@ -1223,19 +1223,19 @@ void EnBigpo_UpdateFire(Actor* thisx, GlobalContext* globalCtx) {
this->actionFunc(this, globalCtx); this->actionFunc(this, globalCtx);
} }
s32 EnBigpo_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor, s32 EnBigpo_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx,
Gfx** gfx) { Gfx** gfx) {
EnBigpo* this = (EnBigpo*)actor; EnBigpo* this = THIS;
// not fully invisible // not fully invisible
if (!(this->mainColor.a != 0 && limbIndex != 7) || if (!(this->mainColor.a != 0 && limbIndex != 7) ||
(this->actionFunc == EnBigpo_BurnAwayDeath && this->idleTimer >= 2)) { (this->actionFunc == EnBigpo_BurnAwayDeath && this->idleTimer >= 2)) {
*dList = NULL; *dList = NULL;
} }
return 0; return false;
} }
void EnBigpo_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor, Gfx** gfx) { void EnBigpo_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx, Gfx** gfx) {
EnBigpo* this = (EnBigpo*)actor; EnBigpo* this = THIS;
s8 limbByte; s8 limbByte;
Vec3f* v1ptr; // todo: figure out better names Vec3f* v1ptr; // todo: figure out better names
Vec3f* v2ptr; Vec3f* v2ptr;

View File

@ -26,8 +26,9 @@ void func_809CD6C0(EnBji01* this, GlobalContext* globalCtx);
void func_809CD70C(EnBji01* this, GlobalContext* globalCtx); void func_809CD70C(EnBji01* this, GlobalContext* globalCtx);
void func_809CD77C(EnBji01* this, GlobalContext* globalCtx); void func_809CD77C(EnBji01* this, GlobalContext* globalCtx);
s32 EnBji01_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* arg); s32 EnBji01_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
void EnBji01_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg); Actor* thisx);
void EnBji01_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx);
extern AnimationHeader D_06000FDC; extern AnimationHeader D_06000FDC;
extern AnimationHeader D_06005B58; extern AnimationHeader D_06005B58;
@ -441,7 +442,7 @@ void EnBji01_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
} }
void EnBji01_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnBji01_Draw(Actor* thisx, GlobalContext* globalCtx) {
static void* sEyeTextures[] = { D_060049F0, D_06004E70, D_06005270 }; static TexturePtr sEyeTextures[] = { D_060049F0, D_06004E70, D_06005270 };
EnBji01* this = THIS; EnBji01* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx); OPEN_DISPS(globalCtx->state.gfxCtx);

View File

@ -582,7 +582,7 @@ void EnDai_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
s32 func_80B3F598(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx, s32 EnDai_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx,
Gfx** gfx) { Gfx** gfx) {
EnDai* this = THIS; EnDai* this = THIS;
@ -598,10 +598,10 @@ s32 func_80B3F598(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
*dList = NULL; *dList = NULL;
} }
return 0; return false;
} }
void func_80B3F614(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx, Gfx** gfx) { void EnDai_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx, Gfx** gfx) {
static Vec3f D_80B3FE4C = { 0.0f, 0.0f, 0.0f }; static Vec3f D_80B3FE4C = { 0.0f, 0.0f, 0.0f };
EnDai* this = THIS; EnDai* this = THIS;
@ -626,10 +626,10 @@ void func_80B3F614(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
} }
} }
void func_80B3F6EC(GlobalContext* globalCtx, s32 arg1, Actor* thisx, Gfx** gfx) { void EnDai_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx, Gfx** gfx) {
EnDai* this = THIS; EnDai* this = THIS;
switch (arg1) { switch (limbIndex) {
case 9: case 9:
if (this->unk_1CE & 0x100) { if (this->unk_1CE & 0x100) {
func_80B3EC84(this); func_80B3EC84(this);
@ -669,9 +669,9 @@ void func_80B3F78C(EnDai* this, GlobalContext* globalCtx) {
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, 255); gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, 255);
gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B3FE58[this->unk_1D6])); gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B3FE58[this->unk_1D6]));
POLY_XLU_DISP = POLY_XLU_DISP = SubS_DrawTransformFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
func_8013AB00(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, this->skelAnime.dListCount, EnDai_OverrideLimbDraw, EnDai_PostLimbDraw,
func_80B3F598, func_80B3F614, func_80B3F6EC, &this->actor, POLY_XLU_DISP); EnDai_TransformLimbDraw, &this->actor, POLY_XLU_DISP);
if (this->unk_1CE & 0x40) { if (this->unk_1CE & 0x40) {
Matrix_SetCurrentState(&this->unk_18C); Matrix_SetCurrentState(&this->unk_18C);
@ -701,9 +701,9 @@ void func_80B3F920(EnDai* this, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B3FE70[this->unk_1D6])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B3FE70[this->unk_1D6]));
POLY_OPA_DISP = POLY_OPA_DISP = SubS_DrawTransformFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
func_8013AB00(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, this->skelAnime.dListCount, EnDai_OverrideLimbDraw, EnDai_PostLimbDraw,
func_80B3F598, func_80B3F614, func_80B3F6EC, &this->actor, POLY_OPA_DISP); EnDai_TransformLimbDraw, &this->actor, POLY_OPA_DISP);
Matrix_SetCurrentState(&this->unk_18C); Matrix_SetCurrentState(&this->unk_18C);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@ -720,9 +720,9 @@ void func_80B3F920(EnDai* this, GlobalContext* globalCtx) {
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, this->unk_1CD); gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, this->unk_1CD);
gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B3FE70[this->unk_1D6])); gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B3FE70[this->unk_1D6]));
POLY_XLU_DISP = POLY_XLU_DISP = SubS_DrawTransformFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
func_8013AB00(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, this->skelAnime.dListCount, EnDai_OverrideLimbDraw, EnDai_PostLimbDraw,
func_80B3F598, func_80B3F614, func_80B3F6EC, &this->actor, POLY_XLU_DISP); EnDai_TransformLimbDraw, &this->actor, POLY_XLU_DISP);
Matrix_SetCurrentState(&this->unk_18C); Matrix_SetCurrentState(&this->unk_18C);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

View File

@ -296,7 +296,8 @@ void EnDaiku_Update(Actor* thisx, GlobalContext* globalCtx) {
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
} }
s32 func_80943E18(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { s32 EnDaiku_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* thisx) {
EnDaiku* this = THIS; EnDaiku* this = THIS;
if (limbIndex == 15) { if (limbIndex == 15) {
@ -304,10 +305,10 @@ s32 func_80943E18(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
rot->z += this->unk_25E; rot->z += this->unk_25E;
} }
return 0; return false;
} }
void func_80943E60(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnDaiku_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
static Gfx* D_809440D4[] = { D_060070C0, D_06006FB0, D_06006E80, D_06006D70 }; static Gfx* D_809440D4[] = { D_060070C0, D_06006FB0, D_06006E80, D_06006D70 };
EnDaiku* this = THIS; EnDaiku* this = THIS;
@ -354,7 +355,7 @@ void EnDaiku_Draw(Actor* thisx, GlobalContext* globalCtx) {
} }
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
func_80943E18, func_80943E60, &this->actor); EnDaiku_OverrideLimbDraw, EnDaiku_PostLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -671,7 +671,8 @@ void EnDekunuts_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
s32 func_808BEBD0(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { s32 EnDekunuts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* thisx) {
EnDekunuts* this = THIS; EnDekunuts* this = THIS;
f32 arg1, arg2, arg3; f32 arg1, arg2, arg3;
f32 currentFrame; f32 currentFrame;
@ -700,10 +701,10 @@ s32 func_808BEBD0(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
rot->z = this->actor.world.rot.x; rot->z = this->actor.world.rot.x;
} }
} }
return 0; return false;
} }
void func_808BED30(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnDekunuts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
static s8 D_808BEF98[] = { static s8 D_808BEF98[] = {
-1, -1, -1, 3, -1, 0, -1, 1, -1, 2, 0, 0, -1, -1, -1, 3, -1, 0, -1, 1, -1, 2, 0, 0,
}; };
@ -739,8 +740,8 @@ void func_808BED30(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
void EnDekunuts_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnDekunuts_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnDekunuts* this = THIS; EnDekunuts* this = THIS;
SkelAnime_DrawOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, func_808BEBD0, func_808BED30, SkelAnime_DrawOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, EnDekunuts_OverrideLimbDraw,
&this->actor); EnDekunuts_PostLimbDraw, &this->actor);
Matrix_SetStateRotationAndTranslation(this->actor.home.pos.x, this->actor.home.pos.y, this->actor.home.pos.z, Matrix_SetStateRotationAndTranslation(this->actor.home.pos.x, this->actor.home.pos.y, this->actor.home.pos.z,
&this->actor.home.rot); &this->actor.home.rot);
Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY);

View File

@ -1174,11 +1174,11 @@ void EnDg_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
s32 func_8098BFB8(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { s32 EnDg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
return 0; return false;
} }
void func_8098BFD4(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnDg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnDg* this = THIS; EnDg* this = THIS;
Vec3f sp20 = { 0.0f, 20.0f, 0.0f }; Vec3f sp20 = { 0.0f, 20.0f, 0.0f };
@ -1231,7 +1231,7 @@ void EnDg_Draw(Actor* thisx, GlobalContext* globalCtx) {
Matrix_RotateY(this->actor.shape.rot.y, MTXMODE_APPLY); Matrix_RotateY(this->actor.shape.rot.y, MTXMODE_APPLY);
Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY);
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
func_8098BFB8, func_8098BFD4, &this->actor); EnDg_OverrideLimbDraw, EnDg_PostLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -456,10 +456,10 @@ s32 func_80B3D974(s16 arg0, s16 arg1, Vec3f* arg2, Vec3s* arg3, s32 arg4, s32 ar
return 1; return 1;
} }
void func_80B3DA88(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnDnp_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
} }
void func_80B3DAA0(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnDnp_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnDnp* this = THIS; EnDnp* this = THIS;
s32 phi_v1 = 1; s32 phi_v1 = 1;
s32 phi_v0; s32 phi_v0;
@ -504,8 +504,9 @@ void EnDnp_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B3DEAC[this->unk_336])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B3DEAC[this->unk_336]));
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
func_80B3DA88, func_80B3DAA0, &this->actor); this->skelAnime.dListCount, NULL, EnDnp_PostLimbDraw, EnDnp_TransformLimbDraw,
&this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -99,7 +99,7 @@ void EnEndingHero_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80C1E984[index])); gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80C1E984[index]));
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
0, 0, &this->actor); NULL, NULL, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -71,5 +71,5 @@ void EnEndingHero2_Draw(Actor* thisx, GlobalContext* globalCtx) {
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
func_8012C2DC(globalCtx->state.gfxCtx); func_8012C2DC(globalCtx->state.gfxCtx);
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
0, 0, &this->actor); NULL, NULL, &this->actor);
} }

View File

@ -71,5 +71,5 @@ void EnEndingHero3_Draw(Actor* thisx, GlobalContext* globalCtx) {
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
func_8012C2DC(globalCtx->state.gfxCtx); func_8012C2DC(globalCtx->state.gfxCtx);
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
0, 0, &this->actor); NULL, NULL, &this->actor);
} }

View File

@ -71,5 +71,5 @@ void EnEndingHero4_Draw(Actor* thisx, GlobalContext* globalCtx) {
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
func_8012C2DC(globalCtx->state.gfxCtx); func_8012C2DC(globalCtx->state.gfxCtx);
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
0, 0, &this->actor); NULL, NULL, &this->actor);
} }

View File

@ -74,7 +74,7 @@ void EnEndingHero5_Update(Actor* thisx, GlobalContext* globalCtx) {
Gfx* D_80C23BF0[] = { D_060070C0, D_06006FB0, D_06006E80, D_06006D70, D_0600A390 }; Gfx* D_80C23BF0[] = { D_060070C0, D_06006FB0, D_06006E80, D_06006D70, D_0600A390 };
void func_80C23A30(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnEndingHero5_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnEndingHero5* this = THIS; EnEndingHero5* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx); OPEN_DISPS(globalCtx->state.gfxCtx);
@ -112,7 +112,7 @@ void EnEndingHero5_Draw(Actor* thisx, GlobalContext* globalCtx) {
} }
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
NULL, func_80C23A30, &this->actor); NULL, EnEndingHero5_PostLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -360,8 +360,8 @@ void EnFg_Update(Actor* thisx, GlobalContext* globalCtx) {
func_80A2D348(this, globalCtx); func_80A2D348(this, globalCtx);
} }
s32 EnFg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* arg) { s32 EnFg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
EnFg* this = (EnFg*)arg; EnFg* this = THIS;
if ((limbIndex == 7) || (limbIndex == 8)) { if ((limbIndex == 7) || (limbIndex == 8)) {
*dList = NULL; *dList = NULL;
@ -372,11 +372,11 @@ s32 EnFg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
*dList = NULL; *dList = NULL;
} }
} }
return 0; return false;
} }
void EnFg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg) { void EnFg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnFg* this = (EnFg*)arg; EnFg* this = THIS;
s16 pad; s16 pad;
Vec3f vec1 = { 0.0f, 0.0f, 0.0f }; Vec3f vec1 = { 0.0f, 0.0f, 0.0f };

View File

@ -4228,7 +4228,7 @@ s32 EnFishing_LoachOverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx
rot->y += this->unk_1C4[2]; rot->y += this->unk_1C4[2];
} }
return 0; return false;
} }
void EnFishing_LoachPostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnFishing_LoachPostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {

View File

@ -1585,7 +1585,7 @@ s32 EnFsn_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
if (limbIndex == 17) { if (limbIndex == 17) {
*dList = NULL; *dList = NULL;
} }
return 0; return false;
} }
void EnFsn_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnFsn_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
@ -1604,7 +1604,7 @@ void EnFsn_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
} }
void EnFsn_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnFsn_Draw(Actor* thisx, GlobalContext* globalCtx) {
static void* sEyeTextures[] = { &D_06005BC0, &D_06006D40, &D_06007140 }; static TexturePtr sEyeTextures[] = { &D_06005BC0, &D_06006D40, &D_06007140 };
EnFsn* this = THIS; EnFsn* this = THIS;
s32 pad; s32 pad;
s16 i; s16 i;

View File

@ -966,7 +966,7 @@ void EnGeg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
} }
} }
void EnGeg_UnkDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnGeg_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnGeg* this = THIS; EnGeg* this = THIS;
s32 phi_v0; s32 phi_v0;
s32 phi_v1; s32 phi_v1;
@ -1039,8 +1039,9 @@ void func_80BB3BE0(EnGeg* this, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80BB4088[this->unk_23E])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80BB4088[this->unk_23E]));
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnGeg_OverrideLimbDraw, EnGeg_PostLimbDraw, EnGeg_UnkDraw, &this->actor); this->skelAnime.dListCount, EnGeg_OverrideLimbDraw, EnGeg_PostLimbDraw,
EnGeg_TransformLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -633,8 +633,8 @@ void EnGinkoMan_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
s32 EnGinkoMan_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, s32 EnGinkoMan_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* arg) { Actor* thisx) {
EnGinkoMan* this = (EnGinkoMan*)arg; EnGinkoMan* this = THIS;
if (limbIndex == 15) { if (limbIndex == 15) {
*dList = D_0600B1D8; *dList = D_0600B1D8;
@ -650,10 +650,10 @@ s32 EnGinkoMan_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** d
Matrix_InsertZRotation_s(-this->limb8Rot.x, MTXMODE_APPLY); Matrix_InsertZRotation_s(-this->limb8Rot.x, MTXMODE_APPLY);
} }
return 0; return false;
} }
void EnGinkoMan_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg) { void EnGinkoMan_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
} }
void EnGinkoMan_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnGinkoMan_Draw(Actor* thisx, GlobalContext* globalCtx) {

View File

@ -1649,7 +1649,7 @@ void EnGm_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
s32 func_809513AC(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { s32 EnGm_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
s32 pad; s32 pad;
EnGm* this = THIS; EnGm* this = THIS;
s32 phi_v0; s32 phi_v0;
@ -1684,7 +1684,7 @@ s32 func_809513AC(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
return false; return false;
} }
void func_809514BC(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnGm_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
static Vec3f D_80951E24 = { 1400.0f, 0.0f, 0.0f }; static Vec3f D_80951E24 = { 1400.0f, 0.0f, 0.0f };
EnGm* this = THIS; EnGm* this = THIS;
s32 pad[4]; s32 pad[4];
@ -1710,7 +1710,7 @@ void func_809514BC(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
} }
} }
void func_80951594(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnGm_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnGm* this = THIS; EnGm* this = THIS;
s32 phi_v0 = 1; s32 phi_v0 = 1;
s32 phi_v1 = 0; s32 phi_v1 = 0;
@ -1762,8 +1762,9 @@ void EnGm_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80951E30[this->unk_3CE])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80951E30[this->unk_3CE]));
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
func_809513AC, func_809514BC, func_80951594, &this->actor); this->skelAnime.dListCount, EnGm_OverrideLimbDraw, EnGm_PostLimbDraw,
EnGm_TransformLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -1993,7 +1993,7 @@ s32 EnGo_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
return false; return false;
} }
void EnGo_UnkDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnGo_TransfromLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnGo* this = THIS; EnGo* this = THIS;
u16 temp_v0; u16 temp_v0;
s32 phi_v1; s32 phi_v1;
@ -2044,7 +2044,7 @@ void EnGo_UnkDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
} }
void func_80A15FEC(Actor* thisx, GlobalContext* globalCtx) { void func_80A15FEC(Actor* thisx, GlobalContext* globalCtx) {
static UNK_TYPE D_80A1670C[] = { static TexturePtr D_80A1670C[] = {
&object_oF1d_map_Tex_010438, &object_oF1d_map_Tex_010C38, &object_oF1d_map_Tex_011038, &object_oF1d_map_Tex_010438, &object_oF1d_map_Tex_010C38, &object_oF1d_map_Tex_011038,
&object_oF1d_map_Tex_010C38, &object_oF1d_map_Tex_010838, &object_oF1d_map_Tex_010C38, &object_oF1d_map_Tex_010838,
}; };
@ -2060,8 +2060,9 @@ void func_80A15FEC(Actor* thisx, GlobalContext* globalCtx) {
if (this->unk_3DC == 14) { if (this->unk_3DC == 14) {
Matrix_InsertTranslation(0.0f, 0.0f, -4000.0f, MTXMODE_APPLY); Matrix_InsertTranslation(0.0f, 0.0f, -4000.0f, MTXMODE_APPLY);
} }
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnGo_OverrideLimbDraw, NULL, EnGo_UnkDraw, &this->actor); this->skelAnime.dListCount, EnGo_OverrideLimbDraw, NULL, EnGo_TransfromLimbDraw,
&this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} else { } else {

View File

@ -27,8 +27,8 @@ void func_80BCF6D0(EnHg* this, GlobalContext* globalCtx);
void func_80BCF8A0(EnHg* this, GlobalContext* globalCtx); void func_80BCF8A0(EnHg* this, GlobalContext* globalCtx);
void func_80BCF93C(EnHg* this); void func_80BCF93C(EnHg* this);
void func_80BCF95C(EnHg* this, GlobalContext* globalCtx); void func_80BCF95C(EnHg* this, GlobalContext* globalCtx);
s32 EnHg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* arg); s32 EnHg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx);
void EnHg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg); void EnHg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx);
extern AnimationHeader D_06000370; extern AnimationHeader D_06000370;
extern AnimationHeader D_06001138; extern AnimationHeader D_06001138;
@ -401,7 +401,7 @@ void EnHg_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
s32 EnHg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { s32 EnHg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
return 0; return false;
} }
void EnHg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnHg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {

View File

@ -165,7 +165,7 @@ EnDoor* func_80BF1200(GlobalContext* globalCtx, s32 arg1) {
phi_a1 = -1; phi_a1 = -1;
break; break;
} }
return (EnDoor*)SubS_FindDoor(globalCtx, phi_a1); return SubS_FindDoor(globalCtx, phi_a1);
} }
void func_80BF1258(EnIg* this) { void func_80BF1258(EnIg* this) {
@ -960,7 +960,7 @@ void EnIg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec
} }
} }
void EnIg_UnkDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx, Gfx** gfx) { void EnIg_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx, Gfx** gfx) {
EnIg* this = THIS; EnIg* this = THIS;
s32 phi_v0; s32 phi_v0;
s32 phi_v1; s32 phi_v1;
@ -1007,9 +1007,9 @@ void EnIg_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80BF3534[this->unk_3F2])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80BF3534[this->unk_3F2]));
POLY_OPA_DISP = POLY_OPA_DISP = SubS_DrawTransformFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
func_8013AB00(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, this->skelAnime.dListCount, EnIg_OverrideLimbDraw, EnIg_PostLimbDraw,
EnIg_OverrideLimbDraw, EnIg_PostLimbDraw, EnIg_UnkDraw, &this->actor, POLY_OPA_DISP); EnIg_TransformLimbDraw, &this->actor, POLY_OPA_DISP);
Matrix_SetCurrentState(&this->unk_190); Matrix_SetCurrentState(&this->unk_190);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

View File

@ -1525,7 +1525,7 @@ void func_808F6334(EnIn* this, GlobalContext* globalCtx) {
this->unk4C4 = CLAMP(this->unk4C4, 0.0f, 80.0f); this->unk4C4 = CLAMP(this->unk4C4, 0.0f, 80.0f);
Matrix_InsertTranslation(this->unk4C4, 0.0f, 0.0f, MTXMODE_APPLY); Matrix_InsertTranslation(this->unk4C4, 0.0f, 0.0f, MTXMODE_APPLY);
if (this == (EnIn*)player->targetActor && if (&this->actor == player->targetActor &&
!(globalCtx->msgCtx.unk11F04 >= 0xFF && globalCtx->msgCtx.unk11F04 <= 0x200) && newUnk4C8 == 3 && !(globalCtx->msgCtx.unk11F04 >= 0xFF && globalCtx->msgCtx.unk11F04 <= 0x200) && newUnk4C8 == 3 &&
this->unk4C8 == 3) { this->unk4C8 == 3) {
if (!(globalCtx->state.frames & 1)) { if (!(globalCtx->state.frames & 1)) {
@ -1537,8 +1537,8 @@ void func_808F6334(EnIn* this, GlobalContext* globalCtx) {
this->unk4C8 = newUnk4C8; this->unk4C8 = newUnk4C8;
} }
s32 EnIn_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* arg) { s32 EnIn_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
EnIn* this = (EnIn*)arg; EnIn* this = THIS;
s32 pad; s32 pad;
Gfx* sp50[] = { Gfx* sp50[] = {
NULL, NULL, D_060149A8, D_06014AE0, D_06014C30, D_060145D8, D_06014710, NULL, NULL, D_060149A8, D_06014AE0, D_06014C30, D_060145D8, D_06014710,
@ -1598,8 +1598,8 @@ s32 EnIn_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
return 0; return 0;
} }
void EnIn_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg) { void EnIn_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnIn* this = (EnIn*)arg; EnIn* this = THIS;
Vec3f sp50 = { 1600.0f, 0.0f, 0.0f }; Vec3f sp50 = { 1600.0f, 0.0f, 0.0f };
Vec3f sp44 = { 0.0f, 0.0f, 0.0f }; Vec3f sp44 = { 0.0f, 0.0f, 0.0f };

View File

@ -45,7 +45,8 @@ void EnKakasi_SetupSongTeach(EnKakasi* this, GlobalContext* globalCtx);
void EnKakasi_SetupDialogue(EnKakasi* this); void EnKakasi_SetupDialogue(EnKakasi* this);
void EnKakasi_LimbDraw(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, struct Actor* actor); void EnKakasi_PostLimbDraw(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot,
struct Actor* thisx);
static ColliderCylinderInit D_80971D80 = { static ColliderCylinderInit D_80971D80 = {
{ {
@ -1153,8 +1154,8 @@ void EnKakasi_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
void EnKakasi_LimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor) { void EnKakasi_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnKakasi* this = (EnKakasi*)actor; EnKakasi* this = THIS;
if (limbIndex == 4) { if (limbIndex == 4) {
Matrix_MultiplyVector3fByState(&gZeroVec3f, &this->unk1BC); Matrix_MultiplyVector3fByState(&gZeroVec3f, &this->unk1BC);
@ -1165,5 +1166,5 @@ void EnKakasi_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnKakasi* this = THIS; EnKakasi* this = THIS;
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
SkelAnime_DrawFlexOpa(globalCtx, this->skelanime.skeleton, this->skelanime.jointTable, this->skelanime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelanime.skeleton, this->skelanime.jointTable, this->skelanime.dListCount,
NULL, EnKakasi_LimbDraw, &this->actor); NULL, EnKakasi_PostLimbDraw, &this->actor);
} }

View File

@ -523,8 +523,9 @@ void EnMaYts_Update(Actor* thisx, GlobalContext* globalCtx) {
func_80B8D12C(this, globalCtx); func_80B8D12C(this, globalCtx);
} }
s32 EnMaYts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* arg) { s32 EnMaYts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
EnMaYts* this = (EnMaYts*)arg; Actor* thisx) {
EnMaYts* this = THIS;
Vec3s sp4; Vec3s sp4;
if (limbIndex == MA1_LIMB_HEAD) { if (limbIndex == MA1_LIMB_HEAD) {
@ -539,11 +540,11 @@ s32 EnMaYts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLis
rot->z += sp4.x; rot->z += sp4.x;
} }
return 0; return false;
} }
void EnMaYts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg) { void EnMaYts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnMaYts* this = (EnMaYts*)arg; EnMaYts* this = THIS;
if (limbIndex == MA1_LIMB_HEAD) { if (limbIndex == MA1_LIMB_HEAD) {
Matrix_GetStateTranslation(&this->actor.focus.pos); Matrix_GetStateTranslation(&this->actor.focus.pos);

View File

@ -604,7 +604,7 @@ void EnMinifrog_UpdateMissingFrog(Actor* thisx, GlobalContext* globalCtx) {
} }
s32 EnMinifrog_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, s32 EnMinifrog_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* arg) { Actor* thisx) {
if (limbIndex == 1) { if (limbIndex == 1) {
pos->z -= 500.0f; pos->z -= 500.0f;
} }
@ -613,11 +613,11 @@ s32 EnMinifrog_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** d
*dList = NULL; *dList = NULL;
} }
return 0; return false;
} }
void EnMinifrog_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg) { void EnMinifrog_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnMinifrog* this = (EnMinifrog*)arg; EnMinifrog* this = THIS;
if ((limbIndex == 7) || (limbIndex == 8)) { if ((limbIndex == 7) || (limbIndex == 8)) {
OPEN_DISPS(globalCtx->state.gfxCtx); OPEN_DISPS(globalCtx->state.gfxCtx);

View File

@ -906,7 +906,7 @@ void EnNiw_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
s32 EnNiw_LimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { s32 EnNiw_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
EnNiw* this = THIS; EnNiw* this = THIS;
if (limbIndex == 13) { if (limbIndex == 13) {
@ -925,7 +925,7 @@ s32 EnNiw_LimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f*
rot->y += (s16)this->limb7Roty; rot->y += (s16)this->limb7Roty;
rot->z += (s16)this->limb7Rotz; rot->z += (s16)this->limb7Rotz;
} }
return 0; return false;
} }
void EnNiw_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnNiw_Draw(Actor* thisx, GlobalContext* globalCtx) {
@ -933,7 +933,7 @@ void EnNiw_Draw(Actor* thisx, GlobalContext* globalCtx) {
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
SkelAnime_DrawFlexOpa(globalCtx, this->skelanime.skeleton, this->skelanime.jointTable, this->skelanime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelanime.skeleton, this->skelanime.jointTable, this->skelanime.dListCount,
EnNiw_LimbDraw, NULL, &this->actor); EnNiw_OverrideLimbDraw, NULL, &this->actor);
EnNiw_DrawFeathers(this, globalCtx); EnNiw_DrawFeathers(this, globalCtx);
} }

View File

@ -553,7 +553,7 @@ s32 EnPamera_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLi
rot->x += this->limb9Rot.y; rot->x += this->limb9Rot.y;
rot->z += this->limb9Rot.x; rot->z += this->limb9Rot.x;
} }
return 0; return false;
} }
void EnPamera_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnPamera_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {

View File

@ -1387,8 +1387,8 @@ static s8 limbPosIndex[] = {
-1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, 6, -1, 7, 8, 9, -1, 10, -1, 11, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, 6, -1, 7, 8, 9, -1, 10, -1, 11, -1, -1,
}; };
void EnPametfrog_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg) { void EnPametfrog_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnPametfrog* this = (EnPametfrog*)arg; EnPametfrog* this = THIS;
Vec3f vec; Vec3f vec;
Vec3s* center; Vec3s* center;
s8 index; s8 index;

View File

@ -1809,7 +1809,7 @@ void EnPm_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
s32 func_80AFAA04(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx, s32 EnPm_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx,
Gfx** gfx) { Gfx** gfx) {
EnPm* this = THIS; EnPm* this = THIS;
@ -1819,7 +1819,7 @@ s32 func_80AFAA04(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
return false; return false;
} }
void func_80AFAA44(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx, Gfx** gfx) { void EnPm_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx, Gfx** gfx) {
EnPm* this = THIS; EnPm* this = THIS;
s32 pad; s32 pad;
Vec3f sp2C; Vec3f sp2C;
@ -1854,7 +1854,7 @@ void func_80AFAA44(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
} }
} }
void func_80AFABAC(GlobalContext* globalCtx, s32 arg1, Actor* thisx, Gfx** gfx) { void EnPm_TransformLimbDraw(GlobalContext* globalCtx, s32 arg1, Actor* thisx, Gfx** gfx) {
EnPm* this = THIS; EnPm* this = THIS;
s32 phi_v0; s32 phi_v0;
s32 phi_v1; s32 phi_v1;
@ -1901,9 +1901,9 @@ void EnPm_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80AFB914[0])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80AFB914[0]));
POLY_OPA_DISP = POLY_OPA_DISP = SubS_DrawTransformFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
func_8013AB00(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, this->skelAnime.dListCount, EnPm_OverrideLimbDraw, EnPm_PostLimbDraw,
func_80AFAA04, func_80AFAA44, func_80AFABAC, &this->actor, POLY_OPA_DISP); EnPm_TransformLimbDraw, &this->actor, POLY_OPA_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -26,7 +26,7 @@ void EnPoFusen_Pop(EnPoFusen* this, GlobalContext* globalCtx);
void EnPoFusen_Idle(EnPoFusen* this, GlobalContext* globalCtx); void EnPoFusen_Idle(EnPoFusen* this, GlobalContext* globalCtx);
void EnPoFusen_IdleFuse(EnPoFusen* this, GlobalContext* globalCtx); void EnPoFusen_IdleFuse(EnPoFusen* this, GlobalContext* globalCtx);
s32 EnPoFusen_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, s32 EnPoFusen_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* arg); Actor* thisx);
extern AnimationHeader D_06000040; extern AnimationHeader D_06000040;
extern FlexSkeletonHeader D_060024F0; extern FlexSkeletonHeader D_060024F0;
@ -271,8 +271,8 @@ void EnPoFusen_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
s32 EnPoFusen_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, s32 EnPoFusen_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* arg) { Actor* thisx) {
EnPoFusen* this = (EnPoFusen*)arg; EnPoFusen* this = THIS;
f32 zScale; f32 zScale;
f32 yScale; f32 yScale;
f32 xScale; f32 xScale;
@ -307,18 +307,19 @@ s32 EnPoFusen_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dL
rot->y += (s16)(this->limb9Rot * Math_SinS(this->randBaseRotChange)); rot->y += (s16)(this->limb9Rot * Math_SinS(this->randBaseRotChange));
rot->z += (s16)(this->limb9Rot * Math_CosS(this->randBaseRotChange)); rot->z += (s16)(this->limb9Rot * Math_CosS(this->randBaseRotChange));
} }
return 0; return false;
} }
void EnPoFusen_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg) { void EnPoFusen_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
} }
void EnPoFusen_UnkActorDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnPoFusen_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
} }
void EnPoFusen_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnPoFusen_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnPoFusen* this = THIS; EnPoFusen* this = THIS;
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
func_801343C0(globalCtx, this->anime.skeleton, this->anime.jointTable, this->anime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->anime.skeleton, this->anime.jointTable, this->anime.dListCount,
EnPoFusen_OverrideLimbDraw, EnPoFusen_PostLimbDraw, EnPoFusen_UnkActorDraw, &this->actor); EnPoFusen_OverrideLimbDraw, EnPoFusen_PostLimbDraw, EnPoFusen_TransformLimbDraw,
&this->actor);
} }

View File

@ -200,7 +200,7 @@ s32 EnRecepgirl_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx**
return false; return false;
} }
void EnRecepgirl_UnkLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnRecepgirl_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnRecepgirl* this = THIS; EnRecepgirl* this = THIS;
if (limbIndex == 5) { if (limbIndex == 5) {
@ -217,8 +217,9 @@ void EnRecepgirl_Draw(Actor* thisx, GlobalContext* globalCtx) {
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x08, sEyeTextures[this->eyeTexIndex]); gSPSegment(POLY_OPA_DISP++, 0x08, sEyeTextures[this->eyeTexIndex]);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnRecepgirl_OverrideLimbDraw, NULL, EnRecepgirl_UnkLimbDraw, &this->actor); this->skelAnime.dListCount, EnRecepgirl_OverrideLimbDraw, NULL,
EnRecepgirl_TransformLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -68,19 +68,19 @@ void EnRsn_Update(Actor* thisx, GlobalContext* globalCtx) {
func_800E9250(globalCtx, &this->actor, &this->unk1D8, &this->unk1DE, this->actor.focus.pos); func_800E9250(globalCtx, &this->actor, &this->unk1D8, &this->unk1DE, this->actor.focus.pos);
} }
s32 EnRsn_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* arg) { s32 EnRsn_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
EnRsn* this = (EnRsn*)arg; EnRsn* this = THIS;
if (limbIndex == 14) { if (limbIndex == 14) {
Matrix_InsertXRotation_s(this->unk1D8.y, MTXMODE_APPLY); Matrix_InsertXRotation_s(this->unk1D8.y, MTXMODE_APPLY);
} }
return 0; return false;
} }
static Vec3f D_80C26028 = { 0.0f, 0.0f, 0.0f }; static Vec3f D_80C26028 = { 0.0f, 0.0f, 0.0f };
void EnRsn_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* arg) { void EnRsn_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
EnRsn* this = (EnRsn*)arg; EnRsn* this = THIS;
Vec3f sp18 = D_80C26028; Vec3f sp18 = D_80C26028;
if (limbIndex == 14) { if (limbIndex == 14) {

View File

@ -1127,7 +1127,7 @@ s32 EnSellnuts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** d
void EnSellnuts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnSellnuts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
} }
void func_80ADD7CC(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnSellnuts_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnSellnuts* this = THIS; EnSellnuts* this = THIS;
if (((this->unk_350 == 1) || (this->unk_350 == 3)) && ((limbIndex == 23) || (limbIndex == 24))) { if (((this->unk_350 == 1) || (this->unk_350 == 3)) && ((limbIndex == 23) || (limbIndex == 24))) {
@ -1148,6 +1148,7 @@ void EnSellnuts_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnSellnuts* this = THIS; EnSellnuts* this = THIS;
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnSellnuts_OverrideLimbDraw, EnSellnuts_PostLimbDraw, func_80ADD7CC, &this->actor); this->skelAnime.dListCount, EnSellnuts_OverrideLimbDraw, EnSellnuts_PostLimbDraw,
EnSellnuts_TransformLimbDraw, &this->actor);
} }

View File

@ -1525,7 +1525,7 @@ void EnSuttari_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList
} }
} }
void EnSuttari_UnkDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnSuttari_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
} }
void EnSuttari_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnSuttari_Draw(Actor* thisx, GlobalContext* globalCtx) {
@ -1540,8 +1540,9 @@ void EnSuttari_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_EnvColor(globalCtx->state.gfxCtx, 255, 255, 255, 0)); gSPSegment(POLY_OPA_DISP++, 0x08, Gfx_EnvColor(globalCtx->state.gfxCtx, 255, 255, 255, 0));
gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_EnvColor(globalCtx->state.gfxCtx, 55, 55, 255, 0)); gSPSegment(POLY_OPA_DISP++, 0x09, Gfx_EnvColor(globalCtx->state.gfxCtx, 55, 55, 255, 0));
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnSuttari_OverrideLimbDraw, EnSuttari_PostLimbDraw, EnSuttari_UnkDraw, &this->actor); this->skelAnime.dListCount, EnSuttari_OverrideLimbDraw, EnSuttari_PostLimbDraw,
EnSuttari_TransformLimbDraw, &this->actor);
if (this->flags1 & 0x80) { if (this->flags1 & 0x80) {
func_8012C2DC(globalCtx->state.gfxCtx); func_8012C2DC(globalCtx->state.gfxCtx);
sp5C = this->actor.world.pos; sp5C = this->actor.world.pos;

View File

@ -1344,7 +1344,7 @@ void func_80AEF5F4(Actor* thisx, GlobalContext* globalCtx) {
this->actionFunc(this, globalCtx); this->actionFunc(this, globalCtx);
} }
s32 func_80AEF65C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { s32 EnTk_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
EnTk* this = THIS; EnTk* this = THIS;
if (limbIndex == 16) { if (limbIndex == 16) {
@ -1354,7 +1354,7 @@ s32 func_80AEF65C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
return false; return false;
} }
void func_80AEF6A4(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnTk_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
static Vec3f D_80AEFA84 = { 0.0f, 0.0f, 4600.0f }; static Vec3f D_80AEFA84 = { 0.0f, 0.0f, 4600.0f };
EnTk* this = THIS; EnTk* this = THIS;
@ -1394,7 +1394,7 @@ void EnTk_Draw(Actor* thisx, GlobalContext* globalCtx) {
Matrix_RotateY(this->unk_318, MTXMODE_APPLY); Matrix_RotateY(this->unk_318, MTXMODE_APPLY);
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
func_80AEF65C, func_80AEF6A4, &this->actor); EnTk_OverrideLimbDraw, EnTk_PostLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -1746,7 +1746,7 @@ s32 EnTrt_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
if (limbIndex == 14) { if (limbIndex == 14) {
*dList = NULL; *dList = NULL;
} }
return 0; return false;
} }
void EnTrt_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnTrt_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
@ -1767,7 +1767,7 @@ void EnTrt_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
} }
} }
void EnTrt_UnkActorDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnTrt_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnTrt* this = THIS; EnTrt* this = THIS;
if (limbIndex == 21) { if (limbIndex == 21) {
@ -1789,8 +1789,9 @@ void EnTrt_Draw(Actor* thisx, GlobalContext* globalCtx) {
func_8012C28C(globalCtx->state.gfxCtx); func_8012C28C(globalCtx->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(sEyeTextures[this->eyeTextureIdx])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(sEyeTextures[this->eyeTextureIdx]));
gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(sEyeTextures[this->eyeTextureIdx])); gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(sEyeTextures[this->eyeTextureIdx]));
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnTrt_OverrideLimbDraw, EnTrt_PostLimbDraw, EnTrt_UnkActorDraw, &this->actor); this->skelAnime.dListCount, EnTrt_OverrideLimbDraw, EnTrt_PostLimbDraw,
EnTrt_TransformLimbDraw, &this->actor);
EnTrt_DrawCursor(globalCtx, this, this->cursorPos.x, this->cursorPos.y, this->cursorPos.z, this->drawCursor); EnTrt_DrawCursor(globalCtx, this, this->cursorPos.x, this->cursorPos.y, this->cursorPos.z, this->drawCursor);
EnTrt_DrawStickDirectionPrompt(globalCtx, this); EnTrt_DrawStickDirectionPrompt(globalCtx, this);

View File

@ -1192,7 +1192,7 @@ void EnTru_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
} }
} }
void func_80A886D4(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) { void EnTru_TransformLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Actor* thisx) {
EnTru* this = THIS; EnTru* this = THIS;
s32 pad[3]; s32 pad[3];
s32 sp2C; s32 sp2C;
@ -1250,8 +1250,9 @@ void EnTru_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80A8B408[this->unk_36E])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80A8B408[this->unk_36E]));
gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80A8B408[this->unk_36E])); gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80A8B408[this->unk_36E]));
func_801343C0(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, SkelAnime_DrawTransformFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
EnTru_OverrideLimbDraw, EnTru_PostLimbDraw, func_80A886D4, &this->actor); this->skelAnime.dListCount, EnTru_OverrideLimbDraw, EnTru_PostLimbDraw,
EnTru_TransformLimbDraw, &this->actor);
func_80A85788(this->unk_394, globalCtx); func_80A85788(this->unk_394, globalCtx);
func_80A85BCC(this->unk_394, globalCtx); func_80A85BCC(this->unk_394, globalCtx);
func_80A85F84(this->unk_394, globalCtx); func_80A85F84(this->unk_394, globalCtx);

View File

@ -1546,7 +1546,7 @@ void EnWf_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
s32 func_80993E50(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { s32 EnWf_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
EnWf* this = THIS; EnWf* this = THIS;
if ((limbIndex == 17) || (limbIndex == 18)) { if ((limbIndex == 17) || (limbIndex == 18)) {
@ -1555,7 +1555,7 @@ s32 func_80993E50(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
return false; return false;
} }
void func_80993E94(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnWf_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
static s8 D_809942FC[] = { static s8 D_809942FC[] = {
-1, -1, -1, -1, -1, 0, 1, -1, -1, -1, -1, 2, -1, 3, 4, 5, 6, -1, -1, 7, 8, 9, -1, -1, -1, -1, -1, 0, 1, -1, -1, -1, -1, 2, -1, 3, 4, 5, 6, -1, -1, 7, 8, 9,
}; };
@ -1593,7 +1593,7 @@ void EnWf_Draw(Actor* thisx, GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
this->skelAnime.dListCount, func_80993E50, func_80993E94, &this->actor); this->skelAnime.dListCount, EnWf_OverrideLimbDraw, EnWf_PostLimbDraw, &this->actor);
func_800BE680(globalCtx, &this->actor, this->unk_2B8, 10, this->unk_2B0, this->unk_2B4, this->unk_2AC, func_800BE680(globalCtx, &this->actor, this->unk_2B8, 10, this->unk_2B0, this->unk_2B4, this->unk_2AC,
this->unk_296); this->unk_296);
} }

View File

@ -997,7 +997,7 @@ void EnZog_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
void func_80B954C4(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { void EnZog_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
static Vec3f D_80B959B8 = { 0.0f, 0.0f, 0.0f }; static Vec3f D_80B959B8 = { 0.0f, 0.0f, 0.0f };
EnZog* this = THIS; EnZog* this = THIS;
@ -1078,7 +1078,7 @@ void EnZog_Draw(Actor* thisx, GlobalContext* globalCtx) {
POLY_OPA_DISP = &gfx[3]; POLY_OPA_DISP = &gfx[3];
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
this->skelAnime.dListCount, NULL, func_80B954C4, &this->actor); this->skelAnime.dListCount, NULL, EnZog_PostLimbDraw, &this->actor);
} }
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);

View File

@ -385,6 +385,11 @@ animdict = {
"func_800A81F0": "EffectBlure_AddVertex", "func_800A81F0": "EffectBlure_AddVertex",
"func_800A8514": "EffectBlure_AddSpace", "func_800A8514": "EffectBlure_AddSpace",
"Effect_GetParams": "Effect_GetByIndex", "Effect_GetParams": "Effect_GetByIndex",
"func_801343C0": "SkelAnime_DrawTransformFlexOpa",
"func_80134148": "SkelAnime_DrawTransformFlexLimbOpa",
"func_8013AB00": "SubS_DrawTransformFlex",
"func_8013A860": "SubS_DrawTransformFlexLimb",
# Structs members # Structs members
"skelAnime.unk03": "skelAnime.taper", "skelAnime.unk03": "skelAnime.taper",

View File

@ -2527,8 +2527,8 @@
0x80133B3C:("SkelAnime_DrawOpa",), 0x80133B3C:("SkelAnime_DrawOpa",),
0x80133CDC:("SkelAnime_DrawFlexLimbOpa",), 0x80133CDC:("SkelAnime_DrawFlexLimbOpa",),
0x80133F28:("SkelAnime_DrawFlexOpa",), 0x80133F28:("SkelAnime_DrawFlexOpa",),
0x80134148:("func_80134148",), 0x80134148:("SkelAnime_DrawTransformFlexLimbOpa",),
0x801343C0:("func_801343C0",), 0x801343C0:("SkelAnime_DrawTransformFlexOpa",),
0x80134600:("SkelAnime_GetFrameData",), 0x80134600:("SkelAnime_GetFrameData",),
0x80134724:("Animation_GetLength",), 0x80134724:("Animation_GetLength",),
0x80134748:("Animation_GetLastFrame",), 0x80134748:("Animation_GetLastFrame",),
@ -2656,8 +2656,8 @@
0x8013A504:("func_8013A504",), 0x8013A504:("func_8013A504",),
0x8013A530:("func_8013A530",), 0x8013A530:("func_8013A530",),
0x8013A7C0:("SubS_FindDoor",), 0x8013A7C0:("SubS_FindDoor",),
0x8013A860:("func_8013A860",), 0x8013A860:("SubS_DrawTransformFlexLimb",),
0x8013AB00:("func_8013AB00",), 0x8013AB00:("SubS_DrawTransformFlex",),
0x8013AD6C:("func_8013AD6C",), 0x8013AD6C:("func_8013AD6C",),
0x8013AD9C:("func_8013AD9C",), 0x8013AD9C:("func_8013AD9C",),
0x8013AED4:("func_8013AED4",), 0x8013AED4:("func_8013AED4",),
@ -5441,7 +5441,7 @@
0x808925F8:("EnNiw_LandBeforeIdle",), 0x808925F8:("EnNiw_LandBeforeIdle",),
0x8089262C:("EnNiw_CheckRage",), 0x8089262C:("EnNiw_CheckRage",),
0x808927CC:("EnNiw_Update",), 0x808927CC:("EnNiw_Update",),
0x80892E70:("EnNiw_LimbDraw",), 0x80892E70:("EnNiw_OverrideLimbDraw",),
0x80892FA0:("EnNiw_Draw",), 0x80892FA0:("EnNiw_Draw",),
0x80893008:("EnNiw_SpawnFeather",), 0x80893008:("EnNiw_SpawnFeather",),
0x808930FC:("EnNiw_UpdateFeather",), 0x808930FC:("EnNiw_UpdateFeather",),
@ -6066,8 +6066,8 @@
0x808BE6C4:("func_808BE6C4",), 0x808BE6C4:("func_808BE6C4",),
0x808BE73C:("func_808BE73C",), 0x808BE73C:("func_808BE73C",),
0x808BEA48:("EnDekunuts_Update",), 0x808BEA48:("EnDekunuts_Update",),
0x808BEBD0:("func_808BEBD0",), 0x808BEBD0:("EnDekunuts_OverrideLimbDraw",),
0x808BED30:("func_808BED30",), 0x808BED30:("EnDekunuts_PostLimbDraw",),
0x808BEE38:("EnDekunuts_Draw",), 0x808BEE38:("EnDekunuts_Draw",),
0x808BF220:("EnBbfall_Init",), 0x808BF220:("EnBbfall_Init",),
0x808BF318:("EnBbfall_Destroy",), 0x808BF318:("EnBbfall_Destroy",),
@ -7509,8 +7509,8 @@
0x80943BC0:("func_80943BC0",), 0x80943BC0:("func_80943BC0",),
0x80943BDC:("func_80943BDC",), 0x80943BDC:("func_80943BDC",),
0x80943CA4:("EnDaiku_Update",), 0x80943CA4:("EnDaiku_Update",),
0x80943E18:("func_80943E18",), 0x80943E18:("EnDaiku_OverrideLimbDraw",),
0x80943E60:("func_80943E60",), 0x80943E60:("EnDaiku_PostLimbDraw",),
0x80943EE4:("EnDaiku_Draw",), 0x80943EE4:("EnDaiku_Draw",),
0x809441E0:("EnNwc_Init",), 0x809441E0:("EnNwc_Init",),
0x80944310:("EnNwc_Destroy",), 0x80944310:("EnNwc_Destroy",),
@ -7625,9 +7625,9 @@
0x809510E4:("EnGm_Init",), 0x809510E4:("EnGm_Init",),
0x80951224:("EnGm_Destroy",), 0x80951224:("EnGm_Destroy",),
0x80951264:("EnGm_Update",), 0x80951264:("EnGm_Update",),
0x809513AC:("func_809513AC",), 0x809513AC:("EnGm_OverrideLimbDraw",),
0x809514BC:("func_809514BC",), 0x809514BC:("EnGm_PostLimbDraw",),
0x80951594:("func_80951594",), 0x80951594:("EnGm_TransformLimbDraw",),
0x80951748:("EnGm_Draw",), 0x80951748:("EnGm_Draw",),
0x80952620:("EnMs_Init",), 0x80952620:("EnMs_Init",),
0x80952708:("EnMs_Destroy",), 0x80952708:("EnMs_Destroy",),
@ -8351,8 +8351,8 @@
0x8098BCA8:("EnDg_Init",), 0x8098BCA8:("EnDg_Init",),
0x8098BE18:("EnDg_Destroy",), 0x8098BE18:("EnDg_Destroy",),
0x8098BE44:("EnDg_Update",), 0x8098BE44:("EnDg_Update",),
0x8098BFB8:("func_8098BFB8",), 0x8098BFB8:("EnDg_OverrideLimbDraw",),
0x8098BFD4:("func_8098BFD4",), 0x8098BFD4:("EnDg_PostLimbDraw",),
0x8098C06C:("EnDg_Draw",), 0x8098C06C:("EnDg_Draw",),
0x8098CA20:("func_8098CA20",), 0x8098CA20:("func_8098CA20",),
0x8098CAD0:("func_8098CAD0",), 0x8098CAD0:("func_8098CAD0",),
@ -8478,8 +8478,8 @@
0x80993738:("func_80993738",), 0x80993738:("func_80993738",),
0x8099386C:("func_8099386C",), 0x8099386C:("func_8099386C",),
0x80993BC0:("EnWf_Update",), 0x80993BC0:("EnWf_Update",),
0x80993E50:("func_80993E50",), 0x80993E50:("EnWf_OverrideLimbDraw",),
0x80993E94:("func_80993E94",), 0x80993E94:("EnWf_PostLimbDraw",),
0x80993F68:("EnWf_Draw",), 0x80993F68:("EnWf_Draw",),
0x8099408C:("func_8099408C",), 0x8099408C:("func_8099408C",),
0x809947B0:("func_809947B0",), 0x809947B0:("func_809947B0",),
@ -9033,7 +9033,7 @@
0x809C339C:("EnAob01_Update",), 0x809C339C:("EnAob01_Update",),
0x809C33D8:("EnAob01_OverrideLimbDraw",), 0x809C33D8:("EnAob01_OverrideLimbDraw",),
0x809C35B4:("EnAob01_PostLimbDraw",), 0x809C35B4:("EnAob01_PostLimbDraw",),
0x809C35F4:("EnAob01_UnkDraw",), 0x809C35F4:("EnAob01_TransformLimbDraw",),
0x809C3608:("EnAob01_Draw",), 0x809C3608:("EnAob01_Draw",),
0x809C3D80:("EnBoj01_Init",), 0x809C3D80:("EnBoj01_Init",),
0x809C3D90:("EnBoj01_Destroy",), 0x809C3D90:("EnBoj01_Destroy",),
@ -9743,7 +9743,7 @@
0x80A159B0:("EnGo_Update",), 0x80A159B0:("EnGo_Update",),
0x80A15B80:("func_80A15B80",), 0x80A15B80:("func_80A15B80",),
0x80A15D04:("EnGo_OverrideLimbDraw",), 0x80A15D04:("EnGo_OverrideLimbDraw",),
0x80A15E38:("EnGo_UnkDraw",), 0x80A15E38:("EnGo_TransfromLimbDraw",),
0x80A15FEC:("func_80A15FEC",), 0x80A15FEC:("func_80A15FEC",),
0x80A16D40:("func_80A16D40",), 0x80A16D40:("func_80A16D40",),
0x80A16D6C:("func_80A16D6C",), 0x80A16D6C:("func_80A16D6C",),
@ -10118,9 +10118,9 @@
0x80A2EAAC:("DmSa_Destroy",), 0x80A2EAAC:("DmSa_Destroy",),
0x80A2EABC:("DmSa_DoNothing",), 0x80A2EABC:("DmSa_DoNothing",),
0x80A2EACC:("DmSa_Update",), 0x80A2EACC:("DmSa_Update",),
0x80A2EB10:("func_80A2EB10",), 0x80A2EB10:("DmSa_OverrideLimbDraw",),
0x80A2EB2C:("func_80A2EB2C",), 0x80A2EB2C:("DmSa_PostLimbDraw",),
0x80A2EB44:("func_80A2EB44",), 0x80A2EB44:("DmSa_TransformLimbDraw",),
0x80A2EB58:("func_80A2EB58",), 0x80A2EB58:("func_80A2EB58",),
0x80A2EBB0:("func_80A2EBB0",), 0x80A2EBB0:("func_80A2EBB0",),
0x80A2EBE8:("DmSa_Draw",), 0x80A2EBE8:("DmSa_Draw",),
@ -11249,7 +11249,7 @@
0x80A884E8:("EnTru_Update",), 0x80A884E8:("EnTru_Update",),
0x80A885B8:("EnTru_OverrideLimbDraw",), 0x80A885B8:("EnTru_OverrideLimbDraw",),
0x80A88698:("EnTru_PostLimbDraw",), 0x80A88698:("EnTru_PostLimbDraw",),
0x80A886D4:("func_80A886D4",), 0x80A886D4:("EnTru_TransformLimbDraw",),
0x80A887E4:("EnTru_Draw",), 0x80A887E4:("EnTru_Draw",),
0x80A8B770:("EnTrt_ChangeAnim",), 0x80A8B770:("EnTrt_ChangeAnim",),
0x80A8B80C:("EnTrt_TestItemSelected",), 0x80A8B80C:("EnTrt_TestItemSelected",),
@ -11331,7 +11331,7 @@
0x80A8FA00:("EnTrt_UpdateHeadPosAndRot",), 0x80A8FA00:("EnTrt_UpdateHeadPosAndRot",),
0x80A8FB34:("EnTrt_OverrideLimbDraw",), 0x80A8FB34:("EnTrt_OverrideLimbDraw",),
0x80A8FBB4:("EnTrt_PostLimbDraw",), 0x80A8FBB4:("EnTrt_PostLimbDraw",),
0x80A8FC64:("EnTrt_UnkActorDraw",), 0x80A8FC64:("EnTrt_TransformLimbDraw",),
0x80A8FCE0:("EnTrt_Draw",), 0x80A8FCE0:("EnTrt_Draw",),
0x80A903B0:("EnTest5_SetupAction",), 0x80A903B0:("EnTest5_SetupAction",),
0x80A903BC:("EnTest5_Init",), 0x80A903BC:("EnTest5_Init",),
@ -12328,7 +12328,7 @@
0x80ADD400:("EnSellnuts_Update",), 0x80ADD400:("EnSellnuts_Update",),
0x80ADD4E0:("func_80ADD4E0",), 0x80ADD4E0:("func_80ADD4E0",),
0x80ADD7B4:("func_80ADD7B4",), 0x80ADD7B4:("func_80ADD7B4",),
0x80ADD7CC:("func_80ADD7CC",), 0x80ADD7CC:("EnSellnuts_TransformLimbDraw",),
0x80ADD8A4:("EnSellnuts_Draw",), 0x80ADD8A4:("EnSellnuts_Draw",),
0x80ADE230:("func_80ADE230",), 0x80ADE230:("func_80ADE230",),
0x80ADE5A4:("BgDkjailIvy_Init",), 0x80ADE5A4:("BgDkjailIvy_Init",),
@ -12604,8 +12604,8 @@
0x80AEF2D8:("func_80AEF2D8",), 0x80AEF2D8:("func_80AEF2D8",),
0x80AEF3E8:("EnTk_Update",), 0x80AEF3E8:("EnTk_Update",),
0x80AEF5F4:("func_80AEF5F4",), 0x80AEF5F4:("func_80AEF5F4",),
0x80AEF65C:("func_80AEF65C",), 0x80AEF65C:("EnTk_OverrideLimbDraw",),
0x80AEF6A4:("func_80AEF6A4",), 0x80AEF6A4:("EnTk_PostLimbDraw",),
0x80AEF734:("EnTk_Draw",), 0x80AEF734:("EnTk_Draw",),
0x80AF0060:("BgMarketStep_Init",), 0x80AF0060:("BgMarketStep_Init",),
0x80AF0088:("BgMarketStep_Draw",), 0x80AF0088:("BgMarketStep_Draw",),
@ -12772,9 +12772,9 @@
0x80AFA7A8:("EnPm_Init",), 0x80AFA7A8:("EnPm_Init",),
0x80AFA8B0:("EnPm_Destroy",), 0x80AFA8B0:("EnPm_Destroy",),
0x80AFA8F0:("EnPm_Update",), 0x80AFA8F0:("EnPm_Update",),
0x80AFAA04:("func_80AFAA04",), 0x80AFAA04:("EnPm_OverrideLimbDraw",),
0x80AFAA44:("func_80AFAA44",), 0x80AFAA44:("EnPm_PostLimbDraw",),
0x80AFABAC:("func_80AFABAC",), 0x80AFABAC:("EnPm_TransformLimbDraw",),
0x80AFACAC:("EnPm_Draw",), 0x80AFACAC:("EnPm_Draw",),
0x80AFC960:("func_80AFC960",), 0x80AFC960:("func_80AFC960",),
0x80AFCA94:("EnGakufu_Init",), 0x80AFCA94:("EnGakufu_Init",),
@ -13633,8 +13633,8 @@
0x80B3D7B8:("EnDnp_Destroy",), 0x80B3D7B8:("EnDnp_Destroy",),
0x80B3D7E4:("EnDnp_Update",), 0x80B3D7E4:("EnDnp_Update",),
0x80B3D974:("func_80B3D974",), 0x80B3D974:("func_80B3D974",),
0x80B3DA88:("func_80B3DA88",), 0x80B3DA88:("EnDnp_PostLimbDraw",),
0x80B3DAA0:("func_80B3DAA0",), 0x80B3DAA0:("EnDnp_TransformLimbDraw",),
0x80B3DB98:("EnDnp_Draw",), 0x80B3DB98:("EnDnp_Draw",),
0x80B3DFF0:("func_80B3DFF0",), 0x80B3DFF0:("func_80B3DFF0",),
0x80B3E168:("func_80B3E168",), 0x80B3E168:("func_80B3E168",),
@ -13657,9 +13657,9 @@
0x80B3F318:("EnDai_Init",), 0x80B3F318:("EnDai_Init",),
0x80B3F494:("EnDai_Destroy",), 0x80B3F494:("EnDai_Destroy",),
0x80B3F4A4:("EnDai_Update",), 0x80B3F4A4:("EnDai_Update",),
0x80B3F598:("func_80B3F598",), 0x80B3F598:("EnDai_OverrideLimbDraw",),
0x80B3F614:("func_80B3F614",), 0x80B3F614:("EnDai_PostLimbDraw",),
0x80B3F6EC:("func_80B3F6EC",), 0x80B3F6EC:("EnDai_TransformLimbDraw",),
0x80B3F78C:("func_80B3F78C",), 0x80B3F78C:("func_80B3F78C",),
0x80B3F920:("func_80B3F920",), 0x80B3F920:("func_80B3F920",),
0x80B3FB84:("EnDai_Draw",), 0x80B3FB84:("EnDai_Draw",),
@ -14870,7 +14870,7 @@
0x80B95128:("func_80B95128",), 0x80B95128:("func_80B95128",),
0x80B95240:("func_80B95240",), 0x80B95240:("func_80B95240",),
0x80B95260:("EnZog_Update",), 0x80B95260:("EnZog_Update",),
0x80B954C4:("func_80B954C4",), 0x80B954C4:("EnZog_PostLimbDraw",),
0x80B95598:("func_80B95598",), 0x80B95598:("func_80B95598",),
0x80B95668:("EnZog_Draw",), 0x80B95668:("EnZog_Draw",),
0x80B95E20:("func_80B95E20",), 0x80B95E20:("func_80B95E20",),
@ -15247,7 +15247,7 @@
0x80BAE108:("EnSuttari_Update",), 0x80BAE108:("EnSuttari_Update",),
0x80BAE250:("EnSuttari_OverrideLimbDraw",), 0x80BAE250:("EnSuttari_OverrideLimbDraw",),
0x80BAE3C4:("EnSuttari_PostLimbDraw",), 0x80BAE3C4:("EnSuttari_PostLimbDraw",),
0x80BAE524:("EnSuttari_UnkDraw",), 0x80BAE524:("EnSuttari_TransformLimbDraw",),
0x80BAE538:("EnSuttari_Draw",), 0x80BAE538:("EnSuttari_Draw",),
0x80BAEF70:("EnZod_Init",), 0x80BAEF70:("EnZod_Init",),
0x80BAF1C0:("EnZod_Destroy",), 0x80BAF1C0:("EnZod_Destroy",),
@ -15326,7 +15326,7 @@
0x80BB3728:("func_80BB3728",), 0x80BB3728:("func_80BB3728",),
0x80BB3860:("EnGeg_OverrideLimbDraw",), 0x80BB3860:("EnGeg_OverrideLimbDraw",),
0x80BB387C:("EnGeg_PostLimbDraw",), 0x80BB387C:("EnGeg_PostLimbDraw",),
0x80BB39F8:("EnGeg_UnkDraw",), 0x80BB39F8:("EnGeg_TransformLimbDraw",),
0x80BB3BE0:("func_80BB3BE0",), 0x80BB3BE0:("func_80BB3BE0",),
0x80BB3CB4:("func_80BB3CB4",), 0x80BB3CB4:("func_80BB3CB4",),
0x80BB3E0C:("EnGeg_Draw",), 0x80BB3E0C:("EnGeg_Draw",),
@ -16274,7 +16274,7 @@
0x80BEFF34:("EnAkindonuts_Update",), 0x80BEFF34:("EnAkindonuts_Update",),
0x80BEFFB4:("EnAkindonuts_OverrideLimbDraw",), 0x80BEFFB4:("EnAkindonuts_OverrideLimbDraw",),
0x80BF0178:("EnAkindonuts_PostLimbDraw",), 0x80BF0178:("EnAkindonuts_PostLimbDraw",),
0x80BF0190:("EnAkindonuts_UnkActorDraw",), 0x80BF0190:("EnAkindonuts_TransformLimbDraw",),
0x80BF0258:("EnAkindonuts_Draw",), 0x80BF0258:("EnAkindonuts_Draw",),
0x80BF0D90:("EffStk_Init",), 0x80BF0D90:("EffStk_Init",),
0x80BF0DD0:("EffStk_Destroy",), 0x80BF0DD0:("EffStk_Destroy",),
@ -16745,7 +16745,7 @@
0x80C102D4:("EnRecepgirl_Talk",), 0x80C102D4:("EnRecepgirl_Talk",),
0x80C104E8:("EnRecepgirl_Update",), 0x80C104E8:("EnRecepgirl_Update",),
0x80C10558:("EnRecepgirl_OverrideLimbDraw",), 0x80C10558:("EnRecepgirl_OverrideLimbDraw",),
0x80C10590:("EnRecepgirl_UnkLimbDraw",), 0x80C10590:("EnRecepgirl_TransformLimbDraw",),
0x80C105EC:("EnRecepgirl_Draw",), 0x80C105EC:("EnRecepgirl_Draw",),
0x80C10770:("EnThiefbird_Init",), 0x80C10770:("EnThiefbird_Init",),
0x80C10958:("EnThiefbird_Destroy",), 0x80C10958:("EnThiefbird_Destroy",),
@ -16972,7 +16972,7 @@
0x80C1E048:("DmNb_Init",), 0x80C1E048:("DmNb_Init",),
0x80C1E0F8:("DmNb_Destroy",), 0x80C1E0F8:("DmNb_Destroy",),
0x80C1E108:("DmNb_Update",), 0x80C1E108:("DmNb_Update",),
0x80C1E168:("DmNb_UnkActorDraw",), 0x80C1E168:("DmNb_TransformLimbDraw",),
0x80C1E17C:("DmNb_Draw",), 0x80C1E17C:("DmNb_Draw",),
0x80C1E290:("func_80C1E290",), 0x80C1E290:("func_80C1E290",),
0x80C1E2D4:("func_80C1E2D4",), 0x80C1E2D4:("func_80C1E2D4",),
@ -17090,7 +17090,7 @@
0x80C23980:("func_80C23980",), 0x80C23980:("func_80C23980",),
0x80C2399C:("func_80C2399C",), 0x80C2399C:("func_80C2399C",),
0x80C239C8:("EnEndingHero5_Update",), 0x80C239C8:("EnEndingHero5_Update",),
0x80C23A30:("func_80C23A30",), 0x80C23A30:("EnEndingHero5_PostLimbDraw",),
0x80C23A7C:("EnEndingHero5_Draw",), 0x80C23A7C:("EnEndingHero5_Draw",),
0x80C23C90:("EnEndingHero6_Init",), 0x80C23C90:("EnEndingHero6_Init",),
0x80C23D50:("EnEndingHero6_Destroy",), 0x80C23D50:("EnEndingHero6_Destroy",),

View File

@ -2041,8 +2041,8 @@ asm/non_matchings/code/z_skelanime/SkelAnime_DrawLimb.s,SkelAnime_DrawLimb,0x801
asm/non_matchings/code/z_skelanime/SkelAnime_Draw.s,SkelAnime_Draw,0x80133B3C,0x68 asm/non_matchings/code/z_skelanime/SkelAnime_Draw.s,SkelAnime_Draw,0x80133B3C,0x68
asm/non_matchings/code/z_skelanime/SkelAnime_DrawLimbSV.s,SkelAnime_DrawLimbSV,0x80133CDC,0x93 asm/non_matchings/code/z_skelanime/SkelAnime_DrawLimbSV.s,SkelAnime_DrawLimbSV,0x80133CDC,0x93
asm/non_matchings/code/z_skelanime/SkelAnime_DrawFlexOpa.s,SkelAnime_DrawFlexOpa,0x80133F28,0x88 asm/non_matchings/code/z_skelanime/SkelAnime_DrawFlexOpa.s,SkelAnime_DrawFlexOpa,0x80133F28,0x88
asm/non_matchings/code/z_skelanime/func_80134148.s,func_80134148,0x80134148,0x9E asm/non_matchings/code/z_skelanime/SkelAnime_DrawTransformFlexLimbOpa.s,SkelAnime_DrawTransformFlexLimbOpa,0x80134148,0x9E
asm/non_matchings/code/z_skelanime/func_801343C0.s,func_801343C0,0x801343C0,0x90 asm/non_matchings/code/z_skelanime/SkelAnime_DrawTransformFlexOpa.s,SkelAnime_DrawTransformFlexOpa,0x801343C0,0x90
asm/non_matchings/code/z_skelanime/SkelAnime_AnimateFrame.s,SkelAnime_AnimateFrame,0x80134600,0x49 asm/non_matchings/code/z_skelanime/SkelAnime_AnimateFrame.s,SkelAnime_AnimateFrame,0x80134600,0x49
asm/non_matchings/code/z_skelanime/SkelAnime_GetTotalFrames.s,SkelAnime_GetTotalFrames,0x80134724,0x9 asm/non_matchings/code/z_skelanime/SkelAnime_GetTotalFrames.s,SkelAnime_GetTotalFrames,0x80134724,0x9
asm/non_matchings/code/z_skelanime/Animation_GetLastFrame.s,Animation_GetLastFrame,0x80134748,0xB asm/non_matchings/code/z_skelanime/Animation_GetLastFrame.s,Animation_GetLastFrame,0x80134748,0xB
@ -2170,8 +2170,8 @@ asm/non_matchings/code/z_snap/func_8013A4C4.s,func_8013A4C4,0x8013A4C4,0x10
asm/non_matchings/code/z_snap/func_8013A504.s,func_8013A504,0x8013A504,0xB asm/non_matchings/code/z_snap/func_8013A504.s,func_8013A504,0x8013A504,0xB
asm/non_matchings/code/z_snap/func_8013A530.s,func_8013A530,0x8013A530,0xA4 asm/non_matchings/code/z_snap/func_8013A530.s,func_8013A530,0x8013A530,0xA4
asm/non_matchings/code/z_sub_s/SubS_FindDoor.s,SubS_FindDoor,0x8013A7C0,0x28 asm/non_matchings/code/z_sub_s/SubS_FindDoor.s,SubS_FindDoor,0x8013A7C0,0x28
asm/non_matchings/code/z_sub_s/func_8013A860.s,func_8013A860,0x8013A860,0xA8 asm/non_matchings/code/z_sub_s/SubS_DrawTransformFlexLimb.s,SubS_DrawTransformFlexLimb,0x8013A860,0xA8
asm/non_matchings/code/z_sub_s/func_8013AB00.s,func_8013AB00,0x8013AB00,0x9B asm/non_matchings/code/z_sub_s/SubS_DrawTransformFlex.s,SubS_DrawTransformFlex,0x8013AB00,0x9B
asm/non_matchings/code/z_sub_s/func_8013AD6C.s,func_8013AD6C,0x8013AD6C,0xC asm/non_matchings/code/z_sub_s/func_8013AD6C.s,func_8013AD6C,0x8013AD6C,0xC
asm/non_matchings/code/z_sub_s/func_8013AD9C.s,func_8013AD9C,0x8013AD9C,0x4E asm/non_matchings/code/z_sub_s/func_8013AD9C.s,func_8013AD9C,0x8013AD9C,0x4E
asm/non_matchings/code/z_sub_s/func_8013AED4.s,func_8013AED4,0x8013AED4,0xB asm/non_matchings/code/z_sub_s/func_8013AED4.s,func_8013AED4,0x8013AED4,0xB

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
2041 asm/non_matchings/code/z_skelanime/SkelAnime_Draw.s SkelAnime_Draw 0x80133B3C 0x68
2042 asm/non_matchings/code/z_skelanime/SkelAnime_DrawLimbSV.s SkelAnime_DrawLimbSV 0x80133CDC 0x93
2043 asm/non_matchings/code/z_skelanime/SkelAnime_DrawFlexOpa.s SkelAnime_DrawFlexOpa 0x80133F28 0x88
2044 asm/non_matchings/code/z_skelanime/func_80134148.s asm/non_matchings/code/z_skelanime/SkelAnime_DrawTransformFlexLimbOpa.s func_80134148 SkelAnime_DrawTransformFlexLimbOpa 0x80134148 0x9E
2045 asm/non_matchings/code/z_skelanime/func_801343C0.s asm/non_matchings/code/z_skelanime/SkelAnime_DrawTransformFlexOpa.s func_801343C0 SkelAnime_DrawTransformFlexOpa 0x801343C0 0x90
2046 asm/non_matchings/code/z_skelanime/SkelAnime_AnimateFrame.s SkelAnime_AnimateFrame 0x80134600 0x49
2047 asm/non_matchings/code/z_skelanime/SkelAnime_GetTotalFrames.s SkelAnime_GetTotalFrames 0x80134724 0x9
2048 asm/non_matchings/code/z_skelanime/Animation_GetLastFrame.s Animation_GetLastFrame 0x80134748 0xB
2170 asm/non_matchings/code/z_snap/func_8013A504.s func_8013A504 0x8013A504 0xB
2171 asm/non_matchings/code/z_snap/func_8013A530.s func_8013A530 0x8013A530 0xA4
2172 asm/non_matchings/code/z_sub_s/SubS_FindDoor.s SubS_FindDoor 0x8013A7C0 0x28
2173 asm/non_matchings/code/z_sub_s/func_8013A860.s asm/non_matchings/code/z_sub_s/SubS_DrawTransformFlexLimb.s func_8013A860 SubS_DrawTransformFlexLimb 0x8013A860 0xA8
2174 asm/non_matchings/code/z_sub_s/func_8013AB00.s asm/non_matchings/code/z_sub_s/SubS_DrawTransformFlex.s func_8013AB00 SubS_DrawTransformFlex 0x8013AB00 0x9B
2175 asm/non_matchings/code/z_sub_s/func_8013AD6C.s func_8013AD6C 0x8013AD6C 0xC
2176 asm/non_matchings/code/z_sub_s/func_8013AD9C.s func_8013AD9C 0x8013AD9C 0x4E
2177 asm/non_matchings/code/z_sub_s/func_8013AED4.s func_8013AED4 0x8013AED4 0xB