Master Quest (#3) (#1632)

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Co-authored-by: GaryOderNichts <12049776+GaryOderNichts@users.noreply.github.com>

Co-authored-by: louist103 <35883445+louist103@users.noreply.github.com>
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Co-authored-by: GaryOderNichts <12049776+GaryOderNichts@users.noreply.github.com>
This commit is contained in:
briaguya 2022-09-29 19:07:48 -04:00 committed by GitHub
commit 8888fb2ec1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
575 changed files with 22984 additions and 76 deletions

View file

@ -42,28 +42,33 @@ static MapMarkInfo sMapMarkInfoTable[] = {
{ gMapBossIconTex, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 32, 32, 1 << 10, 1 << 10 }, // Boss Skull Icon
};
static MapMarkDataOverlay sMapMarkDataOvl = {
NULL,
//(uintptr_t)_ovl_map_mark_dataSegmentRomStart,
//(uintptr_t)_ovl_map_mark_dataSegmentRomEnd,
//_ovl_map_mark_dataSegmentStart,
//_ovl_map_mark_dataSegmentEnd,
0, 0, 0, 0,
gMapMarkDataTable,
};
//static MapMarkDataOverlay sMapMarkDataOvl = {
// NULL,
// //(uintptr_t)_ovl_map_mark_dataSegmentRomStart,
// //(uintptr_t)_ovl_map_mark_dataSegmentRomEnd,
// //_ovl_map_mark_dataSegmentStart,
// //_ovl_map_mark_dataSegmentEnd,
// 0, 0, 0, 0,
// gMapMarkDataTableVanilla,
//};
MapMarkData** sLoadedMarkDataTable;
void MapMark_Init(GlobalContext* globalCtx) {
MapMarkDataOverlay* overlay = &sMapMarkDataOvl;
u32 overlaySize = (uintptr_t)overlay->vramEnd - (uintptr_t)overlay->vramStart;
//MapMarkDataOverlay* overlay = &sMapMarkDataOvl;
//u32 overlaySize = (uintptr_t)overlay->vramEnd - (uintptr_t)overlay->vramStart;
overlay->loadedRamAddr = GAMESTATE_ALLOC_MC(&globalCtx->state, overlaySize);
LOG_CHECK_NULL_POINTER("dlftbl->allocp", overlay->loadedRamAddr);
//overlay->loadedRamAddr = GAMESTATE_ALLOC_MC(&globalCtx->state, overlaySize);
//LOG_CHECK_NULL_POINTER("dlftbl->allocp", overlay->loadedRamAddr);
Overlay_Load(overlay->vromStart, overlay->vromEnd, overlay->vramStart, overlay->vramEnd, overlay->loadedRamAddr);
//Overlay_Load(overlay->vromStart, overlay->vromEnd, overlay->vramStart, overlay->vramEnd, overlay->loadedRamAddr);
sLoadedMarkDataTable = gMapMarkDataTable;
if(ResourceMgr_IsGameMasterQuest()) {
sLoadedMarkDataTable = gMapMarkDataTableMq;
} else {
sLoadedMarkDataTable = gMapMarkDataTableVanilla;
}
//sLoadedMarkDataTable = gMapMarkDataTableVanilla;
//sLoadedMarkDataTable = (void*)(uintptr_t)(
//(overlay->vramTable != NULL)
//? (void*)((uintptr_t)overlay->vramTable - ((intptr_t)overlay->vramStart - (intptr_t)overlay->loadedRamAddr))
@ -71,7 +76,7 @@ void MapMark_Init(GlobalContext* globalCtx) {
}
void MapMark_ClearPointers(GlobalContext* globalCtx) {
sMapMarkDataOvl.loadedRamAddr = NULL;
//sMapMarkDataOvl.loadedRamAddr = NULL;
sLoadedMarkDataTable = NULL;
}

View file

@ -148,6 +148,7 @@ s32 DemoTreLgt_PostLimbDraw(GlobalContext* globalCtx, SkelAnimeCurve* skelCurve,
}
CLOSE_DISPS(globalCtx->state.gfxCtx);
return 1;
}
void DemoTreLgt_Draw(Actor* thisx, GlobalContext* globalCtx) {

View file

@ -10,9 +10,20 @@
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
void EnMag_Init(Actor* thisx, GlobalContext* globalCtx);
void EnMag_InitMq(Actor* thisx, GlobalContext* globalCtx);
void EnMag_InitVanilla(Actor* thisx, GlobalContext* globalCtx);
void EnMag_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnMag_Update(Actor* thisx, GlobalContext* globalCtx);
void EnMag_UpdateMq(Actor* thisx, GlobalContext* globalCtx);
void EnMag_UpdateVanilla(Actor* thisx, GlobalContext* globalCtx);
void EnMag_Draw(Actor* thisx, GlobalContext* globalCtx);
void EnMag_DrawInnerVanilla(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp);
void EnMag_DrawInnerMq(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp);
typedef void (*EnMagDrawInnerFunc)(struct Actor*, GlobalContext*, Gfx**);
static EnMagDrawInnerFunc drawInnerFunc;
const ActorInit En_Mag_InitVars = {
ACTOR_EN_MAG,
@ -22,14 +33,25 @@ const ActorInit En_Mag_InitVars = {
sizeof(EnMag),
(ActorFunc)EnMag_Init,
(ActorFunc)EnMag_Destroy,
(ActorFunc)EnMag_Update,
(ActorFunc)NULL,
(ActorFunc)EnMag_Draw,
NULL,
};
static s16 sDelayTimer = 0;
#ifdef MASTER_QUEST
void EnMag_Init(Actor* thisx, GlobalContext* globalCtx) {
if (ResourceMgr_IsGameMasterQuest()) {
EnMag_InitMq(thisx, globalCtx);
drawInnerFunc = EnMag_DrawInnerMq;
thisx->update = EnMag_UpdateMq;
} else {
EnMag_InitVanilla(thisx, globalCtx);
thisx->update = EnMag_UpdateVanilla;
drawInnerFunc = EnMag_DrawInnerVanilla;
}
}
static s16 sDelayTimer = 0;
void EnMag_InitMq(Actor* thisx, GlobalContext* globalCtx) {
EnMag* this = (EnMag*)thisx;
YREG(1) = 63;
@ -98,8 +120,8 @@ void EnMag_Init(Actor* thisx, GlobalContext* globalCtx) {
this->unk_E31C = 0;
this->unk_E320 = 0;
}
#else
void EnMag_Init(Actor* thisx, GlobalContext* globalCtx) {
void EnMag_InitVanilla(Actor* thisx, GlobalContext* globalCtx) {
EnMag* this = (EnMag*)thisx;
Color_RGB8 Original_Prim = { 255, 255, 170 };
Color_RGB8 Original_Env = { 255, 100, 0 };
@ -188,13 +210,11 @@ void EnMag_Init(Actor* thisx, GlobalContext* globalCtx) {
this->unk_E31C = 0;
this->unk_E320 = 0;
}
#endif
void EnMag_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
#ifdef MASTER_QUEST
void EnMag_Update(Actor* thisx, GlobalContext* globalCtx) {
void EnMag_UpdateMq(Actor* thisx, GlobalContext* globalCtx) {
s32 pad[2];
EnMag* this = (EnMag*)thisx;
@ -353,8 +373,8 @@ void EnMag_Update(Actor* thisx, GlobalContext* globalCtx) {
}
}
}
#else
void EnMag_Update(Actor* thisx, GlobalContext* globalCtx) {
void EnMag_UpdateVanilla(Actor* thisx, GlobalContext* globalCtx) {
s32 pad[2];
EnMag* this = (EnMag*)thisx;
Color_RGB8 Original_Prim = { 255, 255, 170 };
@ -539,9 +559,8 @@ void EnMag_Update(Actor* thisx, GlobalContext* globalCtx) {
}
}
}
#endif
void EnMag_DrawTextureI8(Gfx** gfxp, void* texture, s16 texWidth, s16 texHeight, s16 rectLeft, s16 rectTop,
void EnMag_DrawTextureI8(Gfx** gfxp, const void* texture, s16 texWidth, s16 texHeight, s16 rectLeft, s16 rectTop,
s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy) {
Gfx* gfx = *gfxp;
@ -554,7 +573,7 @@ void EnMag_DrawTextureI8(Gfx** gfxp, void* texture, s16 texWidth, s16 texHeight,
*gfxp = gfx;
}
void EnMag_DrawEffectTextures(Gfx** gfxp, void* maskTex, void* effectTex, s16 maskWidth, s16 maskHeight,
void EnMag_DrawEffectTextures(Gfx** gfxp, const void* maskTex, void* effectTex, s16 maskWidth, s16 maskHeight,
s16 effectWidth, s16 effectHeight, s16 rectLeft, s16 rectTop, s16 rectWidth,
s16 rectHeight, u16 dsdx, u16 dtdy, u16 shifts, u16 shiftt, u16 flag, EnMag* this) {
Gfx* gfx = *gfxp;
@ -575,7 +594,7 @@ void EnMag_DrawEffectTextures(Gfx** gfxp, void* maskTex, void* effectTex, s16 ma
*gfxp = gfx;
}
void EnMag_DrawImageRGBA32(Gfx** gfxp, s16 centerX, s16 centerY, u8* source, u32 width, u32 height) {
void EnMag_DrawImageRGBA32(Gfx** gfxp, s16 centerX, s16 centerY, const char* source, u32 width, u32 height) {
Gfx* gfx = *gfxp;
u8* curTexture;
s32 textureCount;
@ -650,8 +669,9 @@ void EnMag_DrawCharTexture(Gfx** gfxp, u8* texture, s32 rectLeft, s32 rectTop) {
*gfxp = gfx;
}
#ifdef MASTER_QUEST
void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
void EnMag_DrawInnerMq(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
static s16 textAlpha = 0;
static s16 textFadeDirection = 0;
static s16 textFadeTimer = 0;
@ -735,7 +755,7 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
gDPPipeSync(gfx++);
gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, (s16)this->subAlpha);
EnMag_DrawImageRGBA32(&gfx, 174, 145, (u8*)gTitleMasterQuestSubtitleTex, 128, 32);
EnMag_DrawImageRGBA32(&gfx, 174, 145, "__OTR__objects/object_mag/gTitleMasterQuestSubtitleTex", 128, 32);
}
func_8009457C(&gfx);
@ -840,8 +860,8 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
*gfxp = gfx;
}
#else
void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
void EnMag_DrawInnerVanilla(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
static s16 textAlpha = 0;
static s16 textFadeDirection = 0;
static s16 textFadeTimer = 0;
@ -851,7 +871,7 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
static u8 pressStartFontIndexes[] = {
0x19, 0x1B, 0x0E, 0x1C, 0x1C, 0x1C, 0x1D, 0x0A, 0x1B, 0x1D,
};
static void* effectMaskTextures[] = {
static const void* effectMaskTextures[] = {
gTitleEffectMask00Tex, gTitleEffectMask01Tex, gTitleEffectMask02Tex,
gTitleEffectMask10Tex, gTitleEffectMask11Tex, gTitleEffectMask12Tex,
gTitleEffectMask20Tex, gTitleEffectMask21Tex, gTitleEffectMask22Tex,
@ -1027,7 +1047,6 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
*gfxp = gfx;
}
#endif
void EnMag_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
@ -1040,7 +1059,7 @@ void EnMag_Draw(Actor* thisx, GlobalContext* globalCtx) {
gfx = Graph_GfxPlusOne(gfxRef);
gSPDisplayList(OVERLAY_DISP++, gfx);
EnMag_DrawInner(thisx, globalCtx, &gfx);
drawInnerFunc(thisx, globalCtx, &gfx);
gSPEndDisplayList(gfx++);
Graph_BranchDlist(gfxRef, gfx);

View file

@ -6,6 +6,7 @@
#include "textures/parameter_static/parameter_static.h"
#include <textures/icon_item_static/icon_item_static.h>
#include "soh/frame_interpolation.h"
#include <libultraship/GameVersions.h>
static s16 sUnused = 106;
@ -163,6 +164,158 @@ unsigned char gFileSelRANDButtonTex[] = {
0x0, 0x0, 0x0, 0x0,
};
unsigned char gFileSelMQButtonTex[] = {
0x0, 0x0, 0x75, 0x73, 0xfa, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7,
0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff,
0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7,
0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff,
0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xe0, 0xff, 0x51, 0x7f, 0x0, 0x0, 0x5e, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7,
0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff,
0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7,
0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff,
0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0xa0,
0xff, 0xa0, 0xff, 0x51, 0x7f, 0xe2, 0xff, 0xf7, 0xff, 0xf2, 0xff, 0x90, 0xff, 0x97, 0xff, 0x9d, 0xff, 0xa3, 0xff,
0xa9, 0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xca, 0xff, 0xd0, 0xff, 0xd3, 0xff, 0xce, 0xff, 0xca,
0xff, 0xc5, 0xff, 0xc1, 0xff, 0xbc, 0xff, 0xb8, 0xff, 0xb4, 0xff, 0xaf, 0xff, 0xab, 0xff, 0xa7, 0xff, 0xa2, 0xff,
0x9e, 0xff, 0x9a, 0xff, 0x95, 0xff, 0x91, 0xff, 0x8c, 0xff, 0x88, 0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff, 0x77,
0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff, 0xa2, 0xff, 0x93, 0xff, 0x59, 0xff, 0xd2, 0xff,
0xd8, 0xff, 0x8b, 0xff, 0x90, 0xff, 0x97, 0xff, 0x9d, 0xff, 0xa3, 0xff, 0xa9, 0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc,
0xff, 0xc3, 0xff, 0xca, 0xff, 0xd0, 0xff, 0x8c, 0xff, 0xce, 0xff, 0xca, 0xff, 0xc5, 0xff, 0xc1, 0xff, 0xbc, 0xff,
0x7a, 0xff, 0x95, 0xff, 0xaf, 0xff, 0xab, 0xff, 0xa7, 0xff, 0x6a, 0xff, 0x50, 0xff, 0x4e, 0xff, 0x62, 0xff, 0x8f,
0xff, 0x8c, 0xff, 0x88, 0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff, 0x77, 0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff,
0x95, 0xff, 0xa1, 0xff, 0xb0, 0xff, 0x47, 0xff, 0x3a, 0xff, 0xd2, 0xff, 0xd2, 0xff, 0x8b, 0xff, 0x90, 0xff, 0x97,
0xff, 0x9d, 0xff, 0xa3, 0xff, 0xa9, 0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xca, 0xff, 0x3, 0xff,
0x0, 0xff, 0x28, 0xff, 0xca, 0xff, 0xc5, 0xff, 0xc1, 0xff, 0x41, 0xff, 0x0, 0xff, 0x0, 0xff, 0xba, 0xff, 0x4d,
0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x61, 0xff, 0x88, 0xff, 0x84, 0xff,
0x80, 0xff, 0x7c, 0xff, 0x77, 0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff, 0xb0, 0xff, 0x3a,
0xff, 0x3a, 0xff, 0xd2, 0xff, 0xd2, 0xff, 0x8b, 0xff, 0x90, 0xff, 0x97, 0xff, 0x9d, 0xff, 0xa3, 0xff, 0xa9, 0xff,
0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xc1, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xc6, 0xff, 0xc5,
0xff, 0xc1, 0xff, 0x6, 0xff, 0x0, 0xff, 0x0, 0xff, 0xb0, 0xff, 0xb, 0xff, 0x0, 0xff, 0x46, 0xff, 0x89, 0xff,
0x86, 0xff, 0x45, 0xff, 0x0, 0xff, 0x1d, 0xff, 0x94, 0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff, 0x77, 0xff, 0x75,
0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff, 0xb0, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0xd2, 0xff, 0xd2, 0xff,
0x8b, 0xff, 0x90, 0xff, 0x55, 0xff, 0x52, 0xff, 0x68, 0xff, 0x7e, 0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3,
0xff, 0xc1, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x6f, 0xff, 0xc5, 0xff, 0x86, 0xff, 0x0, 0xff, 0x0, 0xff,
0x0, 0xff, 0xb0, 0xff, 0x0, 0xff, 0x12, 0xff, 0xd9, 0xff, 0x9f, 0xff, 0x9a, 0xff, 0x97, 0xff, 0x5, 0xff, 0x0,
0xff, 0xae, 0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff, 0x77, 0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff,
0xa1, 0xff, 0xb0, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0xd2, 0xff, 0xd2, 0xff, 0x8b, 0xff, 0x90, 0xff, 0x3d, 0xff, 0x37,
0xff, 0x60, 0xff, 0x7e, 0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xc1, 0xff, 0x0, 0xff, 0x0, 0xff,
0x0, 0xff, 0x15, 0xff, 0xcf, 0xff, 0x35, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xab, 0xff, 0x0, 0xff, 0x2e,
0xff, 0xbc, 0xff, 0x9e, 0xff, 0x9a, 0xff, 0x95, 0xff, 0x12, 0xff, 0x0, 0xff, 0xb0, 0xff, 0x84, 0xff, 0x80, 0xff,
0x7c, 0xff, 0x77, 0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff, 0xb0, 0xff, 0x3a, 0xff, 0x3a,
0xff, 0xd2, 0xff, 0xd2, 0xff, 0x8b, 0xff, 0x90, 0xff, 0x44, 0xff, 0x4f, 0xff, 0x8a, 0xff, 0x9e, 0xff, 0xb0, 0xff,
0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xc1, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xb5, 0xff, 0x0,
0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xaa, 0xff, 0x0, 0xff, 0x30, 0xff, 0xb8, 0xff, 0x9e, 0xff, 0x9a, 0xff,
0x95, 0xff, 0x13, 0xff, 0x0, 0xff, 0xb0, 0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff, 0x77, 0xff, 0x75, 0xff, 0x7f,
0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff, 0xb0, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0xd2, 0xff, 0xd2, 0xff, 0x8b, 0xff,
0x90, 0xff, 0x59, 0xff, 0x67, 0xff, 0x97, 0xff, 0x9b, 0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xc1,
0xff, 0x0, 0xff, 0x0, 0xff, 0x7a, 0xff, 0x0, 0xff, 0x5f, 0xff, 0x0, 0xff, 0x44, 0xff, 0x20, 0xff, 0x0, 0xff,
0xb9, 0xff, 0x0, 0xff, 0x1f, 0xff, 0xbb, 0xff, 0x25, 0xff, 0x1b, 0xff, 0x95, 0xff, 0xa, 0xff, 0x0, 0xff, 0xbb,
0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff, 0x77, 0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff,
0xb0, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0xd2, 0xff, 0xd2, 0xff, 0x8b, 0xff, 0x90, 0xff, 0x97, 0xff, 0x9d, 0xff, 0xa3,
0xff, 0xa9, 0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xc1, 0xff, 0x0, 0xff, 0x0, 0xff, 0xed, 0xff,
0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xb7, 0xff, 0x1c, 0xff, 0x0, 0xff, 0xb0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x6c,
0xff, 0x57, 0xff, 0x0, 0xff, 0x19, 0xff, 0x0, 0xff, 0x2, 0xff, 0xd8, 0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff,
0x77, 0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff, 0xb0, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0xd2,
0xff, 0xd2, 0xff, 0x8b, 0xff, 0x90, 0xff, 0x97, 0xff, 0x9d, 0xff, 0xa3, 0xff, 0xa9, 0xff, 0xb0, 0xff, 0xb6, 0xff,
0xbc, 0xff, 0xc3, 0xff, 0xc1, 0xff, 0x0, 0xff, 0x0, 0xff, 0xe7, 0xff, 0x37, 0xff, 0x0, 0xff, 0xf, 0xff, 0xe7,
0xff, 0x1c, 0xff, 0x0, 0xff, 0xb0, 0xff, 0x49, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff,
0x0, 0xff, 0x64, 0xff, 0xaa, 0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff, 0x77, 0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a,
0xff, 0x95, 0xff, 0xa1, 0xff, 0xb0, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0xd2, 0xff, 0xc7, 0xff, 0x8b, 0xff, 0x90, 0xff,
0x97, 0xff, 0x9d, 0xff, 0xa3, 0xff, 0xa9, 0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xca, 0xff, 0x74,
0xff, 0x7f, 0xff, 0xe7, 0xff, 0xc2, 0xff, 0x72, 0xff, 0x84, 0xff, 0xbc, 0xff, 0x5f, 0xff, 0x78, 0xff, 0xe7, 0xff,
0xab, 0xff, 0xa3, 0xff, 0x5a, 0xff, 0x3c, 0xff, 0x40, 0xff, 0x18, 0xff, 0x0, 0xff, 0x59, 0xff, 0x88, 0xff, 0x84,
0xff, 0x80, 0xff, 0x7c, 0xff, 0x77, 0xff, 0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff, 0xb0, 0xff,
0x3a, 0xff, 0x3a, 0xff, 0xc7, 0xff, 0x84, 0xff, 0x79, 0xff, 0x90, 0xff, 0x97, 0xff, 0x9d, 0xff, 0xa3, 0xff, 0xa9,
0xff, 0xb0, 0xff, 0xb6, 0xff, 0xbc, 0xff, 0xc3, 0xff, 0xca, 0xff, 0xd0, 0xff, 0xd4, 0xff, 0xce, 0xff, 0xca, 0xff,
0xc5, 0xff, 0xc1, 0xff, 0xbc, 0xff, 0xb8, 0xff, 0xb4, 0xff, 0xaf, 0xff, 0xab, 0xff, 0xa7, 0xff, 0xa2, 0xff, 0xaf,
0xff, 0xae, 0xff, 0xa6, 0xff, 0x4e, 0xff, 0x67, 0xff, 0xbf, 0xff, 0x84, 0xff, 0x80, 0xff, 0x7c, 0xff, 0x77, 0xff,
0x75, 0xff, 0x7f, 0xff, 0x8a, 0xff, 0x95, 0xff, 0xa1, 0xff, 0x48, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x2d, 0x5c, 0x79,
0xff, 0x79, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff,
0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a,
0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff,
0x3b, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a,
0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x1e, 0x7f, 0x0, 0x0, 0x37, 0x71, 0x4f, 0xff, 0x3a, 0xff, 0x3a, 0xff,
0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a,
0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff,
0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a,
0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x3a, 0xff, 0x15, 0x55,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,
};
static Gfx sScreenFillSetupDL[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |
@ -181,6 +334,10 @@ static s16 sWindowContentColors[2][3] = {
{ 100, 100, 100 }, // gray
};
static int FileChoose_IsSaveCompatible(const SaveFileMetaInfo* restrict meta) {
return meta->isMasterQuest == ResourceMgr_IsGameMasterQuest();
}
void FileChoose_SetView(FileChooseContext* this, f32 eyeX, f32 eyeY, f32 eyeZ) {
Vec3f eye;
Vec3f lookAt;
@ -354,7 +511,7 @@ void DrawSeedHashSprites(FileChooseContext* this) {
u16 xStart = 64;
// Draw Seed Icons
for (u8 i = 0; i < 5; i++) {
for (unsigned int i = 0; i < 5; i++) {
if (Save_GetSaveMetaInfo(this->selectedFileIndex)->randoSave == 1) {
SpriteLoad(this, GetSeedTexture(Save_GetSaveMetaInfo(this->selectedFileIndex)->seedHash[i]));
SpriteDraw(this, GetSeedTexture(Save_GetSaveMetaInfo(this->selectedFileIndex)->seedHash[i]),
@ -367,7 +524,7 @@ void DrawSeedHashSprites(FileChooseContext* this) {
if (CVar_GetS32("gRandomizer", 0) && strnlen(CVar_GetString("gSpoilerLog", ""), 1) != 0) {
u16 xStart = 64;
for (u8 i = 0; i < 5; i++) {
for (unsigned int i = 0; i < 5; i++) {
SpriteLoad(this, GetSeedTexture(gSaveContext.seedIcons[i]));
SpriteDraw(this, GetSeedTexture(gSaveContext.seedIcons[i]), xStart + (40 * i), 10, 24, 24);
}
@ -455,7 +612,10 @@ void FileChoose_UpdateMainMenu(GameState* thisx) {
this->nameEntryBoxPosX = 120;
this->nameEntryBoxAlpha = 0;
memcpy(Save_GetSaveMetaInfo(this->buttonIndex)->playerName, &emptyName, 8);
} else {
} else if(!FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(this->buttonIndex))) {
Audio_PlaySoundGeneral(NA_SE_SY_FSEL_ERROR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
}
else {
Audio_PlaySoundGeneral(NA_SE_SY_FSEL_DECIDE_L, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
this->actionTimer = 8;
this->selectMode = SM_FADE_MAIN_TO_SELECT;
@ -1210,8 +1370,13 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
isActive = 0;
if (CVar_GetS32("gHudColors", 1) == 2) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, CVar_GetRGB("gCCFileChoosePrim", Background_Color).r, CVar_GetRGB("gCCFileChoosePrim", Background_Color).g, CVar_GetRGB("gCCFileChoosePrim", Background_Color).b, this->fileButtonAlpha[i]);
if (!FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(i)) && Save_GetSaveMetaInfo(i)->valid) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[1][0], sWindowContentColors[1][1],
sWindowContentColors[1][2], this->fileButtonAlpha[i]);
} else if (CVar_GetS32("gHudColors", 1) == 2) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, CVar_GetRGB("gCCFileChoosePrim", Background_Color).r,
CVar_GetRGB("gCCFileChoosePrim", Background_Color).g,
CVar_GetRGB("gCCFileChoosePrim", Background_Color).b, this->fileButtonAlpha[i]);
} else {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[isActive][0], sWindowContentColors[isActive][1],
sWindowContentColors[isActive][2], this->fileButtonAlpha[i]);
@ -1223,8 +1388,11 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
// draw file name box
if (CVar_GetS32("gHudColors", 1) == 2) {
if (CVar_GetS32("gHudColors", 1) == 2 && FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(i))) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, CVar_GetRGB("gCCFileChoosePrim", Background_Color).r, CVar_GetRGB("gCCFileChoosePrim", Background_Color).g, CVar_GetRGB("gCCFileChoosePrim", Background_Color).b, this->nameBoxAlpha[i]);
} else if (!FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(i))) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[1][0], sWindowContentColors[1][1],
sWindowContentColors[1][2], this->nameBoxAlpha[i]);
} else {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[isActive][0], sWindowContentColors[isActive][1],
sWindowContentColors[isActive][2], this->nameBoxAlpha[i]);
@ -1235,10 +1403,13 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
G_TX_NOLOD);
gSP1Quadrangle(POLY_OPA_DISP++, 4, 6, 7, 5, 0);
// draw disk label for 64DD
// draw rando label
if (Save_GetSaveMetaInfo(i)->randoSave) {
if (CVar_GetS32("gHudColors", 1) == 2) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, CVar_GetRGB("gCCFileChoosePrim", Background_Color).r, CVar_GetRGB("gCCFileChoosePrim", Background_Color).g, CVar_GetRGB("gCCFileChoosePrim", Background_Color).b, this->nameAlpha[i]);
} else if (!FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(i))) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[1][0], sWindowContentColors[1][1],
sWindowContentColors[1][2], this->nameBoxAlpha[i]);
} else {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[isActive][0],
sWindowContentColors[isActive][1], sWindowContentColors[isActive][2],
@ -1249,10 +1420,30 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
G_TX_NOLOD, G_TX_NOLOD);
gSP1Quadrangle(POLY_OPA_DISP++, 8, 10, 11, 9, 0);
}
//Draw MQ label
if (Save_GetSaveMetaInfo(i)->isMasterQuest) {
if (CVar_GetS32("gHudColors", 1) == 2 && FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(i))) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, CVar_GetRGB("gCCFileChoosePrim", Background_Color).r, CVar_GetRGB("gCCFileChoosePrim", Background_Color).g, CVar_GetRGB("gCCFileChoosePrim", Background_Color).b, this->nameAlpha[i]);
} else if (!FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(i))) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[1][0], sWindowContentColors[1][1],
sWindowContentColors[1][2], this->nameBoxAlpha[i]);
} else {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[isActive][0],
sWindowContentColors[isActive][1], sWindowContentColors[isActive][2],
this->nameAlpha[i]);
}
gDPLoadTextureBlock(POLY_OPA_DISP++, gFileSelMQButtonTex, G_IM_FMT_IA, G_IM_SIZ_16b, 44, 16, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
gSP1Quadrangle(POLY_OPA_DISP++, 8, 10, 11, 9, 0);
}
// draw connectors
if (CVar_GetS32("gHudColors", 1) == 2) {
if (CVar_GetS32("gHudColors", 1) == 2 && FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(i))) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, CVar_GetRGB("gCCFileChoosePrim", Background_Color).r, CVar_GetRGB("gCCFileChoosePrim", Background_Color).g, CVar_GetRGB("gCCFileChoosePrim", Background_Color).b, this->connectorAlpha[i]);
} else if (!FileChoose_IsSaveCompatible(Save_GetSaveMetaInfo(i)) && Save_GetSaveMetaInfo(i)->valid) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[1][0], sWindowContentColors[1][1],
sWindowContentColors[1][2], this->fileButtonAlpha[i]);
} else {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sWindowContentColors[isActive][0], sWindowContentColors[isActive][1],
sWindowContentColors[isActive][2], this->connectorAlpha[i]);
@ -1262,7 +1453,7 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
G_TX_NOLOD);
gSP1Quadrangle(POLY_OPA_DISP++, 12, 14, 15, 13, 0);
if (Save_GetSaveMetaInfo(i)->randoSave) {
if (Save_GetSaveMetaInfo(i)->randoSave || Save_GetSaveMetaInfo(i)->isMasterQuest) {
gSP1Quadrangle(POLY_OPA_DISP++, 16, 18, 19, 17, 0);
}
}

View file

@ -13,6 +13,8 @@
#include <libultraship/GameVersions.h>
#include <soh/SaveManager.h>
#include "time.h"
const char* GetGameVersionString();
char* quote;
@ -70,7 +72,7 @@ const char* quotes[11] = {
"Waaaahahahohohahahahahahaha"
};
char* SetQuote() {
const char* SetQuote() {
srand(time(NULL));
int randomQuote = rand() % 11;
return quotes[randomQuote];
@ -94,8 +96,9 @@ const char* GetGameVersionString() {
case OOT_PAL_MQ:
return "GC PAL MQ";
case OOT_PAL_GC_DBG1:
return "GC PAL DEBUG";
case OOT_PAL_GC_DBG2:
return "GC PAL DEBUG";
case OOT_PAL_GC_MQ_DBG:
return "GC PAL DEBUG MQ";
case OOT_IQUE_CN:
return "IQUE CN";

View file

@ -33,11 +33,16 @@ static const u32 sLineBytesImageSizes[] = { 0, 1, 2, 2 };
#define G_IM_SIZ_MARK_LINE_BYTES sLineBytesImageSizes[markInfo->imageSize]
extern PauseMapMarksData gPauseMapMarkDataTable[];
extern PauseMapMarksData gPauseMapMarkDataTableMasterQuest[];
void PauseMapMark_Init(GlobalContext* globalCtx) {
gBossMarkState = 0;
gBossMarkScale = 1.0f;
gLoadedPauseMarkDataTable = gPauseMapMarkDataTable;
if(ResourceMgr_IsGameMasterQuest()) {
gLoadedPauseMarkDataTable = gPauseMapMarkDataTableMasterQuest;
} else {
gLoadedPauseMarkDataTable = gPauseMapMarkDataTable;
}
}
void PauseMapMark_Clear(GlobalContext* globalCtx) {

File diff suppressed because it is too large Load diff