mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-03 22:44:30 +00:00
Rename game states (#1294)
* `TitleSetup` -> `Setup` * `Title` -> `ConsoleLogo` * `Opening` -> `TitleSetup` * `FileChoose` -> `FileSelect` * `Select` -> `MapSelect` * prenmi/sample `Context` -> `State` * Revert filename changes * . * setupstate cleanup * Oops, `GameState` -> `SetupState`
This commit is contained in:
parent
81ab6fe831
commit
e16779cc33
18 changed files with 571 additions and 579 deletions
|
@ -1305,10 +1305,10 @@ void Sram_InitNewSave(void);
|
||||||
void Sram_InitDebugSave(void);
|
void Sram_InitDebugSave(void);
|
||||||
void Sram_OpenSave(SramContext* sramCtx);
|
void Sram_OpenSave(SramContext* sramCtx);
|
||||||
void Sram_WriteSave(SramContext* sramCtx);
|
void Sram_WriteSave(SramContext* sramCtx);
|
||||||
void Sram_VerifyAndLoadAllSaves(FileChooseContext* fileChooseCtx, SramContext* sramCtx);
|
void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCtx);
|
||||||
void Sram_InitSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx);
|
void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx);
|
||||||
void Sram_EraseSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx);
|
void Sram_EraseSave(FileSelectState* fileSelect, SramContext* sramCtx);
|
||||||
void Sram_CopySave(FileChooseContext* fileChooseCtx, SramContext* sramCtx);
|
void Sram_CopySave(FileSelectState* fileSelect, SramContext* sramCtx);
|
||||||
void Sram_WriteSramHeader(SramContext* sramCtx);
|
void Sram_WriteSramHeader(SramContext* sramCtx);
|
||||||
void Sram_InitSram(GameState* gameState, SramContext* sramCtx);
|
void Sram_InitSram(GameState* gameState, SramContext* sramCtx);
|
||||||
void Sram_Alloc(GameState* gameState, SramContext* sramCtx);
|
void Sram_Alloc(GameState* gameState, SramContext* sramCtx);
|
||||||
|
@ -1564,9 +1564,6 @@ void AudioMgr_HandlePreNMI(AudioMgr* audioMgr);
|
||||||
void AudioMgr_ThreadEntry(void* arg0);
|
void AudioMgr_ThreadEntry(void* arg0);
|
||||||
void AudioMgr_Unlock(AudioMgr* audioMgr);
|
void AudioMgr_Unlock(AudioMgr* audioMgr);
|
||||||
void AudioMgr_Init(AudioMgr* audioMgr, void* stack, OSPri pri, OSId id, Scheduler* sched, IrqMgr* irqMgr);
|
void AudioMgr_Init(AudioMgr* audioMgr, void* stack, OSPri pri, OSId id, Scheduler* sched, IrqMgr* irqMgr);
|
||||||
void TitleSetup_InitImpl(GameState* gameState);
|
|
||||||
void TitleSetup_Destroy(GameState* gameState);
|
|
||||||
void TitleSetup_Init(GameState* gameState);
|
|
||||||
void GameState_FaultPrint(void);
|
void GameState_FaultPrint(void);
|
||||||
void GameState_SetFBFilter(Gfx** gfx);
|
void GameState_SetFBFilter(Gfx** gfx);
|
||||||
// ? func_800C4344(?);
|
// ? func_800C4344(?);
|
||||||
|
@ -2264,13 +2261,15 @@ void func_801109B0(PlayState* play);
|
||||||
void Message_Init(PlayState* play);
|
void Message_Init(PlayState* play);
|
||||||
void func_80112098(PlayState* play);
|
void func_80112098(PlayState* play);
|
||||||
|
|
||||||
void Title_Init(GameState* thisx);
|
void Setup_Init(GameState* thisx);
|
||||||
void Title_Destroy(GameState* thisx);
|
void Setup_Destroy(GameState* thisx);
|
||||||
void Select_Init(GameState* thisx);
|
void ConsoleLogo_Init(GameState* thisx);
|
||||||
void Select_Destroy(GameState* thisx);
|
void ConsoleLogo_Destroy(GameState* thisx);
|
||||||
void Opening_Init(GameState* thisx);
|
void MapSelect_Init(GameState* thisx);
|
||||||
void Opening_Destroy(GameState* thisx);
|
void MapSelect_Destroy(GameState* thisx);
|
||||||
void FileChoose_Init(GameState* thisx);
|
void TitleSetup_Init(GameState* thisx);
|
||||||
void FileChoose_Destroy(GameState* thisx);
|
void TitleSetup_Destroy(GameState* thisx);
|
||||||
|
void FileSelect_Init(GameState* thisx);
|
||||||
|
void FileSelect_Destroy(GameState* thisx);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1067,6 +1067,10 @@ typedef struct GameState {
|
||||||
/* 0xA0 */ u32 unk_A0;
|
/* 0xA0 */ u32 unk_A0;
|
||||||
} GameState; // size = 0xA4
|
} GameState; // size = 0xA4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ GameState state;
|
||||||
|
} SetupState; // size = 0xA4
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x0000 */ GameState state;
|
/* 0x0000 */ GameState state;
|
||||||
/* 0x00A4 */ u8* staticSegment;
|
/* 0x00A4 */ u8* staticSegment;
|
||||||
|
@ -1081,17 +1085,17 @@ typedef struct {
|
||||||
/* 0x01E0 */ char unk_1E0[0x01];
|
/* 0x01E0 */ char unk_1E0[0x01];
|
||||||
/* 0x01E1 */ u8 exit;
|
/* 0x01E1 */ u8 exit;
|
||||||
/* 0x01E2 */ char unk_1E2[0x06];
|
/* 0x01E2 */ char unk_1E2[0x06];
|
||||||
} TitleContext; // size = 0x1E8
|
} ConsoleLogoState; // size = 0x1E8
|
||||||
|
|
||||||
struct SelectContext;
|
struct MapSelectState;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ char* name;
|
/* 0x00 */ char* name;
|
||||||
/* 0x04 */ void (*loadFunc)(struct SelectContext*, s32);
|
/* 0x04 */ void (*loadFunc)(struct MapSelectState*, s32);
|
||||||
/* 0x08 */ s32 entranceIndex;
|
/* 0x08 */ s32 entranceIndex;
|
||||||
} SceneSelectEntry; // size = 0xC
|
} SceneSelectEntry; // size = 0xC
|
||||||
|
|
||||||
typedef struct SelectContext {
|
typedef struct MapSelectState {
|
||||||
/* 0x0000 */ GameState state;
|
/* 0x0000 */ GameState state;
|
||||||
/* 0x00A8 */ View view;
|
/* 0x00A8 */ View view;
|
||||||
/* 0x01D0 */ s32 count;
|
/* 0x01D0 */ s32 count;
|
||||||
|
@ -1111,13 +1115,13 @@ typedef struct SelectContext {
|
||||||
/* 0x0230 */ s32 lockDown;
|
/* 0x0230 */ s32 lockDown;
|
||||||
/* 0x0234 */ s32 unk_234; // unused
|
/* 0x0234 */ s32 unk_234; // unused
|
||||||
/* 0x0238 */ u8* staticSegment;
|
/* 0x0238 */ u8* staticSegment;
|
||||||
} SelectContext; // size = 0x240
|
} MapSelectState; // size = 0x240
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x0000 */ GameState state;
|
/* 0x0000 */ GameState state;
|
||||||
/* 0x00A4 */ u8* staticSegment;
|
/* 0x00A4 */ u8* staticSegment;
|
||||||
/* 0x00A8 */ View view;
|
/* 0x00A8 */ View view;
|
||||||
} SampleContext; // size = 0x1D0
|
} SampleState; // size = 0x1D0
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ u8 byte0;
|
/* 0x00 */ u8 byte0;
|
||||||
|
@ -1215,7 +1219,7 @@ typedef struct PlayState {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x0000 */ GameState state;
|
/* 0x0000 */ GameState state;
|
||||||
/* 0x00A8 */ View view;
|
/* 0x00A8 */ View view;
|
||||||
} OpeningContext; // size = 0x1D0
|
} TitleSetupState; // size = 0x1D0
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00000 */ GameState state;
|
/* 0x00000 */ GameState state;
|
||||||
|
@ -1294,7 +1298,7 @@ typedef struct {
|
||||||
/* 0x1CAD2 */ s16 kbdY;
|
/* 0x1CAD2 */ s16 kbdY;
|
||||||
/* 0x1CAD4 */ s16 newFileNameCharCount;
|
/* 0x1CAD4 */ s16 newFileNameCharCount;
|
||||||
/* 0x1CAD6 */ s16 unk_1CAD6[5];
|
/* 0x1CAD6 */ s16 unk_1CAD6[5];
|
||||||
} FileChooseContext; // size = 0x1CAE0
|
} FileSelectState; // size = 0x1CAE0
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
DPM_UNK = 0,
|
DPM_UNK = 0,
|
||||||
|
@ -1379,11 +1383,11 @@ typedef struct {
|
||||||
/* 0x2C */ u32 instanceSize;
|
/* 0x2C */ u32 instanceSize;
|
||||||
} GameStateOverlay; // size = 0x30
|
} GameStateOverlay; // size = 0x30
|
||||||
|
|
||||||
typedef struct PreNMIContext {
|
typedef struct {
|
||||||
/* 0x00 */ GameState state;
|
/* 0x00 */ GameState state;
|
||||||
/* 0xA4 */ u32 timer;
|
/* 0xA4 */ u32 timer;
|
||||||
/* 0xA8 */ UNK_TYPE4 unk_A8;
|
/* 0xA8 */ UNK_TYPE4 unk_A8;
|
||||||
} PreNMIContext; // size = 0xAC
|
} PreNMIState; // size = 0xAC
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* 1 */ F_8F = 1,
|
/* 1 */ F_8F = 1,
|
||||||
|
|
|
@ -102,22 +102,22 @@ void Graph_InitTHGA(GraphicsContext* gfxCtx) {
|
||||||
GameStateOverlay* Graph_GetNextGameState(GameState* gameState) {
|
GameStateOverlay* Graph_GetNextGameState(GameState* gameState) {
|
||||||
void* gameStateInitFunc = GameState_GetInit(gameState);
|
void* gameStateInitFunc = GameState_GetInit(gameState);
|
||||||
|
|
||||||
if (gameStateInitFunc == TitleSetup_Init) {
|
if (gameStateInitFunc == Setup_Init) {
|
||||||
return &gGameStateOverlayTable[0];
|
return &gGameStateOverlayTable[0];
|
||||||
}
|
}
|
||||||
if (gameStateInitFunc == Select_Init) {
|
if (gameStateInitFunc == MapSelect_Init) {
|
||||||
return &gGameStateOverlayTable[1];
|
return &gGameStateOverlayTable[1];
|
||||||
}
|
}
|
||||||
if (gameStateInitFunc == Title_Init) {
|
if (gameStateInitFunc == ConsoleLogo_Init) {
|
||||||
return &gGameStateOverlayTable[2];
|
return &gGameStateOverlayTable[2];
|
||||||
}
|
}
|
||||||
if (gameStateInitFunc == Play_Init) {
|
if (gameStateInitFunc == Play_Init) {
|
||||||
return &gGameStateOverlayTable[3];
|
return &gGameStateOverlayTable[3];
|
||||||
}
|
}
|
||||||
if (gameStateInitFunc == Opening_Init) {
|
if (gameStateInitFunc == TitleSetup_Init) {
|
||||||
return &gGameStateOverlayTable[4];
|
return &gGameStateOverlayTable[4];
|
||||||
}
|
}
|
||||||
if (gameStateInitFunc == FileChoose_Init) {
|
if (gameStateInitFunc == FileSelect_Init) {
|
||||||
return &gGameStateOverlayTable[5];
|
return &gGameStateOverlayTable[5];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -385,14 +385,14 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) {
|
||||||
if (gIsCtrlr2Valid && CHECK_BTN_ALL(gameState->input[0].press.button, BTN_Z) &&
|
if (gIsCtrlr2Valid && CHECK_BTN_ALL(gameState->input[0].press.button, BTN_Z) &&
|
||||||
CHECK_BTN_ALL(gameState->input[0].cur.button, BTN_L | BTN_R)) {
|
CHECK_BTN_ALL(gameState->input[0].cur.button, BTN_L | BTN_R)) {
|
||||||
gSaveContext.gameMode = 0;
|
gSaveContext.gameMode = 0;
|
||||||
SET_NEXT_GAMESTATE(gameState, Select_Init, SelectContext);
|
SET_NEXT_GAMESTATE(gameState, MapSelect_Init, MapSelectState);
|
||||||
gameState->running = false;
|
gameState->running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gIsCtrlr2Valid && PreNmiBuff_IsResetting(gAppNmiBufferPtr) && !gameState->unk_A0) {
|
if (gIsCtrlr2Valid && PreNmiBuff_IsResetting(gAppNmiBufferPtr) && !gameState->unk_A0) {
|
||||||
// "To reset mode"
|
// "To reset mode"
|
||||||
osSyncPrintf(VT_COL(YELLOW, BLACK) "PRE-NMIによりリセットモードに移行します\n" VT_RST);
|
osSyncPrintf(VT_COL(YELLOW, BLACK) "PRE-NMIによりリセットモードに移行します\n" VT_RST);
|
||||||
SET_NEXT_GAMESTATE(gameState, PreNMI_Init, PreNMIContext);
|
SET_NEXT_GAMESTATE(gameState, PreNMI_Init, PreNMIState);
|
||||||
gameState->running = false;
|
gameState->running = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
void TitleSetup_InitImpl(GameState* gameState) {
|
void Setup_InitImpl(SetupState* this) {
|
||||||
osSyncPrintf("ゼルダ共通データ初期化\n"); // "Zelda common data initalization"
|
osSyncPrintf("ゼルダ共通データ初期化\n"); // "Zelda common data initalization"
|
||||||
SaveContext_Init();
|
SaveContext_Init();
|
||||||
gameState->running = false;
|
this->state.running = false;
|
||||||
SET_NEXT_GAMESTATE(gameState, Title_Init, TitleContext);
|
SET_NEXT_GAMESTATE(&this->state, ConsoleLogo_Init, ConsoleLogoState);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TitleSetup_Destroy(GameState* gameState) {
|
void Setup_Destroy(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TitleSetup_Init(GameState* gameState) {
|
void Setup_Init(GameState* thisx) {
|
||||||
gameState->destroy = TitleSetup_Destroy;
|
SetupState* this = (SetupState*)thisx;
|
||||||
TitleSetup_InitImpl(gameState);
|
|
||||||
|
this->state.destroy = Setup_Destroy;
|
||||||
|
Setup_InitImpl(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
{ NULL, 0, 0, NULL, NULL, NULL, init, destroy, NULL, NULL, 0, size }
|
{ NULL, 0, 0, NULL, NULL, NULL, init, destroy, NULL, NULL, 0, size }
|
||||||
|
|
||||||
GameStateOverlay gGameStateOverlayTable[] = {
|
GameStateOverlay gGameStateOverlayTable[] = {
|
||||||
GAMESTATE_OVERLAY_INTERNAL(TitleSetup_Init, TitleSetup_Destroy, sizeof(GameState)),
|
GAMESTATE_OVERLAY_INTERNAL(Setup_Init, Setup_Destroy, sizeof(SetupState)),
|
||||||
GAMESTATE_OVERLAY(select, Select_Init, Select_Destroy, sizeof(SelectContext)),
|
GAMESTATE_OVERLAY(select, MapSelect_Init, MapSelect_Destroy, sizeof(MapSelectState)),
|
||||||
GAMESTATE_OVERLAY(title, Title_Init, Title_Destroy, sizeof(TitleContext)),
|
GAMESTATE_OVERLAY(title, ConsoleLogo_Init, ConsoleLogo_Destroy, sizeof(ConsoleLogoState)),
|
||||||
GAMESTATE_OVERLAY_INTERNAL(Play_Init, Play_Destroy, sizeof(PlayState)),
|
GAMESTATE_OVERLAY_INTERNAL(Play_Init, Play_Destroy, sizeof(PlayState)),
|
||||||
GAMESTATE_OVERLAY(opening, Opening_Init, Opening_Destroy, sizeof(OpeningContext)),
|
GAMESTATE_OVERLAY(opening, TitleSetup_Init, TitleSetup_Destroy, sizeof(TitleSetupState)),
|
||||||
GAMESTATE_OVERLAY(file_choose, FileChoose_Init, FileChoose_Destroy, sizeof(FileChooseContext)),
|
GAMESTATE_OVERLAY(file_choose, FileSelect_Init, FileSelect_Destroy, sizeof(FileSelectState)),
|
||||||
};
|
};
|
||||||
|
|
|
@ -228,7 +228,7 @@ void Play_Init(GameState* thisx) {
|
||||||
if (gSaveContext.entranceIndex == ENTR_LOAD_OPENING) {
|
if (gSaveContext.entranceIndex == ENTR_LOAD_OPENING) {
|
||||||
gSaveContext.entranceIndex = 0;
|
gSaveContext.entranceIndex = 0;
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
SET_NEXT_GAMESTATE(&this->state, Opening_Init, OpeningContext);
|
SET_NEXT_GAMESTATE(&this->state, TitleSetup_Init, TitleSetupState);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -635,7 +635,7 @@ void Play_Update(PlayState* this) {
|
||||||
gSaveContext.minigameState = 3;
|
gSaveContext.minigameState = 3;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SET_NEXT_GAMESTATE(&this->state, FileChoose_Init, FileChooseContext);
|
SET_NEXT_GAMESTATE(&this->state, FileSelect_Init, FileSelectState);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this->transitionCtx.destroy(&this->transitionCtx.instanceData);
|
this->transitionCtx.destroy(&this->transitionCtx.instanceData);
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "vt.h"
|
#include "vt.h"
|
||||||
|
|
||||||
void func_80092320(PreNMIContext* this) {
|
void func_80092320(PreNMIState* this) {
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
this->state.init = NULL;
|
this->state.init = NULL;
|
||||||
this->state.size = 0;
|
this->state.size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PreNMI_Update(PreNMIContext* this) {
|
void PreNMI_Update(PreNMIState* this) {
|
||||||
osSyncPrintf(VT_COL(YELLOW, BLACK) "prenmi_move\n" VT_RST);
|
osSyncPrintf(VT_COL(YELLOW, BLACK) "prenmi_move\n" VT_RST);
|
||||||
|
|
||||||
// Strings existing only in rodata
|
// Strings existing only in rodata
|
||||||
|
@ -25,7 +25,7 @@ void PreNMI_Update(PreNMIContext* this) {
|
||||||
this->timer--;
|
this->timer--;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PreNMI_Draw(PreNMIContext* this) {
|
void PreNMI_Draw(PreNMIState* this) {
|
||||||
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
||||||
|
|
||||||
osSyncPrintf(VT_COL(YELLOW, BLACK) "prenmi_draw\n" VT_RST);
|
osSyncPrintf(VT_COL(YELLOW, BLACK) "prenmi_draw\n" VT_RST);
|
||||||
|
@ -42,7 +42,7 @@ void PreNMI_Draw(PreNMIContext* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void PreNMI_Main(GameState* thisx) {
|
void PreNMI_Main(GameState* thisx) {
|
||||||
PreNMIContext* this = (PreNMIContext*)thisx;
|
PreNMIState* this = (PreNMIState*)thisx;
|
||||||
|
|
||||||
PreNMI_Update(this);
|
PreNMI_Update(this);
|
||||||
PreNMI_Draw(this);
|
PreNMI_Draw(this);
|
||||||
|
@ -54,7 +54,7 @@ void PreNMI_Destroy(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void PreNMI_Init(GameState* thisx) {
|
void PreNMI_Init(GameState* thisx) {
|
||||||
PreNMIContext* this = (PreNMIContext*)thisx;
|
PreNMIState* this = (PreNMIState*)thisx;
|
||||||
|
|
||||||
this->state.main = PreNMI_Main;
|
this->state.main = PreNMI_Main;
|
||||||
this->state.destroy = PreNMI_Destroy;
|
this->state.destroy = PreNMI_Destroy;
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
void Sample_HandleStateChange(SampleContext* this) {
|
void Sample_HandleStateChange(SampleState* this) {
|
||||||
if (CHECK_BTN_ALL(this->state.input[0].press.button, BTN_START)) {
|
if (CHECK_BTN_ALL(this->state.input[0].press.button, BTN_START)) {
|
||||||
SET_NEXT_GAMESTATE(&this->state, Play_Init, PlayState);
|
SET_NEXT_GAMESTATE(&this->state, Play_Init, PlayState);
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sample_Draw(SampleContext* this) {
|
void Sample_Draw(SampleState* this) {
|
||||||
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
||||||
View* view = &this->view;
|
View* view = &this->view;
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ void Sample_Draw(SampleContext* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sample_Main(GameState* thisx) {
|
void Sample_Main(GameState* thisx) {
|
||||||
SampleContext* this = (SampleContext*)thisx;
|
SampleState* this = (SampleState*)thisx;
|
||||||
|
|
||||||
Sample_Draw(this);
|
Sample_Draw(this);
|
||||||
Sample_HandleStateChange(this);
|
Sample_HandleStateChange(this);
|
||||||
|
@ -49,7 +49,7 @@ void Sample_Main(GameState* thisx) {
|
||||||
void Sample_Destroy(GameState* thisx) {
|
void Sample_Destroy(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sample_SetupView(SampleContext* this) {
|
void Sample_SetupView(SampleState* this) {
|
||||||
View* view = &this->view;
|
View* view = &this->view;
|
||||||
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ void Sample_SetupView(SampleContext* this) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sample_LoadTitleStatic(SampleContext* this) {
|
void Sample_LoadTitleStatic(SampleState* this) {
|
||||||
u32 size = _title_staticSegmentRomEnd - _title_staticSegmentRomStart;
|
u32 size = _title_staticSegmentRomEnd - _title_staticSegmentRomStart;
|
||||||
|
|
||||||
this->staticSegment = GameState_Alloc(&this->state, size, "../z_sample.c", 163);
|
this->staticSegment = GameState_Alloc(&this->state, size, "../z_sample.c", 163);
|
||||||
|
@ -84,7 +84,7 @@ void Sample_LoadTitleStatic(SampleContext* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sample_Init(GameState* thisx) {
|
void Sample_Init(GameState* thisx) {
|
||||||
SampleContext* this = (SampleContext*)thisx;
|
SampleState* this = (SampleState*)thisx;
|
||||||
|
|
||||||
this->state.main = Sample_Main;
|
this->state.main = Sample_Main;
|
||||||
this->state.destroy = Sample_Destroy;
|
this->state.destroy = Sample_Destroy;
|
||||||
|
|
|
@ -528,7 +528,7 @@ void Sram_WriteSave(SramContext* sramCtx) {
|
||||||
*
|
*
|
||||||
* After verifying all 3 saves, pass relevant data to File Select to be displayed.
|
* After verifying all 3 saves, pass relevant data to File Select to be displayed.
|
||||||
*/
|
*/
|
||||||
void Sram_VerifyAndLoadAllSaves(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
|
void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||||
u16 i;
|
u16 i;
|
||||||
u16 newChecksum;
|
u16 newChecksum;
|
||||||
u16 slotNum;
|
u16 slotNum;
|
||||||
|
@ -645,60 +645,50 @@ void Sram_VerifyAndLoadAllSaves(FileChooseContext* fileChooseCtx, SramContext* s
|
||||||
osSyncPrintf("SAVECT=%x, NAME=%x, LIFE=%x, ITEM=%x, 64DD=%x, HEART=%x\n", DEATHS, NAME, HEALTH_CAP, QUEST, N64DD,
|
osSyncPrintf("SAVECT=%x, NAME=%x, LIFE=%x, ITEM=%x, 64DD=%x, HEART=%x\n", DEATHS, NAME, HEALTH_CAP, QUEST, N64DD,
|
||||||
DEFENSE);
|
DEFENSE);
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->deaths[0], sramCtx->readBuff + SLOT_OFFSET(0) + DEATHS, sizeof(fileChooseCtx->deaths[0]));
|
MemCpy(&fileSelect->deaths[0], sramCtx->readBuff + SLOT_OFFSET(0) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||||
MemCpy(&fileChooseCtx->deaths[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEATHS, sizeof(fileChooseCtx->deaths[0]));
|
MemCpy(&fileSelect->deaths[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||||
MemCpy(&fileChooseCtx->deaths[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEATHS, sizeof(fileChooseCtx->deaths[0]));
|
MemCpy(&fileSelect->deaths[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->fileNames[0], sramCtx->readBuff + SLOT_OFFSET(0) + NAME,
|
MemCpy(&fileSelect->fileNames[0], sramCtx->readBuff + SLOT_OFFSET(0) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||||
sizeof(fileChooseCtx->fileNames[0]));
|
MemCpy(&fileSelect->fileNames[1], sramCtx->readBuff + SLOT_OFFSET(1) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||||
MemCpy(&fileChooseCtx->fileNames[1], sramCtx->readBuff + SLOT_OFFSET(1) + NAME,
|
MemCpy(&fileSelect->fileNames[2], sramCtx->readBuff + SLOT_OFFSET(2) + NAME, sizeof(fileSelect->fileNames[0]));
|
||||||
sizeof(fileChooseCtx->fileNames[0]));
|
|
||||||
MemCpy(&fileChooseCtx->fileNames[2], sramCtx->readBuff + SLOT_OFFSET(2) + NAME,
|
|
||||||
sizeof(fileChooseCtx->fileNames[0]));
|
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->healthCapacities[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH_CAP,
|
MemCpy(&fileSelect->healthCapacities[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH_CAP,
|
||||||
sizeof(fileChooseCtx->healthCapacities[0]));
|
sizeof(fileSelect->healthCapacities[0]));
|
||||||
MemCpy(&fileChooseCtx->healthCapacities[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH_CAP,
|
MemCpy(&fileSelect->healthCapacities[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH_CAP,
|
||||||
sizeof(fileChooseCtx->healthCapacities[0]));
|
sizeof(fileSelect->healthCapacities[0]));
|
||||||
MemCpy(&fileChooseCtx->healthCapacities[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH_CAP,
|
MemCpy(&fileSelect->healthCapacities[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH_CAP,
|
||||||
sizeof(fileChooseCtx->healthCapacities[0]));
|
sizeof(fileSelect->healthCapacities[0]));
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->questItems[0], sramCtx->readBuff + SLOT_OFFSET(0) + QUEST,
|
MemCpy(&fileSelect->questItems[0], sramCtx->readBuff + SLOT_OFFSET(0) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||||
sizeof(fileChooseCtx->questItems[0]));
|
MemCpy(&fileSelect->questItems[1], sramCtx->readBuff + SLOT_OFFSET(1) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||||
MemCpy(&fileChooseCtx->questItems[1], sramCtx->readBuff + SLOT_OFFSET(1) + QUEST,
|
MemCpy(&fileSelect->questItems[2], sramCtx->readBuff + SLOT_OFFSET(2) + QUEST, sizeof(fileSelect->questItems[0]));
|
||||||
sizeof(fileChooseCtx->questItems[0]));
|
|
||||||
MemCpy(&fileChooseCtx->questItems[2], sramCtx->readBuff + SLOT_OFFSET(2) + QUEST,
|
|
||||||
sizeof(fileChooseCtx->questItems[0]));
|
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->n64ddFlags[0], sramCtx->readBuff + SLOT_OFFSET(0) + N64DD,
|
MemCpy(&fileSelect->n64ddFlags[0], sramCtx->readBuff + SLOT_OFFSET(0) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||||
sizeof(fileChooseCtx->n64ddFlags[0]));
|
MemCpy(&fileSelect->n64ddFlags[1], sramCtx->readBuff + SLOT_OFFSET(1) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||||
MemCpy(&fileChooseCtx->n64ddFlags[1], sramCtx->readBuff + SLOT_OFFSET(1) + N64DD,
|
MemCpy(&fileSelect->n64ddFlags[2], sramCtx->readBuff + SLOT_OFFSET(2) + N64DD, sizeof(fileSelect->n64ddFlags[0]));
|
||||||
sizeof(fileChooseCtx->n64ddFlags[0]));
|
|
||||||
MemCpy(&fileChooseCtx->n64ddFlags[2], sramCtx->readBuff + SLOT_OFFSET(2) + N64DD,
|
|
||||||
sizeof(fileChooseCtx->n64ddFlags[0]));
|
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->defense[0], sramCtx->readBuff + SLOT_OFFSET(0) + DEFENSE, sizeof(fileChooseCtx->defense[0]));
|
MemCpy(&fileSelect->defense[0], sramCtx->readBuff + SLOT_OFFSET(0) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||||
MemCpy(&fileChooseCtx->defense[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEFENSE, sizeof(fileChooseCtx->defense[0]));
|
MemCpy(&fileSelect->defense[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||||
MemCpy(&fileChooseCtx->defense[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEFENSE, sizeof(fileChooseCtx->defense[0]));
|
MemCpy(&fileSelect->defense[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->health[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH, sizeof(fileChooseCtx->health[0]));
|
MemCpy(&fileSelect->health[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH, sizeof(fileSelect->health[0]));
|
||||||
MemCpy(&fileChooseCtx->health[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH, sizeof(fileChooseCtx->health[0]));
|
MemCpy(&fileSelect->health[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH, sizeof(fileSelect->health[0]));
|
||||||
MemCpy(&fileChooseCtx->health[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH, sizeof(fileChooseCtx->health[0]));
|
MemCpy(&fileSelect->health[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH, sizeof(fileSelect->health[0]));
|
||||||
|
|
||||||
osSyncPrintf("f_64dd=%d, %d, %d\n", fileChooseCtx->n64ddFlags[0], fileChooseCtx->n64ddFlags[1],
|
osSyncPrintf("f_64dd=%d, %d, %d\n", fileSelect->n64ddFlags[0], fileSelect->n64ddFlags[1],
|
||||||
fileChooseCtx->n64ddFlags[2]);
|
fileSelect->n64ddFlags[2]);
|
||||||
osSyncPrintf("heart_status=%d, %d, %d\n", fileChooseCtx->defense[0], fileChooseCtx->defense[1],
|
osSyncPrintf("heart_status=%d, %d, %d\n", fileSelect->defense[0], fileSelect->defense[1], fileSelect->defense[2]);
|
||||||
fileChooseCtx->defense[2]);
|
osSyncPrintf("now_life=%d, %d, %d\n", fileSelect->health[0], fileSelect->health[1], fileSelect->health[2]);
|
||||||
osSyncPrintf("now_life=%d, %d, %d\n", fileChooseCtx->health[0], fileChooseCtx->health[1], fileChooseCtx->health[2]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sram_InitSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
|
void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||||
u16 offset;
|
u16 offset;
|
||||||
u16 j;
|
u16 j;
|
||||||
u16* ptr;
|
u16* ptr;
|
||||||
u16 checksum;
|
u16 checksum;
|
||||||
|
|
||||||
if (fileChooseCtx->buttonIndex != 0) {
|
if (fileSelect->buttonIndex != 0) {
|
||||||
Sram_InitNewSave();
|
Sram_InitNewSave();
|
||||||
} else {
|
} else {
|
||||||
Sram_InitDebugSave();
|
Sram_InitDebugSave();
|
||||||
|
@ -709,12 +699,12 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
|
||||||
gSaveContext.dayTime = CLOCK_TIME(10, 0);
|
gSaveContext.dayTime = CLOCK_TIME(10, 0);
|
||||||
gSaveContext.cutsceneIndex = 0xFFF1;
|
gSaveContext.cutsceneIndex = 0xFFF1;
|
||||||
|
|
||||||
if (fileChooseCtx->buttonIndex == 0) {
|
if (fileSelect->buttonIndex == 0) {
|
||||||
gSaveContext.cutsceneIndex = 0;
|
gSaveContext.cutsceneIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (offset = 0; offset < 8; offset++) {
|
for (offset = 0; offset < 8; offset++) {
|
||||||
gSaveContext.playerName[offset] = fileChooseCtx->fileNames[fileChooseCtx->buttonIndex][offset];
|
gSaveContext.playerName[offset] = fileSelect->fileNames[fileSelect->buttonIndex][offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
gSaveContext.newf[0] = 'Z';
|
gSaveContext.newf[0] = 'Z';
|
||||||
|
@ -724,8 +714,8 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
|
||||||
gSaveContext.newf[4] = 'A';
|
gSaveContext.newf[4] = 'A';
|
||||||
gSaveContext.newf[5] = 'Z';
|
gSaveContext.newf[5] = 'Z';
|
||||||
|
|
||||||
gSaveContext.n64ddFlag = fileChooseCtx->n64ddFlag;
|
gSaveContext.n64ddFlag = fileSelect->n64ddFlag;
|
||||||
osSyncPrintf("64DDフラグ=%d\n", fileChooseCtx->n64ddFlag);
|
osSyncPrintf("64DDフラグ=%d\n", fileSelect->n64ddFlag);
|
||||||
osSyncPrintf("newf=%x,%x,%x,%x,%x,%x\n", gSaveContext.newf[0], gSaveContext.newf[1], gSaveContext.newf[2],
|
osSyncPrintf("newf=%x,%x,%x,%x,%x,%x\n", gSaveContext.newf[0], gSaveContext.newf[1], gSaveContext.newf[2],
|
||||||
gSaveContext.newf[3], gSaveContext.newf[4], gSaveContext.newf[5]);
|
gSaveContext.newf[3], gSaveContext.newf[4], gSaveContext.newf[5]);
|
||||||
osSyncPrintf("\n$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
|
osSyncPrintf("\n$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
|
||||||
|
@ -762,82 +752,79 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
|
||||||
|
|
||||||
j = gSramSlotOffsets[gSaveContext.fileNum];
|
j = gSramSlotOffsets[gSaveContext.fileNum];
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->deaths[gSaveContext.fileNum], sramCtx->readBuff + j + DEATHS,
|
MemCpy(&fileSelect->deaths[gSaveContext.fileNum], sramCtx->readBuff + j + DEATHS, sizeof(fileSelect->deaths[0]));
|
||||||
sizeof(fileChooseCtx->deaths[0]));
|
MemCpy(&fileSelect->fileNames[gSaveContext.fileNum], sramCtx->readBuff + j + NAME,
|
||||||
MemCpy(&fileChooseCtx->fileNames[gSaveContext.fileNum], sramCtx->readBuff + j + NAME,
|
sizeof(fileSelect->fileNames[0]));
|
||||||
sizeof(fileChooseCtx->fileNames[0]));
|
MemCpy(&fileSelect->healthCapacities[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH_CAP,
|
||||||
MemCpy(&fileChooseCtx->healthCapacities[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH_CAP,
|
sizeof(fileSelect->healthCapacities[0]));
|
||||||
sizeof(fileChooseCtx->healthCapacities[0]));
|
MemCpy(&fileSelect->questItems[gSaveContext.fileNum], sramCtx->readBuff + j + QUEST,
|
||||||
MemCpy(&fileChooseCtx->questItems[gSaveContext.fileNum], sramCtx->readBuff + j + QUEST,
|
sizeof(fileSelect->questItems[0]));
|
||||||
sizeof(fileChooseCtx->questItems[0]));
|
MemCpy(&fileSelect->n64ddFlags[gSaveContext.fileNum], sramCtx->readBuff + j + N64DD,
|
||||||
MemCpy(&fileChooseCtx->n64ddFlags[gSaveContext.fileNum], sramCtx->readBuff + j + N64DD,
|
sizeof(fileSelect->n64ddFlags[0]));
|
||||||
sizeof(fileChooseCtx->n64ddFlags[0]));
|
MemCpy(&fileSelect->defense[gSaveContext.fileNum], sramCtx->readBuff + j + DEFENSE, sizeof(fileSelect->defense[0]));
|
||||||
MemCpy(&fileChooseCtx->defense[gSaveContext.fileNum], sramCtx->readBuff + j + DEFENSE,
|
MemCpy(&fileSelect->health[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH, sizeof(fileSelect->health[0]));
|
||||||
sizeof(fileChooseCtx->defense[0]));
|
|
||||||
MemCpy(&fileChooseCtx->health[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH,
|
|
||||||
sizeof(fileChooseCtx->health[0]));
|
|
||||||
|
|
||||||
osSyncPrintf("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileChooseCtx->n64ddFlags[gSaveContext.fileNum]);
|
osSyncPrintf("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileSelect->n64ddFlags[gSaveContext.fileNum]);
|
||||||
osSyncPrintf("heart_status[%d]=%d\n", gSaveContext.fileNum, fileChooseCtx->defense[gSaveContext.fileNum]);
|
osSyncPrintf("heart_status[%d]=%d\n", gSaveContext.fileNum, fileSelect->defense[gSaveContext.fileNum]);
|
||||||
osSyncPrintf("now_life[%d]=%d\n", gSaveContext.fileNum, fileChooseCtx->health[gSaveContext.fileNum]);
|
osSyncPrintf("now_life[%d]=%d\n", gSaveContext.fileNum, fileSelect->health[gSaveContext.fileNum]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sram_EraseSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
|
void Sram_EraseSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||||
s32 offset;
|
s32 offset;
|
||||||
|
|
||||||
Sram_InitNewSave();
|
Sram_InitNewSave();
|
||||||
|
|
||||||
offset = gSramSlotOffsets[fileChooseCtx->selectedFileIndex];
|
offset = gSramSlotOffsets[fileSelect->selectedFileIndex];
|
||||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||||
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE, OS_WRITE);
|
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE, OS_WRITE);
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->n64ddFlags[fileChooseCtx->selectedFileIndex], sramCtx->readBuff + offset + N64DD,
|
MemCpy(&fileSelect->n64ddFlags[fileSelect->selectedFileIndex], sramCtx->readBuff + offset + N64DD,
|
||||||
sizeof(fileChooseCtx->n64ddFlags[0]));
|
sizeof(fileSelect->n64ddFlags[0]));
|
||||||
|
|
||||||
offset = gSramSlotOffsets[fileChooseCtx->selectedFileIndex + 3];
|
offset = gSramSlotOffsets[fileSelect->selectedFileIndex + 3];
|
||||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||||
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE, OS_WRITE);
|
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE, OS_WRITE);
|
||||||
|
|
||||||
osSyncPrintf("CLEAR終了\n");
|
osSyncPrintf("CLEAR終了\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sram_CopySave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) {
|
void Sram_CopySave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||||
s32 offset;
|
s32 offset;
|
||||||
|
|
||||||
osSyncPrintf("READ=%d(%x) COPY=%d(%x)\n", fileChooseCtx->selectedFileIndex,
|
osSyncPrintf("READ=%d(%x) COPY=%d(%x)\n", fileSelect->selectedFileIndex,
|
||||||
gSramSlotOffsets[fileChooseCtx->selectedFileIndex], fileChooseCtx->copyDestFileIndex,
|
gSramSlotOffsets[fileSelect->selectedFileIndex], fileSelect->copyDestFileIndex,
|
||||||
gSramSlotOffsets[fileChooseCtx->copyDestFileIndex]);
|
gSramSlotOffsets[fileSelect->copyDestFileIndex]);
|
||||||
|
|
||||||
offset = gSramSlotOffsets[fileChooseCtx->selectedFileIndex];
|
offset = gSramSlotOffsets[fileSelect->selectedFileIndex];
|
||||||
MemCpy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save));
|
MemCpy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save));
|
||||||
|
|
||||||
offset = gSramSlotOffsets[fileChooseCtx->copyDestFileIndex];
|
offset = gSramSlotOffsets[fileSelect->copyDestFileIndex];
|
||||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||||
|
|
||||||
offset = gSramSlotOffsets[fileChooseCtx->copyDestFileIndex + 3];
|
offset = gSramSlotOffsets[fileSelect->copyDestFileIndex + 3];
|
||||||
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save));
|
||||||
|
|
||||||
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_WRITE);
|
SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_WRITE);
|
||||||
|
|
||||||
offset = gSramSlotOffsets[fileChooseCtx->copyDestFileIndex];
|
offset = gSramSlotOffsets[fileSelect->copyDestFileIndex];
|
||||||
|
|
||||||
MemCpy(&fileChooseCtx->deaths[fileChooseCtx->copyDestFileIndex], sramCtx->readBuff + offset + DEATHS,
|
MemCpy(&fileSelect->deaths[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + DEATHS,
|
||||||
sizeof(fileChooseCtx->deaths[0]));
|
sizeof(fileSelect->deaths[0]));
|
||||||
MemCpy(&fileChooseCtx->fileNames[fileChooseCtx->copyDestFileIndex], sramCtx->readBuff + offset + NAME,
|
MemCpy(&fileSelect->fileNames[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + NAME,
|
||||||
sizeof(fileChooseCtx->fileNames[0]));
|
sizeof(fileSelect->fileNames[0]));
|
||||||
MemCpy(&fileChooseCtx->healthCapacities[fileChooseCtx->copyDestFileIndex], sramCtx->readBuff + offset + HEALTH_CAP,
|
MemCpy(&fileSelect->healthCapacities[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + HEALTH_CAP,
|
||||||
sizeof(fileChooseCtx->healthCapacities[0]));
|
sizeof(fileSelect->healthCapacities[0]));
|
||||||
MemCpy(&fileChooseCtx->questItems[fileChooseCtx->copyDestFileIndex], sramCtx->readBuff + offset + QUEST,
|
MemCpy(&fileSelect->questItems[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + QUEST,
|
||||||
sizeof(fileChooseCtx->questItems[0]));
|
sizeof(fileSelect->questItems[0]));
|
||||||
MemCpy(&fileChooseCtx->n64ddFlags[fileChooseCtx->copyDestFileIndex], sramCtx->readBuff + offset + N64DD,
|
MemCpy(&fileSelect->n64ddFlags[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + N64DD,
|
||||||
sizeof(fileChooseCtx->n64ddFlags[0]));
|
sizeof(fileSelect->n64ddFlags[0]));
|
||||||
MemCpy(&fileChooseCtx->defense[fileChooseCtx->copyDestFileIndex], sramCtx->readBuff + offset + DEFENSE,
|
MemCpy(&fileSelect->defense[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + DEFENSE,
|
||||||
sizeof(fileChooseCtx->defense[0]));
|
sizeof(fileSelect->defense[0]));
|
||||||
MemCpy(&fileChooseCtx->health[fileChooseCtx->copyDestFileIndex], (sramCtx->readBuff + offset) + HEALTH,
|
MemCpy(&fileSelect->health[fileSelect->copyDestFileIndex], (sramCtx->readBuff + offset) + HEALTH,
|
||||||
sizeof(fileChooseCtx->health[0]));
|
sizeof(fileSelect->health[0]));
|
||||||
|
|
||||||
osSyncPrintf("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileChooseCtx->n64ddFlags[gSaveContext.fileNum]);
|
osSyncPrintf("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileSelect->n64ddFlags[gSaveContext.fileNum]);
|
||||||
osSyncPrintf("heart_status[%d]=%d\n", gSaveContext.fileNum, fileChooseCtx->defense[gSaveContext.fileNum]);
|
osSyncPrintf("heart_status[%d]=%d\n", gSaveContext.fileNum, fileSelect->defense[gSaveContext.fileNum]);
|
||||||
osSyncPrintf("COPY終了\n"); // "Copy end"
|
osSyncPrintf("COPY終了\n"); // "Copy end"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#ifndef _FILE_CHOOSE_H_
|
#ifndef FILE_SELECT_H
|
||||||
#define _FILE_CHOOSE_H_
|
#define FILE_SELECT_H
|
||||||
|
|
||||||
#include "libc/stddef.h"
|
#include "libc/stddef.h"
|
||||||
#include "ultra64.h"
|
#include "ultra64.h"
|
||||||
|
@ -170,50 +170,50 @@ typedef enum {
|
||||||
/* 99 */ FS_KBD_BTN_NONE = 99
|
/* 99 */ FS_KBD_BTN_NONE = 99
|
||||||
} KeyboardButton;
|
} KeyboardButton;
|
||||||
|
|
||||||
void FileChoose_SetupCopySource(GameState* thisx);
|
void FileSelect_SetupCopySource(GameState* thisx);
|
||||||
void FileChoose_SelectCopySource(GameState* thisx);
|
void FileSelect_SelectCopySource(GameState* thisx);
|
||||||
void FileChoose_SetupCopyDest1(GameState* thisx);
|
void FileSelect_SetupCopyDest1(GameState* thisx);
|
||||||
void FileChoose_SetupCopyDest2(GameState* thisx);
|
void FileSelect_SetupCopyDest2(GameState* thisx);
|
||||||
void FileChoose_SelectCopyDest(GameState* thisx);
|
void FileSelect_SelectCopyDest(GameState* thisx);
|
||||||
void FileChoose_ExitToCopySource1(GameState* thisx);
|
void FileSelect_ExitToCopySource1(GameState* thisx);
|
||||||
void FileChoose_ExitToCopySource2(GameState* thisx);
|
void FileSelect_ExitToCopySource2(GameState* thisx);
|
||||||
void FileChoose_SetupCopyConfirm1(GameState* thisx);
|
void FileSelect_SetupCopyConfirm1(GameState* thisx);
|
||||||
void FileChoose_SetupCopyConfirm2(GameState* thisx);
|
void FileSelect_SetupCopyConfirm2(GameState* thisx);
|
||||||
void FileChoose_CopyConfirm(GameState* thisx);
|
void FileSelect_CopyConfirm(GameState* thisx);
|
||||||
void FileChoose_ReturnToCopyDest(GameState* thisx);
|
void FileSelect_ReturnToCopyDest(GameState* thisx);
|
||||||
void FileChoose_CopyAnim1(GameState* thisx);
|
void FileSelect_CopyAnim1(GameState* thisx);
|
||||||
void FileChoose_CopyAnim2(GameState* thisx);
|
void FileSelect_CopyAnim2(GameState* thisx);
|
||||||
void FileChoose_CopyAnim3(GameState* thisx);
|
void FileSelect_CopyAnim3(GameState* thisx);
|
||||||
void FileChoose_CopyAnim4(GameState* thisx);
|
void FileSelect_CopyAnim4(GameState* thisx);
|
||||||
void FileChoose_CopyAnim5(GameState* thisx);
|
void FileSelect_CopyAnim5(GameState* thisx);
|
||||||
|
|
||||||
void FileChoose_ExitCopyToMain(GameState* thisx);
|
void FileSelect_ExitCopyToMain(GameState* thisx);
|
||||||
void FileChoose_SetupEraseSelect(GameState* thisx);
|
void FileSelect_SetupEraseSelect(GameState* thisx);
|
||||||
void FileChoose_EraseSelect(GameState* thisx);
|
void FileSelect_EraseSelect(GameState* thisx);
|
||||||
void FileChoose_SetupEraseConfirm1(GameState* thisx);
|
void FileSelect_SetupEraseConfirm1(GameState* thisx);
|
||||||
void FileChoose_SetupEraseConfirm2(GameState* thisx);
|
void FileSelect_SetupEraseConfirm2(GameState* thisx);
|
||||||
void FileChoose_EraseConfirm(GameState* thisx);
|
void FileSelect_EraseConfirm(GameState* thisx);
|
||||||
void FileChoose_ExitToEraseSelect1(GameState* thisx);
|
void FileSelect_ExitToEraseSelect1(GameState* thisx);
|
||||||
void FileChoose_ExitToEraseSelect2(GameState* thisx);
|
void FileSelect_ExitToEraseSelect2(GameState* thisx);
|
||||||
void FileChoose_EraseAnim1(GameState* thisx);
|
void FileSelect_EraseAnim1(GameState* thisx);
|
||||||
void FileChoose_EraseAnim2(GameState* thisx);
|
void FileSelect_EraseAnim2(GameState* thisx);
|
||||||
void FileChoose_EraseAnim3(GameState* thisx);
|
void FileSelect_EraseAnim3(GameState* thisx);
|
||||||
void FileChoose_ExitEraseToMain(GameState* thisx);
|
void FileSelect_ExitEraseToMain(GameState* thisx);
|
||||||
|
|
||||||
void FileChoose_UpdateKeyboardCursor(GameState* thisx);
|
void FileSelect_UpdateKeyboardCursor(GameState* thisx);
|
||||||
void FileChoose_StartNameEntry(GameState* thisx);
|
void FileSelect_StartNameEntry(GameState* thisx);
|
||||||
void FileChoose_UpdateOptionsMenu(GameState* thisx);
|
void FileSelect_UpdateOptionsMenu(GameState* thisx);
|
||||||
void FileChoose_StartOptions(GameState* thisx);
|
void FileSelect_StartOptions(GameState* thisx);
|
||||||
|
|
||||||
void FileChoose_InitModeDraw(GameState* thisx);
|
void FileSelect_InitModeDraw(GameState* thisx);
|
||||||
void FileChoose_ConfigModeDraw(GameState* thisx);
|
void FileSelect_ConfigModeDraw(GameState* thisx);
|
||||||
void FileChoose_SelectModeDraw(GameState* thisx);
|
void FileSelect_SelectModeDraw(GameState* thisx);
|
||||||
|
|
||||||
void FileChoose_PulsateCursor(GameState* thisx);
|
void FileSelect_PulsateCursor(GameState* thisx);
|
||||||
void FileChoose_DrawOptions(GameState* thisx);
|
void FileSelect_DrawOptions(GameState* thisx);
|
||||||
|
|
||||||
void FileChoose_DrawNameEntry(GameState* thisx);
|
void FileSelect_DrawNameEntry(GameState* thisx);
|
||||||
void FileChoose_DrawCharacter(GraphicsContext* gfxCtx, void* texture, s16 vtx);
|
void FileSelect_DrawCharacter(GraphicsContext* gfxCtx, void* texture, s16 vtx);
|
||||||
|
|
||||||
extern s16 D_808123F0[];
|
extern s16 D_808123F0[];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "file_choose.h"
|
#include "file_select.h"
|
||||||
#include "assets/textures/title_static/title_static.h"
|
#include "assets/textures/title_static/title_static.h"
|
||||||
#include "assets/textures/parameter_static/parameter_static.h"
|
#include "assets/textures/parameter_static/parameter_static.h"
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ static s16 sWindowContentColors[2][3] = {
|
||||||
{ 100, 100, 100 }, // gray
|
{ 100, 100, 100 }, // gray
|
||||||
};
|
};
|
||||||
|
|
||||||
void FileChoose_SetView(FileChooseContext* this, f32 eyeX, f32 eyeY, f32 eyeZ) {
|
void FileSelect_SetView(FileSelectState* this, f32 eyeX, f32 eyeY, f32 eyeZ) {
|
||||||
Vec3f eye;
|
Vec3f eye;
|
||||||
Vec3f lookAt;
|
Vec3f lookAt;
|
||||||
Vec3f up;
|
Vec3f up;
|
||||||
|
@ -42,7 +42,7 @@ void FileChoose_SetView(FileChooseContext* this, f32 eyeX, f32 eyeY, f32 eyeZ) {
|
||||||
View_Apply(&this->view, VIEW_ALL | VIEW_FORCE_VIEWING | VIEW_FORCE_VIEWPORT | VIEW_FORCE_PROJECTION_PERSPECTIVE);
|
View_Apply(&this->view, VIEW_ALL | VIEW_FORCE_VIEWING | VIEW_FORCE_VIEWPORT | VIEW_FORCE_PROJECTION_PERSPECTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Gfx* FileChoose_QuadTextureIA8(Gfx* gfx, void* texture, s16 width, s16 height, s16 point) {
|
Gfx* FileSelect_QuadTextureIA8(Gfx* gfx, void* texture, s16 width, s16 height, s16 point) {
|
||||||
gDPLoadTextureBlock(gfx++, texture, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
gDPLoadTextureBlock(gfx++, texture, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 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);
|
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||||
|
|
||||||
|
@ -51,8 +51,8 @@ Gfx* FileChoose_QuadTextureIA8(Gfx* gfx, void* texture, s16 width, s16 height, s
|
||||||
return gfx;
|
return gfx;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_InitModeUpdate(GameState* thisx) {
|
void FileSelect_InitModeUpdate(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
if (this->menuMode == FS_MENU_MODE_INIT) {
|
if (this->menuMode == FS_MENU_MODE_INIT) {
|
||||||
this->menuMode = FS_MENU_MODE_CONFIG;
|
this->menuMode = FS_MENU_MODE_CONFIG;
|
||||||
|
@ -64,7 +64,7 @@ void FileChoose_InitModeUpdate(GameState* thisx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_InitModeDraw(GameState* thisx) {
|
void FileSelect_InitModeDraw(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -72,8 +72,8 @@ void FileChoose_InitModeDraw(GameState* thisx) {
|
||||||
* If a file is occupied fade in the name, name box, and connector.
|
* If a file is occupied fade in the name, name box, and connector.
|
||||||
* Fade in the copy erase and options button according to the window alpha.
|
* Fade in the copy erase and options button according to the window alpha.
|
||||||
*/
|
*/
|
||||||
void FileChoose_FadeInMenuElements(GameState* thisx) {
|
void FileSelect_FadeInMenuElements(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ void FileChoose_FadeInMenuElements(GameState* thisx) {
|
||||||
/**
|
/**
|
||||||
* Converts a numerical value to ones-tens-hundreds digits
|
* Converts a numerical value to ones-tens-hundreds digits
|
||||||
*/
|
*/
|
||||||
void FileChoose_SplitNumber(u16 value, s16* hundreds, s16* tens, s16* ones) {
|
void FileSelect_SplitNumber(u16 value, s16* hundreds, s16* tens, s16* ones) {
|
||||||
*hundreds = 0;
|
*hundreds = 0;
|
||||||
*tens = 0;
|
*tens = 0;
|
||||||
*ones = value;
|
*ones = value;
|
||||||
|
@ -126,10 +126,10 @@ void FileChoose_SplitNumber(u16 value, s16* hundreds, s16* tens, s16* ones) {
|
||||||
* Additionally, slide the window from the right to the center of the screen.
|
* Additionally, slide the window from the right to the center of the screen.
|
||||||
* Update function for `CM_FADE_IN_START`
|
* Update function for `CM_FADE_IN_START`
|
||||||
*/
|
*/
|
||||||
void FileChoose_StartFadeIn(GameState* thisx) {
|
void FileSelect_StartFadeIn(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
FileChoose_FadeInMenuElements(&this->state);
|
FileSelect_FadeInMenuElements(&this->state);
|
||||||
sScreenFillAlpha -= 40;
|
sScreenFillAlpha -= 40;
|
||||||
this->windowPosX -= 20;
|
this->windowPosX -= 20;
|
||||||
|
|
||||||
|
@ -145,11 +145,11 @@ void FileChoose_StartFadeIn(GameState* thisx) {
|
||||||
* Fade in the controls text at the bottom of the screen.
|
* Fade in the controls text at the bottom of the screen.
|
||||||
* Update function for `CM_FADE_IN_END`
|
* Update function for `CM_FADE_IN_END`
|
||||||
*/
|
*/
|
||||||
void FileChoose_FinishFadeIn(GameState* thisx) {
|
void FileSelect_FinishFadeIn(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->controlsAlpha += VREG(1);
|
this->controlsAlpha += VREG(1);
|
||||||
FileChoose_FadeInMenuElements(&this->state);
|
FileSelect_FadeInMenuElements(&this->state);
|
||||||
|
|
||||||
if (this->titleAlpha[0] >= 255) {
|
if (this->titleAlpha[0] >= 255) {
|
||||||
this->titleAlpha[0] = 255;
|
this->titleAlpha[0] = 255;
|
||||||
|
@ -167,9 +167,9 @@ void FileChoose_FinishFadeIn(GameState* thisx) {
|
||||||
* Lastly, set any warning labels if appropriate.
|
* Lastly, set any warning labels if appropriate.
|
||||||
* Update function for `CM_MAIN_MENU`
|
* Update function for `CM_MAIN_MENU`
|
||||||
*/
|
*/
|
||||||
void FileChoose_UpdateMainMenu(GameState* thisx) {
|
void FileSelect_UpdateMainMenu(GameState* thisx) {
|
||||||
static u8 emptyName[] = { 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E };
|
static u8 emptyName[] = { 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E };
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
|
@ -281,7 +281,7 @@ void FileChoose_UpdateMainMenu(GameState* thisx) {
|
||||||
/**
|
/**
|
||||||
* Update function for `CM_UNUSED_31`
|
* Update function for `CM_UNUSED_31`
|
||||||
*/
|
*/
|
||||||
void FileChoose_UnusedCM31(GameState* thisx) {
|
void FileSelect_UnusedCM31(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -290,8 +290,8 @@ void FileChoose_UnusedCM31(GameState* thisx) {
|
||||||
* Unused in the final game, was possibly used for debugging.
|
* Unused in the final game, was possibly used for debugging.
|
||||||
* Update function for `CM_UNUSED_DELAY`
|
* Update function for `CM_UNUSED_DELAY`
|
||||||
*/
|
*/
|
||||||
void FileChoose_UnusedCMDelay(GameState* thisx) {
|
void FileSelect_UnusedCMDelay(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
XREG(73) += 2;
|
XREG(73) += 2;
|
||||||
|
|
||||||
|
@ -305,8 +305,8 @@ void FileChoose_UnusedCMDelay(GameState* thisx) {
|
||||||
* Rotate the window from the main menu to the name entry menu.
|
* Rotate the window from the main menu to the name entry menu.
|
||||||
* Update function for `CM_ROTATE_TO_NAME_ENTRY`
|
* Update function for `CM_ROTATE_TO_NAME_ENTRY`
|
||||||
*/
|
*/
|
||||||
void FileChoose_RotateToNameEntry(GameState* thisx) {
|
void FileSelect_RotateToNameEntry(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->windowRot += VREG(16);
|
this->windowRot += VREG(16);
|
||||||
|
|
||||||
|
@ -320,8 +320,8 @@ void FileChoose_RotateToNameEntry(GameState* thisx) {
|
||||||
* Rotate the window from the main menu to the options menu.
|
* Rotate the window from the main menu to the options menu.
|
||||||
* Update function for `CM_MAIN_TO_OPTIONS`
|
* Update function for `CM_MAIN_TO_OPTIONS`
|
||||||
*/
|
*/
|
||||||
void FileChoose_RotateToOptions(GameState* thisx) {
|
void FileSelect_RotateToOptions(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->windowRot += VREG(16);
|
this->windowRot += VREG(16);
|
||||||
|
|
||||||
|
@ -335,8 +335,8 @@ void FileChoose_RotateToOptions(GameState* thisx) {
|
||||||
* Rotate the window from the options menu to the main menu.
|
* Rotate the window from the options menu to the main menu.
|
||||||
* Update function for `CM_NAME_ENTRY_TO_MAIN` and `CM_OPTIONS_TO_MAIN`
|
* Update function for `CM_NAME_ENTRY_TO_MAIN` and `CM_OPTIONS_TO_MAIN`
|
||||||
*/
|
*/
|
||||||
void FileChoose_RotateToMain(GameState* thisx) {
|
void FileSelect_RotateToMain(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->windowRot += VREG(16);
|
this->windowRot += VREG(16);
|
||||||
|
|
||||||
|
@ -347,36 +347,36 @@ void FileChoose_RotateToMain(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void (*gConfigModeUpdateFuncs[])(GameState*) = {
|
static void (*gConfigModeUpdateFuncs[])(GameState*) = {
|
||||||
FileChoose_StartFadeIn, FileChoose_FinishFadeIn,
|
FileSelect_StartFadeIn, FileSelect_FinishFadeIn,
|
||||||
FileChoose_UpdateMainMenu, FileChoose_SetupCopySource,
|
FileSelect_UpdateMainMenu, FileSelect_SetupCopySource,
|
||||||
FileChoose_SelectCopySource, FileChoose_SetupCopyDest1,
|
FileSelect_SelectCopySource, FileSelect_SetupCopyDest1,
|
||||||
FileChoose_SetupCopyDest2, FileChoose_SelectCopyDest,
|
FileSelect_SetupCopyDest2, FileSelect_SelectCopyDest,
|
||||||
FileChoose_ExitToCopySource1, FileChoose_ExitToCopySource2,
|
FileSelect_ExitToCopySource1, FileSelect_ExitToCopySource2,
|
||||||
FileChoose_SetupCopyConfirm1, FileChoose_SetupCopyConfirm2,
|
FileSelect_SetupCopyConfirm1, FileSelect_SetupCopyConfirm2,
|
||||||
FileChoose_CopyConfirm, FileChoose_ReturnToCopyDest,
|
FileSelect_CopyConfirm, FileSelect_ReturnToCopyDest,
|
||||||
FileChoose_CopyAnim1, FileChoose_CopyAnim2,
|
FileSelect_CopyAnim1, FileSelect_CopyAnim2,
|
||||||
FileChoose_CopyAnim3, FileChoose_CopyAnim4,
|
FileSelect_CopyAnim3, FileSelect_CopyAnim4,
|
||||||
FileChoose_CopyAnim5, FileChoose_ExitCopyToMain,
|
FileSelect_CopyAnim5, FileSelect_ExitCopyToMain,
|
||||||
FileChoose_SetupEraseSelect, FileChoose_EraseSelect,
|
FileSelect_SetupEraseSelect, FileSelect_EraseSelect,
|
||||||
FileChoose_SetupEraseConfirm1, FileChoose_SetupEraseConfirm2,
|
FileSelect_SetupEraseConfirm1, FileSelect_SetupEraseConfirm2,
|
||||||
FileChoose_EraseConfirm, FileChoose_ExitToEraseSelect1,
|
FileSelect_EraseConfirm, FileSelect_ExitToEraseSelect1,
|
||||||
FileChoose_ExitToEraseSelect2, FileChoose_EraseAnim1,
|
FileSelect_ExitToEraseSelect2, FileSelect_EraseAnim1,
|
||||||
FileChoose_EraseAnim2, FileChoose_EraseAnim3,
|
FileSelect_EraseAnim2, FileSelect_EraseAnim3,
|
||||||
FileChoose_ExitEraseToMain, FileChoose_UnusedCM31,
|
FileSelect_ExitEraseToMain, FileSelect_UnusedCM31,
|
||||||
FileChoose_RotateToNameEntry, FileChoose_UpdateKeyboardCursor,
|
FileSelect_RotateToNameEntry, FileSelect_UpdateKeyboardCursor,
|
||||||
FileChoose_StartNameEntry, FileChoose_RotateToMain,
|
FileSelect_StartNameEntry, FileSelect_RotateToMain,
|
||||||
FileChoose_RotateToOptions, FileChoose_UpdateOptionsMenu,
|
FileSelect_RotateToOptions, FileSelect_UpdateOptionsMenu,
|
||||||
FileChoose_StartOptions, FileChoose_RotateToMain,
|
FileSelect_StartOptions, FileSelect_RotateToMain,
|
||||||
FileChoose_UnusedCMDelay,
|
FileSelect_UnusedCMDelay,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the alpha of the cursor to make it pulsate.
|
* Updates the alpha of the cursor to make it pulsate.
|
||||||
* On the debug rom, this function also handles switching languages with controller 3.
|
* On the debug rom, this function also handles switching languages with controller 3.
|
||||||
*/
|
*/
|
||||||
void FileChoose_PulsateCursor(GameState* thisx) {
|
void FileSelect_PulsateCursor(GameState* thisx) {
|
||||||
static s16 cursorAlphaTargets[] = { 70, 200 };
|
static s16 cursorAlphaTargets[] = { 70, 200 };
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 alphaStep;
|
s16 alphaStep;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
Input* debugInput = &this->state.input[2];
|
Input* debugInput = &this->state.input[2];
|
||||||
|
@ -438,14 +438,14 @@ void FileChoose_PulsateCursor(GameState* thisx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_ConfigModeUpdate(GameState* thisx) {
|
void FileSelect_ConfigModeUpdate(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
gConfigModeUpdateFuncs[this->configMode](&this->state);
|
gConfigModeUpdateFuncs[this->configMode](&this->state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_SetWindowVtx(GameState* thisx) {
|
void FileSelect_SetWindowVtx(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 j;
|
s16 j;
|
||||||
s16 x;
|
s16 x;
|
||||||
|
@ -501,8 +501,8 @@ static s16 D_8081283C[] = { 0x0040, 0x0054, 0x0068, 0x0278 };
|
||||||
static s16 D_80812844[] = { 0x0274, 0x0278 };
|
static s16 D_80812844[] = { 0x0274, 0x0278 };
|
||||||
static s16 D_80812848[] = { 0x0274, 0x0278 };
|
static s16 D_80812848[] = { 0x0274, 0x0278 };
|
||||||
|
|
||||||
void FileChoose_SetWindowContentVtx(GameState* thisx) {
|
void FileSelect_SetWindowContentVtx(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 phi_t2;
|
s16 phi_t2;
|
||||||
s16 phi_t0;
|
s16 phi_t0;
|
||||||
s16 phi_t5;
|
s16 phi_t5;
|
||||||
|
@ -797,8 +797,8 @@ static void* sHeartTextures[] = { gHeartFullTex, gDefenseHeartFullTex };
|
||||||
static s16 sHeartPrimColors[2][3] = { { 255, 70, 50 }, { 200, 0, 0 } };
|
static s16 sHeartPrimColors[2][3] = { { 255, 70, 50 }, { 200, 0, 0 } };
|
||||||
static s16 sHeartEnvColors[2][3] = { { 50, 40, 60 }, { 255, 255, 255 } };
|
static s16 sHeartEnvColors[2][3] = { { 50, 40, 60 }, { 255, 255, 255 } };
|
||||||
|
|
||||||
void FileChoose_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) {
|
void FileSelect_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Font* sp54 = &this->font;
|
Font* sp54 = &this->font;
|
||||||
s32 heartType;
|
s32 heartType;
|
||||||
s16 i;
|
s16 i;
|
||||||
|
@ -821,7 +821,7 @@ void FileChoose_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) {
|
||||||
sNamePrimColors[isActive][2], this->nameAlpha[fileIndex]);
|
sNamePrimColors[isActive][2], this->nameAlpha[fileIndex]);
|
||||||
|
|
||||||
for (i = 0, vtxOffset = 0; vtxOffset < 0x20; i++, vtxOffset += 4) {
|
for (i = 0, vtxOffset = 0; vtxOffset < 0x20; i++, vtxOffset += 4) {
|
||||||
FileChoose_DrawCharacter(this->state.gfxCtx,
|
FileSelect_DrawCharacter(this->state.gfxCtx,
|
||||||
sp54->fontBuf + this->fileNames[fileIndex][i] * FONT_CHAR_TEX_SIZE, vtxOffset);
|
sp54->fontBuf + this->fileNames[fileIndex][i] * FONT_CHAR_TEX_SIZE, vtxOffset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -833,11 +833,11 @@ void FileChoose_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) {
|
||||||
gDPSetPrimColor(POLY_OPA_DISP++, 0x00, 0x00, 255, 255, 255, this->fileInfoAlpha[fileIndex]);
|
gDPSetPrimColor(POLY_OPA_DISP++, 0x00, 0x00, 255, 255, 255, this->fileInfoAlpha[fileIndex]);
|
||||||
gSPVertex(POLY_OPA_DISP++, &this->windowContentVtx[D_8081284C[fileIndex]] + 0x24, 12, 0);
|
gSPVertex(POLY_OPA_DISP++, &this->windowContentVtx[D_8081284C[fileIndex]] + 0x24, 12, 0);
|
||||||
|
|
||||||
FileChoose_SplitNumber(this->deaths[fileIndex], &deathCountSplit[0], &deathCountSplit[1], &deathCountSplit[2]);
|
FileSelect_SplitNumber(this->deaths[fileIndex], &deathCountSplit[0], &deathCountSplit[1], &deathCountSplit[2]);
|
||||||
|
|
||||||
// draw death count
|
// draw death count
|
||||||
for (i = 0, vtxOffset = 0; i < 3; i++, vtxOffset += 4) {
|
for (i = 0, vtxOffset = 0; i < 3; i++, vtxOffset += 4) {
|
||||||
FileChoose_DrawCharacter(this->state.gfxCtx, sp54->fontBuf + deathCountSplit[i] * FONT_CHAR_TEX_SIZE,
|
FileSelect_DrawCharacter(this->state.gfxCtx, sp54->fontBuf + deathCountSplit[i] * FONT_CHAR_TEX_SIZE,
|
||||||
vtxOffset);
|
vtxOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -859,7 +859,7 @@ void FileChoose_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) {
|
||||||
for (vtxOffset = 0, j = 0; j < i; j++, vtxOffset += 4) {
|
for (vtxOffset = 0, j = 0; j < i; j++, vtxOffset += 4) {
|
||||||
gSPVertex(POLY_OPA_DISP++, &this->windowContentVtx[D_8081284C[fileIndex] + vtxOffset] + 0x30, 4, 0);
|
gSPVertex(POLY_OPA_DISP++, &this->windowContentVtx[D_8081284C[fileIndex] + vtxOffset] + 0x30, 4, 0);
|
||||||
|
|
||||||
POLY_OPA_DISP = FileChoose_QuadTextureIA8(POLY_OPA_DISP, sHeartTextures[heartType], 0x10, 0x10, 0);
|
POLY_OPA_DISP = FileSelect_QuadTextureIA8(POLY_OPA_DISP, sHeartTextures[heartType], 0x10, 0x10, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
|
@ -880,7 +880,7 @@ void FileChoose_DrawFileInfo(GameState* thisx, s16 fileIndex, s16 isActive) {
|
||||||
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
|
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
POLY_OPA_DISP = FileChoose_QuadTextureIA8(POLY_OPA_DISP, sQuestItemTextures[j], 0x10, 0x10, 0);
|
POLY_OPA_DISP = FileSelect_QuadTextureIA8(POLY_OPA_DISP, sQuestItemTextures[j], 0x10, 0x10, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -937,8 +937,8 @@ static void* sOptionsButtonTextures[] = {
|
||||||
* Draw most window contents including buttons, labels, and icons.
|
* Draw most window contents including buttons, labels, and icons.
|
||||||
* Does not include anything from the keyboard and settings windows.
|
* Does not include anything from the keyboard and settings windows.
|
||||||
*/
|
*/
|
||||||
void FileChoose_DrawWindowContents(GameState* thisx) {
|
void FileSelect_DrawWindowContents(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 fileIndex;
|
s16 fileIndex;
|
||||||
s16 temp;
|
s16 temp;
|
||||||
s16 i;
|
s16 i;
|
||||||
|
@ -1034,7 +1034,7 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
|
||||||
// draw file info
|
// draw file info
|
||||||
for (fileIndex = 0; fileIndex < 3; fileIndex++) {
|
for (fileIndex = 0; fileIndex < 3; fileIndex++) {
|
||||||
isActive = ((this->n64ddFlag == this->n64ddFlags[fileIndex]) || (this->nameBoxAlpha[fileIndex] == 0)) ? 0 : 1;
|
isActive = ((this->n64ddFlag == this->n64ddFlags[fileIndex]) || (this->nameBoxAlpha[fileIndex] == 0)) ? 0 : 1;
|
||||||
FileChoose_DrawFileInfo(&this->state, fileIndex, isActive);
|
FileSelect_DrawFileInfo(&this->state, fileIndex, isActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
|
@ -1113,8 +1113,8 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2198);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2198);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_ConfigModeDraw(GameState* thisx) {
|
void FileSelect_ConfigModeDraw(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
f32 eyeX;
|
f32 eyeX;
|
||||||
f32 eyeY;
|
f32 eyeY;
|
||||||
f32 eyeZ;
|
f32 eyeZ;
|
||||||
|
@ -1126,16 +1126,16 @@ void FileChoose_ConfigModeDraw(GameState* thisx) {
|
||||||
eyeY = ZREG(13);
|
eyeY = ZREG(13);
|
||||||
eyeZ = 1000.0f * Math_SinS(ZREG(11)) + 1000.0f * Math_CosS(ZREG(11));
|
eyeZ = 1000.0f * Math_SinS(ZREG(11)) + 1000.0f * Math_CosS(ZREG(11));
|
||||||
|
|
||||||
FileChoose_SetView(this, eyeX, eyeY, eyeZ);
|
FileSelect_SetView(this, eyeX, eyeY, eyeZ);
|
||||||
SkyboxDraw_Draw(&this->skyboxCtx, this->state.gfxCtx, 1, this->envCtx.skyboxBlend, eyeX, eyeY, eyeZ);
|
SkyboxDraw_Draw(&this->skyboxCtx, this->state.gfxCtx, 1, this->envCtx.skyboxBlend, eyeX, eyeY, eyeZ);
|
||||||
gDPSetTextureLUT(POLY_OPA_DISP++, G_TT_NONE);
|
gDPSetTextureLUT(POLY_OPA_DISP++, G_TT_NONE);
|
||||||
ZREG(11) += ZREG(10);
|
ZREG(11) += ZREG(10);
|
||||||
Environment_UpdateSkybox(SKYBOX_NORMAL_SKY, &this->envCtx, &this->skyboxCtx);
|
Environment_UpdateSkybox(SKYBOX_NORMAL_SKY, &this->envCtx, &this->skyboxCtx);
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
Gfx_SetupDL_42Opa(this->state.gfxCtx);
|
Gfx_SetupDL_42Opa(this->state.gfxCtx);
|
||||||
FileChoose_SetView(this, 0.0f, 0.0f, 64.0f);
|
FileSelect_SetView(this, 0.0f, 0.0f, 64.0f);
|
||||||
FileChoose_SetWindowVtx(&this->state);
|
FileSelect_SetWindowVtx(&this->state);
|
||||||
FileChoose_SetWindowContentVtx(&this->state);
|
FileSelect_SetWindowContentVtx(&this->state);
|
||||||
|
|
||||||
if ((this->configMode != CM_NAME_ENTRY) && (this->configMode != CM_START_NAME_ENTRY)) {
|
if ((this->configMode != CM_NAME_ENTRY) && (this->configMode != CM_START_NAME_ENTRY)) {
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
|
@ -1165,7 +1165,7 @@ void FileChoose_ConfigModeDraw(GameState* thisx) {
|
||||||
|
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
|
|
||||||
FileChoose_DrawWindowContents(&this->state);
|
FileSelect_DrawWindowContents(&this->state);
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw name entry menu
|
// draw name entry menu
|
||||||
|
@ -1193,7 +1193,7 @@ void FileChoose_ConfigModeDraw(GameState* thisx) {
|
||||||
|
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
|
|
||||||
FileChoose_DrawNameEntry(&this->state);
|
FileSelect_DrawNameEntry(&this->state);
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw options menu
|
// draw options menu
|
||||||
|
@ -1222,11 +1222,11 @@ void FileChoose_ConfigModeDraw(GameState* thisx) {
|
||||||
|
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
|
|
||||||
FileChoose_DrawOptions(&this->state);
|
FileSelect_DrawOptions(&this->state);
|
||||||
}
|
}
|
||||||
|
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
FileChoose_SetView(this, 0.0f, 0.0f, 64.0f);
|
FileSelect_SetView(this, 0.0f, 0.0f, 64.0f);
|
||||||
|
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2352);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2352);
|
||||||
}
|
}
|
||||||
|
@ -1235,8 +1235,8 @@ void FileChoose_ConfigModeDraw(GameState* thisx) {
|
||||||
* Fade out the main menu elements to transition to select mode.
|
* Fade out the main menu elements to transition to select mode.
|
||||||
* Update function for `SM_FADE_MAIN_TO_SELECT`
|
* Update function for `SM_FADE_MAIN_TO_SELECT`
|
||||||
*/
|
*/
|
||||||
void FileChoose_FadeMainToSelect(GameState* thisx) {
|
void FileSelect_FadeMainToSelect(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
|
|
||||||
|
@ -1268,9 +1268,9 @@ void FileChoose_FadeMainToSelect(GameState* thisx) {
|
||||||
* Moves the selected file to the top of the window.
|
* Moves the selected file to the top of the window.
|
||||||
* Update function for `SM_MOVE_FILE_TO_TOP`
|
* Update function for `SM_MOVE_FILE_TO_TOP`
|
||||||
*/
|
*/
|
||||||
void FileChoose_MoveSelectedFileToTop(GameState* thisx) {
|
void FileSelect_MoveSelectedFileToTop(GameState* thisx) {
|
||||||
static s16 fileYOffsets[] = { 0, 16, 32 }; // amount to move by to reach the top of the screen
|
static s16 fileYOffsets[] = { 0, 16, 32 }; // amount to move by to reach the top of the screen
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
|
||||||
yStep = ABS(this->buttonYOffsets[this->buttonIndex] - fileYOffsets[this->buttonIndex]) / this->actionTimer;
|
yStep = ABS(this->buttonYOffsets[this->buttonIndex] - fileYOffsets[this->buttonIndex]) / this->actionTimer;
|
||||||
|
@ -1288,8 +1288,8 @@ void FileChoose_MoveSelectedFileToTop(GameState* thisx) {
|
||||||
* Fade in the file info for the selected file.
|
* Fade in the file info for the selected file.
|
||||||
* Update function for `SM_FADE_IN_FILE_INFO`
|
* Update function for `SM_FADE_IN_FILE_INFO`
|
||||||
*/
|
*/
|
||||||
void FileChoose_FadeInFileInfo(GameState* thisx) {
|
void FileSelect_FadeInFileInfo(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->fileInfoAlpha[this->buttonIndex] += 25;
|
this->fileInfoAlpha[this->buttonIndex] += 25;
|
||||||
this->nameBoxAlpha[this->buttonIndex] -= 50;
|
this->nameBoxAlpha[this->buttonIndex] -= 50;
|
||||||
|
@ -1314,8 +1314,8 @@ void FileChoose_FadeInFileInfo(GameState* thisx) {
|
||||||
* Update the cursor and handle the option that the player picks for confirming the selected file.
|
* Update the cursor and handle the option that the player picks for confirming the selected file.
|
||||||
* Update function for `SM_CONFIRM_FILE`
|
* Update function for `SM_CONFIRM_FILE`
|
||||||
*/
|
*/
|
||||||
void FileChoose_ConfirmFile(GameState* thisx) {
|
void FileSelect_ConfirmFile(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
if (CHECK_BTN_ALL(input->press.button, BTN_START) || (CHECK_BTN_ALL(input->press.button, BTN_A))) {
|
if (CHECK_BTN_ALL(input->press.button, BTN_START) || (CHECK_BTN_ALL(input->press.button, BTN_A))) {
|
||||||
|
@ -1345,8 +1345,8 @@ void FileChoose_ConfirmFile(GameState* thisx) {
|
||||||
* Fade out the file info for the selected file before returning to the main menu.
|
* Fade out the file info for the selected file before returning to the main menu.
|
||||||
* Update function for `SM_FADE_OUT_FILE_INFO`
|
* Update function for `SM_FADE_OUT_FILE_INFO`
|
||||||
*/
|
*/
|
||||||
void FileChoose_FadeOutFileInfo(GameState* thisx) {
|
void FileSelect_FadeOutFileInfo(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->fileInfoAlpha[this->buttonIndex] -= 25;
|
this->fileInfoAlpha[this->buttonIndex] -= 25;
|
||||||
this->nameBoxAlpha[this->buttonIndex] += 25;
|
this->nameBoxAlpha[this->buttonIndex] += 25;
|
||||||
|
@ -1368,8 +1368,8 @@ void FileChoose_FadeOutFileInfo(GameState* thisx) {
|
||||||
* Move the selected file back to the slot position then go to config mode for the main menu.
|
* Move the selected file back to the slot position then go to config mode for the main menu.
|
||||||
* Update function for `SM_MOVE_FILE_TO_SLOT`
|
* Update function for `SM_MOVE_FILE_TO_SLOT`
|
||||||
*/
|
*/
|
||||||
void FileChoose_MoveSelectedFileToSlot(GameState* thisx) {
|
void FileSelect_MoveSelectedFileToSlot(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
s16 i;
|
s16 i;
|
||||||
|
@ -1419,8 +1419,8 @@ void FileChoose_MoveSelectedFileToSlot(GameState* thisx) {
|
||||||
* Fill the screen with black to fade out.
|
* Fill the screen with black to fade out.
|
||||||
* Update function for `SM_FADE_OUT`
|
* Update function for `SM_FADE_OUT`
|
||||||
*/
|
*/
|
||||||
void FileChoose_FadeOut(GameState* thisx) {
|
void FileSelect_FadeOut(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
sScreenFillAlpha += VREG(10);
|
sScreenFillAlpha += VREG(10);
|
||||||
|
|
||||||
|
@ -1435,8 +1435,8 @@ void FileChoose_FadeOut(GameState* thisx) {
|
||||||
* Note: On Debug ROM, File 1 will go to Map Select.
|
* Note: On Debug ROM, File 1 will go to Map Select.
|
||||||
* Update function for `SM_LOAD_GAME`
|
* Update function for `SM_LOAD_GAME`
|
||||||
*/
|
*/
|
||||||
void FileChoose_LoadGame(GameState* thisx) {
|
void FileSelect_LoadGame(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
u16 swordEquipValue;
|
u16 swordEquipValue;
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
|
@ -1446,7 +1446,7 @@ void FileChoose_LoadGame(GameState* thisx) {
|
||||||
gSaveContext.fileNum = this->buttonIndex;
|
gSaveContext.fileNum = this->buttonIndex;
|
||||||
Sram_OpenSave(&this->sramCtx);
|
Sram_OpenSave(&this->sramCtx);
|
||||||
gSaveContext.gameMode = 0;
|
gSaveContext.gameMode = 0;
|
||||||
SET_NEXT_GAMESTATE(&this->state, Select_Init, SelectContext);
|
SET_NEXT_GAMESTATE(&this->state, MapSelect_Init, MapSelectState);
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
} else {
|
} else {
|
||||||
Audio_PlaySoundGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
Audio_PlaySoundGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||||
|
@ -1515,18 +1515,18 @@ void FileChoose_LoadGame(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void (*gSelectModeUpdateFuncs[])(GameState*) = {
|
static void (*gSelectModeUpdateFuncs[])(GameState*) = {
|
||||||
FileChoose_FadeMainToSelect, FileChoose_MoveSelectedFileToTop, FileChoose_FadeInFileInfo, FileChoose_ConfirmFile,
|
FileSelect_FadeMainToSelect, FileSelect_MoveSelectedFileToTop, FileSelect_FadeInFileInfo, FileSelect_ConfirmFile,
|
||||||
FileChoose_FadeOutFileInfo, FileChoose_MoveSelectedFileToSlot, FileChoose_FadeOut, FileChoose_LoadGame,
|
FileSelect_FadeOutFileInfo, FileSelect_MoveSelectedFileToSlot, FileSelect_FadeOut, FileSelect_LoadGame,
|
||||||
};
|
};
|
||||||
|
|
||||||
void FileChoose_SelectModeUpdate(GameState* thisx) {
|
void FileSelect_SelectModeUpdate(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
gSelectModeUpdateFuncs[this->selectMode](&this->state);
|
gSelectModeUpdateFuncs[this->selectMode](&this->state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_SelectModeDraw(GameState* thisx) {
|
void FileSelect_SelectModeDraw(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
f32 eyeX;
|
f32 eyeX;
|
||||||
f32 eyeY;
|
f32 eyeY;
|
||||||
f32 eyeZ;
|
f32 eyeZ;
|
||||||
|
@ -1539,16 +1539,16 @@ void FileChoose_SelectModeDraw(GameState* thisx) {
|
||||||
eyeY = ZREG(13);
|
eyeY = ZREG(13);
|
||||||
eyeZ = 1000.0f * Math_SinS(ZREG(11)) + 1000.0f * Math_CosS(ZREG(11));
|
eyeZ = 1000.0f * Math_SinS(ZREG(11)) + 1000.0f * Math_CosS(ZREG(11));
|
||||||
|
|
||||||
FileChoose_SetView(this, eyeX, eyeY, eyeZ);
|
FileSelect_SetView(this, eyeX, eyeY, eyeZ);
|
||||||
SkyboxDraw_Draw(&this->skyboxCtx, this->state.gfxCtx, 1, this->envCtx.skyboxBlend, eyeX, eyeY, eyeZ);
|
SkyboxDraw_Draw(&this->skyboxCtx, this->state.gfxCtx, 1, this->envCtx.skyboxBlend, eyeX, eyeY, eyeZ);
|
||||||
gDPSetTextureLUT(POLY_OPA_DISP++, G_TT_NONE);
|
gDPSetTextureLUT(POLY_OPA_DISP++, G_TT_NONE);
|
||||||
ZREG(11) += ZREG(10);
|
ZREG(11) += ZREG(10);
|
||||||
Environment_UpdateSkybox(SKYBOX_NORMAL_SKY, &this->envCtx, &this->skyboxCtx);
|
Environment_UpdateSkybox(SKYBOX_NORMAL_SKY, &this->envCtx, &this->skyboxCtx);
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
Gfx_SetupDL_42Opa(this->state.gfxCtx);
|
Gfx_SetupDL_42Opa(this->state.gfxCtx);
|
||||||
FileChoose_SetView(this, 0.0f, 0.0f, 64.0f);
|
FileSelect_SetView(this, 0.0f, 0.0f, 64.0f);
|
||||||
FileChoose_SetWindowVtx(&this->state);
|
FileSelect_SetWindowVtx(&this->state);
|
||||||
FileChoose_SetWindowContentVtx(&this->state);
|
FileSelect_SetWindowContentVtx(&this->state);
|
||||||
|
|
||||||
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->windowColor[0], this->windowColor[1], this->windowColor[2],
|
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->windowColor[0], this->windowColor[1], this->windowColor[2],
|
||||||
|
@ -1570,32 +1570,32 @@ void FileChoose_SelectModeDraw(GameState* thisx) {
|
||||||
gSPVertex(POLY_OPA_DISP++, &this->windowVtx[64], 16, 0);
|
gSPVertex(POLY_OPA_DISP++, &this->windowVtx[64], 16, 0);
|
||||||
gSPDisplayList(POLY_OPA_DISP++, gFileSelWindow3DL);
|
gSPDisplayList(POLY_OPA_DISP++, gFileSelWindow3DL);
|
||||||
|
|
||||||
FileChoose_DrawWindowContents(&this->state);
|
FileSelect_DrawWindowContents(&this->state);
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
FileChoose_SetView(this, 0.0f, 0.0f, 64.0f);
|
FileSelect_SetView(this, 0.0f, 0.0f, 64.0f);
|
||||||
|
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2834);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2834);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void (*gFileSelectDrawFuncs[])(GameState*) = {
|
static void (*gFileSelectDrawFuncs[])(GameState*) = {
|
||||||
FileChoose_InitModeDraw,
|
FileSelect_InitModeDraw,
|
||||||
FileChoose_ConfigModeDraw,
|
FileSelect_ConfigModeDraw,
|
||||||
FileChoose_SelectModeDraw,
|
FileSelect_SelectModeDraw,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void (*gFileSelectUpdateFuncs[])(GameState*) = {
|
static void (*gFileSelectUpdateFuncs[])(GameState*) = {
|
||||||
FileChoose_InitModeUpdate,
|
FileSelect_InitModeUpdate,
|
||||||
FileChoose_ConfigModeUpdate,
|
FileSelect_ConfigModeUpdate,
|
||||||
FileChoose_SelectModeUpdate,
|
FileSelect_SelectModeUpdate,
|
||||||
};
|
};
|
||||||
|
|
||||||
void FileChoose_Main(GameState* thisx) {
|
void FileSelect_Main(GameState* thisx) {
|
||||||
static void* controlsTextures[] = {
|
static void* controlsTextures[] = {
|
||||||
gFileSelControlsENGTex,
|
gFileSelControlsENGTex,
|
||||||
gFileSelControlsGERTex,
|
gFileSelControlsGERTex,
|
||||||
gFileSelControlsFRATex,
|
gFileSelControlsFRATex,
|
||||||
};
|
};
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
OPEN_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2898);
|
OPEN_DISPS(this->state.gfxCtx, "../z_file_choose.c", 2898);
|
||||||
|
@ -1669,7 +1669,7 @@ void FileChoose_Main(GameState* thisx) {
|
||||||
|
|
||||||
this->emptyFileTextAlpha = 0;
|
this->emptyFileTextAlpha = 0;
|
||||||
|
|
||||||
FileChoose_PulsateCursor(&this->state);
|
FileSelect_PulsateCursor(&this->state);
|
||||||
gFileSelectUpdateFuncs[this->menuMode](&this->state);
|
gFileSelectUpdateFuncs[this->menuMode](&this->state);
|
||||||
gFileSelectDrawFuncs[this->menuMode](&this->state);
|
gFileSelectDrawFuncs[this->menuMode](&this->state);
|
||||||
|
|
||||||
|
@ -1695,8 +1695,8 @@ void FileChoose_Main(GameState* thisx) {
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_file_choose.c", 3035);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_file_choose.c", 3035);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_InitContext(GameState* thisx) {
|
void FileSelect_InitContext(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
EnvironmentContext* envCtx = &this->envCtx;
|
EnvironmentContext* envCtx = &this->envCtx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
|
|
||||||
|
@ -1866,11 +1866,11 @@ void FileChoose_InitContext(GameState* thisx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_Destroy(GameState* thisx) {
|
void FileSelect_Destroy(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_Init(GameState* thisx) {
|
void FileSelect_Init(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
u32 size = (u32)_title_staticSegmentRomEnd - (u32)_title_staticSegmentRomStart;
|
u32 size = (u32)_title_staticSegmentRomEnd - (u32)_title_staticSegmentRomStart;
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
|
@ -1889,9 +1889,9 @@ void FileChoose_Init(GameState* thisx) {
|
||||||
|
|
||||||
Matrix_Init(&this->state);
|
Matrix_Init(&this->state);
|
||||||
View_Init(&this->view, this->state.gfxCtx);
|
View_Init(&this->view, this->state.gfxCtx);
|
||||||
this->state.main = FileChoose_Main;
|
this->state.main = FileSelect_Main;
|
||||||
this->state.destroy = FileChoose_Destroy;
|
this->state.destroy = FileSelect_Destroy;
|
||||||
FileChoose_InitContext(&this->state);
|
FileSelect_InitContext(&this->state);
|
||||||
Font_LoadOrderedFont(&this->font);
|
Font_LoadOrderedFont(&this->font);
|
||||||
Audio_QueueSeqCmd(0xF << 28 | SEQ_PLAYER_BGM_MAIN << 24 | 0xA);
|
Audio_QueueSeqCmd(0xF << 28 | SEQ_PLAYER_BGM_MAIN << 24 | 0xA);
|
||||||
func_800F5E18(SEQ_PLAYER_BGM_MAIN, NA_BGM_FILE_SELECT, 0, 7, 1);
|
func_800F5E18(SEQ_PLAYER_BGM_MAIN, NA_BGM_FILE_SELECT, 0, 7, 1);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "file_choose.h"
|
#include "file_select.h"
|
||||||
|
|
||||||
// when choosing a file to copy or erase, the 6 main menu buttons are placed at these offsets
|
// when choosing a file to copy or erase, the 6 main menu buttons are placed at these offsets
|
||||||
static s16 sChooseFileYOffsets[] = { -48, -48, -48, -24, -24, 0 };
|
static s16 sChooseFileYOffsets[] = { -48, -48, -48, -24, -24, 0 };
|
||||||
|
@ -15,8 +15,8 @@ static s16 sEraseDelayTimer = 15;
|
||||||
* Move buttons into place for the select source screen and fade in the proper labels.
|
* Move buttons into place for the select source screen and fade in the proper labels.
|
||||||
* Update function for `CM_SETUP_COPY_SOURCE`
|
* Update function for `CM_SETUP_COPY_SOURCE`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetupCopySource(GameState* thisx) {
|
void FileSelect_SetupCopySource(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
s16 i;
|
s16 i;
|
||||||
|
|
||||||
|
@ -58,8 +58,8 @@ void FileChoose_SetupCopySource(GameState* thisx) {
|
||||||
* Allow the player to select a file to copy or exit back to the main menu.
|
* Allow the player to select a file to copy or exit back to the main menu.
|
||||||
* Update function for `CM_SELECT_COPY_SOURCE`
|
* Update function for `CM_SELECT_COPY_SOURCE`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SelectCopySource(GameState* thisx) {
|
void FileSelect_SelectCopySource(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
|
@ -120,8 +120,8 @@ void FileChoose_SelectCopySource(GameState* thisx) {
|
||||||
* Move the menu buttons into place for the copy destination selection and switch titles.
|
* Move the menu buttons into place for the copy destination selection and switch titles.
|
||||||
* Update function for `CM_SETUP_COPY_DEST_1`
|
* Update function for `CM_SETUP_COPY_DEST_1`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetupCopyDest1(GameState* thisx) {
|
void FileSelect_SetupCopyDest1(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
s16 i;
|
s16 i;
|
||||||
|
|
||||||
|
@ -154,8 +154,8 @@ void FileChoose_SetupCopyDest1(GameState* thisx) {
|
||||||
* Show the file info of the file selected to copy from.
|
* Show the file info of the file selected to copy from.
|
||||||
* Update function for `CM_SETUP_COPY_DEST_2`
|
* Update function for `CM_SETUP_COPY_DEST_2`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetupCopyDest2(GameState* thisx) {
|
void FileSelect_SetupCopyDest2(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->nameBoxAlpha[this->buttonIndex] -= 25;
|
this->nameBoxAlpha[this->buttonIndex] -= 25;
|
||||||
this->fileInfoAlpha[this->buttonIndex] += 25;
|
this->fileInfoAlpha[this->buttonIndex] += 25;
|
||||||
|
@ -174,8 +174,8 @@ void FileChoose_SetupCopyDest2(GameState* thisx) {
|
||||||
* Allow the player to select a slot to copy to or exit to the copy select screen.
|
* Allow the player to select a slot to copy to or exit to the copy select screen.
|
||||||
* Update function for `CM_SELECT_COPY_DEST`
|
* Update function for `CM_SELECT_COPY_DEST`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SelectCopyDest(GameState* thisx) {
|
void FileSelect_SelectCopyDest(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
|
@ -248,8 +248,8 @@ void FileChoose_SelectCopyDest(GameState* thisx) {
|
||||||
* Fade out file info, bring back the name box, and get ready to return to copy source screen.
|
* Fade out file info, bring back the name box, and get ready to return to copy source screen.
|
||||||
* Update function for `CM_EXIT_TO_COPY_SOURCE_1`
|
* Update function for `CM_EXIT_TO_COPY_SOURCE_1`
|
||||||
*/
|
*/
|
||||||
void FileChoose_ExitToCopySource1(GameState* thisx) {
|
void FileSelect_ExitToCopySource1(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->fileInfoAlpha[this->buttonIndex] -= 25;
|
this->fileInfoAlpha[this->buttonIndex] -= 25;
|
||||||
this->nameBoxAlpha[this->buttonIndex] += 25;
|
this->nameBoxAlpha[this->buttonIndex] += 25;
|
||||||
|
@ -268,8 +268,8 @@ void FileChoose_ExitToCopySource1(GameState* thisx) {
|
||||||
* Move the buttons back into place and return to copy source select.
|
* Move the buttons back into place and return to copy source select.
|
||||||
* Update function for `CM_EXIT_TO_COPY_SOURCE_2`
|
* Update function for `CM_EXIT_TO_COPY_SOURCE_2`
|
||||||
*/
|
*/
|
||||||
void FileChoose_ExitToCopySource2(GameState* thisx) {
|
void FileSelect_ExitToCopySource2(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
@ -301,9 +301,9 @@ void FileChoose_ExitToCopySource2(GameState* thisx) {
|
||||||
* Rearrange buttons on the screen to prepare for copy confirmation.
|
* Rearrange buttons on the screen to prepare for copy confirmation.
|
||||||
* Update function for `CM_SETUP_COPY_CONFIRM_1`
|
* Update function for `CM_SETUP_COPY_CONFIRM_1`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetupCopyConfirm1(GameState* thisx) {
|
void FileSelect_SetupCopyConfirm1(GameState* thisx) {
|
||||||
static s16 D_808124A4[] = { -56, -40, -24, 0 };
|
static s16 D_808124A4[] = { -56, -40, -24, 0 };
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
@ -346,8 +346,8 @@ void FileChoose_SetupCopyConfirm1(GameState* thisx) {
|
||||||
* Fade in the 'Yes' button before allowing the player to decide.
|
* Fade in the 'Yes' button before allowing the player to decide.
|
||||||
* Update function for `CM_SETUP_COPY_CONFIRM_2`
|
* Update function for `CM_SETUP_COPY_CONFIRM_2`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetupCopyConfirm2(GameState* thisx) {
|
void FileSelect_SetupCopyConfirm2(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->confirmButtonAlpha[FS_BTN_CONFIRM_YES] += 25;
|
this->confirmButtonAlpha[FS_BTN_CONFIRM_YES] += 25;
|
||||||
this->actionTimer--;
|
this->actionTimer--;
|
||||||
|
@ -363,8 +363,8 @@ void FileChoose_SetupCopyConfirm2(GameState* thisx) {
|
||||||
* If yes is selected, the actual copy occurs in this function before moving on to the animation.
|
* If yes is selected, the actual copy occurs in this function before moving on to the animation.
|
||||||
* Update function for `CM_COPY_CONFIRM`
|
* Update function for `CM_COPY_CONFIRM`
|
||||||
*/
|
*/
|
||||||
void FileChoose_CopyConfirm(GameState* thisx) {
|
void FileSelect_CopyConfirm(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
u16 dayTime;
|
u16 dayTime;
|
||||||
|
@ -398,8 +398,8 @@ void FileChoose_CopyConfirm(GameState* thisx) {
|
||||||
* Move buttons back in place and return to copy destination select.
|
* Move buttons back in place and return to copy destination select.
|
||||||
* Update function for `CM_RETURN_TO_COPY_DEST`
|
* Update function for `CM_RETURN_TO_COPY_DEST`
|
||||||
*/
|
*/
|
||||||
void FileChoose_ReturnToCopyDest(GameState* thisx) {
|
void FileSelect_ReturnToCopyDest(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
@ -443,8 +443,8 @@ void FileChoose_ReturnToCopyDest(GameState* thisx) {
|
||||||
* Hide title
|
* Hide title
|
||||||
* Update function for `CM_COPY_ANIM_1`
|
* Update function for `CM_COPY_ANIM_1`
|
||||||
*/
|
*/
|
||||||
void FileChoose_CopyAnim1(GameState* thisx) {
|
void FileSelect_CopyAnim1(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->titleAlpha[0] -= 31;
|
this->titleAlpha[0] -= 31;
|
||||||
this->confirmButtonAlpha[FS_BTN_CONFIRM_YES] -= 25;
|
this->confirmButtonAlpha[FS_BTN_CONFIRM_YES] -= 25;
|
||||||
|
@ -464,8 +464,8 @@ void FileChoose_CopyAnim1(GameState* thisx) {
|
||||||
* Move a copy of the file window down and fade in the file info.
|
* Move a copy of the file window down and fade in the file info.
|
||||||
* Update function for `CM_COPY_ANIM_2`
|
* Update function for `CM_COPY_ANIM_2`
|
||||||
*/
|
*/
|
||||||
void FileChoose_CopyAnim2(GameState* thisx) {
|
void FileSelect_CopyAnim2(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
|
||||||
this->fileInfoAlpha[this->copyDestFileIndex] += 25;
|
this->fileInfoAlpha[this->copyDestFileIndex] += 25;
|
||||||
|
@ -494,8 +494,8 @@ void FileChoose_CopyAnim2(GameState* thisx) {
|
||||||
* the player to press a button before moving on.
|
* the player to press a button before moving on.
|
||||||
* Update function for `CM_COPY_ANIM_3`
|
* Update function for `CM_COPY_ANIM_3`
|
||||||
*/
|
*/
|
||||||
void FileChoose_CopyAnim3(GameState* thisx) {
|
void FileSelect_CopyAnim3(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
if (this->actionTimer == 75) {
|
if (this->actionTimer == 75) {
|
||||||
|
@ -521,8 +521,8 @@ void FileChoose_CopyAnim3(GameState* thisx) {
|
||||||
* Fade out the info boxes for both files and bring in their name boxes. Fade out title.
|
* Fade out the info boxes for both files and bring in their name boxes. Fade out title.
|
||||||
* Update function for `CM_COPY_ANIM_4`
|
* Update function for `CM_COPY_ANIM_4`
|
||||||
*/
|
*/
|
||||||
void FileChoose_CopyAnim4(GameState* thisx) {
|
void FileSelect_CopyAnim4(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->fileInfoAlpha[this->selectedFileIndex] -= 25;
|
this->fileInfoAlpha[this->selectedFileIndex] -= 25;
|
||||||
this->fileInfoAlpha[this->copyDestFileIndex] -= 25;
|
this->fileInfoAlpha[this->copyDestFileIndex] -= 25;
|
||||||
|
@ -543,8 +543,8 @@ void FileChoose_CopyAnim4(GameState* thisx) {
|
||||||
* Restore all buttons and labels back to their original place and go back to the main menu.
|
* Restore all buttons and labels back to their original place and go back to the main menu.
|
||||||
* Update function for `CM_COPY_ANIM_5`
|
* Update function for `CM_COPY_ANIM_5`
|
||||||
*/
|
*/
|
||||||
void FileChoose_CopyAnim5(GameState* thisx) {
|
void FileSelect_CopyAnim5(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
@ -603,8 +603,8 @@ void FileChoose_CopyAnim5(GameState* thisx) {
|
||||||
* Exit from the copy source screen to the main menu. Return all buttons and labels to their original place.
|
* Exit from the copy source screen to the main menu. Return all buttons and labels to their original place.
|
||||||
* Update function for `CM_COPY_RETURN_MAIN`
|
* Update function for `CM_COPY_RETURN_MAIN`
|
||||||
*/
|
*/
|
||||||
void FileChoose_ExitCopyToMain(GameState* thisx) {
|
void FileSelect_ExitCopyToMain(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
|
||||||
|
@ -641,8 +641,8 @@ void FileChoose_ExitCopyToMain(GameState* thisx) {
|
||||||
* Move buttons into place for the erase select screen and fade in the proper labels.
|
* Move buttons into place for the erase select screen and fade in the proper labels.
|
||||||
* Update function for `CM_SETUP_ERASE_SELECT`
|
* Update function for `CM_SETUP_ERASE_SELECT`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetupEraseSelect(GameState* thisx) {
|
void FileSelect_SetupEraseSelect(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
|
||||||
|
@ -689,8 +689,8 @@ void FileChoose_SetupEraseSelect(GameState* thisx) {
|
||||||
* Allow the player to select a file to erase or exit back to the main menu.
|
* Allow the player to select a file to erase or exit back to the main menu.
|
||||||
* Update function for `CM_ERASE_SELECT`
|
* Update function for `CM_ERASE_SELECT`
|
||||||
*/
|
*/
|
||||||
void FileChoose_EraseSelect(GameState* thisx) {
|
void FileSelect_EraseSelect(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
|
@ -751,9 +751,9 @@ void FileChoose_EraseSelect(GameState* thisx) {
|
||||||
* ...
|
* ...
|
||||||
* Update function for `CM_SETUP_ERASE_CONFIRM_1`
|
* Update function for `CM_SETUP_ERASE_CONFIRM_1`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetupEraseConfirm1(GameState* thisx) {
|
void FileSelect_SetupEraseConfirm1(GameState* thisx) {
|
||||||
static s16 D_808124AC[] = { 0, 16, 32 };
|
static s16 D_808124AC[] = { 0, 16, 32 };
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
@ -807,8 +807,8 @@ void FileChoose_SetupEraseConfirm1(GameState* thisx) {
|
||||||
* Show the file info of the file selected to erase.
|
* Show the file info of the file selected to erase.
|
||||||
* Update function for `CM_SETUP_ERASE_CONFIRM_2`
|
* Update function for `CM_SETUP_ERASE_CONFIRM_2`
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetupEraseConfirm2(GameState* thisx) {
|
void FileSelect_SetupEraseConfirm2(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->confirmButtonAlpha[FS_BTN_CONFIRM_YES] += 25;
|
this->confirmButtonAlpha[FS_BTN_CONFIRM_YES] += 25;
|
||||||
this->titleAlpha[0] -= 15;
|
this->titleAlpha[0] -= 15;
|
||||||
|
@ -831,8 +831,8 @@ void FileChoose_SetupEraseConfirm2(GameState* thisx) {
|
||||||
* Allow the player to confirm their chioce to erase or return back to erase select.
|
* Allow the player to confirm their chioce to erase or return back to erase select.
|
||||||
* Update function for `CM_ERASE_CONFIRM`
|
* Update function for `CM_ERASE_CONFIRM`
|
||||||
*/
|
*/
|
||||||
void FileChoose_EraseConfirm(GameState* thisx) {
|
void FileSelect_EraseConfirm(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
if (((this->buttonIndex != FS_BTN_CONFIRM_YES) && CHECK_BTN_ANY(input->press.button, BTN_A | BTN_START)) ||
|
if (((this->buttonIndex != FS_BTN_CONFIRM_YES) && CHECK_BTN_ANY(input->press.button, BTN_A | BTN_START)) ||
|
||||||
|
@ -863,8 +863,8 @@ void FileChoose_EraseConfirm(GameState* thisx) {
|
||||||
* Fade out file info, bring back the name box, and get ready to return to erase select screen.
|
* Fade out file info, bring back the name box, and get ready to return to erase select screen.
|
||||||
* Update function for `CM_EXIT_TO_ERASE_SELECT_1`
|
* Update function for `CM_EXIT_TO_ERASE_SELECT_1`
|
||||||
*/
|
*/
|
||||||
void FileChoose_ExitToEraseSelect1(GameState* thisx) {
|
void FileSelect_ExitToEraseSelect1(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->fileInfoAlpha[this->buttonIndex] -= 25;
|
this->fileInfoAlpha[this->buttonIndex] -= 25;
|
||||||
this->nameBoxAlpha[this->buttonIndex] += 25;
|
this->nameBoxAlpha[this->buttonIndex] += 25;
|
||||||
|
@ -882,8 +882,8 @@ void FileChoose_ExitToEraseSelect1(GameState* thisx) {
|
||||||
* Move the buttons back into place and return to erase select.
|
* Move the buttons back into place and return to erase select.
|
||||||
* Update function for `CM_EXIT_TO_ERASE_SELECT_2`
|
* Update function for `CM_EXIT_TO_ERASE_SELECT_2`
|
||||||
*/
|
*/
|
||||||
void FileChoose_ExitToEraseSelect2(GameState* thisx) {
|
void FileSelect_ExitToEraseSelect2(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
@ -927,9 +927,9 @@ void FileChoose_ExitToEraseSelect2(GameState* thisx) {
|
||||||
* The actual file deletion occurs in this function
|
* The actual file deletion occurs in this function
|
||||||
* Update function for `CM_ERASE_ANIM_1`
|
* Update function for `CM_ERASE_ANIM_1`
|
||||||
*/
|
*/
|
||||||
void FileChoose_EraseAnim1(GameState* thisx) {
|
void FileSelect_EraseAnim1(GameState* thisx) {
|
||||||
static s16 D_80813800;
|
static s16 D_80813800;
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
|
|
||||||
if (sEraseDelayTimer == 0) {
|
if (sEraseDelayTimer == 0) {
|
||||||
|
@ -978,8 +978,8 @@ void FileChoose_EraseAnim1(GameState* thisx) {
|
||||||
* Wait for a delay timer or for the palyer to press a button before returning to the main menu.
|
* Wait for a delay timer or for the palyer to press a button before returning to the main menu.
|
||||||
* Update function for `CM_ERASE_ANIM_2`
|
* Update function for `CM_ERASE_ANIM_2`
|
||||||
*/
|
*/
|
||||||
void FileChoose_EraseAnim2(GameState* thisx) {
|
void FileSelect_EraseAnim2(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
if (CHECK_BTN_ANY(input->press.button, BTN_A | BTN_B | BTN_START) || (--this->actionTimer == 0)) {
|
if (CHECK_BTN_ANY(input->press.button, BTN_A | BTN_B | BTN_START) || (--this->actionTimer == 0)) {
|
||||||
|
@ -996,8 +996,8 @@ void FileChoose_EraseAnim2(GameState* thisx) {
|
||||||
* Exit from the erase animation to the main menu. Return all buttons and labels to their original place.
|
* Exit from the erase animation to the main menu. Return all buttons and labels to their original place.
|
||||||
* Update function for `CM_ERASE_ANIM_3`
|
* Update function for `CM_ERASE_ANIM_3`
|
||||||
*/
|
*/
|
||||||
void FileChoose_EraseAnim3(GameState* thisx) {
|
void FileSelect_EraseAnim3(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
@ -1050,8 +1050,8 @@ void FileChoose_EraseAnim3(GameState* thisx) {
|
||||||
* Exit from the erase select screen to the main menu. Return all buttons and labels to their original place.
|
* Exit from the erase select screen to the main menu. Return all buttons and labels to their original place.
|
||||||
* Update function for `CM_EXIT_ERASE_TO_MAIN`
|
* Update function for `CM_EXIT_ERASE_TO_MAIN`
|
||||||
*/
|
*/
|
||||||
void FileChoose_ExitEraseToMain(GameState* thisx) {
|
void FileSelect_ExitEraseToMain(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 i;
|
s16 i;
|
||||||
s16 yStep;
|
s16 yStep;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "file_choose.h"
|
#include "file_select.h"
|
||||||
#include "assets/textures/title_static/title_static.h"
|
#include "assets/textures/title_static/title_static.h"
|
||||||
#include "assets/overlays/ovl_File_Choose/ovl_file_choose.h"
|
#include "assets/overlays/ovl_File_Choose/ovl_file_choose.h"
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ static s16 D_80812544[] = {
|
||||||
0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0003,
|
0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0003,
|
||||||
};
|
};
|
||||||
|
|
||||||
void FileChoose_DrawCharacter(GraphicsContext* gfxCtx, void* texture, s16 vtx) {
|
void FileSelect_DrawCharacter(GraphicsContext* gfxCtx, void* texture, s16 vtx) {
|
||||||
OPEN_DISPS(gfxCtx, "../z_file_nameset_PAL.c", 110);
|
OPEN_DISPS(gfxCtx, "../z_file_nameset_PAL.c", 110);
|
||||||
|
|
||||||
gDPLoadTextureBlock_4b(POLY_OPA_DISP++, texture, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
gDPLoadTextureBlock_4b(POLY_OPA_DISP++, texture, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||||
|
@ -28,8 +28,8 @@ void FileChoose_DrawCharacter(GraphicsContext* gfxCtx, void* texture, s16 vtx) {
|
||||||
CLOSE_DISPS(gfxCtx, "../z_file_nameset_PAL.c", 119);
|
CLOSE_DISPS(gfxCtx, "../z_file_nameset_PAL.c", 119);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_SetKeyboardVtx(GameState* thisx) {
|
void FileSelect_SetKeyboardVtx(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 val;
|
s16 val;
|
||||||
s16 phi_t2;
|
s16 phi_t2;
|
||||||
s16 phi_t0;
|
s16 phi_t0;
|
||||||
|
@ -108,8 +108,8 @@ static s16 D_80812604[] = {
|
||||||
* Set vertices used by all elements of the name entry screen that are NOT the keyboard.
|
* Set vertices used by all elements of the name entry screen that are NOT the keyboard.
|
||||||
* This includes the cursor highlight, the name entry plate and characters, and the buttons.
|
* This includes the cursor highlight, the name entry plate and characters, and the buttons.
|
||||||
*/
|
*/
|
||||||
void FileChoose_SetNameEntryVtx(GameState* thisx) {
|
void FileSelect_SetNameEntryVtx(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Font* font = &this->font;
|
Font* font = &this->font;
|
||||||
s16 phi_s0;
|
s16 phi_s0;
|
||||||
s16 phi_t1;
|
s16 phi_t1;
|
||||||
|
@ -211,7 +211,7 @@ void FileChoose_SetNameEntryVtx(GameState* thisx) {
|
||||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, this->nameEntryBoxAlpha);
|
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, this->nameEntryBoxAlpha);
|
||||||
|
|
||||||
for (phi_v0 = 0, phi_s0 = 0; phi_s0 < 0x20; phi_s0 += 4, phi_v0++) {
|
for (phi_v0 = 0, phi_s0 = 0; phi_s0 < 0x20; phi_s0 += 4, phi_v0++) {
|
||||||
FileChoose_DrawCharacter(this->state.gfxCtx,
|
FileSelect_DrawCharacter(this->state.gfxCtx,
|
||||||
font->fontBuf + this->fileNames[this->buttonIndex][phi_v0] * FONT_CHAR_TEX_SIZE,
|
font->fontBuf + this->fileNames[this->buttonIndex][phi_v0] * FONT_CHAR_TEX_SIZE,
|
||||||
phi_s0);
|
phi_s0);
|
||||||
}
|
}
|
||||||
|
@ -229,8 +229,8 @@ void FileChoose_SetNameEntryVtx(GameState* thisx) {
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 307);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 307);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_DrawKeyboard(GameState* thisx) {
|
void FileSelect_DrawKeyboard(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Font* font = &this->font;
|
Font* font = &this->font;
|
||||||
s16 i = 0;
|
s16 i = 0;
|
||||||
s16 tmp;
|
s16 tmp;
|
||||||
|
@ -249,20 +249,20 @@ void FileChoose_DrawKeyboard(GameState* thisx) {
|
||||||
gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0);
|
gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0);
|
||||||
|
|
||||||
for (tmp = 0; tmp < 32; i++, tmp += 4) {
|
for (tmp = 0; tmp < 32; i++, tmp += 4) {
|
||||||
FileChoose_DrawCharacter(this->state.gfxCtx, font->fontBuf + D_808123F0[i] * FONT_CHAR_TEX_SIZE, tmp);
|
FileSelect_DrawCharacter(this->state.gfxCtx, font->fontBuf + D_808123F0[i] * FONT_CHAR_TEX_SIZE, tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
vtx += 32;
|
vtx += 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0);
|
gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0);
|
||||||
FileChoose_DrawCharacter(this->state.gfxCtx, font->fontBuf + D_808123F0[i] * FONT_CHAR_TEX_SIZE, 0);
|
FileSelect_DrawCharacter(this->state.gfxCtx, font->fontBuf + D_808123F0[i] * FONT_CHAR_TEX_SIZE, 0);
|
||||||
|
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 347);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 347);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_DrawNameEntry(GameState* thisx) {
|
void FileSelect_DrawNameEntry(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
Font* font = &this->font;
|
Font* font = &this->font;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
s16 i;
|
s16 i;
|
||||||
|
@ -272,9 +272,9 @@ void FileChoose_DrawNameEntry(GameState* thisx) {
|
||||||
|
|
||||||
OPEN_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 368);
|
OPEN_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 368);
|
||||||
|
|
||||||
FileChoose_SetKeyboardVtx(&this->state);
|
FileSelect_SetKeyboardVtx(&this->state);
|
||||||
FileChoose_SetNameEntryVtx(&this->state);
|
FileSelect_SetNameEntryVtx(&this->state);
|
||||||
FileChoose_PulsateCursor(&this->state);
|
FileSelect_PulsateCursor(&this->state);
|
||||||
|
|
||||||
tmp = (this->newFileNameCharCount * 4) + 4;
|
tmp = (this->newFileNameCharCount * 4) + 4;
|
||||||
this->nameEntryVtx[36].v.ob[0] = this->nameEntryVtx[38].v.ob[0] = this->nameEntryVtx[tmp].v.ob[0] - 6;
|
this->nameEntryVtx[36].v.ob[0] = this->nameEntryVtx[38].v.ob[0] = this->nameEntryVtx[tmp].v.ob[0] - 6;
|
||||||
|
@ -338,7 +338,7 @@ void FileChoose_DrawNameEntry(GameState* thisx) {
|
||||||
|
|
||||||
gSP1Quadrangle(POLY_OPA_DISP++, 4, 6, 7, 5, 0);
|
gSP1Quadrangle(POLY_OPA_DISP++, 4, 6, 7, 5, 0);
|
||||||
|
|
||||||
FileChoose_DrawKeyboard(&this->state);
|
FileSelect_DrawKeyboard(&this->state);
|
||||||
gDPPipeSync(POLY_OPA_DISP++);
|
gDPPipeSync(POLY_OPA_DISP++);
|
||||||
Gfx_SetupDL_42Opa(this->state.gfxCtx);
|
Gfx_SetupDL_42Opa(this->state.gfxCtx);
|
||||||
|
|
||||||
|
@ -385,7 +385,7 @@ void FileChoose_DrawNameEntry(GameState* thisx) {
|
||||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 0, 255);
|
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 0, 255);
|
||||||
gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[this->charIndex * 4], 4, 0);
|
gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[this->charIndex * 4], 4, 0);
|
||||||
|
|
||||||
FileChoose_DrawCharacter(this->state.gfxCtx,
|
FileSelect_DrawCharacter(this->state.gfxCtx,
|
||||||
font->fontBuf + D_808123F0[this->charIndex] * FONT_CHAR_TEX_SIZE, 0);
|
font->fontBuf + D_808123F0[this->charIndex] * FONT_CHAR_TEX_SIZE, 0);
|
||||||
|
|
||||||
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
|
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
|
||||||
|
@ -486,8 +486,8 @@ void FileChoose_DrawNameEntry(GameState* thisx) {
|
||||||
* After the name entry box is in place, init the keyboard/cursor and change modes.
|
* After the name entry box is in place, init the keyboard/cursor and change modes.
|
||||||
* Update function for `CM_START_NAME_ENTRY`
|
* Update function for `CM_START_NAME_ENTRY`
|
||||||
*/
|
*/
|
||||||
void FileChoose_StartNameEntry(GameState* thisx) {
|
void FileSelect_StartNameEntry(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->nameEntryBoxAlpha += 25;
|
this->nameEntryBoxAlpha += 25;
|
||||||
|
|
||||||
|
@ -513,8 +513,8 @@ void FileChoose_StartNameEntry(GameState* thisx) {
|
||||||
* the cursor currently is.
|
* the cursor currently is.
|
||||||
* Update function for `CM_NAME_ENTRY`
|
* Update function for `CM_NAME_ENTRY`
|
||||||
*/
|
*/
|
||||||
void FileChoose_UpdateKeyboardCursor(GameState* thisx) {
|
void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 prevKbdX;
|
s16 prevKbdX;
|
||||||
|
|
||||||
this->kbdButton = 99;
|
this->kbdButton = 99;
|
||||||
|
@ -632,13 +632,13 @@ void FileChoose_UpdateKeyboardCursor(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function is mostly a copy paste of `FileChoose_StartNameEntry`.
|
* This function is mostly a copy paste of `FileSelect_StartNameEntry`.
|
||||||
* The name entry box fades and slides in even though it is not visible.
|
* The name entry box fades and slides in even though it is not visible.
|
||||||
* After this is complete, change to the options config mode.
|
* After this is complete, change to the options config mode.
|
||||||
* Update function for `CM_START_OPTIONS`
|
* Update function for `CM_START_OPTIONS`
|
||||||
*/
|
*/
|
||||||
void FileChoose_StartOptions(GameState* thisx) {
|
void FileSelect_StartOptions(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
|
|
||||||
this->nameEntryBoxAlpha += 25;
|
this->nameEntryBoxAlpha += 25;
|
||||||
|
|
||||||
|
@ -663,8 +663,8 @@ static u8 sSelectedSetting;
|
||||||
* and set config mode to rotate back to the main menu.
|
* and set config mode to rotate back to the main menu.
|
||||||
* Update function for `CM_OPTIONS_MENU`
|
* Update function for `CM_OPTIONS_MENU`
|
||||||
*/
|
*/
|
||||||
void FileChoose_UpdateOptionsMenu(GameState* thisx) {
|
void FileSelect_UpdateOptionsMenu(GameState* thisx) {
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
SramContext* sramCtx = &this->sramCtx;
|
SramContext* sramCtx = &this->sramCtx;
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
|
|
||||||
|
@ -790,7 +790,7 @@ static OptionsMenuTextureInfo gOptionsMenuSettings[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
void FileChoose_DrawOptionsImpl(GameState* thisx) {
|
void FileSelect_DrawOptionsImpl(GameState* thisx) {
|
||||||
static s16 cursorPrimRed = 255;
|
static s16 cursorPrimRed = 255;
|
||||||
static s16 cursorPrimGreen = 255;
|
static s16 cursorPrimGreen = 255;
|
||||||
static s16 cursorPrimBlue = 255;
|
static s16 cursorPrimBlue = 255;
|
||||||
|
@ -807,7 +807,7 @@ void FileChoose_DrawOptionsImpl(GameState* thisx) {
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
{ 0, 150, 150 },
|
{ 0, 150, 150 },
|
||||||
};
|
};
|
||||||
FileChooseContext* this = (FileChooseContext*)thisx;
|
FileSelectState* this = (FileSelectState*)thisx;
|
||||||
s16 cursorRed;
|
s16 cursorRed;
|
||||||
s16 cursorGreen;
|
s16 cursorGreen;
|
||||||
s16 cursorBlue;
|
s16 cursorBlue;
|
||||||
|
@ -1006,6 +1006,6 @@ void FileChoose_DrawOptionsImpl(GameState* thisx) {
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 1040);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 1040);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileChoose_DrawOptions(GameState* thisx) {
|
void FileSelect_DrawOptions(GameState* thisx) {
|
||||||
FileChoose_DrawOptionsImpl(thisx);
|
FileSelect_DrawOptionsImpl(thisx);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "file_choose.h"
|
#include "file_select.h"
|
||||||
|
|
||||||
#include "assets/overlays/ovl_File_Choose/ovl_file_choose.c"
|
#include "assets/overlays/ovl_File_Choose/ovl_file_choose.c"
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
void Opening_SetupTitleScreen(OpeningContext* this) {
|
void TitleSetup_SetupTitleScreen(TitleSetupState* this) {
|
||||||
gSaveContext.gameMode = 1;
|
gSaveContext.gameMode = 1;
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
gSaveContext.linkAge = LINK_AGE_ADULT;
|
gSaveContext.linkAge = LINK_AGE_ADULT;
|
||||||
|
@ -16,26 +16,26 @@ void Opening_SetupTitleScreen(OpeningContext* this) {
|
||||||
SET_NEXT_GAMESTATE(&this->state, Play_Init, PlayState);
|
SET_NEXT_GAMESTATE(&this->state, Play_Init, PlayState);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80803C5C(OpeningContext* this) {
|
void func_80803C5C(TitleSetupState* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Opening_Main(GameState* thisx) {
|
void TitleSetup_Main(GameState* thisx) {
|
||||||
OpeningContext* this = (OpeningContext*)thisx;
|
TitleSetupState* this = (TitleSetupState*)thisx;
|
||||||
|
|
||||||
func_80095248(this->state.gfxCtx, 0, 0, 0);
|
func_80095248(this->state.gfxCtx, 0, 0, 0);
|
||||||
Opening_SetupTitleScreen(this);
|
TitleSetup_SetupTitleScreen(this);
|
||||||
func_80803C5C(this);
|
func_80803C5C(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Opening_Destroy(GameState* thisx) {
|
void TitleSetup_Destroy(GameState* thisx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Opening_Init(GameState* thisx) {
|
void TitleSetup_Init(GameState* thisx) {
|
||||||
OpeningContext* this = (OpeningContext*)thisx;
|
TitleSetupState* this = (TitleSetupState*)thisx;
|
||||||
|
|
||||||
R_UPDATE_RATE = 1;
|
R_UPDATE_RATE = 1;
|
||||||
Matrix_Init(&this->state);
|
Matrix_Init(&this->state);
|
||||||
View_Init(&this->view, this->state.gfxCtx);
|
View_Init(&this->view, this->state.gfxCtx);
|
||||||
this->state.main = Opening_Main;
|
this->state.main = TitleSetup_Main;
|
||||||
this->state.destroy = Opening_Destroy;
|
this->state.destroy = TitleSetup_Destroy;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,12 @@
|
||||||
#include "vt.h"
|
#include "vt.h"
|
||||||
#include "alloca.h"
|
#include "alloca.h"
|
||||||
|
|
||||||
void Select_LoadTitle(SelectContext* this) {
|
void MapSelect_LoadTitle(MapSelectState* this) {
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
SET_NEXT_GAMESTATE(&this->state, Title_Init, TitleContext);
|
SET_NEXT_GAMESTATE(&this->state, ConsoleLogo_Init, ConsoleLogoState);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_LoadGame(SelectContext* this, s32 entranceIndex) {
|
void MapSelect_LoadGame(MapSelectState* this, s32 entranceIndex) {
|
||||||
osSyncPrintf(VT_FGCOL(BLUE));
|
osSyncPrintf(VT_FGCOL(BLUE));
|
||||||
osSyncPrintf("\n\n\nFILE_NO=%x\n\n\n", gSaveContext.fileNum);
|
osSyncPrintf("\n\n\nFILE_NO=%x\n\n\n", gSaveContext.fileNum);
|
||||||
osSyncPrintf(VT_RST);
|
osSyncPrintf(VT_RST);
|
||||||
|
@ -45,261 +45,261 @@ void Select_LoadGame(SelectContext* this, s32 entranceIndex) {
|
||||||
// "Translation" (Actual name)
|
// "Translation" (Actual name)
|
||||||
static SceneSelectEntry sScenes[] = {
|
static SceneSelectEntry sScenes[] = {
|
||||||
// "1: SPOT00" (Hyrule Field)
|
// "1: SPOT00" (Hyrule Field)
|
||||||
{ " 1:SPOT00", Select_LoadGame, ENTR_SPOT00_0 },
|
{ " 1:SPOT00", MapSelect_LoadGame, ENTR_SPOT00_0 },
|
||||||
// "2: SPOT01" (Kakariko Village)
|
// "2: SPOT01" (Kakariko Village)
|
||||||
{ " 2:SPOT01", Select_LoadGame, ENTR_SPOT01_0 },
|
{ " 2:SPOT01", MapSelect_LoadGame, ENTR_SPOT01_0 },
|
||||||
// "3: SPOT02" (Graveyard)
|
// "3: SPOT02" (Graveyard)
|
||||||
{ " 3:SPOT02", Select_LoadGame, ENTR_SPOT02_0 },
|
{ " 3:SPOT02", MapSelect_LoadGame, ENTR_SPOT02_0 },
|
||||||
// "4: SPOT03" (Zora's River)
|
// "4: SPOT03" (Zora's River)
|
||||||
{ " 4:SPOT03", Select_LoadGame, ENTR_SPOT03_0 },
|
{ " 4:SPOT03", MapSelect_LoadGame, ENTR_SPOT03_0 },
|
||||||
// "5: SPOT04" (Kokiri Forest)
|
// "5: SPOT04" (Kokiri Forest)
|
||||||
{ " 5:SPOT04", Select_LoadGame, ENTR_SPOT04_0 },
|
{ " 5:SPOT04", MapSelect_LoadGame, ENTR_SPOT04_0 },
|
||||||
// "6: SPOT05" (Sacred Forest Meadow)
|
// "6: SPOT05" (Sacred Forest Meadow)
|
||||||
{ " 6:SPOT05", Select_LoadGame, ENTR_SPOT05_0 },
|
{ " 6:SPOT05", MapSelect_LoadGame, ENTR_SPOT05_0 },
|
||||||
// "7: SPOT06" (Lake Hylia)
|
// "7: SPOT06" (Lake Hylia)
|
||||||
{ " 7:SPOT06", Select_LoadGame, ENTR_SPOT06_0 },
|
{ " 7:SPOT06", MapSelect_LoadGame, ENTR_SPOT06_0 },
|
||||||
// "8: SPOT07" (Zora's Domain)
|
// "8: SPOT07" (Zora's Domain)
|
||||||
{ " 8:SPOT07", Select_LoadGame, ENTR_SPOT07_0 },
|
{ " 8:SPOT07", MapSelect_LoadGame, ENTR_SPOT07_0 },
|
||||||
// "9: SPOT08" (Zora's Fountain)
|
// "9: SPOT08" (Zora's Fountain)
|
||||||
{ " 9:SPOT08", Select_LoadGame, ENTR_SPOT08_0 },
|
{ " 9:SPOT08", MapSelect_LoadGame, ENTR_SPOT08_0 },
|
||||||
// "10: SPOT09" (Gerudo Valley)
|
// "10: SPOT09" (Gerudo Valley)
|
||||||
{ "10:SPOT09", Select_LoadGame, ENTR_SPOT09_0 },
|
{ "10:SPOT09", MapSelect_LoadGame, ENTR_SPOT09_0 },
|
||||||
// "11: SPOT10" (Lost Woods)
|
// "11: SPOT10" (Lost Woods)
|
||||||
{ "11:SPOT10", Select_LoadGame, ENTR_SPOT10_0 },
|
{ "11:SPOT10", MapSelect_LoadGame, ENTR_SPOT10_0 },
|
||||||
// "12: SPOT11" (Desert Colossus)
|
// "12: SPOT11" (Desert Colossus)
|
||||||
{ "12:SPOT11", Select_LoadGame, ENTR_SPOT11_0 },
|
{ "12:SPOT11", MapSelect_LoadGame, ENTR_SPOT11_0 },
|
||||||
// "13: SPOT12" (Gerudo's Fortress)
|
// "13: SPOT12" (Gerudo's Fortress)
|
||||||
{ "13:SPOT12", Select_LoadGame, ENTR_SPOT12_0 },
|
{ "13:SPOT12", MapSelect_LoadGame, ENTR_SPOT12_0 },
|
||||||
// "14: SPOT13" (Haunted Wasteland)
|
// "14: SPOT13" (Haunted Wasteland)
|
||||||
{ "14:SPOT13", Select_LoadGame, ENTR_SPOT13_0 },
|
{ "14:SPOT13", MapSelect_LoadGame, ENTR_SPOT13_0 },
|
||||||
// "15: SPOT15" (Hyrule Castle)
|
// "15: SPOT15" (Hyrule Castle)
|
||||||
{ "15:SPOT15", Select_LoadGame, ENTR_SPOT15_0 },
|
{ "15:SPOT15", MapSelect_LoadGame, ENTR_SPOT15_0 },
|
||||||
// "16: SPOT16" (Death Mountain Trail)
|
// "16: SPOT16" (Death Mountain Trail)
|
||||||
{ "16:SPOT16", Select_LoadGame, ENTR_SPOT16_0 },
|
{ "16:SPOT16", MapSelect_LoadGame, ENTR_SPOT16_0 },
|
||||||
// "17: SPOT17" (Death Mountain Crater)
|
// "17: SPOT17" (Death Mountain Crater)
|
||||||
{ "17:SPOT17", Select_LoadGame, ENTR_SPOT17_0 },
|
{ "17:SPOT17", MapSelect_LoadGame, ENTR_SPOT17_0 },
|
||||||
// "18: SPOT18" (Goron City)
|
// "18: SPOT18" (Goron City)
|
||||||
{ "18:SPOT18", Select_LoadGame, ENTR_SPOT18_0 },
|
{ "18:SPOT18", MapSelect_LoadGame, ENTR_SPOT18_0 },
|
||||||
// "19: SPOT20" (Lon Lon Ranch)
|
// "19: SPOT20" (Lon Lon Ranch)
|
||||||
{ "19:SPOT20", Select_LoadGame, ENTR_SPOT20_0 },
|
{ "19:SPOT20", MapSelect_LoadGame, ENTR_SPOT20_0 },
|
||||||
// "20: Chamber of Time" (Temple Of Time)
|
// "20: Chamber of Time" (Temple Of Time)
|
||||||
{ "20:" GFXP_HIRAGANA "トキノマ", Select_LoadGame, ENTR_TOKINOMA_0 },
|
{ "20:" GFXP_HIRAGANA "トキノマ", MapSelect_LoadGame, ENTR_TOKINOMA_0 },
|
||||||
// "21: Chamber of the Sages" (Chamber of the Sages)
|
// "21: Chamber of the Sages" (Chamber of the Sages)
|
||||||
{ "21:" GFXP_HIRAGANA "ケンジャノマ", Select_LoadGame, ENTR_KENJYANOMA_0 },
|
{ "21:" GFXP_HIRAGANA "ケンジャノマ", MapSelect_LoadGame, ENTR_KENJYANOMA_0 },
|
||||||
// "22: Target Range" (Shooting Gallery)
|
// "22: Target Range" (Shooting Gallery)
|
||||||
{ "22:" GFXP_HIRAGANA "シャテキジョウ", Select_LoadGame, ENTR_SYATEKIJYOU_0 },
|
{ "22:" GFXP_HIRAGANA "シャテキジョウ", MapSelect_LoadGame, ENTR_SYATEKIJYOU_0 },
|
||||||
// "23: Hyrule Garden Game" (Hyrule Garden Minigame)
|
// "23: Hyrule Garden Game" (Hyrule Garden Minigame)
|
||||||
{ "23:" GFXP_KATAKANA "ハイラル" GFXP_HIRAGANA "ニワ" GFXP_KATAKANA "ゲーム", Select_LoadGame, ENTR_HAIRAL_NIWA_0 },
|
{ "23:" GFXP_KATAKANA "ハイラル" GFXP_HIRAGANA "ニワ" GFXP_KATAKANA "ゲーム", MapSelect_LoadGame, ENTR_HAIRAL_NIWA_0 },
|
||||||
// "24: Grave Dive Hole" (Grave (Redead))
|
// "24: Grave Dive Hole" (Grave (Redead))
|
||||||
{ "24:" GFXP_HIRAGANA "ハカシタトビコミアナ", Select_LoadGame, ENTR_HAKAANA_0 },
|
{ "24:" GFXP_HIRAGANA "ハカシタトビコミアナ", MapSelect_LoadGame, ENTR_HAKAANA_0 },
|
||||||
// "25: Grave Dive Hole 2" (Grave (Fairy's Fountain))
|
// "25: Grave Dive Hole 2" (Grave (Fairy's Fountain))
|
||||||
{ "25:" GFXP_HIRAGANA "ハカシタトビコミアナ 2", Select_LoadGame, ENTR_HAKAANA2_0 },
|
{ "25:" GFXP_HIRAGANA "ハカシタトビコミアナ 2", MapSelect_LoadGame, ENTR_HAKAANA2_0 },
|
||||||
// "26: Royal Family's Grave" (Royal Family's Tomb)
|
// "26: Royal Family's Grave" (Royal Family's Tomb)
|
||||||
{ "26:" GFXP_HIRAGANA "オウケ ノ ハカアナ", Select_LoadGame, ENTR_HAKAANA_OUKE_0 },
|
{ "26:" GFXP_HIRAGANA "オウケ ノ ハカアナ", MapSelect_LoadGame, ENTR_HAKAANA_OUKE_0 },
|
||||||
// "27: Great Fairy's Fountain" (Great Fairy's Fountain (Upgrades))
|
// "27: Great Fairy's Fountain" (Great Fairy's Fountain (Upgrades))
|
||||||
{ "27:" GFXP_HIRAGANA "ダイヨウセイノイズミ", Select_LoadGame, ENTR_DAIYOUSEI_IZUMI_0 },
|
{ "27:" GFXP_HIRAGANA "ダイヨウセイノイズミ", MapSelect_LoadGame, ENTR_DAIYOUSEI_IZUMI_0 },
|
||||||
// "28: Fairy Dive Hole" (Fairy's Fountain (Healing Fairies))
|
// "28: Fairy Dive Hole" (Fairy's Fountain (Healing Fairies))
|
||||||
{ "28:" GFXP_HIRAGANA "トビコミ ヨウセイ アナ", Select_LoadGame, ENTR_YOUSEI_IZUMI_TATE_0 },
|
{ "28:" GFXP_HIRAGANA "トビコミ ヨウセイ アナ", MapSelect_LoadGame, ENTR_YOUSEI_IZUMI_TATE_0 },
|
||||||
// "29: Magic Stone Fairy's Fountain" (Great Fairy's Fountain (Spells))
|
// "29: Magic Stone Fairy's Fountain" (Great Fairy's Fountain (Spells))
|
||||||
{ "29:" GFXP_HIRAGANA "マホウセキ ヨウセイノイズミ", Select_LoadGame, ENTR_YOUSEI_IZUMI_YOKO_0 },
|
{ "29:" GFXP_HIRAGANA "マホウセキ ヨウセイノイズミ", MapSelect_LoadGame, ENTR_YOUSEI_IZUMI_YOKO_0 },
|
||||||
// "30: Final Battle With Ganon" (Battle With Ganon)
|
// "30: Final Battle With Ganon" (Battle With Ganon)
|
||||||
{ "30:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "サイシュウセン", Select_LoadGame, ENTR_GANON_FINAL_0 },
|
{ "30:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "サイシュウセン", MapSelect_LoadGame, ENTR_GANON_FINAL_0 },
|
||||||
// "31: Hyrule Inner Garden" (Castle Courtyard)
|
// "31: Hyrule Inner Garden" (Castle Courtyard)
|
||||||
{ "31:" GFXP_KATAKANA "ハイラル" GFXP_HIRAGANA "ナカニワ", Select_LoadGame, ENTR_NAKANIWA_0 },
|
{ "31:" GFXP_KATAKANA "ハイラル" GFXP_HIRAGANA "ナカニワ", MapSelect_LoadGame, ENTR_NAKANIWA_0 },
|
||||||
// "32: Fishing" (Fishing Pond)
|
// "32: Fishing" (Fishing Pond)
|
||||||
{ "32:" GFXP_HIRAGANA "ツリボリ", Select_LoadGame, ENTR_TURIBORI_0 },
|
{ "32:" GFXP_HIRAGANA "ツリボリ", MapSelect_LoadGame, ENTR_TURIBORI_0 },
|
||||||
// "33: Bombchu Bowling" (Bombchu Bowling Alley)
|
// "33: Bombchu Bowling" (Bombchu Bowling Alley)
|
||||||
{ "33:" GFXP_KATAKANA "ボムチュウボーリング", Select_LoadGame, ENTR_BOWLING_0 },
|
{ "33:" GFXP_KATAKANA "ボムチュウボーリング", MapSelect_LoadGame, ENTR_BOWLING_0 },
|
||||||
// "34: Lon Lon Ranch - Storehouse 1" (Talon's House)
|
// "34: Lon Lon Ranch - Storehouse 1" (Talon's House)
|
||||||
{ "34:" GFXP_KATAKANA "ロンロン" GFXP_HIRAGANA "ボクジョウ ソウコ 1", Select_LoadGame, ENTR_SOUKO_0 },
|
{ "34:" GFXP_KATAKANA "ロンロン" GFXP_HIRAGANA "ボクジョウ ソウコ 1", MapSelect_LoadGame, ENTR_SOUKO_0 },
|
||||||
// "35: Lon Lon Ranch - Storehouse 2" (Ranch Silo)
|
// "35: Lon Lon Ranch - Storehouse 2" (Ranch Silo)
|
||||||
{ "35:" GFXP_KATAKANA "ロンロン" GFXP_HIRAGANA "ボクジョウ ソウコ 2", Select_LoadGame, ENTR_SOUKO_1 },
|
{ "35:" GFXP_KATAKANA "ロンロン" GFXP_HIRAGANA "ボクジョウ ソウコ 2", MapSelect_LoadGame, ENTR_SOUKO_1 },
|
||||||
// "36: Lookout Hut" (Guard House)
|
// "36: Lookout Hut" (Guard House)
|
||||||
{ "36:" GFXP_HIRAGANA "ミハリ ゴヤ", Select_LoadGame, ENTR_MIHARIGOYA_0 },
|
{ "36:" GFXP_HIRAGANA "ミハリ ゴヤ", MapSelect_LoadGame, ENTR_MIHARIGOYA_0 },
|
||||||
// "37: Magic Potion Shop" (Granny's Potion Shop)
|
// "37: Magic Potion Shop" (Granny's Potion Shop)
|
||||||
{ "37:" GFXP_HIRAGANA "マホウ ノ クスリヤ", Select_LoadGame, ENTR_MAHOUYA_0 },
|
{ "37:" GFXP_HIRAGANA "マホウ ノ クスリヤ", MapSelect_LoadGame, ENTR_MAHOUYA_0 },
|
||||||
// "38: Treasure Chest Shop" (Treasure Chest Game)
|
// "38: Treasure Chest Shop" (Treasure Chest Game)
|
||||||
{ "38:" GFXP_HIRAGANA "タカラバコヤ", Select_LoadGame, ENTR_TAKARAYA_0 },
|
{ "38:" GFXP_HIRAGANA "タカラバコヤ", MapSelect_LoadGame, ENTR_TAKARAYA_0 },
|
||||||
// "39: Gold Skulltula House" (House of Skulltula)
|
// "39: Gold Skulltula House" (House of Skulltula)
|
||||||
{ "39:" GFXP_HIRAGANA "キン " GFXP_KATAKANA "スタルチュラ ハウス", Select_LoadGame, ENTR_KINSUTA_0 },
|
{ "39:" GFXP_HIRAGANA "キン " GFXP_KATAKANA "スタルチュラ ハウス", MapSelect_LoadGame, ENTR_KINSUTA_0 },
|
||||||
// "40: Castle Town - Entrance" (Market Entrance)
|
// "40: Castle Town - Entrance" (Market Entrance)
|
||||||
{ "40:" GFXP_HIRAGANA "ジョウカマチ イリグチ", Select_LoadGame, ENTR_ENTRA_0 },
|
{ "40:" GFXP_HIRAGANA "ジョウカマチ イリグチ", MapSelect_LoadGame, ENTR_ENTRA_0 },
|
||||||
// "41: Castle Town" (Market)
|
// "41: Castle Town" (Market)
|
||||||
{ "41:" GFXP_HIRAGANA "ジョウカマチ", Select_LoadGame, ENTR_MARKET_DAY_0 },
|
{ "41:" GFXP_HIRAGANA "ジョウカマチ", MapSelect_LoadGame, ENTR_MARKET_DAY_0 },
|
||||||
// "42: Back Alley" (Back Alley)
|
// "42: Back Alley" (Back Alley)
|
||||||
{ "42:" GFXP_HIRAGANA "ウラロジ", Select_LoadGame, ENTR_MARKET_ALLEY_0 },
|
{ "42:" GFXP_HIRAGANA "ウラロジ", MapSelect_LoadGame, ENTR_MARKET_ALLEY_0 },
|
||||||
// "43: In Front of the Temple of Time" (Temple of Time Exterior)
|
// "43: In Front of the Temple of Time" (Temple of Time Exterior)
|
||||||
{ "43:" GFXP_HIRAGANA "トキノシンデン マエ", Select_LoadGame, ENTR_SHRINE_0 },
|
{ "43:" GFXP_HIRAGANA "トキノシンデン マエ", MapSelect_LoadGame, ENTR_SHRINE_0 },
|
||||||
// "44: Link's House" (Link's House)
|
// "44: Link's House" (Link's House)
|
||||||
{ "44:" GFXP_HIRAGANA "リンクノイエ", Select_LoadGame, ENTR_LINK_HOME_0 },
|
{ "44:" GFXP_HIRAGANA "リンクノイエ", MapSelect_LoadGame, ENTR_LINK_HOME_0 },
|
||||||
// "45: Kakariko Village Row House" (Carpenter Boss's House)
|
// "45: Kakariko Village Row House" (Carpenter Boss's House)
|
||||||
{ "45:" GFXP_KATAKANA "カカリコ" GFXP_HIRAGANA "ムラノナガヤ", Select_LoadGame, ENTR_KAKARIKO_0 },
|
{ "45:" GFXP_KATAKANA "カカリコ" GFXP_HIRAGANA "ムラノナガヤ", MapSelect_LoadGame, ENTR_KAKARIKO_0 },
|
||||||
// "46: Back Alley House" (Back Alley House (Man in Green))
|
// "46: Back Alley House" (Back Alley House (Man in Green))
|
||||||
{ "46:" GFXP_HIRAGANA "ウラロジノ イエ", Select_LoadGame, ENTR_KAKARIKO3_0 },
|
{ "46:" GFXP_HIRAGANA "ウラロジノ イエ", MapSelect_LoadGame, ENTR_KAKARIKO3_0 },
|
||||||
// "47: Kokiri Village - Know-It-All Brothers' House" (Know-It-All Brothers' House)
|
// "47: Kokiri Village - Know-It-All Brothers' House" (Know-It-All Brothers' House)
|
||||||
{ "47:" GFXP_HIRAGANA "コキリノムラ モノシリキョウダイノイエ", Select_LoadGame, ENTR_KOKIRI_HOME_0 },
|
{ "47:" GFXP_HIRAGANA "コキリノムラ モノシリキョウダイノイエ", MapSelect_LoadGame, ENTR_KOKIRI_HOME_0 },
|
||||||
// "48: Kokiri Village - Twins' House" (Twins' House)
|
// "48: Kokiri Village - Twins' House" (Twins' House)
|
||||||
{ "48:" GFXP_HIRAGANA "コキリノムラ フタゴノイエ", Select_LoadGame, ENTR_KOKIRI_HOME3_0 },
|
{ "48:" GFXP_HIRAGANA "コキリノムラ フタゴノイエ", MapSelect_LoadGame, ENTR_KOKIRI_HOME3_0 },
|
||||||
// "49: Kokiri Village - Mido's House" (Mido's House)
|
// "49: Kokiri Village - Mido's House" (Mido's House)
|
||||||
{ "49:" GFXP_HIRAGANA "コキリノムラ " GFXP_KATAKANA "ミド" GFXP_HIRAGANA "ノイエ", Select_LoadGame, ENTR_KOKIRI_HOME4_0 },
|
{ "49:" GFXP_HIRAGANA "コキリノムラ " GFXP_KATAKANA "ミド" GFXP_HIRAGANA "ノイエ", MapSelect_LoadGame, ENTR_KOKIRI_HOME4_0 },
|
||||||
// "50: Kokiri Village - Saria's House" (Saria's House)
|
// "50: Kokiri Village - Saria's House" (Saria's House)
|
||||||
{ "50:" GFXP_HIRAGANA "コキリノムラ " GFXP_KATAKANA "サリア" GFXP_HIRAGANA "ノイエ", Select_LoadGame, ENTR_KOKIRI_HOME5_0 },
|
{ "50:" GFXP_HIRAGANA "コキリノムラ " GFXP_KATAKANA "サリア" GFXP_HIRAGANA "ノイエ", MapSelect_LoadGame, ENTR_KOKIRI_HOME5_0 },
|
||||||
// "51: Stable" (Stable)
|
// "51: Stable" (Stable)
|
||||||
{ "51:" GFXP_HIRAGANA "ウマゴヤ", Select_LoadGame, ENTR_MALON_STABLE_0 },
|
{ "51:" GFXP_HIRAGANA "ウマゴヤ", MapSelect_LoadGame, ENTR_MALON_STABLE_0 },
|
||||||
// "52: Grave Keeper's House" (Gravekeeper's Hut)
|
// "52: Grave Keeper's House" (Gravekeeper's Hut)
|
||||||
{ "52:" GFXP_HIRAGANA "ハカモリノイエ", Select_LoadGame, ENTR_HUT_0 },
|
{ "52:" GFXP_HIRAGANA "ハカモリノイエ", MapSelect_LoadGame, ENTR_HUT_0 },
|
||||||
// "53: Back Alley - Dog Lady's House" (Back Alley House)
|
// "53: Back Alley - Dog Lady's House" (Back Alley House)
|
||||||
{ "53:" GFXP_HIRAGANA "ウラロジ イヌオバサンノイエ", Select_LoadGame, ENTR_IMPA_0 },
|
{ "53:" GFXP_HIRAGANA "ウラロジ イヌオバサンノイエ", MapSelect_LoadGame, ENTR_IMPA_0 },
|
||||||
// "54: Kakariko Village - Impa's House" (Impa's House)
|
// "54: Kakariko Village - Impa's House" (Impa's House)
|
||||||
{ "54:" GFXP_HIRAGANA "カカリコムラ " GFXP_KATAKANA "インパ" GFXP_HIRAGANA "ノイエ", Select_LoadGame, ENTR_LABO_0 },
|
{ "54:" GFXP_HIRAGANA "カカリコムラ " GFXP_KATAKANA "インパ" GFXP_HIRAGANA "ノイエ", MapSelect_LoadGame, ENTR_LABO_0 },
|
||||||
// "55: Hylia Laboratory" (Lakeside Laboratory)
|
// "55: Hylia Laboratory" (Lakeside Laboratory)
|
||||||
{ "55:" GFXP_KATAKANA "ハイリア" GFXP_HIRAGANA " ケンキュウジョ", Select_LoadGame, ENTR_HYLIA_LABO_0 },
|
{ "55:" GFXP_KATAKANA "ハイリア" GFXP_HIRAGANA " ケンキュウジョ", MapSelect_LoadGame, ENTR_HYLIA_LABO_0 },
|
||||||
// "56: Tent" (Carpenters' Tent)
|
// "56: Tent" (Carpenters' Tent)
|
||||||
{ "56:" GFXP_KATAKANA "テント", Select_LoadGame, ENTR_TENT_0 },
|
{ "56:" GFXP_KATAKANA "テント", MapSelect_LoadGame, ENTR_TENT_0 },
|
||||||
// "57: Shield Shop" (Bazaar)
|
// "57: Shield Shop" (Bazaar)
|
||||||
{ "57:" GFXP_HIRAGANA "タテノミセ", Select_LoadGame, ENTR_SHOP1_0 },
|
{ "57:" GFXP_HIRAGANA "タテノミセ", MapSelect_LoadGame, ENTR_SHOP1_0 },
|
||||||
// "58: Kokiri Shop" (Kokiri Shop)
|
// "58: Kokiri Shop" (Kokiri Shop)
|
||||||
{ "58:" GFXP_HIRAGANA "コキリゾクノミセ", Select_LoadGame, ENTR_KOKIRI_SHOP_0 },
|
{ "58:" GFXP_HIRAGANA "コキリゾクノミセ", MapSelect_LoadGame, ENTR_KOKIRI_SHOP_0 },
|
||||||
// "59: Goron Shop" (Goron Shop)
|
// "59: Goron Shop" (Goron Shop)
|
||||||
{ "59:" GFXP_KATAKANA "ゴロン" GFXP_HIRAGANA "ノミセ", Select_LoadGame, ENTR_GOLON_0 },
|
{ "59:" GFXP_KATAKANA "ゴロン" GFXP_HIRAGANA "ノミセ", MapSelect_LoadGame, ENTR_GOLON_0 },
|
||||||
// "60: Zora Shop" (Zora Shop)
|
// "60: Zora Shop" (Zora Shop)
|
||||||
{ "60:" GFXP_KATAKANA "ゾーラ" GFXP_HIRAGANA "ノミセ", Select_LoadGame, ENTR_ZOORA_0 },
|
{ "60:" GFXP_KATAKANA "ゾーラ" GFXP_HIRAGANA "ノミセ", MapSelect_LoadGame, ENTR_ZOORA_0 },
|
||||||
// "61: Kakariko Village - Potion Shop" (Kakariko Potion Shop)
|
// "61: Kakariko Village - Potion Shop" (Kakariko Potion Shop)
|
||||||
{ "61:" GFXP_KATAKANA "カカリコ" GFXP_HIRAGANA "ムラ クスリヤ", Select_LoadGame, ENTR_DRAG_0 },
|
{ "61:" GFXP_KATAKANA "カカリコ" GFXP_HIRAGANA "ムラ クスリヤ", MapSelect_LoadGame, ENTR_DRAG_0 },
|
||||||
// "62: Castle Town - Potion Shop" (Market Potion Shop)
|
// "62: Castle Town - Potion Shop" (Market Potion Shop)
|
||||||
{ "62:" GFXP_HIRAGANA "ジョウカマチ クスリヤ", Select_LoadGame, ENTR_ALLEY_SHOP_0 },
|
{ "62:" GFXP_HIRAGANA "ジョウカマチ クスリヤ", MapSelect_LoadGame, ENTR_ALLEY_SHOP_0 },
|
||||||
// "63: Back Alley - Night Shop" (Bombchu Shop)
|
// "63: Back Alley - Night Shop" (Bombchu Shop)
|
||||||
{ "63:" GFXP_HIRAGANA "ウラロジ ヨルノミセ", Select_LoadGame, ENTR_NIGHT_SHOP_0 },
|
{ "63:" GFXP_HIRAGANA "ウラロジ ヨルノミセ", MapSelect_LoadGame, ENTR_NIGHT_SHOP_0 },
|
||||||
// "64: Mask Shop" (Happy Mask Shop)
|
// "64: Mask Shop" (Happy Mask Shop)
|
||||||
{ "64:" GFXP_HIRAGANA "オメンヤ", Select_LoadGame, ENTR_FACE_SHOP_0 },
|
{ "64:" GFXP_HIRAGANA "オメンヤ", MapSelect_LoadGame, ENTR_FACE_SHOP_0 },
|
||||||
// "65: Gerudo Training Area" (Gerudo Training Ground)
|
// "65: Gerudo Training Area" (Gerudo Training Ground)
|
||||||
{ "65:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ノシュウレンジョウ", Select_LoadGame, ENTR_MEN_0 },
|
{ "65:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ノシュウレンジョウ", MapSelect_LoadGame, ENTR_MEN_0 },
|
||||||
// "66: Fairy Tree Dungeon" (Inside the Deku Tree)
|
// "66: Fairy Tree Dungeon" (Inside the Deku Tree)
|
||||||
{ "66:" GFXP_HIRAGANA "ヨウセイノキノ " GFXP_KATAKANA "ダンジョン", Select_LoadGame, ENTR_YDAN_0 },
|
{ "66:" GFXP_HIRAGANA "ヨウセイノキノ " GFXP_KATAKANA "ダンジョン", MapSelect_LoadGame, ENTR_YDAN_0 },
|
||||||
// "67: Fairy Tree Dungeon - Boss" (Gohma's Lair)
|
// "67: Fairy Tree Dungeon - Boss" (Gohma's Lair)
|
||||||
{ "67:" GFXP_HIRAGANA "ヨウセイノキノ " GFXP_KATAKANA "ダンジョン ボス", Select_LoadGame, ENTR_YDAN_BOSS_0 },
|
{ "67:" GFXP_HIRAGANA "ヨウセイノキノ " GFXP_KATAKANA "ダンジョン ボス", MapSelect_LoadGame, ENTR_YDAN_BOSS_0 },
|
||||||
// "68: Dondogo Dungeon" (Dodongo's Cavern)
|
// "68: Dondogo Dungeon" (Dodongo's Cavern)
|
||||||
{ "68:" GFXP_KATAKANA "ドドンゴ ダンジョン", Select_LoadGame, ENTR_DDAN_0 },
|
{ "68:" GFXP_KATAKANA "ドドンゴ ダンジョン", MapSelect_LoadGame, ENTR_DDAN_0 },
|
||||||
// "69: Dondogo Dungeon - Boss" (King Dodongo's Lair)
|
// "69: Dondogo Dungeon - Boss" (King Dodongo's Lair)
|
||||||
{ "69:" GFXP_KATAKANA "ドドンゴ ダンジョン ボス", Select_LoadGame, ENTR_DDAN_BOSS_0 },
|
{ "69:" GFXP_KATAKANA "ドドンゴ ダンジョン ボス", MapSelect_LoadGame, ENTR_DDAN_BOSS_0 },
|
||||||
// "70: Giant Fish Dungeon" (Inside Jabu-Jabu's Belly)
|
// "70: Giant Fish Dungeon" (Inside Jabu-Jabu's Belly)
|
||||||
{ "70:" GFXP_HIRAGANA "キョダイギョ " GFXP_KATAKANA "ダンジョン", Select_LoadGame, ENTR_BDAN_0 },
|
{ "70:" GFXP_HIRAGANA "キョダイギョ " GFXP_KATAKANA "ダンジョン", MapSelect_LoadGame, ENTR_BDAN_0 },
|
||||||
// "71: Giant Fish Dungeon - Boss" (Barinade's Lair)
|
// "71: Giant Fish Dungeon - Boss" (Barinade's Lair)
|
||||||
{ "71:" GFXP_HIRAGANA "キョダイギョ " GFXP_KATAKANA "ダンジョン ボス", Select_LoadGame, ENTR_BDAN_BOSS_0 },
|
{ "71:" GFXP_HIRAGANA "キョダイギョ " GFXP_KATAKANA "ダンジョン ボス", MapSelect_LoadGame, ENTR_BDAN_BOSS_0 },
|
||||||
// "72: Forest Temple" (Forest Temple)
|
// "72: Forest Temple" (Forest Temple)
|
||||||
{ "72:" GFXP_HIRAGANA "モリノシンデン", Select_LoadGame, ENTR_BMORI1_0 },
|
{ "72:" GFXP_HIRAGANA "モリノシンデン", MapSelect_LoadGame, ENTR_BMORI1_0 },
|
||||||
// "73: Forest Temple - Boss" (Phantom Ganon's Lair)
|
// "73: Forest Temple - Boss" (Phantom Ganon's Lair)
|
||||||
{ "73:" GFXP_HIRAGANA "モリノシンデン " GFXP_KATAKANA "ボス", Select_LoadGame, ENTR_MORIBOSSROOM_0 },
|
{ "73:" GFXP_HIRAGANA "モリノシンデン " GFXP_KATAKANA "ボス", MapSelect_LoadGame, ENTR_MORIBOSSROOM_0 },
|
||||||
// "74: Dungeon Below the Well" (Bottom of the Well)
|
// "74: Dungeon Below the Well" (Bottom of the Well)
|
||||||
{ "74:" GFXP_HIRAGANA "イドシタ " GFXP_KATAKANA "ダンジョン", Select_LoadGame, ENTR_HAKADANCH_0 },
|
{ "74:" GFXP_HIRAGANA "イドシタ " GFXP_KATAKANA "ダンジョン", MapSelect_LoadGame, ENTR_HAKADANCH_0 },
|
||||||
// "75: Dungeon Beneath the Graves" (Shadow Temple)
|
// "75: Dungeon Beneath the Graves" (Shadow Temple)
|
||||||
{ "75:" GFXP_HIRAGANA "ハカシタ " GFXP_KATAKANA "ダンジョン", Select_LoadGame, ENTR_HAKADAN_0 },
|
{ "75:" GFXP_HIRAGANA "ハカシタ " GFXP_KATAKANA "ダンジョン", MapSelect_LoadGame, ENTR_HAKADAN_0 },
|
||||||
// "76: Dungeon Beneath the Graves - Boss" (Bongo Bongo's Lair)
|
// "76: Dungeon Beneath the Graves - Boss" (Bongo Bongo's Lair)
|
||||||
{ "76:" GFXP_HIRAGANA "ハカシタ " GFXP_KATAKANA "ダンジョン ボス", Select_LoadGame, ENTR_HAKADAN_BS_0 },
|
{ "76:" GFXP_HIRAGANA "ハカシタ " GFXP_KATAKANA "ダンジョン ボス", MapSelect_LoadGame, ENTR_HAKADAN_BS_0 },
|
||||||
// "77: Fire Temple" (Fire Temple)
|
// "77: Fire Temple" (Fire Temple)
|
||||||
{ "77:" GFXP_HIRAGANA "ヒノシンデン", Select_LoadGame, ENTR_HIDAN_0 },
|
{ "77:" GFXP_HIRAGANA "ヒノシンデン", MapSelect_LoadGame, ENTR_HIDAN_0 },
|
||||||
// "78: Fire Temple - Boss" (Volvagia's Lair)
|
// "78: Fire Temple - Boss" (Volvagia's Lair)
|
||||||
{ "78:" GFXP_HIRAGANA "ヒノシンデン " GFXP_KATAKANA "ボス", Select_LoadGame, ENTR_FIRE_BS_0 },
|
{ "78:" GFXP_HIRAGANA "ヒノシンデン " GFXP_KATAKANA "ボス", MapSelect_LoadGame, ENTR_FIRE_BS_0 },
|
||||||
// "79: Water Temple" (Water Temple)
|
// "79: Water Temple" (Water Temple)
|
||||||
{ "79:" GFXP_HIRAGANA "ミズノシンデン", Select_LoadGame, ENTR_MIZUSIN_0 },
|
{ "79:" GFXP_HIRAGANA "ミズノシンデン", MapSelect_LoadGame, ENTR_MIZUSIN_0 },
|
||||||
// "80: Water Temple - Boss" (Morpha's Lair)
|
// "80: Water Temple - Boss" (Morpha's Lair)
|
||||||
{ "80:" GFXP_HIRAGANA "ミズノシンデン " GFXP_KATAKANA "ボス", Select_LoadGame, ENTR_MIZUSIN_BS_0 },
|
{ "80:" GFXP_HIRAGANA "ミズノシンデン " GFXP_KATAKANA "ボス", MapSelect_LoadGame, ENTR_MIZUSIN_BS_0 },
|
||||||
// "81: Evil Goddess Statue Dungeon" (Spirit Temple)
|
// "81: Evil Goddess Statue Dungeon" (Spirit Temple)
|
||||||
{ "81:" GFXP_HIRAGANA "ジャシンゾウ " GFXP_KATAKANA "ダンジョン", Select_LoadGame, ENTR_JYASINZOU_0 },
|
{ "81:" GFXP_HIRAGANA "ジャシンゾウ " GFXP_KATAKANA "ダンジョン", MapSelect_LoadGame, ENTR_JYASINZOU_0 },
|
||||||
// "82: Evil Goddess Statue Dungeon - Iron Knuckle" (Iron Knuckle's Lair)
|
// "82: Evil Goddess Statue Dungeon - Iron Knuckle" (Iron Knuckle's Lair)
|
||||||
{ "82:" GFXP_HIRAGANA "ジャシンゾウ " GFXP_KATAKANA "ダンジョン アイアンナック", Select_LoadGame, ENTR_JYASINBOSS_0 },
|
{ "82:" GFXP_HIRAGANA "ジャシンゾウ " GFXP_KATAKANA "ダンジョン アイアンナック", MapSelect_LoadGame, ENTR_JYASINBOSS_0 },
|
||||||
// "83: Evil Goddess Statue Dungeon - Boss" (Twinrova's Lair)
|
// "83: Evil Goddess Statue Dungeon - Boss" (Twinrova's Lair)
|
||||||
{ "83:" GFXP_HIRAGANA "ジャシンゾウ " GFXP_KATAKANA "ダンジョン ボス", Select_LoadGame, ENTR_JYASINBOSS_2 },
|
{ "83:" GFXP_HIRAGANA "ジャシンゾウ " GFXP_KATAKANA "ダンジョン ボス", MapSelect_LoadGame, ENTR_JYASINBOSS_2 },
|
||||||
// "84: Ganon's Tower" (Ganon's Tower)
|
// "84: Ganon's Tower" (Ganon's Tower)
|
||||||
{ "84:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ", Select_LoadGame, ENTR_GANON_0 },
|
{ "84:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ", MapSelect_LoadGame, ENTR_GANON_0 },
|
||||||
// "85: Ganon's Tower - Boss" (Ganondorf's Lair)
|
// "85: Ganon's Tower - Boss" (Ganondorf's Lair)
|
||||||
{ "85:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ" GFXP_KATAKANA "ボス", Select_LoadGame, ENTR_GANON_BOSS_0 },
|
{ "85:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ" GFXP_KATAKANA "ボス", MapSelect_LoadGame, ENTR_GANON_BOSS_0 },
|
||||||
// "86: Ice Cavern" (Ice Cavern)
|
// "86: Ice Cavern" (Ice Cavern)
|
||||||
{ "86:" GFXP_HIRAGANA "コオリノドウクツ", Select_LoadGame, ENTR_ICE_DOUKUTO_0 },
|
{ "86:" GFXP_HIRAGANA "コオリノドウクツ", MapSelect_LoadGame, ENTR_ICE_DOUKUTO_0 },
|
||||||
// "87: Relay Beneath the Graves" (Dampé's Grave)
|
// "87: Relay Beneath the Graves" (Dampé's Grave)
|
||||||
{ "87:" GFXP_HIRAGANA "ハカシタ" GFXP_KATAKANA "リレー", Select_LoadGame, ENTR_HAKASITARELAY_0 },
|
{ "87:" GFXP_HIRAGANA "ハカシタ" GFXP_KATAKANA "リレー", MapSelect_LoadGame, ENTR_HAKASITARELAY_0 },
|
||||||
// "88: Ganon's Basement Dungeon" (Inside Ganon's Castle)
|
// "88: Ganon's Basement Dungeon" (Inside Ganon's Castle)
|
||||||
{ "88:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "チカ " GFXP_KATAKANA "ダンジョン", Select_LoadGame, ENTR_GANONTIKA_0 },
|
{ "88:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "チカ " GFXP_KATAKANA "ダンジョン", MapSelect_LoadGame, ENTR_GANONTIKA_0 },
|
||||||
// "89: Final Battle With Ganon - Cutscene & Battle" (Ganondorf's Death Scene & Tower Escape Exterior)
|
// "89: Final Battle With Ganon - Cutscene & Battle" (Ganondorf's Death Scene & Tower Escape Exterior)
|
||||||
{ "89:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "サイシュウセン " GFXP_KATAKANA "デモ & バトル", Select_LoadGame,
|
{ "89:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "サイシュウセン " GFXP_KATAKANA "デモ & バトル", MapSelect_LoadGame,
|
||||||
ENTR_GANON_DEMO_0 },
|
ENTR_GANON_DEMO_0 },
|
||||||
// "90: Ganon's Tower Aftermath 1" (Escaping Ganon's Tower 1)
|
// "90: Ganon's Tower Aftermath 1" (Escaping Ganon's Tower 1)
|
||||||
{ "90:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ ソノゴ 1", Select_LoadGame, ENTR_GANON_SONOGO_0 },
|
{ "90:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ ソノゴ 1", MapSelect_LoadGame, ENTR_GANON_SONOGO_0 },
|
||||||
// "91: Ganon's Tower Aftermath 2" (Escaping Ganon's Tower 2)
|
// "91: Ganon's Tower Aftermath 2" (Escaping Ganon's Tower 2)
|
||||||
{ "91:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ ソノゴ 2", Select_LoadGame, ENTR_GANON_SONOGO_2 },
|
{ "91:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ ソノゴ 2", MapSelect_LoadGame, ENTR_GANON_SONOGO_2 },
|
||||||
// "92: Ganon's Tower Aftermath 3" (Escaping Ganon's Tower 3)
|
// "92: Ganon's Tower Aftermath 3" (Escaping Ganon's Tower 3)
|
||||||
{ "92:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ ソノゴ 3", Select_LoadGame, ENTR_GANON_SONOGO_4 },
|
{ "92:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ ソノゴ 3", MapSelect_LoadGame, ENTR_GANON_SONOGO_4 },
|
||||||
// "93: Ganon's Tower Aftermath 4" (Escaping Ganon's Tower 4)
|
// "93: Ganon's Tower Aftermath 4" (Escaping Ganon's Tower 4)
|
||||||
{ "93:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ ソノゴ 4", Select_LoadGame, ENTR_GANON_SONOGO_6 },
|
{ "93:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "ノトウ ソノゴ 4", MapSelect_LoadGame, ENTR_GANON_SONOGO_6 },
|
||||||
// "94: Ganon's Basement Aftermath" (Escaping Ganon's Castle)
|
// "94: Ganon's Basement Aftermath" (Escaping Ganon's Castle)
|
||||||
{ "94:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "チカ ソノゴ", Select_LoadGame, ENTR_GANONTIKA_SONOGO_0 },
|
{ "94:" GFXP_KATAKANA "ガノン" GFXP_HIRAGANA "チカ ソノゴ", MapSelect_LoadGame, ENTR_GANONTIKA_SONOGO_0 },
|
||||||
// "95: Gerudo Passage 1-2" (Thieves' Hideout 1)
|
// "95: Gerudo Passage 1-2" (Thieves' Hideout 1)
|
||||||
{ "95:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 1-2", Select_LoadGame, ENTR_GERUDOWAY_0 },
|
{ "95:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 1-2", MapSelect_LoadGame, ENTR_GERUDOWAY_0 },
|
||||||
// "96: Gerudo Passage 3-4 9-10" (Thieves' Hideout 2)
|
// "96: Gerudo Passage 3-4 9-10" (Thieves' Hideout 2)
|
||||||
{ "96:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 3-4 9-10", Select_LoadGame, ENTR_GERUDOWAY_2 },
|
{ "96:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 3-4 9-10", MapSelect_LoadGame, ENTR_GERUDOWAY_2 },
|
||||||
// "97: Gerudo Passage 5-6" (Thieves' Hideout 3)
|
// "97: Gerudo Passage 5-6" (Thieves' Hideout 3)
|
||||||
{ "97:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 5-6", Select_LoadGame, ENTR_GERUDOWAY_4 },
|
{ "97:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 5-6", MapSelect_LoadGame, ENTR_GERUDOWAY_4 },
|
||||||
// "98: Gerudo Passage 7-8" (Thieves' Hideout 4)
|
// "98: Gerudo Passage 7-8" (Thieves' Hideout 4)
|
||||||
{ "98:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 7-8", Select_LoadGame, ENTR_GERUDOWAY_6 },
|
{ "98:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 7-8", MapSelect_LoadGame, ENTR_GERUDOWAY_6 },
|
||||||
// "99: Gerudo Passage 11-12" (Thieves' Hideout 5)
|
// "99: Gerudo Passage 11-12" (Thieves' Hideout 5)
|
||||||
{ "99:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 11-12", Select_LoadGame, ENTR_GERUDOWAY_10 },
|
{ "99:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 11-12", MapSelect_LoadGame, ENTR_GERUDOWAY_10 },
|
||||||
// "100: Gerudo Passage 13" (Thieves' Hideout 6)
|
// "100: Gerudo Passage 13" (Thieves' Hideout 6)
|
||||||
{ "100:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 13", Select_LoadGame, ENTR_GERUDOWAY_12 },
|
{ "100:" GFXP_KATAKANA "ゲルド" GFXP_HIRAGANA "ツウロ 13", MapSelect_LoadGame, ENTR_GERUDOWAY_12 },
|
||||||
// "101: Hidden Dive Hole 0" (Grotto 0 - Gossip Stone & Chest)
|
// "101: Hidden Dive Hole 0" (Grotto 0 - Gossip Stone & Chest)
|
||||||
{ "101:" GFXP_HIRAGANA "カクシトビコミアナ 0", Select_LoadGame, ENTR_KAKUSIANA_0 },
|
{ "101:" GFXP_HIRAGANA "カクシトビコミアナ 0", MapSelect_LoadGame, ENTR_KAKUSIANA_0 },
|
||||||
// "102: Hidden Dive Hole 1" (Grotto 1 - Skulltula & Gold Skulltula)
|
// "102: Hidden Dive Hole 1" (Grotto 1 - Skulltula & Gold Skulltula)
|
||||||
{ "102:" GFXP_HIRAGANA "カクシトビコミアナ 1", Select_LoadGame, ENTR_KAKUSIANA_1 },
|
{ "102:" GFXP_HIRAGANA "カクシトビコミアナ 1", MapSelect_LoadGame, ENTR_KAKUSIANA_1 },
|
||||||
// "103: Hidden Dive Hole 2" (Grotto 2 - Business Scrub & Heart Piece)
|
// "103: Hidden Dive Hole 2" (Grotto 2 - Business Scrub & Heart Piece)
|
||||||
{ "103:" GFXP_HIRAGANA "カクシトビコミアナ 2", Select_LoadGame, ENTR_KAKUSIANA_2 },
|
{ "103:" GFXP_HIRAGANA "カクシトビコミアナ 2", MapSelect_LoadGame, ENTR_KAKUSIANA_2 },
|
||||||
// "104: Hidden Dive Hole 3" (Grotto 3 - Redeads)
|
// "104: Hidden Dive Hole 3" (Grotto 3 - Redeads)
|
||||||
{ "104:" GFXP_HIRAGANA "カクシトビコミアナ 3", Select_LoadGame, ENTR_KAKUSIANA_3 },
|
{ "104:" GFXP_HIRAGANA "カクシトビコミアナ 3", MapSelect_LoadGame, ENTR_KAKUSIANA_3 },
|
||||||
// "105: Hidden Dive Hole 4" (Grotto 4 - 3 Business Scrubs)
|
// "105: Hidden Dive Hole 4" (Grotto 4 - 3 Business Scrubs)
|
||||||
{ "105:" GFXP_HIRAGANA "カクシトビコミアナ 4", Select_LoadGame, ENTR_KAKUSIANA_4 },
|
{ "105:" GFXP_HIRAGANA "カクシトビコミアナ 4", MapSelect_LoadGame, ENTR_KAKUSIANA_4 },
|
||||||
// "106: Hidden Dive Hole 5" (Grotto 5 - Gossip Stone, Skulltula, Cow)
|
// "106: Hidden Dive Hole 5" (Grotto 5 - Gossip Stone, Skulltula, Cow)
|
||||||
{ "106:" GFXP_HIRAGANA "カクシトビコミアナ 5", Select_LoadGame, ENTR_KAKUSIANA_5 },
|
{ "106:" GFXP_HIRAGANA "カクシトビコミアナ 5", MapSelect_LoadGame, ENTR_KAKUSIANA_5 },
|
||||||
// "107: Hidden Dive Hole 6" (Grotto 6 - Octorok)
|
// "107: Hidden Dive Hole 6" (Grotto 6 - Octorok)
|
||||||
{ "107:" GFXP_HIRAGANA "カクシトビコミアナ 6", Select_LoadGame, ENTR_KAKUSIANA_6 },
|
{ "107:" GFXP_HIRAGANA "カクシトビコミアナ 6", MapSelect_LoadGame, ENTR_KAKUSIANA_6 },
|
||||||
// "108: Hidden Dive Hole 7" (Grotto 7 - Business Scrub & Deku Nut Upgrade)
|
// "108: Hidden Dive Hole 7" (Grotto 7 - Business Scrub & Deku Nut Upgrade)
|
||||||
{ "108:" GFXP_HIRAGANA "カクシトビコミアナ 7", Select_LoadGame, ENTR_KAKUSIANA_7 },
|
{ "108:" GFXP_HIRAGANA "カクシトビコミアナ 7", MapSelect_LoadGame, ENTR_KAKUSIANA_7 },
|
||||||
// "109: Hidden Dive Hole 8" (Grotto 8 - 2 Wolfos)
|
// "109: Hidden Dive Hole 8" (Grotto 8 - 2 Wolfos)
|
||||||
{ "109:" GFXP_HIRAGANA "カクシトビコミアナ 8", Select_LoadGame, ENTR_KAKUSIANA_8 },
|
{ "109:" GFXP_HIRAGANA "カクシトビコミアナ 8", MapSelect_LoadGame, ENTR_KAKUSIANA_8 },
|
||||||
// "110: Hidden Dive Hole 9" (Grotto 9 - Bombable Walls)
|
// "110: Hidden Dive Hole 9" (Grotto 9 - Bombable Walls)
|
||||||
{ "110:" GFXP_HIRAGANA "カクシトビコミアナ 9", Select_LoadGame, ENTR_KAKUSIANA_9 },
|
{ "110:" GFXP_HIRAGANA "カクシトビコミアナ 9", MapSelect_LoadGame, ENTR_KAKUSIANA_9 },
|
||||||
// "111: Hidden Dive Hole 10" (Grotto 10 - 2 Business Scrubs)
|
// "111: Hidden Dive Hole 10" (Grotto 10 - 2 Business Scrubs)
|
||||||
{ "111:" GFXP_HIRAGANA "カクシトビコミアナ 10", Select_LoadGame, ENTR_KAKUSIANA_10 },
|
{ "111:" GFXP_HIRAGANA "カクシトビコミアナ 10", MapSelect_LoadGame, ENTR_KAKUSIANA_10 },
|
||||||
// "112: Hidden Dive Hole 11" (Grotto 11 - Tektite & Heart Piece)
|
// "112: Hidden Dive Hole 11" (Grotto 11 - Tektite & Heart Piece)
|
||||||
{ "112:" GFXP_HIRAGANA "カクシトビコミアナ 11", Select_LoadGame, ENTR_KAKUSIANA_11 },
|
{ "112:" GFXP_HIRAGANA "カクシトビコミアナ 11", MapSelect_LoadGame, ENTR_KAKUSIANA_11 },
|
||||||
// "113: Hidden Dive Hole 12" (Grotto 12 - Deku Stage)
|
// "113: Hidden Dive Hole 12" (Grotto 12 - Deku Stage)
|
||||||
{ "113:" GFXP_HIRAGANA "カクシトビコミアナ 12", Select_LoadGame, ENTR_KAKUSIANA_12 },
|
{ "113:" GFXP_HIRAGANA "カクシトビコミアナ 12", MapSelect_LoadGame, ENTR_KAKUSIANA_12 },
|
||||||
// "114: Hidden Dive Hole 13" (Grotto 13 - Rupees & Cow)
|
// "114: Hidden Dive Hole 13" (Grotto 13 - Rupees & Cow)
|
||||||
{ "114:" GFXP_HIRAGANA "カクシトビコミアナ 13", Select_LoadGame, ENTR_KAKUSIANA_13 },
|
{ "114:" GFXP_HIRAGANA "カクシトビコミアナ 13", MapSelect_LoadGame, ENTR_KAKUSIANA_13 },
|
||||||
// "115: Hyrule Cutscenes" (Cutscene Map)
|
// "115: Hyrule Cutscenes" (Cutscene Map)
|
||||||
{ "115:" GFXP_KATAKANA "ハイラル デモ", Select_LoadGame, ENTR_HIRAL_DEMO_0 },
|
{ "115:" GFXP_KATAKANA "ハイラル デモ", MapSelect_LoadGame, ENTR_HIRAL_DEMO_0 },
|
||||||
// "116: Special Room (Treasure Chest Warp)" (Ganondorf Test Room)
|
// "116: Special Room (Treasure Chest Warp)" (Ganondorf Test Room)
|
||||||
{ "116:" GFXP_HIRAGANA "ベッシツ (タカラバコ" GFXP_KATAKANA "ワープ)", Select_LoadGame, ENTR_BESITU_0 },
|
{ "116:" GFXP_HIRAGANA "ベッシツ (タカラバコ" GFXP_KATAKANA "ワープ)", MapSelect_LoadGame, ENTR_BESITU_0 },
|
||||||
// "117: Sasaki Test" (Sasa Test)
|
// "117: Sasaki Test" (Sasa Test)
|
||||||
{ "117:" GFXP_HIRAGANA "ササ" GFXP_KATAKANA "テスト", Select_LoadGame, ENTR_SASATEST_0 },
|
{ "117:" GFXP_HIRAGANA "ササ" GFXP_KATAKANA "テスト", MapSelect_LoadGame, ENTR_SASATEST_0 },
|
||||||
// "118: Test Map" (Jungle Gym)
|
// "118: Test Map" (Jungle Gym)
|
||||||
{ "118:" GFXP_KATAKANA "テストマップ", Select_LoadGame, ENTR_TEST01_0 },
|
{ "118:" GFXP_KATAKANA "テストマップ", MapSelect_LoadGame, ENTR_TEST01_0 },
|
||||||
// "119: Test Room" (Treasure Chest Room)
|
// "119: Test Room" (Treasure Chest Room)
|
||||||
{ "119:" GFXP_KATAKANA "テストルーム", Select_LoadGame, ENTR_TESTROOM_0 },
|
{ "119:" GFXP_KATAKANA "テストルーム", MapSelect_LoadGame, ENTR_TESTROOM_0 },
|
||||||
// "120: Stalfos Miniboss Room" (Stalfos Miniboss Room)
|
// "120: Stalfos Miniboss Room" (Stalfos Miniboss Room)
|
||||||
{ "120:" GFXP_HIRAGANA "チュウ" GFXP_KATAKANA "スタロフォス" GFXP_HIRAGANA "ベヤ", Select_LoadGame, ENTR_SYOTES_0 },
|
{ "120:" GFXP_HIRAGANA "チュウ" GFXP_KATAKANA "スタロフォス" GFXP_HIRAGANA "ベヤ", MapSelect_LoadGame, ENTR_SYOTES_0 },
|
||||||
// "121: Boss Stalfos Room" (Stalfos Boss Room)
|
// "121: Boss Stalfos Room" (Stalfos Boss Room)
|
||||||
{ "121:" GFXP_KATAKANA "ボススタロフォス" GFXP_HIRAGANA "ベヤ", Select_LoadGame, ENTR_SYOTES2_0 },
|
{ "121:" GFXP_KATAKANA "ボススタロフォス" GFXP_HIRAGANA "ベヤ", MapSelect_LoadGame, ENTR_SYOTES2_0 },
|
||||||
// "122: Stal" (Sutaru)
|
// "122: Stal" (Sutaru)
|
||||||
{ "122:Sutaru", Select_LoadGame, ENTR_SUTARU_0 },
|
{ "122:Sutaru", MapSelect_LoadGame, ENTR_SUTARU_0 },
|
||||||
// "123: Test Area" (Shooting Gallery)
|
// "123: Test Area" (Shooting Gallery)
|
||||||
{ "123:jikkenjyou", Select_LoadGame, ENTR_TEST_SYATEKIJYOU_0 },
|
{ "123:jikkenjyou", MapSelect_LoadGame, ENTR_TEST_SYATEKIJYOU_0 },
|
||||||
// "124: Depth Test" (Depth Test)
|
// "124: Depth Test" (Depth Test)
|
||||||
{ "124:depth" GFXP_KATAKANA "テスト", Select_LoadGame, ENTR_DEPTH_TEST_0 },
|
{ "124:depth" GFXP_KATAKANA "テスト", MapSelect_LoadGame, ENTR_DEPTH_TEST_0 },
|
||||||
// "125: Hyrule Garden Game 2" (Early Hyrule Garden Game)
|
// "125: Hyrule Garden Game 2" (Early Hyrule Garden Game)
|
||||||
{ "125:" GFXP_KATAKANA "ハイラル" GFXP_HIRAGANA "ニワ" GFXP_KATAKANA "ゲーム2", Select_LoadGame, ENTR_HAIRAL_NIWA2_0 },
|
{ "125:" GFXP_KATAKANA "ハイラル" GFXP_HIRAGANA "ニワ" GFXP_KATAKANA "ゲーム2", MapSelect_LoadGame, ENTR_HAIRAL_NIWA2_0 },
|
||||||
// "title" (Title Screen)
|
// "title" (Title Screen)
|
||||||
{ "title", (void*)Select_LoadTitle, 0 },
|
{ "title", (void*)MapSelect_LoadTitle, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
void Select_UpdateMenu(SelectContext* this) {
|
void MapSelect_UpdateMenu(MapSelectState* this) {
|
||||||
Input* input = &this->state.input[0];
|
Input* input = &this->state.input[0];
|
||||||
s32 pad;
|
s32 pad;
|
||||||
SceneSelectEntry* selectedScene;
|
SceneSelectEntry* selectedScene;
|
||||||
|
@ -506,7 +506,7 @@ void Select_UpdateMenu(SelectContext* this) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_PrintMenu(SelectContext* this, GfxPrint* printer) {
|
void MapSelect_PrintMenu(MapSelectState* this, GfxPrint* printer) {
|
||||||
s32 scene;
|
s32 scene;
|
||||||
s32 i;
|
s32 i;
|
||||||
char* name;
|
char* name;
|
||||||
|
@ -566,7 +566,7 @@ static const char* sLoadingMessages[] = {
|
||||||
GFXP_HIRAGANA "アワテナイアワテナイ。ヒトヤスミヒトヤスミ。",
|
GFXP_HIRAGANA "アワテナイアワテナイ。ヒトヤスミヒトヤスミ。",
|
||||||
};
|
};
|
||||||
|
|
||||||
void Select_PrintLoadingMessage(SelectContext* this, GfxPrint* printer) {
|
void MapSelect_PrintLoadingMessage(MapSelectState* this, GfxPrint* printer) {
|
||||||
s32 randomMsg;
|
s32 randomMsg;
|
||||||
|
|
||||||
GfxPrint_SetPos(printer, 10, 15);
|
GfxPrint_SetPos(printer, 10, 15);
|
||||||
|
@ -580,13 +580,13 @@ static const char* sAgeLabels[] = {
|
||||||
GFXP_HIRAGANA "5(ワカスギ)", // "5(very young)"
|
GFXP_HIRAGANA "5(ワカスギ)", // "5(very young)"
|
||||||
};
|
};
|
||||||
|
|
||||||
void Select_PrintAgeSetting(SelectContext* this, GfxPrint* printer, s32 age) {
|
void MapSelect_PrintAgeSetting(MapSelectState* this, GfxPrint* printer, s32 age) {
|
||||||
GfxPrint_SetPos(printer, 4, 26);
|
GfxPrint_SetPos(printer, 4, 26);
|
||||||
GfxPrint_SetColor(printer, 255, 255, 55, 255);
|
GfxPrint_SetColor(printer, 255, 255, 55, 255);
|
||||||
GfxPrint_Printf(printer, "Age:%s", sAgeLabels[age]);
|
GfxPrint_Printf(printer, "Age:%s", sAgeLabels[age]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_PrintCutsceneSetting(SelectContext* this, GfxPrint* printer, u16 csIndex) {
|
void MapSelect_PrintCutsceneSetting(MapSelectState* this, GfxPrint* printer, u16 csIndex) {
|
||||||
char* label;
|
char* label;
|
||||||
|
|
||||||
GfxPrint_SetPos(printer, 4, 25);
|
GfxPrint_SetPos(printer, 4, 25);
|
||||||
|
@ -643,7 +643,7 @@ void Select_PrintCutsceneSetting(SelectContext* this, GfxPrint* printer, u16 csI
|
||||||
GfxPrint_Printf(printer, "Stage:" GFXP_KATAKANA "%s", label);
|
GfxPrint_Printf(printer, "Stage:" GFXP_KATAKANA "%s", label);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_DrawMenu(SelectContext* this) {
|
void MapSelect_DrawMenu(MapSelectState* this) {
|
||||||
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
||||||
GfxPrint* printer;
|
GfxPrint* printer;
|
||||||
|
|
||||||
|
@ -658,16 +658,16 @@ void Select_DrawMenu(SelectContext* this) {
|
||||||
printer = alloca(sizeof(GfxPrint));
|
printer = alloca(sizeof(GfxPrint));
|
||||||
GfxPrint_Init(printer);
|
GfxPrint_Init(printer);
|
||||||
GfxPrint_Open(printer, POLY_OPA_DISP);
|
GfxPrint_Open(printer, POLY_OPA_DISP);
|
||||||
Select_PrintMenu(this, printer);
|
MapSelect_PrintMenu(this, printer);
|
||||||
Select_PrintAgeSetting(this, printer, ((void)0, gSaveContext.linkAge));
|
MapSelect_PrintAgeSetting(this, printer, ((void)0, gSaveContext.linkAge));
|
||||||
Select_PrintCutsceneSetting(this, printer, ((void)0, gSaveContext.cutsceneIndex));
|
MapSelect_PrintCutsceneSetting(this, printer, ((void)0, gSaveContext.cutsceneIndex));
|
||||||
POLY_OPA_DISP = GfxPrint_Close(printer);
|
POLY_OPA_DISP = GfxPrint_Close(printer);
|
||||||
GfxPrint_Destroy(printer);
|
GfxPrint_Destroy(printer);
|
||||||
|
|
||||||
CLOSE_DISPS(gfxCtx, "../z_select.c", 966);
|
CLOSE_DISPS(gfxCtx, "../z_select.c", 966);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_DrawLoadingScreen(SelectContext* this) {
|
void MapSelect_DrawLoadingScreen(MapSelectState* this) {
|
||||||
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
||||||
GfxPrint* printer;
|
GfxPrint* printer;
|
||||||
|
|
||||||
|
@ -682,14 +682,14 @@ void Select_DrawLoadingScreen(SelectContext* this) {
|
||||||
printer = alloca(sizeof(GfxPrint));
|
printer = alloca(sizeof(GfxPrint));
|
||||||
GfxPrint_Init(printer);
|
GfxPrint_Init(printer);
|
||||||
GfxPrint_Open(printer, POLY_OPA_DISP);
|
GfxPrint_Open(printer, POLY_OPA_DISP);
|
||||||
Select_PrintLoadingMessage(this, printer);
|
MapSelect_PrintLoadingMessage(this, printer);
|
||||||
POLY_OPA_DISP = GfxPrint_Close(printer);
|
POLY_OPA_DISP = GfxPrint_Close(printer);
|
||||||
GfxPrint_Destroy(printer);
|
GfxPrint_Destroy(printer);
|
||||||
|
|
||||||
CLOSE_DISPS(gfxCtx, "../z_select.c", 1006);
|
CLOSE_DISPS(gfxCtx, "../z_select.c", 1006);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_Draw(SelectContext* this) {
|
void MapSelect_Draw(MapSelectState* this) {
|
||||||
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
GraphicsContext* gfxCtx = this->state.gfxCtx;
|
||||||
|
|
||||||
OPEN_DISPS(gfxCtx, "../z_select.c", 1013);
|
OPEN_DISPS(gfxCtx, "../z_select.c", 1013);
|
||||||
|
@ -700,34 +700,34 @@ void Select_Draw(SelectContext* this) {
|
||||||
View_Apply(&this->view, VIEW_ALL);
|
View_Apply(&this->view, VIEW_ALL);
|
||||||
|
|
||||||
if (!this->state.running) {
|
if (!this->state.running) {
|
||||||
Select_DrawLoadingScreen(this);
|
MapSelect_DrawLoadingScreen(this);
|
||||||
} else {
|
} else {
|
||||||
Select_DrawMenu(this);
|
MapSelect_DrawMenu(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
CLOSE_DISPS(gfxCtx, "../z_select.c", 1037);
|
CLOSE_DISPS(gfxCtx, "../z_select.c", 1037);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_Main(GameState* thisx) {
|
void MapSelect_Main(GameState* thisx) {
|
||||||
SelectContext* this = (SelectContext*)thisx;
|
MapSelectState* this = (MapSelectState*)thisx;
|
||||||
|
|
||||||
Select_UpdateMenu(this);
|
MapSelect_UpdateMenu(this);
|
||||||
Select_Draw(this);
|
MapSelect_Draw(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_Destroy(GameState* thisx) {
|
void MapSelect_Destroy(GameState* thisx) {
|
||||||
osSyncPrintf("%c", BEL);
|
osSyncPrintf("%c", BEL);
|
||||||
// "view_cleanup will hang, so it won't be called"
|
// "view_cleanup will hang, so it won't be called"
|
||||||
osSyncPrintf("*** view_cleanupはハングアップするので、呼ばない ***\n");
|
osSyncPrintf("*** view_cleanupはハングアップするので、呼ばない ***\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Select_Init(GameState* thisx) {
|
void MapSelect_Init(GameState* thisx) {
|
||||||
SelectContext* this = (SelectContext*)thisx;
|
MapSelectState* this = (MapSelectState*)thisx;
|
||||||
u32 size;
|
u32 size;
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
this->state.main = Select_Main;
|
this->state.main = MapSelect_Main;
|
||||||
this->state.destroy = Select_Destroy;
|
this->state.destroy = MapSelect_Destroy;
|
||||||
this->scenes = sScenes;
|
this->scenes = sScenes;
|
||||||
this->topDisplayedScene = 0;
|
this->topDisplayedScene = 0;
|
||||||
this->currentScene = 0;
|
this->currentScene = 0;
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include "alloca.h"
|
#include "alloca.h"
|
||||||
#include "assets/textures/nintendo_rogo_static/nintendo_rogo_static.h"
|
#include "assets/textures/nintendo_rogo_static/nintendo_rogo_static.h"
|
||||||
|
|
||||||
void Title_PrintBuildInfo(Gfx** gfxp) {
|
void ConsoleLogo_PrintBuildInfo(Gfx** gfxp) {
|
||||||
Gfx* g;
|
Gfx* g;
|
||||||
GfxPrint* printer;
|
GfxPrint* printer;
|
||||||
|
|
||||||
|
@ -32,11 +32,11 @@ void Title_PrintBuildInfo(Gfx** gfxp) {
|
||||||
|
|
||||||
// Note: In other rom versions this function also updates unk_1D4, coverAlpha, addAlpha, visibleDuration to calculate
|
// Note: In other rom versions this function also updates unk_1D4, coverAlpha, addAlpha, visibleDuration to calculate
|
||||||
// the fade-in/fade-out + the duration of the n64 logo animation
|
// the fade-in/fade-out + the duration of the n64 logo animation
|
||||||
void Title_Calc(TitleContext* this) {
|
void ConsoleLogo_Calc(ConsoleLogoState* this) {
|
||||||
this->exit = true;
|
this->exit = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Title_SetupView(TitleContext* this, f32 x, f32 y, f32 z) {
|
void ConsoleLogo_SetupView(ConsoleLogoState* this, f32 x, f32 y, f32 z) {
|
||||||
View* view = &this->view;
|
View* view = &this->view;
|
||||||
Vec3f eye;
|
Vec3f eye;
|
||||||
Vec3f lookAt;
|
Vec3f lookAt;
|
||||||
|
@ -54,7 +54,7 @@ void Title_SetupView(TitleContext* this, f32 x, f32 y, f32 z) {
|
||||||
View_Apply(view, VIEW_ALL);
|
View_Apply(view, VIEW_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Title_Draw(TitleContext* this) {
|
void ConsoleLogo_Draw(ConsoleLogoState* this) {
|
||||||
static s16 sTitleRotY = 0;
|
static s16 sTitleRotY = 0;
|
||||||
static Lights1 sTitleLights = gdSPDefLights1(100, 100, 100, 255, 255, 255, 69, 69, 69);
|
static Lights1 sTitleLights = gdSPDefLights1(100, 100, 100, 255, 255, 255, 69, 69, 69);
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ void Title_Draw(TitleContext* this) {
|
||||||
|
|
||||||
func_8002EABC(&v1, &v2, &v3, this->state.gfxCtx);
|
func_8002EABC(&v1, &v2, &v3, this->state.gfxCtx);
|
||||||
gSPSetLights1(POLY_OPA_DISP++, sTitleLights);
|
gSPSetLights1(POLY_OPA_DISP++, sTitleLights);
|
||||||
Title_SetupView(this, 0, 150.0, 300.0);
|
ConsoleLogo_SetupView(this, 0, 150.0, 300.0);
|
||||||
Gfx_SetupDL_25Opa(this->state.gfxCtx);
|
Gfx_SetupDL_25Opa(this->state.gfxCtx);
|
||||||
Matrix_Translate(-53.0, -5.0, 0, MTXMODE_NEW);
|
Matrix_Translate(-53.0, -5.0, 0, MTXMODE_NEW);
|
||||||
Matrix_Scale(1.0, 1.0, 1.0, MTXMODE_APPLY);
|
Matrix_Scale(1.0, 1.0, 1.0, MTXMODE_APPLY);
|
||||||
|
@ -117,22 +117,22 @@ void Title_Draw(TitleContext* this) {
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_title.c", 483);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_title.c", 483);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Title_Main(GameState* thisx) {
|
void ConsoleLogo_Main(GameState* thisx) {
|
||||||
TitleContext* this = (TitleContext*)thisx;
|
ConsoleLogoState* this = (ConsoleLogoState*)thisx;
|
||||||
|
|
||||||
OPEN_DISPS(this->state.gfxCtx, "../z_title.c", 494);
|
OPEN_DISPS(this->state.gfxCtx, "../z_title.c", 494);
|
||||||
|
|
||||||
gSPSegment(POLY_OPA_DISP++, 0, NULL);
|
gSPSegment(POLY_OPA_DISP++, 0, NULL);
|
||||||
gSPSegment(POLY_OPA_DISP++, 1, this->staticSegment);
|
gSPSegment(POLY_OPA_DISP++, 1, this->staticSegment);
|
||||||
func_80095248(this->state.gfxCtx, 0, 0, 0);
|
func_80095248(this->state.gfxCtx, 0, 0, 0);
|
||||||
Title_Calc(this);
|
ConsoleLogo_Calc(this);
|
||||||
Title_Draw(this);
|
ConsoleLogo_Draw(this);
|
||||||
|
|
||||||
if (gIsCtrlr2Valid) {
|
if (gIsCtrlr2Valid) {
|
||||||
Gfx* gfx = POLY_OPA_DISP;
|
Gfx* gfx = POLY_OPA_DISP;
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
Title_PrintBuildInfo(&gfx);
|
ConsoleLogo_PrintBuildInfo(&gfx);
|
||||||
POLY_OPA_DISP = gfx;
|
POLY_OPA_DISP = gfx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,21 +141,21 @@ void Title_Main(GameState* thisx) {
|
||||||
gSaveContext.natureAmbienceId = 0xFF;
|
gSaveContext.natureAmbienceId = 0xFF;
|
||||||
gSaveContext.gameMode = 1;
|
gSaveContext.gameMode = 1;
|
||||||
this->state.running = false;
|
this->state.running = false;
|
||||||
SET_NEXT_GAMESTATE(&this->state, Opening_Init, OpeningContext);
|
SET_NEXT_GAMESTATE(&this->state, TitleSetup_Init, TitleSetupState);
|
||||||
}
|
}
|
||||||
|
|
||||||
CLOSE_DISPS(this->state.gfxCtx, "../z_title.c", 541);
|
CLOSE_DISPS(this->state.gfxCtx, "../z_title.c", 541);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Title_Destroy(GameState* thisx) {
|
void ConsoleLogo_Destroy(GameState* thisx) {
|
||||||
TitleContext* this = (TitleContext*)thisx;
|
ConsoleLogoState* this = (ConsoleLogoState*)thisx;
|
||||||
|
|
||||||
Sram_InitSram(&this->state, &this->sramCtx);
|
Sram_InitSram(&this->state, &this->sramCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Title_Init(GameState* thisx) {
|
void ConsoleLogo_Init(GameState* thisx) {
|
||||||
u32 size = (u32)_nintendo_rogo_staticSegmentRomEnd - (u32)_nintendo_rogo_staticSegmentRomStart;
|
u32 size = (u32)_nintendo_rogo_staticSegmentRomEnd - (u32)_nintendo_rogo_staticSegmentRomStart;
|
||||||
TitleContext* this = (TitleContext*)thisx;
|
ConsoleLogoState* this = (ConsoleLogoState*)thisx;
|
||||||
|
|
||||||
this->staticSegment = GameState_Alloc(&this->state, size, "../z_title.c", 611);
|
this->staticSegment = GameState_Alloc(&this->state, size, "../z_title.c", 611);
|
||||||
osSyncPrintf("z_title.c\n");
|
osSyncPrintf("z_title.c\n");
|
||||||
|
@ -164,8 +164,8 @@ void Title_Init(GameState* thisx) {
|
||||||
R_UPDATE_RATE = 1;
|
R_UPDATE_RATE = 1;
|
||||||
Matrix_Init(&this->state);
|
Matrix_Init(&this->state);
|
||||||
View_Init(&this->view, this->state.gfxCtx);
|
View_Init(&this->view, this->state.gfxCtx);
|
||||||
this->state.main = Title_Main;
|
this->state.main = ConsoleLogo_Main;
|
||||||
this->state.destroy = Title_Destroy;
|
this->state.destroy = ConsoleLogo_Destroy;
|
||||||
this->exit = false;
|
this->exit = false;
|
||||||
gSaveContext.fileNum = 0xFF;
|
gSaveContext.fileNum = 0xFF;
|
||||||
Sram_Alloc(&this->state, &this->sramCtx);
|
Sram_Alloc(&this->state, &this->sramCtx);
|
||||||
|
|
|
@ -3419,7 +3419,7 @@ void KaleidoScope_Update(PlayState* play) {
|
||||||
osSyncPrintf(VT_RST);
|
osSyncPrintf(VT_RST);
|
||||||
} else {
|
} else {
|
||||||
play->state.running = false;
|
play->state.running = false;
|
||||||
SET_NEXT_GAMESTATE(&play->state, Opening_Init, OpeningContext);
|
SET_NEXT_GAMESTATE(&play->state, TitleSetup_Init, TitleSetupState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue