1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-12 10:54:44 +00:00

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
This commit is contained in:
fig02 2022-05-09 13:45:53 -04:00 committed by GitHub
parent 95b4317931
commit 2efd00863a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
43 changed files with 2478 additions and 2231 deletions

View file

@ -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;