diff options
| author | fig02 <fig02srl@gmail.com> | 2022-05-09 13:45:53 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-09 13:45:53 -0400 |
| commit | 2efd00863a1a7ec7c56e6d03dcd8b60fc838ccf3 (patch) | |
| tree | b6207b7673efeb15e9d12e8d028a3054c7ebc86f /src/code/z_sram.c | |
| parent | 95b431793182bd021cb4234255f90b996edd8d4d (diff) | |
Introduce DEFINE_ENTRANCE for entrance table and create entrance enum (#1213)
* entrance table OK
* entrance enum fixed
* most entrances using enum, still need to do conditionals
* more entrances
* entrance_table.h cleanups
* some review
* remove _0 from first entrance in a group of setups
* change table description
* typo
* wens spellcheck in vscode
* remove extra line
Diffstat (limited to 'src/code/z_sram.c')
| -rw-r--r-- | src/code/z_sram.c | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/src/code/z_sram.c b/src/code/z_sram.c index 21664a53d..353086d43 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -294,11 +294,17 @@ void Sram_InitDebugSave(void) { } } - gSaveContext.entranceIndex = 0xCD; + gSaveContext.entranceIndex = ENTR_SPOT00_0; gSaveContext.magicLevel = 0; gSaveContext.sceneFlags[5].swch = 0x40000000; } +static s16 sDungeonEntrances[] = { + ENTR_YDAN_0, ENTR_DDAN_0, ENTR_BDAN_0, ENTR_BMORI1_0, ENTR_HIDAN_0, ENTR_MIZUSIN_0, + ENTR_JYASINZOU_0, ENTR_HAKADAN_0, ENTR_HAKADANCH_0, ENTR_ICE_DOUKUTO_0, ENTR_GANON_0, ENTR_MEN_0, + ENTR_GERUDOWAY_0, ENTR_GANONTIKA_0, ENTR_GANON_SONOGO_0, ENTR_GANONTIKA_SONOGO_0, +}; + /** * Copy save currently on the buffer to Save Context and complete various tasks to open the save. * This includes: @@ -310,10 +316,6 @@ void Sram_InitDebugSave(void) { * - Revert any trade items that spoil */ void Sram_OpenSave(SramContext* sramCtx) { - static s16 dungeonEntrances[] = { - 0x0000, 0x0004, 0x0028, 0x0169, 0x0165, 0x0010, 0x0082, 0x0037, - 0x0098, 0x0088, 0x041B, 0x0008, 0x0486, 0x0467, 0x0179, 0x056C, - }; u16 i; u16 j; u8* ptr; @@ -343,45 +345,54 @@ void Sram_OpenSave(SramContext* sramCtx) { case SCENE_MEN: case SCENE_GERUDOWAY: case SCENE_GANONTIKA: - gSaveContext.entranceIndex = dungeonEntrances[gSaveContext.savedSceneNum]; + gSaveContext.entranceIndex = sDungeonEntrances[gSaveContext.savedSceneNum]; break; + case SCENE_YDAN_BOSS: - gSaveContext.entranceIndex = 0; + gSaveContext.entranceIndex = ENTR_YDAN_0; break; + case SCENE_DDAN_BOSS: - gSaveContext.entranceIndex = 4; + gSaveContext.entranceIndex = ENTR_DDAN_0; break; + case SCENE_BDAN_BOSS: - gSaveContext.entranceIndex = 0x28; + gSaveContext.entranceIndex = ENTR_BDAN_0; break; + case SCENE_MORIBOSSROOM: - gSaveContext.entranceIndex = 0x169; + gSaveContext.entranceIndex = ENTR_BMORI1_0; break; + case SCENE_FIRE_BS: - gSaveContext.entranceIndex = 0x165; + gSaveContext.entranceIndex = ENTR_HIDAN_0; break; + case SCENE_MIZUSIN_BS: - gSaveContext.entranceIndex = 0x10; + gSaveContext.entranceIndex = ENTR_MIZUSIN_0; break; + case SCENE_JYASINBOSS: - gSaveContext.entranceIndex = 0x82; + gSaveContext.entranceIndex = ENTR_JYASINZOU_0; break; + case SCENE_HAKADAN_BS: - gSaveContext.entranceIndex = 0x37; + gSaveContext.entranceIndex = ENTR_HAKADAN_0; break; + case SCENE_GANON_SONOGO: case SCENE_GANONTIKA_SONOGO: case SCENE_GANON_BOSS: case SCENE_GANON_FINAL: case SCENE_GANON_DEMO: - gSaveContext.entranceIndex = 0x41B; + gSaveContext.entranceIndex = ENTR_GANON_0; break; default: if (gSaveContext.savedSceneNum != SCENE_LINK_HOME) { - gSaveContext.entranceIndex = (LINK_AGE_IN_YEARS == YEARS_CHILD) ? 0xBB : 0x5F4; + gSaveContext.entranceIndex = (LINK_AGE_IN_YEARS == YEARS_CHILD) ? ENTR_LINK_HOME_0 : ENTR_TOKINOMA_7; } else { - gSaveContext.entranceIndex = 0xBB; + gSaveContext.entranceIndex = ENTR_LINK_HOME_0; } break; } @@ -694,7 +705,7 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx, SramContext* sramCtx) { Sram_InitDebugSave(); } - gSaveContext.entranceIndex = 0xBB; + gSaveContext.entranceIndex = ENTR_LINK_HOME_0; gSaveContext.linkAge = LINK_AGE_CHILD; gSaveContext.dayTime = 0x6AAB; gSaveContext.cutsceneIndex = 0xFFF1; |
