diff --git a/src/d/d_save.cpp b/src/d/d_save.cpp index 2ae74cfdac..ec6b8925ee 100644 --- a/src/d/d_save.cpp +++ b/src/d/d_save.cpp @@ -1444,6 +1444,14 @@ void dSv_event_c::onEventBit(u16 i_no) { dComIfGs_onDarkClearLV(3); } } + // Set flag for bridge between castle town and eldin field if skip bridge donation + // is on and both eldin and lanayru twilight are cleared + if (dComIfGs_isEventBit(CLEARED_LANAYRU_TWILIGHT) && + randomizer_GetContext().mSettings[RandomizerContext::SKIP_BRIDGE_DONATION] == RandomizerContext::ON) + { + dComIfGs_onEventBit(BRIDGE_REPAIR_FUNDRAISING_COMPLETED); + dComIfGs_onStageSwitch(6, 0x1B); // Bridge exists + } break; case CLEARED_LANAYRU_TWILIGHT: // Cleared Lanayru Twilight @@ -1456,6 +1464,14 @@ void dSv_event_c::onEventBit(u16 i_no) { dComIfGs_onDarkClearLV(3); } } + // Set flag for bridge between castle town and eldin field if skip bridge donation + // is on and both eldin and lanayru twilight are cleared + if (dComIfGs_isEventBit(CLEARED_ELDIN_TWILIGHT) && + randomizer_GetContext().mSettings[RandomizerContext::SKIP_BRIDGE_DONATION] == RandomizerContext::ON) + { + dComIfGs_onEventBit(BRIDGE_REPAIR_FUNDRAISING_COMPLETED); + dComIfGs_onStageSwitch(6, 0x1B); // Bridge exists + } break; case REMOVE_SWORD_SHIELD_FROM_WOLF_BACK: diff --git a/src/dusk/randomizer/game/randomizer_context.cpp b/src/dusk/randomizer/game/randomizer_context.cpp index 2c4e0fdd2c..18f8d67f84 100644 --- a/src/dusk/randomizer/game/randomizer_context.cpp +++ b/src/dusk/randomizer/game/randomizer_context.cpp @@ -295,9 +295,10 @@ int RandomizerContext::SettingToEnum(const std::string& settingName) { {"Hyrule Castle Big Key Poe Souls", HYRULE_BIG_KEY_POE_SOULS}, {"Hyrule Castle Big Key Hearts", HYRULE_BIG_KEY_HEARTS}, {"Palace of Twilight Requirements", PALACE_OF_TWILIGHT_REQUIREMENTS}, + {"Temple of Time Sword Requirement", TEMPLE_OF_TIME_SWORD_REQUIREMENT}, {"Skip Minor Cutscenes", SKIP_MINOR_CUTSCENES}, {"Skip Major Cutscenes", SKIP_MAJOR_CUTSCENES}, - {"Temple of Time Sword Requirement", TEMPLE_OF_TIME_SWORD_REQUIREMENT}, + {"Skip Bridge Donation", SKIP_BRIDGE_DONATION}, }; if (nameToEnum.contains(settingName)) { diff --git a/src/dusk/randomizer/game/randomizer_context.hpp b/src/dusk/randomizer/game/randomizer_context.hpp index 1470f0e3b0..8a198b6b70 100644 --- a/src/dusk/randomizer/game/randomizer_context.hpp +++ b/src/dusk/randomizer/game/randomizer_context.hpp @@ -99,6 +99,7 @@ public: TEMPLE_OF_TIME_SWORD_REQUIREMENT, SKIP_MINOR_CUTSCENES, SKIP_MAJOR_CUTSCENES, + SKIP_BRIDGE_DONATION, }; enum Options { diff --git a/src/dusk/randomizer/generator/data/settings_list.yaml b/src/dusk/randomizer/generator/data/settings_list.yaml index 5e120d2019..263c8a90c9 100644 --- a/src/dusk/randomizer/generator/data/settings_list.yaml +++ b/src/dusk/randomizer/generator/data/settings_list.yaml @@ -359,6 +359,7 @@ - "On": No description available. - Name: Skip Bridge Donation + Need In Game: True Tracker Important: True Default Option: "Off" Options: diff --git a/src/dusk/randomizer/generator/data/startflags.yaml b/src/dusk/randomizer/generator/data/startflags.yaml index 7543889fa7..d83f516236 100644 --- a/src/dusk/randomizer/generator/data/startflags.yaml +++ b/src/dusk/randomizer/generator/data/startflags.yaml @@ -115,8 +115,6 @@ EventFlags: - Skip_Bridge_Donation == Off: - 0xF901 # Add 256 Rupees to Malo Mart. - 0xFAF4 # Add 244 Rupees to Malo Mart. - - Skip_Bridge_Donation == On: - - 0x2E20 # Bridge Fundraising completed. RegionFlags: Ordona Province: @@ -265,8 +263,6 @@ RegionFlags: - 0x58 # Lake Hylia has water on Hyrule Field Map - Ilia_Memory_Quest >= Charm: - 0x43 # Remove HV rocks from Hyrule field - - Skip_Bridge_Donation == On: - - 0x44 # East Castle Town Bridge Lost Woods and Sacred Grove: Index: 0x07 diff --git a/src/dusk/randomizer/generator/data/world/overworld/Eldin Province.yaml b/src/dusk/randomizer/generator/data/world/overworld/Eldin Province.yaml index 236d923f38..ca42c4320a 100644 --- a/src/dusk/randomizer/generator/data/world/overworld/Eldin Province.yaml +++ b/src/dusk/randomizer/generator/data/world/overworld/Eldin Province.yaml @@ -490,7 +490,7 @@ Eldin Field Hint Sign: Nothing Exits: # Only allow logical access to the other side if we've already been there or the bridge donation is skipped - Eldin Field Near Castle Town: Skip_Bridge_Donation == On or 'Can_Access_Eldin_Field_Near_Castle_Town' + Eldin Field Near Castle Town: (Skip_Bridge_Donation == On and Can_Complete_Eldin_Twilight and Can_Complete_Lanayru_Twilight) or 'Can_Access_Eldin_Field_Near_Castle_Town' Eldin Field Bomskit Grotto: Can_Dig Eldin Field Water Bomb Fish Grotto: Can_Dig Eldin Field North of Bridge: Nothing