diff options
| author | Derek Hensley <hensley.derek58@gmail.com> | 2022-09-24 12:40:40 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-24 16:40:40 -0300 |
| commit | 6d6304d1a0602e2cdaa0a0d9e6f148791ee51794 (patch) | |
| tree | 652c78bf20953d5bc0367abfff4de6c578134f02 /src/code | |
| parent | 0e1b244354f776a7ecb800c60fc314c904718bb5 (diff) | |
Gamestates Cleanup (#1047)
* Setup
* ConsoleLogo
* TitleSetup
* MapSelect
* FileSelect
* Daytelop
* Save file
* PreNMI
* Final cleanup and format
* Update include/functions.h
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
* DayTelop
* Split off setup
* split of prenmi
* readd SET
* shorten some gamestate member names
* Add comment about init
* Update include/z64.h
Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
* Small cleanup of comments
* PR
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/game.c | 12 | ||||
| -rw-r--r-- | src/code/graph.c | 30 | ||||
| -rw-r--r-- | src/code/title_setup.c | 26 | ||||
| -rw-r--r-- | src/code/z_demo.c | 14 | ||||
| -rw-r--r-- | src/code/z_game_dlftbls.c | 11 | ||||
| -rw-r--r-- | src/code/z_prenmi.c | 49 | ||||
| -rw-r--r-- | src/code/z_sram_NES.c | 192 |
7 files changed, 165 insertions, 169 deletions
diff --git a/src/code/game.c b/src/code/game.c index 84743b8c5..da21de17f 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -200,8 +200,8 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g gfxCtx->viConfigFeatures = gViConfigFeatures; gfxCtx->xScale = gViConfigXScale; gfxCtx->yScale = gViConfigYScale; - gameState->nextGameStateInit = NULL; - gameState->nextGameStateSize = 0; + gameState->init = NULL; + gameState->size = 0; { s32 requiredScopeTemp; @@ -242,12 +242,12 @@ void GameState_Destroy(GameState* gameState) { GameAlloc_Cleanup(&gameState->alloc); } -GameStateFunc GameState_GetNextStateInit(GameState* gameState) { - return gameState->nextGameStateInit; +GameStateFunc GameState_GetInit(GameState* gameState) { + return gameState->init; } -size_t GameState_GetNextStateSize(GameState* gameState) { - return gameState->nextGameStateSize; +size_t GameState_GetSize(GameState* gameState) { + return gameState->size; } u32 GameState_IsRunning(GameState* gameState) { diff --git a/src/code/graph.c b/src/code/graph.c index 481aa1da0..654d2c5f7 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -6,6 +6,7 @@ #include "overlays/gamestates/ovl_opening/z_opening.h" #include "overlays/gamestates/ovl_select/z_select.h" #include "overlays/gamestates/ovl_title/z_title.h" +#include "z_title_setup.h" FaultAddrConvClient sGraphFaultAddrConvClient; FaultClient sGraphFaultClient; @@ -63,44 +64,45 @@ void Graph_SetNextGfxPool(GraphicsContext* gfxCtx) { } GameStateOverlay* Graph_GetNextGameState(GameState* gameState) { - GameStateFunc gameStateInit = GameState_GetNextStateInit(gameState); + GameStateFunc gameStateInit = GameState_GetInit(gameState); - if (gameStateInit == (GameStateFunc)TitleSetup_Init) { + if (gameStateInit == Setup_Init) { return &gGameStateOverlayTable[0]; } - if (gameStateInit == (GameStateFunc)MapSelect_Init) { + if (gameStateInit == MapSelect_Init) { return &gGameStateOverlayTable[1]; } - if (gameStateInit == (GameStateFunc)Title_Init) { + if (gameStateInit == ConsoleLogo_Init) { return &gGameStateOverlayTable[2]; } - if (gameStateInit == (GameStateFunc)Play_Init) { + if (gameStateInit == Play_Init) { return &gGameStateOverlayTable[3]; } - if (gameStateInit == (GameStateFunc)Opening_Init) { + if (gameStateInit == TitleSetup_Init) { return &gGameStateOverlayTable[4]; } - if (gameStateInit == (GameStateFunc)FileChoose_Init) { + if (gameStateInit == FileSelect_Init) { return &gGameStateOverlayTable[5]; } - if (gameStateInit == (GameStateFunc)Daytelop_Init) { + if (gameStateInit == DayTelop_Init) { return &gGameStateOverlayTable[6]; } + return NULL; } void* Graph_FaultAddrConvFunc(void* address, void* param) { uintptr_t addr = address; - GameStateOverlay* gamestateOvl = &gGameStateOverlayTable[0]; + GameStateOverlay* gameStateOvl = &gGameStateOverlayTable[0]; uintptr_t ramConv; void* ramStart; uintptr_t diff; s32 i; - for (i = 0; i < graphNumGameStates; i++, gamestateOvl++) { - diff = VRAM_PTR_SIZE(gamestateOvl); - ramStart = gamestateOvl->loadedRamAddr; - ramConv = (uintptr_t)gamestateOvl->vramStart - (uintptr_t)ramStart; + for (i = 0; i < graphNumGameStates; i++, gameStateOvl++) { + diff = VRAM_PTR_SIZE(gameStateOvl); + ramStart = gameStateOvl->loadedRamAddr; + ramConv = (uintptr_t)gameStateOvl->vramStart - (uintptr_t)ramStart; if (ramStart != NULL) { if (addr >= (uintptr_t)ramStart && addr < (uintptr_t)ramStart + diff) { @@ -235,7 +237,7 @@ void Graph_UpdateGame(GameState* gameState) { } /** - * Run the gamestate logic, then finalize the gfx buffer + * Run the game state logic, then finalize the gfx buffer * and run the graphics task for this frame. */ void Graph_ExecuteAndDraw(GraphicsContext* gfxCtx, GameState* gameState) { diff --git a/src/code/title_setup.c b/src/code/title_setup.c index 4be91d2e8..dad3c6458 100644 --- a/src/code/title_setup.c +++ b/src/code/title_setup.c @@ -1,7 +1,7 @@ -#include "global.h" +#include "z_title_setup.h" #include "overlays/gamestates/ovl_title/z_title.h" -void TitleSetup_GameStateResetContext(void) { +void Setup_SetRegs(void) { XREG(2) = 0; XREG(10) = 0x1A; XREG(11) = 0x14; @@ -45,23 +45,21 @@ void TitleSetup_GameStateResetContext(void) { YREG(43) = 0xB1; } -void TitleSetup_InitImpl(GameState* gameState) { +void Setup_InitImpl(SetupState* this) { func_80185908(); SaveContext_Init(); - TitleSetup_GameStateResetContext(); + Setup_SetRegs(); - gameState->running = 0; - -setNextGamestate - :; // This label is probably a leftover of a debug ifdef, it's essential to not have gameState->running reordered! - SET_NEXT_GAMESTATE(gameState, Title_Init, TitleContext); + STOP_GAMESTATE(&this->state); + SET_NEXT_GAMESTATE(&this->state, ConsoleLogo_Init, sizeof(ConsoleLogoState)); } -void TitleSetup_Destroy(GameState* gameState) { - ; +void Setup_Destroy(GameState* thisx) { } -void TitleSetup_Init(GameState* gameState) { - gameState->destroy = TitleSetup_Destroy; - TitleSetup_InitImpl(gameState); +void Setup_Init(GameState* thisx) { + SetupState* this = (SetupState*)thisx; + + this->state.destroy = Setup_Destroy; + Setup_InitImpl(this); } diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 8923669a7..4b571cadd 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -126,12 +126,11 @@ void func_800EA2B8(PlayState* play, CutsceneContext* csCtx) { /* Start of command handling section */ // Command 0x96: Miscellaneous commands. -void Cutscene_Command_Misc(PlayState* play2, CutsceneContext* csCtx, CsCmdBase* cmd) { +void Cutscene_Command_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) { static u16 D_801BB15C = 0xFFFF; - Player* player = GET_PLAYER(play2); - PlayState* play = play2; - u8 isStartFrame = false; + Player* player = GET_PLAYER(play); f32 progress; + u8 isStartFrame = false; SceneTableEntry* loadedScene; if ((csCtx->frames < cmd->startFrame) || ((csCtx->frames >= cmd->endFrame) && (cmd->endFrame != cmd->startFrame))) { @@ -346,11 +345,8 @@ void Cutscene_Command_Misc(PlayState* play2, CutsceneContext* csCtx, CsCmdBase* gSaveContext.save.day = 9; - { - GameState* gameState = &play->state; - gameState->running = false; - } - SET_NEXT_GAMESTATE(&play->state, Daytelop_Init, DaytelopContext); + STOP_GAMESTATE(&play->state); + SET_NEXT_GAMESTATE(&play->state, DayTelop_Init, sizeof(DayTelopState)); Sram_SaveSpecialNewDay(play); break; diff --git a/src/code/z_game_dlftbls.c b/src/code/z_game_dlftbls.c index a79c732d8..11d390a28 100644 --- a/src/code/z_game_dlftbls.c +++ b/src/code/z_game_dlftbls.c @@ -4,6 +4,7 @@ #include "overlays/gamestates/ovl_opening/z_opening.h" #include "overlays/gamestates/ovl_select/z_select.h" #include "overlays/gamestates/ovl_title/z_title.h" +#include "z_title_setup.h" #define GAMESTATE_OVERLAY(name, init, destroy, size) \ { \ @@ -14,13 +15,13 @@ { NULL, 0, 0, NULL, NULL, 0, init, destroy, 0, 0, 0, size } GameStateOverlay gGameStateOverlayTable[] = { - GAMESTATE_OVERLAY_INTERNAL(TitleSetup_Init, TitleSetup_Destroy, sizeof(GameState)), + GAMESTATE_OVERLAY_INTERNAL(Setup_Init, Setup_Destroy, sizeof(SetupState)), 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(opening, Opening_Init, Opening_Destroy, sizeof(OpeningContext)), - GAMESTATE_OVERLAY(file_choose, FileChoose_Init, FileChoose_Destroy, sizeof(FileChooseContext)), - GAMESTATE_OVERLAY(daytelop, Daytelop_Init, Daytelop_Destroy, sizeof(DaytelopContext)), + GAMESTATE_OVERLAY(opening, TitleSetup_Init, TitleSetup_Destroy, sizeof(TitleSetupState)), + GAMESTATE_OVERLAY(file_choose, FileSelect_Init, FileSelect_Destroy, sizeof(FileSelectState)), + GAMESTATE_OVERLAY(daytelop, DayTelop_Init, DayTelop_Destroy, sizeof(DayTelopState)), }; s32 graphNumGameStates = ARRAY_COUNT(gGameStateOverlayTable); diff --git a/src/code/z_prenmi.c b/src/code/z_prenmi.c index 0e9c435c6..e0381153a 100644 --- a/src/code/z_prenmi.c +++ b/src/code/z_prenmi.c @@ -1,23 +1,22 @@ -#include "global.h" +#include "z_prenmi.h" -void PreNMI_Stop(PreNMIContext* prenmiCtx) { - prenmiCtx->state.running = 0; - prenmiCtx->state.nextGameStateInit = NULL; - prenmiCtx->state.nextGameStateSize = 0; +void PreNMI_Stop(PreNMIState* this) { + STOP_GAMESTATE(&this->state); + SET_NEXT_GAMESTATE(&this->state, NULL, 0); } -void PreNMI_Update(PreNMIContext* prenmiCtx) { - if (prenmiCtx->timer == 0) { +void PreNMI_Update(PreNMIState* this) { + if (this->timer == 0) { ViConfig_UpdateVi(1); - PreNMI_Stop(prenmiCtx); + PreNMI_Stop(this); return; } - prenmiCtx->timer--; + this->timer--; } -void PreNMI_Draw(PreNMIContext* prenmiCtx) { - GraphicsContext* gfxCtx = prenmiCtx->state.gfxCtx; +void PreNMI_Draw(PreNMIState* this) { + GraphicsContext* gfxCtx = this->state.gfxCtx; func_8012CF0C(gfxCtx, true, true, 0, 0, 0); @@ -26,26 +25,30 @@ void PreNMI_Draw(PreNMIContext* prenmiCtx) { func_8012C470(gfxCtx); gDPSetFillColor(POLY_OPA_DISP++, (GPACK_RGBA5551(255, 255, 255, 1) << 16) | GPACK_RGBA5551(255, 255, 255, 1)); - gDPFillRectangle(POLY_OPA_DISP++, 0, prenmiCtx->timer + 100, SCREEN_WIDTH - 1, prenmiCtx->timer + 100); + gDPFillRectangle(POLY_OPA_DISP++, 0, this->timer + 100, SCREEN_WIDTH - 1, this->timer + 100); CLOSE_DISPS(gfxCtx); } -void PreNMI_Main(PreNMIContext* prenmiCtx) { - PreNMI_Update(prenmiCtx); - PreNMI_Draw(prenmiCtx); +void PreNMI_Main(GameState* thisx) { + PreNMIState* this = (PreNMIState*)thisx; - prenmiCtx->state.unk_A3 = 1; + PreNMI_Update(this); + PreNMI_Draw(this); + + this->state.unk_A3 = 1; } -void PreNMI_Destroy(PreNMIContext* prenmiCtx) { +void PreNMI_Destroy(GameState* thisx) { } -void PreNMI_Init(PreNMIContext* prenmiCtx) { - prenmiCtx->state.main = (GameStateFunc)PreNMI_Main; - prenmiCtx->state.destroy = (GameStateFunc)PreNMI_Destroy; - prenmiCtx->timer = 30; - prenmiCtx->unkA8 = 10; +void PreNMI_Init(GameState* thisx) { + PreNMIState* this = (PreNMIState*)thisx; + + this->state.main = PreNMI_Main; + this->state.destroy = PreNMI_Destroy; + this->timer = 30; + this->unkA8 = 10; - Game_SetFramerateDivisor(&prenmiCtx->state, 1); + Game_SetFramerateDivisor(&this->state, 1); } diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c index 781b623b2..ed7945ec3 100644 --- a/src/code/z_sram_NES.c +++ b/src/code/z_sram_NES.c @@ -918,7 +918,7 @@ u16 D_801C6A58[] = { ENTRANCE(IKANA_CANYON, 4), ENTRANCE(STONE_TOWER, 3), }; -void Sram_OpenSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) { +void Sram_OpenSave(FileSelectState* fileSelect, SramContext* sramCtx) { s32 i; s32 pad; s32 phi_t1; @@ -930,7 +930,7 @@ void Sram_OpenSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) { if (gSaveContext.fileNum == 0xFF) { func_80185968(sramCtx->saveBuf, D_801C67C8[0], D_801C67F0[0]); - } else if (fileChooseCtx->unk_2446A[gSaveContext.fileNum] != 0) { + } else if (fileSelect->unk_2446A[gSaveContext.fileNum] != 0) { phi_t1 = gSaveContext.fileNum + 2; phi_t1 *= 2; @@ -1079,8 +1079,8 @@ void func_80145698(SramContext* sramCtx) { // Verifies save and use backup if corrupted? #ifdef NON_EQUIVALENT -void func_801457CC(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { - FileChooseContext* fileChooseCtx = fileChooseCtx2; +void func_801457CC(FileSelectState* fileSelect2, SramContext* sramCtx) { + FileSelectState* fileSelect = fileSelect2; u16 sp7A; // u16 sp78; u16 sp76; @@ -1119,7 +1119,7 @@ void func_801457CC(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { } if (sp76 < 2) { - fileChooseCtx->unk_24468[sp76] = 0; + fileSelect->unk_24468[sp76] = 0; if (phi_s2) { bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, D_801C6870[sp64]); @@ -1157,34 +1157,33 @@ void func_801457CC(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { Sram_CalcChecksum(&gSaveContext, D_801C6870[sp64 & 0xFFFFFFFF]); // TODO: Needed? for (sp7A = 0; sp7A < ARRAY_COUNT(gSaveContext.save.playerData.newf); sp7A++) { - fileChooseCtx->newf[sp76][sp7A] = gSaveContext.save.playerData.newf[sp7A]; + fileSelect->newf[sp76][sp7A] = gSaveContext.save.playerData.newf[sp7A]; } - if (!CHECK_NEWF(fileChooseCtx->newf[sp76])) { - fileChooseCtx->unk_2440C[sp76] = gSaveContext.save.playerData.deaths; + if (!CHECK_NEWF(fileSelect->newf[sp76])) { + fileSelect->unk_2440C[sp76] = gSaveContext.save.playerData.deaths; for (sp7A = 0; sp7A < ARRAY_COUNT(gSaveContext.save.playerData.playerName); sp7A++) { - fileChooseCtx->unk_24414[sp76][sp7A] = gSaveContext.save.playerData.playerName[sp7A]; + fileSelect->unk_24414[sp76][sp7A] = gSaveContext.save.playerData.playerName[sp7A]; } - fileChooseCtx->healthCapacity[sp76] = gSaveContext.save.playerData.healthCapacity; - fileChooseCtx->health[sp76] = gSaveContext.save.playerData.health; - fileChooseCtx->unk_24454[sp76] = gSaveContext.save.inventory.defenseHearts; - fileChooseCtx->unk_24444[sp76] = gSaveContext.save.inventory.questItems; - fileChooseCtx->unk_24458[sp76] = gSaveContext.save.time; - fileChooseCtx->unk_24460[sp76] = gSaveContext.save.day; - fileChooseCtx->unk_24468[sp76] = gSaveContext.save.isOwlSave; - fileChooseCtx->rupees[sp76] = gSaveContext.save.playerData.rupees; - fileChooseCtx->unk_24474[sp76] = CUR_UPG_VALUE(4); + fileSelect->healthCapacity[sp76] = gSaveContext.save.playerData.healthCapacity; + fileSelect->health[sp76] = gSaveContext.save.playerData.health; + fileSelect->unk_24454[sp76] = gSaveContext.save.inventory.defenseHearts; + fileSelect->unk_24444[sp76] = gSaveContext.save.inventory.questItems; + fileSelect->unk_24458[sp76] = gSaveContext.save.time; + fileSelect->unk_24460[sp76] = gSaveContext.save.day; + fileSelect->unk_24468[sp76] = gSaveContext.save.isOwlSave; + fileSelect->rupees[sp76] = gSaveContext.save.playerData.rupees; + fileSelect->unk_24474[sp76] = CUR_UPG_VALUE(4); for (sp7A = 0, phi_a0 = 0; sp7A < 24; sp7A++) { if (gSaveContext.save.inventory.items[sp7A + 24] != 0xFF) { phi_a0++; } } - fileChooseCtx->maskCount[sp76] = phi_a0; - fileChooseCtx->heartPieceCount[sp76] = - ((gSaveContext.save.inventory.questItems & 0xF0000000) >> 0x1C); + fileSelect->maskCount[sp76] = phi_a0; + fileSelect->heartPieceCount[sp76] = ((gSaveContext.save.inventory.questItems & 0xF0000000) >> 0x1C); } if (sp6E == 1) { @@ -1209,9 +1208,9 @@ void func_801457CC(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { } } } else if (sp76 < 4) { - fileChooseCtx->unk_24468[sp76] = 0; + fileSelect->unk_24468[sp76] = 0; - if (!CHECK_NEWF(fileChooseCtx->newf2[(s32)sp76])) { // TODO: Needed? + if (!CHECK_NEWF(fileSelect->newf2[(s32)sp76])) { // TODO: Needed? if (phi_s2) { bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, @@ -1251,34 +1250,34 @@ void func_801457CC(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { Sram_CalcChecksum(&gSaveContext, D_801C6870[sp64 & 0xFFFFFFFF]); // TODO: Needed? for (sp7A = 0; sp7A < ARRAY_COUNT(gSaveContext.save.playerData.newf); sp7A++) { - fileChooseCtx->newf[sp76][sp7A] = gSaveContext.save.playerData.newf[sp7A]; + fileSelect->newf[sp76][sp7A] = gSaveContext.save.playerData.newf[sp7A]; } - if (!CHECK_NEWF(fileChooseCtx->newf[sp76])) { - fileChooseCtx->unk_2440C[sp76] = gSaveContext.save.playerData.deaths; + if (!CHECK_NEWF(fileSelect->newf[sp76])) { + fileSelect->unk_2440C[sp76] = gSaveContext.save.playerData.deaths; for (sp7A = 0; sp7A < ARRAY_COUNT(gSaveContext.save.playerData.playerName); sp7A++) { phi_s2 += 0; // TODO: Needed? - fileChooseCtx->unk_24414[sp76][sp7A] = gSaveContext.save.playerData.playerName[sp7A]; + fileSelect->unk_24414[sp76][sp7A] = gSaveContext.save.playerData.playerName[sp7A]; } - fileChooseCtx->healthCapacity[sp76] = gSaveContext.save.playerData.healthCapacity; - fileChooseCtx->health[sp76] = gSaveContext.save.playerData.health; - fileChooseCtx->unk_24454[sp76] = gSaveContext.save.inventory.defenseHearts; - fileChooseCtx->unk_24444[sp76] = gSaveContext.save.inventory.questItems; - fileChooseCtx->unk_24458[sp76] = gSaveContext.save.time; - fileChooseCtx->unk_24460[sp76] = gSaveContext.save.day; - fileChooseCtx->unk_24468[sp76] = gSaveContext.save.isOwlSave; - fileChooseCtx->rupees[sp76] = gSaveContext.save.playerData.rupees; - fileChooseCtx->unk_24474[sp76] = CUR_UPG_VALUE(4); + fileSelect->healthCapacity[sp76] = gSaveContext.save.playerData.healthCapacity; + fileSelect->health[sp76] = gSaveContext.save.playerData.health; + fileSelect->unk_24454[sp76] = gSaveContext.save.inventory.defenseHearts; + fileSelect->unk_24444[sp76] = gSaveContext.save.inventory.questItems; + fileSelect->unk_24458[sp76] = gSaveContext.save.time; + fileSelect->unk_24460[sp76] = gSaveContext.save.day; + fileSelect->unk_24468[sp76] = gSaveContext.save.isOwlSave; + fileSelect->rupees[sp76] = gSaveContext.save.playerData.rupees; + fileSelect->unk_24474[sp76] = CUR_UPG_VALUE(4); for (sp7A = 0, phi_a0 = 0; sp7A < 24; sp7A++) { if (gSaveContext.save.inventory.items[sp7A + 24] != 0xFF) { phi_a0++; } } - fileChooseCtx->maskCount[sp76] = phi_a0; - fileChooseCtx->heartPieceCount[sp76] = + fileSelect->maskCount[sp76] = phi_a0; + fileSelect->heartPieceCount[sp76] = ((gSaveContext.save.inventory.questItems & 0xF0000000) >> 0x1C); } @@ -1342,14 +1341,14 @@ void func_801457CC(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { #pragma GLOBAL_ASM("asm/non_matchings/code/z_sram_NES/func_801457CC.s") #endif -void func_80146580(FileChooseContext* fileChooseCtx2, SramContext* sramCtx, s32 fileNum) { - FileChooseContext* fileChooseCtx = fileChooseCtx2; +void func_80146580(FileSelectState* fileSelect2, SramContext* sramCtx, s32 fileNum) { + FileSelectState* fileSelect = fileSelect2; s32 pad; if (gSaveContext.unk_3F3F) { - if (fileChooseCtx->unk_2446A[fileNum]) { + if (fileSelect->unk_2446A[fileNum]) { func_80147314(sramCtx, fileNum); - fileChooseCtx->unk_2446A[fileNum] = 0; + fileSelect->unk_2446A[fileNum] = 0; } bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE); Lib_MemCpy(&gSaveContext, sramCtx->saveBuf, sizeof(Save)); @@ -1361,30 +1360,30 @@ void func_80146580(FileChooseContext* fileChooseCtx2, SramContext* sramCtx, s32 #ifdef NON_MATCHING // v0/v1 -void func_80146628(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { - FileChooseContext* fileChooseCtx = fileChooseCtx2; +void func_80146628(FileSelectState* fileSelect2, SramContext* sramCtx) { + FileSelectState* fileSelect = fileSelect2; u16 i; s16 maskCount; if (gSaveContext.unk_3F3F) { - if (fileChooseCtx->unk_2446A[fileChooseCtx->unk_2448E]) { - func_80147414(sramCtx, fileChooseCtx->unk_2448E, fileChooseCtx->fileNum); - fileChooseCtx->unk_24410[fileChooseCtx->fileNum] = gSaveContext.save.playerData.deaths; + if (fileSelect->unk_2446A[fileSelect->unk_2448E]) { + func_80147414(sramCtx, fileSelect->unk_2448E, fileSelect->fileNum); + fileSelect->unk_24410[fileSelect->fileNum] = gSaveContext.save.playerData.deaths; for (i = 0; i < ARRAY_COUNT(gSaveContext.save.playerData.playerName); i++) { - fileChooseCtx->unk_24424[fileChooseCtx->fileNum][i] = gSaveContext.save.playerData.playerName[i]; + fileSelect->unk_24424[fileSelect->fileNum][i] = gSaveContext.save.playerData.playerName[i]; } - fileChooseCtx->unk_24438[fileChooseCtx->fileNum] = gSaveContext.save.playerData.healthCapacity; - fileChooseCtx->unk_24440[fileChooseCtx->fileNum] = gSaveContext.save.playerData.health; - fileChooseCtx->unk_24456[fileChooseCtx->fileNum] = gSaveContext.save.inventory.defenseHearts; - fileChooseCtx->unk_2444C[fileChooseCtx->fileNum] = gSaveContext.save.inventory.questItems; - fileChooseCtx->unk_2445C[fileChooseCtx->fileNum] = gSaveContext.save.time; - fileChooseCtx->unk_24464[fileChooseCtx->fileNum] = gSaveContext.save.day; - fileChooseCtx->unk_2446A[fileChooseCtx->fileNum] = gSaveContext.save.isOwlSave; - fileChooseCtx->unk_24470[fileChooseCtx->fileNum] = gSaveContext.save.playerData.rupees; + fileSelect->unk_24438[fileSelect->fileNum] = gSaveContext.save.playerData.healthCapacity; + fileSelect->unk_24440[fileSelect->fileNum] = gSaveContext.save.playerData.health; + fileSelect->unk_24456[fileSelect->fileNum] = gSaveContext.save.inventory.defenseHearts; + fileSelect->unk_2444C[fileSelect->fileNum] = gSaveContext.save.inventory.questItems; + fileSelect->unk_2445C[fileSelect->fileNum] = gSaveContext.save.time; + fileSelect->unk_24464[fileSelect->fileNum] = gSaveContext.save.day; + fileSelect->unk_2446A[fileSelect->fileNum] = gSaveContext.save.isOwlSave; + fileSelect->unk_24470[fileSelect->fileNum] = gSaveContext.save.playerData.rupees; // = CUR_UPG_VALUE(UPG_WALLET); - fileChooseCtx->unk_24476[fileChooseCtx->fileNum] = + fileSelect->unk_24476[fileSelect->fileNum] = (gSaveContext.save.inventory.upgrades & gUpgradeMasks[4]) >> gUpgradeShifts[4]; for (i = 0, maskCount = 0; i < 24; i++) { @@ -1393,41 +1392,39 @@ void func_80146628(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { } } - fileChooseCtx->unk_2447A[fileChooseCtx->fileNum] = maskCount; - fileChooseCtx->unk_2447E[fileChooseCtx->fileNum] = - (gSaveContext.save.inventory.questItems & 0xF0000000) >> 0x1C; + fileSelect->unk_2447A[fileSelect->fileNum] = maskCount; + fileSelect->unk_2447E[fileSelect->fileNum] = (gSaveContext.save.inventory.questItems & 0xF0000000) >> 0x1C; } // clear buffer bzero(sramCtx->saveBuf, SAVE_BUFFER_SIZE); // read to buffer - func_80185968(sramCtx->saveBuf, D_801C67C8[fileChooseCtx->unk_2448E * 2], - D_801C67F0[fileChooseCtx->unk_2448E * 2]); + func_80185968(sramCtx->saveBuf, D_801C67C8[fileSelect->unk_2448E * 2], D_801C67F0[fileSelect->unk_2448E * 2]); if (1) {} - func_80185968(&sramCtx->saveBuf[0x2000], D_801C67C8[fileChooseCtx->unk_2448E * 2 + 1], - D_801C67F0[fileChooseCtx->unk_2448E * 2 + 1]); + func_80185968(&sramCtx->saveBuf[0x2000], D_801C67C8[fileSelect->unk_2448E * 2 + 1], + D_801C67F0[fileSelect->unk_2448E * 2 + 1]); if (1) {} // copy buffer to save context Lib_MemCpy(&gSaveContext.save, sramCtx->saveBuf, sizeof(Save)); - fileChooseCtx->unk_2440C[fileChooseCtx->fileNum] = gSaveContext.save.playerData.deaths; + fileSelect->unk_2440C[fileSelect->fileNum] = gSaveContext.save.playerData.deaths; for (i = 0; i < ARRAY_COUNT(gSaveContext.save.playerData.playerName); i++) { - fileChooseCtx->unk_24414[fileChooseCtx->fileNum][i] = gSaveContext.save.playerData.playerName[i]; + fileSelect->unk_24414[fileSelect->fileNum][i] = gSaveContext.save.playerData.playerName[i]; } - fileChooseCtx->healthCapacity[fileChooseCtx->fileNum] = gSaveContext.save.playerData.healthCapacity; - fileChooseCtx->health[fileChooseCtx->fileNum] = gSaveContext.save.playerData.health; - fileChooseCtx->unk_24454[fileChooseCtx->fileNum] = gSaveContext.save.inventory.defenseHearts; - fileChooseCtx->unk_24444[fileChooseCtx->fileNum] = gSaveContext.save.inventory.questItems; - fileChooseCtx->unk_24458[fileChooseCtx->fileNum] = gSaveContext.save.time; - fileChooseCtx->unk_24460[fileChooseCtx->fileNum] = gSaveContext.save.day; - fileChooseCtx->unk_24468[fileChooseCtx->fileNum] = gSaveContext.save.isOwlSave; - fileChooseCtx->rupees[fileChooseCtx->fileNum] = gSaveContext.save.playerData.rupees; + fileSelect->healthCapacity[fileSelect->fileNum] = gSaveContext.save.playerData.healthCapacity; + fileSelect->health[fileSelect->fileNum] = gSaveContext.save.playerData.health; + fileSelect->unk_24454[fileSelect->fileNum] = gSaveContext.save.inventory.defenseHearts; + fileSelect->unk_24444[fileSelect->fileNum] = gSaveContext.save.inventory.questItems; + fileSelect->unk_24458[fileSelect->fileNum] = gSaveContext.save.time; + fileSelect->unk_24460[fileSelect->fileNum] = gSaveContext.save.day; + fileSelect->unk_24468[fileSelect->fileNum] = gSaveContext.save.isOwlSave; + fileSelect->rupees[fileSelect->fileNum] = gSaveContext.save.playerData.rupees; // = CUR_UPG_VALUE(UPG_WALLET); - fileChooseCtx->unk_24474[fileChooseCtx->fileNum] = + fileSelect->unk_24474[fileSelect->fileNum] = (gSaveContext.save.inventory.upgrades & gUpgradeMasks[4]) >> gUpgradeShifts[4]; for (i = 0, maskCount = 0; i < 24; i++) { @@ -1436,8 +1433,8 @@ void func_80146628(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { } } - fileChooseCtx->maskCount[fileChooseCtx->fileNum] = maskCount; - fileChooseCtx->heartPieceCount[fileChooseCtx->fileNum] = + fileSelect->maskCount[fileSelect->fileNum] = maskCount; + fileSelect->heartPieceCount[fileSelect->fileNum] = (gSaveContext.save.inventory.questItems & 0xF0000000) >> 0x1C; } @@ -1448,21 +1445,20 @@ void func_80146628(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { #pragma GLOBAL_ASM("asm/non_matchings/code/z_sram_NES/func_80146628.s") #endif -void Sram_InitSave(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { +void Sram_InitSave(FileSelectState* fileSelect2, SramContext* sramCtx) { s32 phi_v0; u16 i; - FileChooseContext* fileChooseCtx = fileChooseCtx2; + FileSelectState* fileSelect = fileSelect2; s16 maskCount; if (gSaveContext.unk_3F3F) { Sram_InitNewSave(); - if (fileChooseCtx->unk_24480 == 0) { + if (fileSelect->unk_24480 == 0) { gSaveContext.save.cutscene = 0xFFF0; } for (phi_v0 = 0; phi_v0 < ARRAY_COUNT(gSaveContext.save.playerData.playerName); phi_v0++) { - gSaveContext.save.playerData.playerName[phi_v0] = - fileChooseCtx->unk_24414[fileChooseCtx->unk_24480][phi_v0]; + gSaveContext.save.playerData.playerName[phi_v0] = fileSelect->unk_24414[fileSelect->unk_24480][phi_v0]; } gSaveContext.save.playerData.newf[0] = 'Z'; @@ -1478,24 +1474,24 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { Lib_MemCpy(&sramCtx->saveBuf[0x2000], &gSaveContext.save, sizeof(Save)); for (i = 0; i < ARRAY_COUNT(gSaveContext.save.playerData.newf); i++) { - fileChooseCtx->newf[fileChooseCtx->unk_24480][i] = gSaveContext.save.playerData.newf[i]; + fileSelect->newf[fileSelect->unk_24480][i] = gSaveContext.save.playerData.newf[i]; } - fileChooseCtx->unk_2440C[fileChooseCtx->unk_24480] = gSaveContext.save.playerData.deaths; + fileSelect->unk_2440C[fileSelect->unk_24480] = gSaveContext.save.playerData.deaths; for (i = 0; i < ARRAY_COUNT(gSaveContext.save.playerData.playerName); i++) { - fileChooseCtx->unk_24414[fileChooseCtx->unk_24480][i] = gSaveContext.save.playerData.playerName[i]; + fileSelect->unk_24414[fileSelect->unk_24480][i] = gSaveContext.save.playerData.playerName[i]; } - fileChooseCtx->healthCapacity[fileChooseCtx->unk_24480] = gSaveContext.save.playerData.healthCapacity; - fileChooseCtx->health[fileChooseCtx->unk_24480] = gSaveContext.save.playerData.health; - fileChooseCtx->unk_24454[fileChooseCtx->unk_24480] = gSaveContext.save.inventory.defenseHearts; - fileChooseCtx->unk_24444[fileChooseCtx->unk_24480] = gSaveContext.save.inventory.questItems; - fileChooseCtx->unk_24458[fileChooseCtx->unk_24480] = gSaveContext.save.time; - fileChooseCtx->unk_24460[fileChooseCtx->unk_24480] = gSaveContext.save.day; - fileChooseCtx->unk_24468[fileChooseCtx->unk_24480] = gSaveContext.save.isOwlSave; - fileChooseCtx->rupees[fileChooseCtx->unk_24480] = gSaveContext.save.playerData.rupees; - fileChooseCtx->unk_24474[fileChooseCtx->unk_24480] = CUR_UPG_VALUE(UPG_WALLET); + fileSelect->healthCapacity[fileSelect->unk_24480] = gSaveContext.save.playerData.healthCapacity; + fileSelect->health[fileSelect->unk_24480] = gSaveContext.save.playerData.health; + fileSelect->unk_24454[fileSelect->unk_24480] = gSaveContext.save.inventory.defenseHearts; + fileSelect->unk_24444[fileSelect->unk_24480] = gSaveContext.save.inventory.questItems; + fileSelect->unk_24458[fileSelect->unk_24480] = gSaveContext.save.time; + fileSelect->unk_24460[fileSelect->unk_24480] = gSaveContext.save.day; + fileSelect->unk_24468[fileSelect->unk_24480] = gSaveContext.save.isOwlSave; + fileSelect->rupees[fileSelect->unk_24480] = gSaveContext.save.playerData.rupees; + fileSelect->unk_24474[fileSelect->unk_24480] = CUR_UPG_VALUE(UPG_WALLET); for (i = 0, maskCount = 0; i < 24; i++) { if (gSaveContext.save.inventory.items[i + 24] != ITEM_NONE) { @@ -1503,8 +1499,8 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx2, SramContext* sramCtx) { } } - fileChooseCtx->maskCount[fileChooseCtx->unk_24480] = maskCount; - fileChooseCtx->heartPieceCount[fileChooseCtx->unk_24480] = + fileSelect->maskCount[fileSelect->unk_24480] = maskCount; + fileSelect->heartPieceCount[fileSelect->unk_24480] = (gSaveContext.save.inventory.questItems & 0xF0000000) >> 0x1C; } @@ -1526,9 +1522,9 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) { func_801A3D98(gSaveContext.options.audioSetting); } -void Sram_Alloc(GameState* gamestate, SramContext* sramCtx) { +void Sram_Alloc(GameState* gameState, SramContext* sramCtx) { if (gSaveContext.unk_3F3F) { - sramCtx->saveBuf = THA_AllocEndAlign16(&gamestate->heap, SAVE_BUFFER_SIZE); + sramCtx->saveBuf = THA_AllocEndAlign16(&gameState->heap, SAVE_BUFFER_SIZE); sramCtx->status = 0; } } |
