mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-12-17 22:02:19 -05:00
Fix display list offset values and unhandled opcodes (#4618)
* Fix display list offset values and unhandled opcodes * fix unknown opcodes on custom chest textures
This commit is contained in:
parent
c3e4579cba
commit
276db580e8
@ -179,7 +179,8 @@ void func_808BA2CC(BgTokiHikari* this, PlayState* play) {
|
|||||||
gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
||||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
|
||||||
gSPDisplayListOffset(POLY_XLU_DISP++, object_toki_objects_DL_0009C0, 10);
|
// SOH [Port] Index adjust 11 -> 14 (for LUS marker and gsSPVertex) to account for our extraction size changes
|
||||||
|
gSPDisplayListOffset(POLY_XLU_DISP++, object_toki_objects_DL_0009C0, 10 + 2 + 1);
|
||||||
Matrix_Pop();
|
Matrix_Pop();
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
@ -737,6 +737,8 @@ void EnBox_CreateExtraChestTextures() {
|
|||||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gChristmasGreenTreasureChestSideAndTopTex),
|
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gChristmasGreenTreasureChestSideAndTopTex),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Gfx gNoOp[] = { gsDPNoOp() };
|
||||||
|
|
||||||
Gfx* frontCmd = ResourceMgr_LoadGfxByName(gTreasureChestChestFrontDL);
|
Gfx* frontCmd = ResourceMgr_LoadGfxByName(gTreasureChestChestFrontDL);
|
||||||
int frontIndex = 0;
|
int frontIndex = 0;
|
||||||
while (frontCmd->words.w0 >> 24 != G_ENDDL) {
|
while (frontCmd->words.w0 >> 24 != G_ENDDL) {
|
||||||
@ -745,6 +747,20 @@ void EnBox_CreateExtraChestTextures() {
|
|||||||
gKeyTreasureChestChestFrontDL[frontIndex] = *frontCmd;
|
gKeyTreasureChestChestFrontDL[frontIndex] = *frontCmd;
|
||||||
gChristmasRedTreasureChestChestFrontDL[frontIndex] = *frontCmd;
|
gChristmasRedTreasureChestChestFrontDL[frontIndex] = *frontCmd;
|
||||||
gChristmasGreenTreasureChestChestFrontDL[frontIndex] = *frontCmd;
|
gChristmasGreenTreasureChestChestFrontDL[frontIndex] = *frontCmd;
|
||||||
|
|
||||||
|
// Set the second instruction of img OTR hash opcode to noop, since we will replace it with the
|
||||||
|
// OTR filepath opcode below
|
||||||
|
if (frontCmd->words.w0 >> 24 == G_SETTIMG_OTR_HASH) {
|
||||||
|
frontIndex++;
|
||||||
|
++frontCmd;
|
||||||
|
|
||||||
|
gSkullTreasureChestChestFrontDL[frontIndex] = gNoOp[0];
|
||||||
|
gGoldTreasureChestChestFrontDL[frontIndex] = gNoOp[0];
|
||||||
|
gKeyTreasureChestChestFrontDL[frontIndex] = gNoOp[0];
|
||||||
|
gChristmasRedTreasureChestChestFrontDL[frontIndex] = gNoOp[0];
|
||||||
|
gChristmasGreenTreasureChestChestFrontDL[frontIndex] = gNoOp[0];
|
||||||
|
}
|
||||||
|
|
||||||
frontIndex++;
|
frontIndex++;
|
||||||
++frontCmd;
|
++frontCmd;
|
||||||
}
|
}
|
||||||
@ -783,6 +799,20 @@ void EnBox_CreateExtraChestTextures() {
|
|||||||
gKeyTreasureChestChestSideAndLidDL[sideIndex] = *sideCmd;
|
gKeyTreasureChestChestSideAndLidDL[sideIndex] = *sideCmd;
|
||||||
gChristmasRedTreasureChestChestSideAndLidDL[sideIndex] = *sideCmd;
|
gChristmasRedTreasureChestChestSideAndLidDL[sideIndex] = *sideCmd;
|
||||||
gChristmasGreenTreasureChestChestSideAndLidDL[sideIndex] = *sideCmd;
|
gChristmasGreenTreasureChestChestSideAndLidDL[sideIndex] = *sideCmd;
|
||||||
|
|
||||||
|
// Set the second instruction of img OTR hash opcode to noop, since we will replace it with the
|
||||||
|
// OTR filepath opcode below
|
||||||
|
if (sideCmd->words.w0 >> 24 == G_SETTIMG_OTR_HASH) {
|
||||||
|
sideIndex++;
|
||||||
|
++sideCmd;
|
||||||
|
|
||||||
|
gSkullTreasureChestChestSideAndLidDL[sideIndex] = gNoOp[0];
|
||||||
|
gGoldTreasureChestChestSideAndLidDL[sideIndex] = gNoOp[0];
|
||||||
|
gKeyTreasureChestChestSideAndLidDL[sideIndex] = gNoOp[0];
|
||||||
|
gChristmasRedTreasureChestChestSideAndLidDL[sideIndex] = gNoOp[0];
|
||||||
|
gChristmasGreenTreasureChestChestSideAndLidDL[sideIndex] = gNoOp[0];
|
||||||
|
}
|
||||||
|
|
||||||
sideIndex++;
|
sideIndex++;
|
||||||
++sideCmd;
|
++sideCmd;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,8 @@ void OceffWipe4_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gSPDisplayList(POLY_XLU_DISP++, sMaterial2DL);
|
gSPDisplayList(POLY_XLU_DISP++, sMaterial2DL);
|
||||||
gSPDisplayList(POLY_XLU_DISP++, Gfx_TwoTexScroll(play->state.gfxCtx, 0, scroll * 2, scroll * (-2), 32, 64, 1,
|
gSPDisplayList(POLY_XLU_DISP++, Gfx_TwoTexScroll(play->state.gfxCtx, 0, scroll * 2, scroll * (-2), 32, 64, 1,
|
||||||
scroll * (-1), scroll, 32, 32));
|
scroll * (-1), scroll, 32, 32));
|
||||||
gSPDisplayListOffset(POLY_XLU_DISP++, sMaterial2DL, 11);
|
// SOH [Port] Index adjust 11 -> 14 (for LUS marker and load texture) to account for our extraction size changes
|
||||||
|
gSPDisplayListOffset(POLY_XLU_DISP++, sMaterial2DL, 11 + 2 + 1);
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx);
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user