summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorDerek Hensley <hensley.derek58@gmail.com>2022-09-24 12:40:40 -0700
committerGitHub <noreply@github.com>2022-09-24 16:40:40 -0300
commit6d6304d1a0602e2cdaa0a0d9e6f148791ee51794 (patch)
tree652c78bf20953d5bc0367abfff4de6c578134f02 /src/code
parent0e1b244354f776a7ecb800c60fc314c904718bb5 (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.c12
-rw-r--r--src/code/graph.c30
-rw-r--r--src/code/title_setup.c26
-rw-r--r--src/code/z_demo.c14
-rw-r--r--src/code/z_game_dlftbls.c11
-rw-r--r--src/code/z_prenmi.c49
-rw-r--r--src/code/z_sram_NES.c192
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;
}
}