Enhancement: Better Farore's Wind (#2374)

* Updated SaveManager, SaveContext;
lifted restriction from gtg and ganon's castle;
disabled clearing fw during master sword lift;
added checkbox

* increment load version (whoops); clear age fw after use

* beef up fw console handler (for testing)

* Simplify better FW (2 copies > 1 copy)

* Apply suggestions

* whoops
This commit is contained in:
Ralphie Morell 2023-01-25 14:32:21 -05:00 committed by GitHub
commit 6d6c1c8c32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 94 additions and 11 deletions

View file

@ -616,8 +616,14 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
play->fadeTransition = 11;
break;
case 8:
gSaveContext.fw.set = 0;
gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0;
if (CVarGetInteger("gBetterFW", 0)) {
FaroresWindData tempFW = gSaveContext.backupFW;
gSaveContext.backupFW = gSaveContext.fw;
gSaveContext.fw = tempFW;
} else {
gSaveContext.fw.set = 0;
gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0;
}
if (!(gSaveContext.eventChkInf[4] & 0x20)) {
gSaveContext.eventChkInf[4] |= 0x20;
play->nextEntranceIndex = 0x00A0;

View file

@ -1371,6 +1371,11 @@ void Interface_SetSceneRestrictions(PlayState* play) {
interfaceCtx->restrictions.farores, interfaceCtx->restrictions.dinsNayrus,
interfaceCtx->restrictions.all);
osSyncPrintf(VT_RST);
if (CVarGetInteger("gBetterFW", 0)) {
if (currentScene == SCENE_MEN || currentScene == SCENE_GANONTIKA) {
interfaceCtx->restrictions.farores = 0;
}
}
return;
}
i++;