From 7558e5733bb535e9c9ad025e6391442dd3383aed Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Sat, 29 Nov 2025 19:45:07 +0100 Subject: [PATCH 1/2] Fix issue with FoW and PoW entrances not being reachable --- RandomizerCore/Randomizer/Shuffler/ShufflerBase.cs | 3 ++- RandomizerCore/Resources/default.logic | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/RandomizerCore/Randomizer/Shuffler/ShufflerBase.cs b/RandomizerCore/Randomizer/Shuffler/ShufflerBase.cs index 16ce504..ab64e2e 100644 --- a/RandomizerCore/Randomizer/Shuffler/ShufflerBase.cs +++ b/RandomizerCore/Randomizer/Shuffler/ShufflerBase.cs @@ -705,7 +705,8 @@ protected IList GetUnreachableLocations() { var itemLocations = Locations.Where(location => location.Type is not LocationType.Helper and not LocationType.DungeonConstraint and not LocationType.OverworldConstraint - and not LocationType.Music and not LocationType.Untyped and not LocationType.Inaccessible).ToList(); + and not LocationType.Music and not LocationType.Untyped and not LocationType.Inaccessible + && (!location.Contents.HasValue || location.Contents.Value.Type != ItemType.Entrance)).ToList(); var inaccessibleLocations = itemLocations.Where(location => !location.IsAccessible()); return inaccessibleLocations.ToList(); } diff --git a/RandomizerCore/Resources/default.logic b/RandomizerCore/Resources/default.logic index 19c2472..0c0f23a 100644 --- a/RandomizerCore/Resources/default.logic +++ b/RandomizerCore/Resources/default.logic @@ -1764,10 +1764,12 @@ !define - DUNGEONENTRANCE - :NoSpoiler; Unshuffled !define - ENTERDWS - Helpers.AccessDeepwood !define - ENTERCOF - Helpers.AccessCoF + !define - FOW_ENTRANCE_ALT_RULE - Helpers.Hundo !define - FOW_DUNGEONENTRANCE - :NoSpoiler; Unshuffled !define - ENTERFOW - Helpers.AccessFortress !define - ENTERTOD - Helpers.AccessDroplets !define - ENTERRC - Helpers.AccessCrypt + !define - POW_ENTRANCE_ALT_RULE - Helpers.Hundo !define - POW_DUNGEONENTRANCE - :NoSpoiler; Unshuffled !define - ENTERPOW - Helpers.AccessPalace !define - DHC_MAIN_DUNGEONENTRANCE - :NoSpoiler; Unshuffled @@ -2004,8 +2006,10 @@ !endif !ifdef - RUINS_ACCESS Items.Entrance.0x03; DungeonEntrance; + !define - FOW_ENTRANCE_ALT_RULE - Helpers.Hundo !define - FOW_DUNGEONENTRANCE - :DHCValid; DungeonEntrance !else + !define - FOW_ENTRANCE_ALT_RULE - Helpers.BeatVaati !ifndef - ELEMENTS_TIED_TO_DUNGEONS !define - FOW_DUNGEONENTRANCE - :NoSpoiler:NoElement; DungeonEntrance Items.Entrance.0x03; DungeonEntrance; @@ -2036,8 +2040,10 @@ !endif !ifdef - UWT_ACCESS Items.Entrance.0x05; DungeonEntrance; + !define - POW_ENTRANCE_ALT_RULE - Helpers.Hundo !define - POW_DUNGEONENTRANCE - :DHCValid; DungeonEntrance !else + !define - POW_ENTRANCE_ALT_RULE - Helpers.BeatVaati !ifndef - ELEMENTS_TIED_TO_DUNGEONS !define - POW_DUNGEONENTRANCE - :NoSpoiler:NoElement; DungeonEntrance Items.Entrance.0x05; DungeonEntrance; @@ -8614,7 +8620,7 @@ Ruins_NearFoWFusion_Chest `FOW_OUTSIDE`; `GOLDREDFUSION`; 0x0FE0AE; AccessFortress; Helper; ; Helpers.AccessRuins, Helpers.HasSword; -Fortress_Entrance `FOW_DUNGEONENTRANCE`; DumFoWENT:Define:FirstByte, DumFoWENT2:Define:SecondByte; (|Helpers.AccessFortress, Helpers.BeatVaati); Items.Entrance.0x03 +Fortress_Entrance `FOW_DUNGEONENTRANCE`; DumFoWENT:Define:FirstByte, DumFoWENT2:Define:SecondByte; (|Helpers.AccessFortress, `FOW_ENTRANCE_ALT_RULE`); Items.Entrance.0x03 # Royal Valley AccessValley; Helper; ; (|Helpers.CanSplit3, Helpers.CanSplit4), (|Helpers.OverworldBlocks, Helpers.CapeExtension); @@ -8712,7 +8718,7 @@ WindTribe_4F_RightChest `POW_OUTSIDE`; `PALACEOUTSIDECHEST`; 0x30-0x03-0x01; AccessPalace; Helper; ; Helpers.AccessWindTribe; -Palace_Entrance `POW_DUNGEONENTRANCE`; DumPoWENT:Define:FirstByte, DumPoWENT2:Define:SecondByte; (|Helpers.AccessPalace, Helpers.BeatVaati); Items.Entrance.0x06 +Palace_Entrance `POW_DUNGEONENTRANCE`; DumPoWENT:Define:FirstByte, DumPoWENT2:Define:SecondByte; (|Helpers.AccessPalace, `POW_ENTRANCE_ALT_RULE`); Items.Entrance.0x06 # Deepwood locations Deepwood_2F_Chest `DWS_INSIDE`; Dungeon; 0x48-0x17-0x01; (|(&`ENTERDWS`, Helpers.DeepwoodWeb), Helpers.Hundo); Items.Rupee20 From 5a813b8892f29c11e0209b02f5c8f726930a5b78 Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Sat, 29 Nov 2025 19:48:57 +0100 Subject: [PATCH 2/2] Remove accidental extra shield from item pool --- RandomizerCore/Resources/default.logic | 1 - 1 file changed, 1 deletion(-) diff --git a/RandomizerCore/Resources/default.logic b/RandomizerCore/Resources/default.logic index 0c0f23a..6756e6c 100644 --- a/RandomizerCore/Resources/default.logic +++ b/RandomizerCore/Resources/default.logic @@ -2600,7 +2600,6 @@ !eventdefine - arbitraryShields !define - SHIELD - Items.Shield !define - MIRROR - Items.MirrorShield - Items.Shield; Major; !ifndef - START_NORMAL_SHIELD Items.Shield; Major; !else