mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-02-16 07:10:34 -05:00
Custom Skeleton Fixes for various bosses and enemies (#3436)
* Skeleton Fixes for various bosses and enemies * cleanup * revert breakpart changes --------- Co-authored-by: Adam Bird <archez39@me.com>
This commit is contained in:
parent
7a00658be9
commit
f11f97e84e
@ -1259,6 +1259,8 @@ void SkelAnime_DrawFlexLod(PlayState* play, void** skeleton, Vec3s* jointTable,
|
|||||||
s32 dListIndex);
|
s32 dListIndex);
|
||||||
void SkelAnime_DrawSkeletonOpa(PlayState* play, SkelAnime* skelAnime, OverrideLimbDrawOpa overrideLimbDraw,
|
void SkelAnime_DrawSkeletonOpa(PlayState* play, SkelAnime* skelAnime, OverrideLimbDrawOpa overrideLimbDraw,
|
||||||
PostLimbDrawOpa postLimbDraw, void* arg);
|
PostLimbDrawOpa postLimbDraw, void* arg);
|
||||||
|
Gfx* SkelAnime_DrawSkeleton2(PlayState* play, SkelAnime* skelAnime, OverrideLimbDrawOpa overrideLimbDraw,
|
||||||
|
PostLimbDrawOpa postLimbDraw, void* arg, Gfx* gfx);
|
||||||
void SkelAnime_DrawOpa(PlayState* play, void** skeleton, Vec3s* jointTable,
|
void SkelAnime_DrawOpa(PlayState* play, void** skeleton, Vec3s* jointTable,
|
||||||
OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, void* arg);
|
OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, void* arg);
|
||||||
void SkelAnime_DrawFlexOpa(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount,
|
void SkelAnime_DrawFlexOpa(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount,
|
||||||
|
@ -1405,6 +1405,8 @@ typedef struct PlayState {
|
|||||||
/* 0x1242B */ u8 unk_1242B;
|
/* 0x1242B */ u8 unk_1242B;
|
||||||
/* 0x1242C */ SceneTableEntry* loadedScene;
|
/* 0x1242C */ SceneTableEntry* loadedScene;
|
||||||
/* 0x12430 */ char unk_12430[0xE8];
|
/* 0x12430 */ char unk_12430[0xE8];
|
||||||
|
// SOH [Custom Models] MTX tracker for flex based skeletons
|
||||||
|
Mtx** flexLimbOverrideMTX;
|
||||||
} PlayState; // size = 0x12518
|
} PlayState; // size = 0x12518
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -148,6 +148,8 @@ void SkelAnime_DrawFlexLimbLod(PlayState* play, s32 limbIndex, void** skeleton,
|
|||||||
|
|
||||||
newDList = limbDList = limb->dLists[lod];
|
newDList = limbDList = limb->dLists[lod];
|
||||||
|
|
||||||
|
play->flexLimbOverrideMTX = mtx;
|
||||||
|
|
||||||
if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, limbIndex, &newDList, &pos, &rot, arg)) {
|
if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, limbIndex, &newDList, &pos, &rot, arg)) {
|
||||||
Matrix_TranslateRotateZYX(&pos, &rot);
|
Matrix_TranslateRotateZYX(&pos, &rot);
|
||||||
if (newDList != NULL) {
|
if (newDList != NULL) {
|
||||||
@ -220,6 +222,8 @@ void SkelAnime_DrawFlexLod(PlayState* play, void** skeleton, Vec3s* jointTable,
|
|||||||
|
|
||||||
newDList = limbDList = rootLimb->dLists[lod];
|
newDList = limbDList = rootLimb->dLists[lod];
|
||||||
|
|
||||||
|
play->flexLimbOverrideMTX = &mtx;
|
||||||
|
|
||||||
if ((overrideLimbDraw == 0) || !overrideLimbDraw(play, 1, &newDList, &pos, &rot, arg)) {
|
if ((overrideLimbDraw == 0) || !overrideLimbDraw(play, 1, &newDList, &pos, &rot, arg)) {
|
||||||
Matrix_TranslateRotateZYX(&pos, &rot);
|
Matrix_TranslateRotateZYX(&pos, &rot);
|
||||||
if (newDList != NULL) {
|
if (newDList != NULL) {
|
||||||
@ -306,6 +310,20 @@ void SkelAnime_DrawSkeletonOpa(PlayState* play, SkelAnime* skelAnime, OverrideLi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gfx* SkelAnime_DrawSkeleton2(PlayState* play, SkelAnime* skelAnime, OverrideLimbDrawOpa overrideLimbDraw,
|
||||||
|
PostLimbDrawOpa postLimbDraw, void* arg, Gfx* gfx)
|
||||||
|
{
|
||||||
|
if (skelAnime->skeletonHeader->skeletonType == SKELANIME_TYPE_NORMAL) {
|
||||||
|
return SkelAnime_Draw(play, skelAnime->skeleton, skelAnime->jointTable, overrideLimbDraw, postLimbDraw, arg, gfx);
|
||||||
|
} else if (skelAnime->skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
FlexSkeletonHeader* flexHeader = (FlexSkeletonHeader*)skelAnime->skeletonHeader;
|
||||||
|
return SkelAnime_DrawFlex(play, skelAnime->skeleton, skelAnime->jointTable, flexHeader->dListCount,
|
||||||
|
overrideLimbDraw, postLimbDraw, arg, gfx);
|
||||||
|
}
|
||||||
|
|
||||||
|
return gfx;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw all limbs of type `StandardLimb` in a given skeleton to the polyOpa buffer
|
* Draw all limbs of type `StandardLimb` in a given skeleton to the polyOpa buffer
|
||||||
*/
|
*/
|
||||||
@ -383,6 +401,8 @@ void SkelAnime_DrawFlexLimbOpa(PlayState* play, s32 limbIndex, void** skeleton,
|
|||||||
|
|
||||||
newDList = limbDList = limb->dList;
|
newDList = limbDList = limb->dList;
|
||||||
|
|
||||||
|
play->flexLimbOverrideMTX = limbMatricies;
|
||||||
|
|
||||||
if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, limbIndex, &newDList, &pos, &rot, arg)) {
|
if ((overrideLimbDraw == NULL) || !overrideLimbDraw(play, limbIndex, &newDList, &pos, &rot, arg)) {
|
||||||
Matrix_TranslateRotateZYX(&pos, &rot);
|
Matrix_TranslateRotateZYX(&pos, &rot);
|
||||||
if (newDList != NULL) {
|
if (newDList != NULL) {
|
||||||
|
@ -1288,6 +1288,10 @@ block_1:
|
|||||||
if (*dList != NULL) {
|
if (*dList != NULL) {
|
||||||
OPEN_DISPS(play->state.gfxCtx);
|
OPEN_DISPS(play->state.gfxCtx);
|
||||||
|
|
||||||
|
if (this->skelAnime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
MATRIX_TOMTX(*play->flexLimbOverrideMTX);
|
||||||
|
}
|
||||||
|
|
||||||
mtxScaleZ = 1.0f;
|
mtxScaleZ = 1.0f;
|
||||||
mtxScaleY = 1.0f;
|
mtxScaleY = 1.0f;
|
||||||
|
|
||||||
@ -1308,11 +1312,20 @@ block_1:
|
|||||||
Matrix_RotateX(-(this->unk_25C[limbIndex] * 0.115f), MTXMODE_APPLY);
|
Matrix_RotateX(-(this->unk_25C[limbIndex] * 0.115f), MTXMODE_APPLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
if (this->skelAnime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
gSPMatrix(POLY_OPA_DISP++, *play->flexLimbOverrideMTX, G_MTX_LOAD);
|
||||||
|
} else {
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
}
|
||||||
|
|
||||||
gSPDisplayList(POLY_OPA_DISP++, *dList);
|
gSPDisplayList(POLY_OPA_DISP++, *dList);
|
||||||
Matrix_Pop();
|
Matrix_Pop();
|
||||||
|
|
||||||
|
if (this->skelAnime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
(*play->flexLimbOverrideMTX)++;
|
||||||
|
}
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
{ s32 pad; } // Required to match
|
{ s32 pad; } // Required to match
|
||||||
|
@ -2015,12 +2015,26 @@ s32 BossGoma_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f
|
|||||||
Matrix_TranslateRotateZYX(pos, rot);
|
Matrix_TranslateRotateZYX(pos, rot);
|
||||||
|
|
||||||
if (*dList != NULL) {
|
if (*dList != NULL) {
|
||||||
|
if (this->skelanime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
MATRIX_TOMTX(*play->flexLimbOverrideMTX);
|
||||||
|
}
|
||||||
|
|
||||||
Matrix_Push();
|
Matrix_Push();
|
||||||
Matrix_Scale(this->eyeIrisScaleX, this->eyeIrisScaleY, 1.0f, MTXMODE_APPLY);
|
Matrix_Scale(this->eyeIrisScaleX, this->eyeIrisScaleY, 1.0f, MTXMODE_APPLY);
|
||||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
|
||||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
if (this->skelanime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, *play->flexLimbOverrideMTX, G_MTX_LOAD);
|
||||||
|
} else {
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
}
|
||||||
|
|
||||||
gSPDisplayList(POLY_OPA_DISP++, *dList);
|
gSPDisplayList(POLY_OPA_DISP++, *dList);
|
||||||
Matrix_Pop();
|
Matrix_Pop();
|
||||||
|
|
||||||
|
if (this->skelanime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
(*play->flexLimbOverrideMTX)++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
doNotDrawLimb = true;
|
doNotDrawLimb = true;
|
||||||
@ -2034,14 +2048,28 @@ s32 BossGoma_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f
|
|||||||
Matrix_TranslateRotateZYX(pos, rot);
|
Matrix_TranslateRotateZYX(pos, rot);
|
||||||
|
|
||||||
if (*dList != NULL) {
|
if (*dList != NULL) {
|
||||||
|
if (this->skelanime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
MATRIX_TOMTX(*play->flexLimbOverrideMTX);
|
||||||
|
}
|
||||||
|
|
||||||
Matrix_Push();
|
Matrix_Push();
|
||||||
Matrix_Scale(this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4],
|
Matrix_Scale(this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4],
|
||||||
this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4],
|
this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4],
|
||||||
this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4], MTXMODE_APPLY);
|
this->tailLimbsScale[limbIndex - BOSSGOMA_LIMB_TAIL4], MTXMODE_APPLY);
|
||||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
|
||||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
if (this->skelanime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, *play->flexLimbOverrideMTX, G_MTX_LOAD);
|
||||||
|
} else {
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
}
|
||||||
|
|
||||||
gSPDisplayList(POLY_OPA_DISP++, *dList);
|
gSPDisplayList(POLY_OPA_DISP++, *dList);
|
||||||
Matrix_Pop();
|
Matrix_Pop();
|
||||||
|
|
||||||
|
if (this->skelanime.skeletonHeader->skeletonType == SKELANIME_TYPE_FLEX) {
|
||||||
|
(*play->flexLimbOverrideMTX)++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
doNotDrawLimb = true;
|
doNotDrawLimb = true;
|
||||||
|
@ -1055,7 +1055,7 @@ void DoorWarp1_DrawBlueCrystal(DoorWarp1* this, PlayState* play) {
|
|||||||
gDPSetPrimColor(POLY_XLU_DISP++, 0xFF, 0xFF, 200, 255, 255, (u8)this->crystalAlpha);
|
gDPSetPrimColor(POLY_XLU_DISP++, 0xFF, 0xFF, 200, 255, 255, (u8)this->crystalAlpha);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, (u8)this->crystalAlpha);
|
gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, (u8)this->crystalAlpha);
|
||||||
|
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable, NULL, NULL,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime, NULL, NULL,
|
||||||
&this->actor, POLY_XLU_DISP);
|
&this->actor, POLY_XLU_DISP);
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
@ -1079,7 +1079,7 @@ void DoorWarp1_DrawPurpleCrystal(DoorWarp1* this, PlayState* play) {
|
|||||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (u8)this->crystalAlpha);
|
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (u8)this->crystalAlpha);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, 150, 0, 100, (u8)this->crystalAlpha);
|
gDPSetEnvColor(POLY_XLU_DISP++, 150, 0, 100, (u8)this->crystalAlpha);
|
||||||
|
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable, NULL, NULL,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime, NULL, NULL,
|
||||||
&this->actor, POLY_XLU_DISP);
|
&this->actor, POLY_XLU_DISP);
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
@ -768,7 +768,7 @@ void EnBili_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gSPSegment(POLY_XLU_DISP++, 0x09, D_809C1700);
|
gSPSegment(POLY_XLU_DISP++, 0x09, D_809C1700);
|
||||||
}
|
}
|
||||||
|
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnBili_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
EnBili_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
@ -947,7 +947,7 @@ void EnBox_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
||||||
gSPSegment(POLY_OPA_DISP++, 0x08, EnBox_EmptyDList(play->state.gfxCtx));
|
gSPSegment(POLY_OPA_DISP++, 0x08, EnBox_EmptyDList(play->state.gfxCtx));
|
||||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
POLY_OPA_DISP = SkelAnime_Draw(play, this->skelanime.skeleton, this->skelanime.jointTable, NULL,
|
POLY_OPA_DISP = SkelAnime_DrawSkeleton2(play, &this->skelanime, NULL,
|
||||||
EnBox_PostLimbDraw, this, POLY_OPA_DISP);
|
EnBox_PostLimbDraw, this, POLY_OPA_DISP);
|
||||||
} else if (this->alpha != 0) {
|
} else if (this->alpha != 0) {
|
||||||
gDPPipeSync(POLY_XLU_DISP++);
|
gDPPipeSync(POLY_XLU_DISP++);
|
||||||
@ -958,7 +958,7 @@ void EnBox_Draw(Actor* thisx, PlayState* play) {
|
|||||||
} else {
|
} else {
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x08, func_809CA4A0(play->state.gfxCtx));
|
gSPSegment(POLY_XLU_DISP++, 0x08, func_809CA4A0(play->state.gfxCtx));
|
||||||
}
|
}
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelanime.skeleton, this->skelanime.jointTable, NULL,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelanime, NULL,
|
||||||
EnBox_PostLimbDraw, this, POLY_XLU_DISP);
|
EnBox_PostLimbDraw, this, POLY_XLU_DISP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -856,7 +856,7 @@ void EnBw_Draw(Actor* thisx, PlayState* play2) {
|
|||||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
gDPSetEnvColor(POLY_OPA_DISP++, this->color1.r, this->color1.g, this->color1.b, this->color1.a);
|
gDPSetEnvColor(POLY_OPA_DISP++, this->color1.r, this->color1.g, this->color1.b, this->color1.a);
|
||||||
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
|
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
|
||||||
POLY_OPA_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_OPA_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnBw_OverrideLimbDraw, NULL, this, POLY_OPA_DISP);
|
EnBw_OverrideLimbDraw, NULL, this, POLY_OPA_DISP);
|
||||||
} else {
|
} else {
|
||||||
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||||
@ -864,7 +864,7 @@ void EnBw_Draw(Actor* thisx, PlayState* play2) {
|
|||||||
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 0, 0, 0, this->color1.a);
|
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 0, 0, 0, this->color1.a);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, this->color1.r, this->color1.g, this->color1.b, this->color1.a);
|
gDPSetEnvColor(POLY_XLU_DISP++, this->color1.r, this->color1.g, this->color1.b, this->color1.a);
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x08, &D_80116280[0]);
|
gSPSegment(POLY_XLU_DISP++, 0x08, &D_80116280[0]);
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnBw_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
EnBw_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -708,14 +708,14 @@ void EnEiyer_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
|
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
|
||||||
gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 255);
|
gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 255);
|
||||||
|
|
||||||
POLY_OPA_DISP = SkelAnime_Draw(play, this->skelanime.skeleton, this->skelanime.jointTable,
|
POLY_OPA_DISP = SkelAnime_DrawSkeleton2(play, &this->skelanime,
|
||||||
EnEiyer_OverrideLimbDraw, NULL, this, POLY_OPA_DISP);
|
EnEiyer_OverrideLimbDraw, NULL, this, POLY_OPA_DISP);
|
||||||
} else {
|
} else {
|
||||||
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x08, D_80116280);
|
gSPSegment(POLY_XLU_DISP++, 0x08, D_80116280);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->actor.shape.shadowAlpha);
|
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->actor.shape.shadowAlpha);
|
||||||
|
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelanime.skeleton, this->skelanime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelanime,
|
||||||
EnEiyer_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
EnEiyer_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
||||||
}
|
}
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
@ -1540,7 +1540,7 @@ void EnElf_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gSPEndDisplayList(dListHead++);
|
gSPEndDisplayList(dListHead++);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, (u8)this->outerColor.r, (u8)this->outerColor.g, (u8)this->outerColor.b,
|
gDPSetEnvColor(POLY_XLU_DISP++, (u8)this->outerColor.r, (u8)this->outerColor.g, (u8)this->outerColor.b,
|
||||||
(u8)(envAlpha * alphaScale));
|
(u8)(envAlpha * alphaScale));
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnElf_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
EnElf_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
@ -837,8 +837,9 @@ void EnFirefly_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
POLY_OPA_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_OPA_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime, EnFirefly_OverrideLimbDraw, EnFirefly_PostLimbDraw,
|
||||||
EnFirefly_OverrideLimbDraw, EnFirefly_PostLimbDraw, &this->actor, POLY_OPA_DISP);
|
&this->actor, POLY_OPA_DISP);
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -854,7 +855,7 @@ void EnFirefly_DrawInvisible(Actor* thisx, PlayState* play) {
|
|||||||
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, 255);
|
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnFirefly_OverrideLimbDraw, EnFirefly_PostLimbDraw, this, POLY_XLU_DISP);
|
EnFirefly_OverrideLimbDraw, EnFirefly_PostLimbDraw, this, POLY_XLU_DISP);
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
@ -858,7 +858,7 @@ void EnPartner_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gSPEndDisplayList(dListHead++);
|
gSPEndDisplayList(dListHead++);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, (u8)this->outerColor.r, (u8)this->outerColor.g, (u8)this->outerColor.b,
|
gDPSetEnvColor(POLY_XLU_DISP++, (u8)this->outerColor.r, (u8)this->outerColor.g, (u8)this->outerColor.b,
|
||||||
(u8)(envAlpha * alphaScale));
|
(u8)(envAlpha * alphaScale));
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnPartner_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
EnPartner_OverrideLimbDraw, NULL, this, POLY_XLU_DISP);
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
@ -267,7 +267,7 @@ void EnPoDesert_Draw(Actor* thisx, PlayState* play) {
|
|||||||
} else {
|
} else {
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x0C, D_80116280 + 2);
|
gSPSegment(POLY_XLU_DISP++, 0x0C, D_80116280 + 2);
|
||||||
}
|
}
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnPoDesert_OverrideLimbDraw, EnPoDesert_PostLimbDraw, &this->actor, POLY_XLU_DISP);
|
EnPoDesert_OverrideLimbDraw, EnPoDesert_PostLimbDraw, &this->actor, POLY_XLU_DISP);
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
@ -944,15 +944,14 @@ void EnPoField_Draw(Actor* thisx, PlayState* play) {
|
|||||||
this->lightColor.a));
|
this->lightColor.a));
|
||||||
gSPSegment(POLY_OPA_DISP++, 0x0C, D_80116280 + 2);
|
gSPSegment(POLY_OPA_DISP++, 0x0C, D_80116280 + 2);
|
||||||
POLY_OPA_DISP =
|
POLY_OPA_DISP =
|
||||||
SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnPoField_OverrideLimbDraw2, EnPoField_PostLimDraw2, &this->actor, POLY_OPA_DISP);
|
EnPoField_OverrideLimbDraw2, EnPoField_PostLimDraw2, &this->actor, POLY_OPA_DISP);
|
||||||
} else {
|
} else {
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x08,
|
gSPSegment(POLY_XLU_DISP++, 0x08,
|
||||||
Gfx_EnvColor(play->state.gfxCtx, this->lightColor.r, this->lightColor.g, this->lightColor.b,
|
Gfx_EnvColor(play->state.gfxCtx, this->lightColor.r, this->lightColor.g, this->lightColor.b,
|
||||||
this->lightColor.a));
|
this->lightColor.a));
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x0C, D_80116280);
|
gSPSegment(POLY_XLU_DISP++, 0x0C, D_80116280);
|
||||||
POLY_XLU_DISP =
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
|
||||||
EnPoField_OverrideLimbDraw2, EnPoField_PostLimDraw2, &this->actor, POLY_XLU_DISP);
|
EnPoField_OverrideLimbDraw2, EnPoField_PostLimDraw2, &this->actor, POLY_XLU_DISP);
|
||||||
}
|
}
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
|
@ -1373,14 +1373,12 @@ void EnPoSisters_Draw(Actor* thisx, PlayState* play) {
|
|||||||
if (this->unk_22E.a == 255 || this->unk_22E.a == 0) {
|
if (this->unk_22E.a == 255 || this->unk_22E.a == 0) {
|
||||||
gDPSetEnvColor(POLY_OPA_DISP++, this->unk_22E.r, this->unk_22E.g, this->unk_22E.b, this->unk_22E.a);
|
gDPSetEnvColor(POLY_OPA_DISP++, this->unk_22E.r, this->unk_22E.g, this->unk_22E.b, this->unk_22E.a);
|
||||||
gSPSegment(POLY_OPA_DISP++, 0x09, D_80116280 + 2);
|
gSPSegment(POLY_OPA_DISP++, 0x09, D_80116280 + 2);
|
||||||
POLY_OPA_DISP =
|
POLY_OPA_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime, EnPoSisters_OverrideLimbDraw,
|
||||||
SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
EnPoSisters_PostLimbDraw, &this->actor, POLY_OPA_DISP);
|
||||||
EnPoSisters_OverrideLimbDraw, EnPoSisters_PostLimbDraw, &this->actor, POLY_OPA_DISP);
|
|
||||||
} else {
|
} else {
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->unk_22E.a);
|
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->unk_22E.a);
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x09, D_80116280);
|
gSPSegment(POLY_XLU_DISP++, 0x09, D_80116280);
|
||||||
POLY_XLU_DISP =
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
|
||||||
EnPoSisters_OverrideLimbDraw, EnPoSisters_PostLimbDraw, &this->actor, POLY_XLU_DISP);
|
EnPoSisters_OverrideLimbDraw, EnPoSisters_PostLimbDraw, &this->actor, POLY_XLU_DISP);
|
||||||
}
|
}
|
||||||
if (!(this->unk_199 & 0x80)) {
|
if (!(this->unk_199 & 0x80)) {
|
||||||
|
@ -1085,12 +1085,12 @@ void EnPoh_DrawRegular(Actor* thisx, PlayState* play) {
|
|||||||
if (this->lightColor.a == 255 || this->lightColor.a == 0) {
|
if (this->lightColor.a == 255 || this->lightColor.a == 0) {
|
||||||
gDPSetEnvColor(POLY_OPA_DISP++, this->lightColor.r, this->lightColor.g, this->lightColor.b, this->lightColor.a);
|
gDPSetEnvColor(POLY_OPA_DISP++, this->lightColor.r, this->lightColor.g, this->lightColor.b, this->lightColor.a);
|
||||||
gSPSegment(POLY_OPA_DISP++, 0x08, D_80116280 + 2);
|
gSPSegment(POLY_OPA_DISP++, 0x08, D_80116280 + 2);
|
||||||
POLY_OPA_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_OPA_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnPoh_OverrideLimbDraw, EnPoh_PostLimbDraw, &this->actor, POLY_OPA_DISP);
|
EnPoh_OverrideLimbDraw, EnPoh_PostLimbDraw, &this->actor, POLY_OPA_DISP);
|
||||||
} else {
|
} else {
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->lightColor.a);
|
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->lightColor.a);
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x08, D_80116280);
|
gSPSegment(POLY_XLU_DISP++, 0x08, D_80116280);
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnPoh_OverrideLimbDraw, EnPoh_PostLimbDraw, &this->actor, POLY_XLU_DISP);
|
EnPoh_OverrideLimbDraw, EnPoh_PostLimbDraw, &this->actor, POLY_XLU_DISP);
|
||||||
}
|
}
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
|
@ -814,7 +814,7 @@ void EnVali_Draw(Actor* thisx, PlayState* play) {
|
|||||||
|
|
||||||
EnVali_DrawBody(this, play);
|
EnVali_DrawBody(this, play);
|
||||||
|
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnVali_OverrideLimbDraw, EnVali_PostLimbDraw, this, POLY_XLU_DISP);
|
EnVali_OverrideLimbDraw, EnVali_PostLimbDraw, this, POLY_XLU_DISP);
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
@ -640,13 +640,13 @@ void EnWeiyer_Draw(Actor* thisx, PlayState* play) {
|
|||||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
|
gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]);
|
||||||
gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 255);
|
gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 255);
|
||||||
POLY_OPA_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_OPA_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime, EnWeiyer_OverrideLimbDraw, NULL, &this->actor,
|
||||||
EnWeiyer_OverrideLimbDraw, NULL, &this->actor, POLY_OPA_DISP);
|
POLY_OPA_DISP);
|
||||||
} else {
|
} else {
|
||||||
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x08, &D_80116280[0]);
|
gSPSegment(POLY_XLU_DISP++, 0x08, &D_80116280[0]);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->actor.shape.shadowAlpha);
|
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->actor.shape.shadowAlpha);
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnWeiyer_OverrideLimbDraw, NULL, &this->actor, POLY_XLU_DISP);
|
EnWeiyer_OverrideLimbDraw, NULL, &this->actor, POLY_XLU_DISP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2252,7 +2252,7 @@ void EnZf_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, this->alpha);
|
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, this->alpha);
|
||||||
gSPSegment(POLY_OPA_DISP++, 0x09, &D_80116280[2]);
|
gSPSegment(POLY_OPA_DISP++, 0x09, &D_80116280[2]);
|
||||||
|
|
||||||
POLY_OPA_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_OPA_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnZf_OverrideLimbDraw, EnZf_PostLimbDraw, this, POLY_OPA_DISP);
|
EnZf_OverrideLimbDraw, EnZf_PostLimbDraw, this, POLY_OPA_DISP);
|
||||||
|
|
||||||
if (this->iceTimer != 0) {
|
if (this->iceTimer != 0) {
|
||||||
@ -2271,7 +2271,7 @@ void EnZf_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gDPPipeSync(POLY_XLU_DISP++);
|
gDPPipeSync(POLY_XLU_DISP++);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, this->alpha);
|
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, this->alpha);
|
||||||
gSPSegment(POLY_XLU_DISP++, 0x09, &D_80116280[0]);
|
gSPSegment(POLY_XLU_DISP++, 0x09, &D_80116280[0]);
|
||||||
POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
POLY_XLU_DISP = SkelAnime_DrawSkeleton2(play, &this->skelAnime,
|
||||||
EnZf_OverrideLimbDraw, EnZf_PostLimbDraw, this, POLY_XLU_DISP);
|
EnZf_OverrideLimbDraw, EnZf_PostLimbDraw, this, POLY_XLU_DISP);
|
||||||
}
|
}
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
Loading…
Reference in New Issue
Block a user