d_gameover done on JPN and PAL

This commit is contained in:
LagoLunatic
2024-06-29 21:23:00 -04:00
parent b0c9f6610f
commit 3463dd8dc2
4 changed files with 19 additions and 14 deletions
+1 -1
View File
@@ -495,7 +495,7 @@ config.libs = [
Object(Matching, "d/d_envse.cpp"),
Object(NonMatching, "d/d_file_error.cpp"),
Object(NonMatching, "d/d_file_select.cpp"),
Object(NonMatching, "d/d_gameover.cpp"),
Object(Matching, "d/d_gameover.cpp"),
Object(NonMatching, "d/d_kankyo.cpp"),
Object(Matching, "d/d_kyeff.cpp"),
Object(Matching, "d/d_kyeff2.cpp"),
+3
View File
@@ -44,7 +44,10 @@ public:
public:
/* 0x004 */ J2DScreen* scrn;
/* 0x008 */ fopMsgM_pane_class letter[8];
#if VERSION != VERSION_JPN
/* 0x1C8 */ u8 field_0x1c8[0x318 - 0x1c8];
#endif
/* Offsets below are for USA/PAL */
/* 0x318 */ fopMsgM_pane_alpha_class blak;
/* 0x320 */ JPABaseEmitter* mpEmitter0;
/* 0x324 */ JPABaseEmitter* mpEmitter1;
+4
View File
@@ -108,6 +108,10 @@ public:
public:
/* 0x0004 */ u8 field_0x0004;
/* 0x0008 */ dDlst_MenuSave_c mDlst;
#if VERSION == VERSION_PAL
// Not 100% sure where these extra bytes go, but it has to be before field_0x0537.
/* 0x000C */ u8 field_0x000c_pal[0x0038];
#endif
/* 0x000C */ u8 field_0x000c[0x0524];
/* 0x0530 */ u8 field_0x0530;
/* 0x0531 */ u8 field_0x0531;
+11 -13
View File
@@ -14,7 +14,6 @@
/* 8018E1CC-8018E4B4 .text draw__24dDlst_Gameover_CAPTURE_cFv */
void dDlst_Gameover_CAPTURE_c::draw() {
/* Nonmatching */
GXTexObj texObj;
GXSetTexCopySrc(0, 0, 640, 480);
@@ -74,7 +73,7 @@ s32 dGameover_c::_create() {
if (rt == cPhs_COMPLEATE_e) {
dComIfGs_addDeathCount();
dRes_info_c* resInfo = dComIfG_getObjectResInfo("Gover");
JUT_ASSERT(0xa0, resInfo != NULL);
JUT_ASSERT(VERSION_SELECT(0x9c, 0xa0, 0xa0), resInfo != NULL);
mpHeap = dComIfGp_getExpHeap2D();
dComIfGp_setHeapLockFlag(4);
@@ -84,12 +83,12 @@ s32 dGameover_c::_create() {
dgo_scrn_c->setScreen("gameover.blo", resInfo->getArchive());
dMs_c = new dMenu_save_c();
JUT_ASSERT(0xb6, dMs_c != NULL);
JUT_ASSERT(VERSION_SELECT(0xa7, 0xb6, 0xb6), dMs_c != NULL);
dMs_c->field_0x0537 = 2;
dMs_c->_create();
dgo_capture_c = new dDlst_Gameover_CAPTURE_c();
JUT_ASSERT(0xbb, dgo_capture_c != NULL);
JUT_ASSERT(VERSION_SELECT(0xac, 0xbb, 0xbb), dgo_capture_c != NULL);
mDoExt_setCurrentHeap(oldHeap);
} else {
@@ -170,7 +169,6 @@ BOOL dGameover_c::_draw() {
/* 8018EA58-8018EB54 .text _delete__11dGameover_cFv */
BOOL dGameover_c::_delete() {
/* Nonmatching */
JKRHeap* oldHeap = mDoExt_setCurrentHeap(mpHeap);
delete dgo_scrn_c->scrn;
@@ -190,7 +188,11 @@ BOOL dGameover_c::deleteCheck() {
return mState == 6;
}
#if VERSION == VERSION_JPN
static const s16 dGover_tex_number = 8;
#else
static s16 dGover_tex_number = 8;
#endif
/* 8018EB68-8018EC9C .text setScreen__24dDlst_GameOverScrnDraw_cFPCcP10JKRArchive */
void dDlst_GameOverScrnDraw_c::setScreen(const char* filename, JKRArchive* arc) {
@@ -259,10 +261,8 @@ BOOL dDlst_GameOverScrnDraw_c::animeOpen() {
for (int i = 0; i < dGover_tex_number; i++) {
s16 userArea = letter[i].mUserArea;
if (userArea >= 0 && userArea < 9) {
if (userArea >= 1 && var_r30 != i) {
if (letter[i].mUserArea >= 0 && letter[i].mUserArea < 9) {
if (letter[i].mUserArea >= 1 && var_r30 != i) {
anime1(i);
if (letter[i].mUserArea == 5) {
dComIfGp_particle_set2Dfore(0x2E, &cXyz(x[i], 50.0f, 0.0f));
@@ -313,10 +313,8 @@ BOOL dDlst_GameOverScrnDraw_c::animeClose() {
}
for (int i = 0; i < dGover_tex_number; i++) {
s16 userArea = letter[i].mUserArea;
if (userArea >= 0 && userArea < 7) {
if (userArea >= 1 && var_r30 != i) {
if (letter[i].mUserArea >= 0 && letter[i].mUserArea < 7) {
if (letter[i].mUserArea >= 1 && var_r30 != i) {
anime2(i);
}