Adding OverworldShuffle.py

This commit is contained in:
codemann8
2021-02-10 22:19:04 -06:00
parent 12ccbc45d3
commit 00a4ff11e5
2 changed files with 589 additions and 0 deletions

View File

@@ -14,6 +14,7 @@ from KeyDoorShuffle import validate_key_placement
from PotShuffle import shuffle_pots from PotShuffle import shuffle_pots
from Regions import create_regions, create_shops, mark_light_world_regions, create_dungeon_regions, adjust_locations from Regions import create_regions, create_shops, mark_light_world_regions, create_dungeon_regions, adjust_locations
from InvertedRegions import create_inverted_regions, mark_dark_world_regions from InvertedRegions import create_inverted_regions, mark_dark_world_regions
from OverworldShuffle import link_overworld
from EntranceShuffle import link_entrances, link_inverted_entrances from EntranceShuffle import link_entrances, link_inverted_entrances
from Rom import patch_rom, patch_race_rom, patch_enemizer, apply_rom_settings, LocalRom, JsonRom, get_hash_string from Rom import patch_rom, patch_race_rom, patch_enemizer, apply_rom_settings, LocalRom, JsonRom, get_hash_string
from Doors import create_doors from Doors import create_doors
@@ -120,6 +121,11 @@ def main(args, seed=None, fish=None):
if world.potshuffle[player]: if world.potshuffle[player]:
shuffle_pots(world, player) shuffle_pots(world, player)
logger.info(world.fish.translate("cli","cli","shuffling.overworld"))
for player in range(1, world.players + 1):
link_overworld(world, player)
logger.info(world.fish.translate("cli","cli","shuffling.world")) logger.info(world.fish.translate("cli","cli","shuffling.world"))
for player in range(1, world.players + 1): for player in range(1, world.players + 1):

583
OverworldShuffle.py Normal file
View File

@@ -0,0 +1,583 @@
import random
def link_overworld(world, player):
# setup mandatory connections
for exitname, regionname in mandatory_connections:
connect_simple(world, exitname, regionname, player)
connect_custom(world, player)
# if we do not shuffle, set default connections
if world.owShuffle[player] == 'vanilla':
for exitname, regionname in default_overworld_connections:
connect_simple(world, exitname, regionname, player)
elif world.owShuffle[player] == 'full':
for exitname, regionname in default_overworld_connections:
connect_simple(world, exitname, regionname, player)
else:
raise NotImplementedError('Shuffling not supported yet')
def connect_custom(world, player):
if hasattr(world, 'custom_overworld') and world.custom_overworld[player]:
for exit_name, region_name in world.custom_overworld[player]:
# doesn't actually change addresses
connect_simple(world, exit_name, region_name, player)
# this needs to remove custom connections from the pool
def connect_simple(world, exitname, regionname, player):
world.get_entrance(exitname, player).connect(world.get_region(regionname, player))
# these are connections that cannot be shuffled and always exist. They link together separate parts of the world we need to divide into regions
mandatory_connections = [('Links House S&Q', 'Links House'),
('Sanctuary S&Q', 'Sanctuary'),
('Old Man S&Q', 'Old Man House'),
('Flute Spot 1', 'West Death Mountain (Bottom)'),
('Flute Spot 2', 'Potion Shop Area'),
('Flute Spot 3', 'Kakariko Area'),
('Flute Spot 4', 'Links House Area'),
('Flute Spot 5', 'Eastern Nook Area'),
('Flute Spot 6', 'Desert Palace Teleporter Ledge'),
('Flute Spot 7', 'Dam Area'),
('Flute Spot 8', 'Octoballoon Area'),
# Special OW Areas
('Lost Woods NW', 'Master Sword Meadow'),
('Master Sword Meadow SC', 'Lost Woods Area'),
('Zora Approach NE', 'Zoras Domain'),
('Zoras Domain SW', 'Zora Approach Area'),
('Stone Bridge WC', 'Hobo Bridge'),
('Hobo EC', 'Stone Bridge Water'),
# Whirlpool Connections
('C Whirlpool', 'Useless Fairy Water'),
('Useless Fairy Whirlpool', 'C Whirlpool Area'),
('Lake Hylia Whirlpool', 'Zora Approach Area'),
('Zora Whirlpool', 'Lake Hylia Water'),
('Kakariko Pond Whirlpool', 'Octoballoon Water'),
('Octoballoon Whirlpool', 'Kakariko Pond Area'),
('Qirn Jump Whirlpool', 'Southeast DW Water'),
('Southeast DW Whirlpool', 'Qirn Jump Water'),
# Intra-tile OW Connections
('Death Mountain Entrance Rock', 'Death Mountain Entrance'),
('Death Mountain Entrance Drop', 'DM Ascent Area'),
('Death Mountain Return Drop', 'DM Ascent Area'),
('Bonk Rock Ledge Drop', 'Sanctuary Area'),
('Kings Grave Outer Rocks', 'Kings Grave Area'),
('Kings Grave Inner Rocks', 'Graveyard Area'),
('Graveyard Ledge Drop', 'Graveyard Area'),
('Useless Fairy Water Drop', 'Useless Fairy Water'),
('Useless Fairy East Water Drop', 'Useless Fairy Water'),
('Useless Fairy West Pier', 'Useless Fairy Area'),
('Useless Fairy East Pier', 'Useless Fairy East Bank'),
('Potion Shop Water Drop', 'Potion Shop Water'),
('Potion Shop Northeast Water Drop', 'Potion Shop Water'),
('Potion Shop Rock (South)', 'Potion Shop Northeast'),
('Potion Shop Rock (North)', 'Potion Shop Area'),
('Zora Warning Water Drop', 'Zora Warning Water'),
('Bat Cave Ledge Peg', 'Bat Cave Ledge'),
('Hyrule Castle Main Gate (South)', 'Hyrule Castle Courtyard'),
('Hyrule Castle Main Gate (North)', 'Hyrule Castle Area'),
('Hyrule Castle Ledge Drop', 'Hyrule Castle Area'),
('Hyrule Castle Ledge Courtyard Drop', 'Hyrule Castle Courtyard'),
('Hyrule Castle Inner East Rock', 'Hyrule Castle East Entry'),
('Hyrule Castle Outer East Rock', 'Hyrule Castle Area'),
('Wooden Bridge Water Drop', 'Wooden Bridge Water'),
('Maze Race Ledge Drop', 'Maze Race Area'),
('Cave 45 Ledge Drop', 'Cave 45 Area'),
('C Whirlpool Rock (Bottom)', 'C Whirlpool Outer Area'),
('C Whirlpool Rock (Top)', 'C Whirlpool Area'),
('Desert Palace Statue Move', 'Desert Palace Stairs'),
('Desert Ledge Drop', 'Desert Area'),
('Desert Ledge Outer Rocks', 'Desert Palace Entrance (North) Spot'),
('Desert Ledge Inner Rocks', 'Desert Ledge'),
('Checkerboard Ledge Drop', 'Desert Area'),
('Desert Mouth Drop', 'Desert Area'),
('Desert Teleporter Drop', 'Desert Area'),
('Bombos Tablet Drop', 'Desert Area'),
('Purple Chest Ledge Drop', 'Purple Chest Area'),
('Purple Chest Rocks (North)', 'Purple Chest Southeast'),
('Purple Chest Rocks (South)', 'Purple Chest Area'),
('Lake Hylia Water Drop', 'Lake Hylia Water'),
('Lake Hylia South Water Drop', 'Lake Hylia Water'),
('Lake Hylia Northeast Water Drop', 'Lake Hylia Water'),
('Lake Hylia Central Water Drop', 'Lake Hylia Water'),
('Lake Hylia Island Water Drop', 'Lake Hylia Water'),
('Lake Hylia Central Island Pier', 'Lake Hylia Central Island'),
('Lake Hylia West Pier', 'Lake Hylia Area'),
('Lake Hylia East Pier', 'Lake Hylia Northeast Bank'),
('Octoballoon Water Drop', 'Octoballoon Water'),
('Octoballoon Waterfall Water Drop', 'Octoballoon Water'),
('Octoballoon Pier', 'Octoballoon Area'),
('West Death Mountain Drop', 'West Death Mountain (Bottom)'),
('Spectacle Rock Drop', 'West Death Mountain (Top)'),
('DM Hammer Bridge (West)', 'East Death Mountain (Top West)'),
('DM Hammer Bridge (East)', 'East Death Mountain (Top East)'),
('East Death Mountain Spiral Drop', 'Spiral Cave Ledge'),
('East Death Mountain Fairy Drop', 'Fairy Ascension Ledge'),
('Spiral Ledge Drop', 'East Death Mountain (Bottom)'),
('Fairy Ascension Ledge Drop', 'Fairy Ascension Plateau'),
('Fairy Ascension Plateau Drop', 'East Death Mountain (Bottom)'),
('Fairy Ascension Rocks', 'Fairy Ascension Plateau'),
('DM Broken Bridge (West)', 'East Death Mountain (Bottom)'),
('DM Broken Bridge (East)', 'East Death Mountain (Bottom Left)'),
('Skull Woods Bush Rock (West)', 'Skull Woods Forest'),
('Skull Woods Bush Rock (East)', 'Skull Woods Portal Entry'),
('Skull Woods Forgotten Bush (West)', 'Skull Woods Forgotten Path (Northeast)'),
('Skull Woods Forgotten Bush (East)', 'Skull Woods Forgotten Path (Southwest)'),
('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'),
('Bumper Cave Ledge Drop', 'Bumper Cave Area'),
('Bumper Cave Entrance Drop', 'Bumper Cave Area'),
('Skull Woods Pass Bush Row (West)', 'Skull Woods Pass East Top Area'),
('Skull Woods Pass Bush Row (East)', 'Skull Woods Pass West Area'),
('Skull Woods Pass Rock (Top)', 'Skull Woods Pass East Bottom Area'),
('Skull Woods Pass Rock (Bottom)', 'Skull Woods Pass East Top Area'),
('Qirn Jump Water Drop', 'Qirn Jump Water'),
('Qirn Jump East Water Drop', 'Qirn Jump Water'),
('Qirn Jump Pier', 'Qirn Jump East Bank'),
('Dark Witch Water Drop', 'Dark Witch Water'),
('Dark Witch Northeast Water Drop', 'Dark Witch Water'),
('Dark Witch Rock (North)', 'Dark Witch Area'),
('Dark Witch Rock (South)', 'Dark Witch Northeast'),
('Catfish Approach Water Drop', 'Catfish Approach Water'),
('Village of Outcasts Pegs', 'Dark Grassy Lawn'),
('Grassy Lawn Pegs', 'Village of Outcasts Area'),
('Peg Area Rocks (West)', 'Hammer Peg Area'),
('Peg Area Rocks (East)', 'Hammer Peg Entry'),
('Pyramid Exit Drop', 'Pyramid Area'),
('Broken Bridge Hammer Rock (South)', 'Broken Bridge Northeast'),
('Broken Bridge Hammer Rock (North)', 'Broken Bridge Area'),
('Broken Bridge Hookshot Gap', 'Broken Bridge West'),
('Broken Bridge Water Drop', 'Broken Bridge Water'),
('Broken Bridge Northeast Water Drop', 'Broken Bridge Water'),
('Broken Bridge West Water Drop', 'Broken Bridge Water'),
('Dig Game To Ledge Drop', 'Dig Game Ledge'),
('Dig Game Ledge Drop', 'Dig Game Area'),
('Frog Ledge Drop', 'Archery Game Area'),
('Archery Game Rock', 'Frog Area'),
('Dark C Whirlpool Rock (Bottom)', 'Dark C Whirlpool Outer Area'),
('Dark C Whirlpool Rock (Top)', 'Dark C Whirlpool Area'),
('Hammer Bridge Pegs (North)', 'Hammer Bridge South Area'),
('Hammer Bridge Pegs (South)', 'Hammer Bridge North Area'),
('Hammer Bridge Water Drop', 'Hammer Bridge Water'),
('Hammer Bridge Pier', 'Hammer Bridge North Area'),
('Dark Lake Hylia Water Drop', 'Dark Lake Hylia Water'),
('Dark Lake Hylia Northeast Water Drop', 'Dark Lake Hylia Water'),
('Dark Lake Hylia Southwest Water Drop', 'Dark Lake Hylia Water'),
('Dark Lake Hylia Southeast Water Drop', 'Dark Lake Hylia Water'),
('Dark Lake Hylia Northeast Pier', 'Dark Lake Hylia Northeast Bank'),
('Southeast DW Water Drop', 'Southeast DW Water'),
('Southeast DW Waterfall Water Drop', 'Southeast DW Water'),
('Southeast DW Pier', 'Southeast DW Area'),
('Dark Death Mountain Drop (West)', 'Dark Death Mountain (West Bottom)'),
('Dark Death Mountain Drop (East)', 'Dark Death Mountain (East Bottom)'),
('Floating Island Drop', 'Dark Death Mountain (Top East)'),
('Turtle Rock Ledge Drop', 'Turtle Rock Area'),
('Flute Away', 'Flute Sky'),
# Portal Connections
('Kakariko Teleporter (Hammer)', 'Skull Woods Pass East Top Area'),
('Kakariko Teleporter (Rock)', 'Skull Woods Pass East Top Area'),
('Top of Pyramid', 'Pyramid Area'),
('Top of Pyramid (Inner)', 'Pyramid Area'),
('East Hyrule Teleporter', 'Palace of Darkness Nook Area'),
('South Hyrule Teleporter', 'Dark C Whirlpool Area'),
('Desert Teleporter', 'Misery Mire Area'),
('Lake Hylia Teleporter', 'Ice Palace Area'),
('West Death Mountain Teleporter', 'Dark Death Mountain (West Bottom)'),
('East Death Mountain Teleporter', 'Dark Death Mountain (East Bottom)'),
('Turtle Rock Teleporter', 'Turtle Rock Ledge'),
# Mirror Connections
('Lost Woods Mirror Spot', 'Lost Woods Area'),
('Lost Woods Entry Mirror Spot', 'Lost Woods Area'),
('Lost Woods Pedestal Mirror Spot', 'Lost Woods Area'),
('Lost Woods Southwest Mirror Spot', 'Lost Woods Area'),
('Lost Woods Northeast Mirror Spot', 'Lost Woods Area'),
('Lumberjack Mirror Spot', 'Lumberjack Area'),
('DM Ascent Mirror Spot', 'DM Ascent Area'),
('DM Ascent Entrance Mirror Spot', 'Death Mountain Entrance'),
('DM Ascent Ledge Mirror Spot', 'Death Mountain Return Ledge'),
('Lost Woods Pass West Mirror Spot', 'Lost Woods Pass West Area'),
('Lost Woods Pass East Top Mirror Spot', 'Lost Woods Pass East Top Area'),
('Lost Woods East Bottom Mirror Spot', 'Lost Woods Pass East Bottom Area'),
('Kakariko Fortune Mirror Spot', 'Kakariko Fortune Area'),
('Kakariko Pond Mirror Spot', 'Kakariko Pond Area'),
('Forgotton Forest Mirror Spot', 'Forgotten Forest Area'),
('Bonk Rock Ledge Mirror Spot', 'Bonk Rock Ledge'),
('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'),
('Kings Grave Mirror Spot', 'Kings Grave Area'),
('Useless Fairy Mirror Spot', 'Useless Fairy Area'),
('Useless Fairy East Mirror Spot', 'Useless Fairy East Bank'),
('Potion Shop Mirror Spot', 'Potion Shop Area'),
('Potion Shop Northeast Mirror Spot', 'Potion Shop Northeast'),
('Zora Warning Mirror Spot', 'Zora Warning Area'),
('Zora Approach Mirror Spot', 'Zora Approach Area'),
('Kakariko Mirror Spot', 'Kakariko Area'),
('Kakariko Grass Mirror Spot', 'Kakariko Area'),
('Blacksmith Mirror Spot', 'Blacksmith Area'),
('Blacksmith Entry Mirror Spot', 'Blacksmith Area'),
('Bat Cave Ledge Mirror Spot', 'Bat Cave Ledge'),
('HC Ledge Mirror Spot', 'Hyrule Castle Ledge'),
('HC Courtyard Mirror Spot', 'Hyrule Castle Courtyard'),
('HC Area Mirror Spot', 'Hyrule Castle Area'),
('HC Area South Mirror Spot', 'Hyrule Castle Area'),
('HC East Entry Mirror Spot', 'Hyrule Castle East Entry'),
('Wooden Bridge Mirror Spot', 'Wooden Bridge Area'),
('Wooden Bridge Northeast Mirror Spot', 'Wooden Bridge Area'),
('Wooden Bridge West Mirror Spot', 'Wooden Bridge Area'),
('Sand Dune Mirror Spot', 'Sand Dune Area'),
('Eastern Palace Mirror Spot', 'Eastern Palace Area'),
('Eastern Nook Mirror Spot', 'Eastern Nook Area'),
('Maze Race Mirror Spot', 'Maze Race Ledge'),
('Maze Race Ledge Mirror Spot', 'Maze Race Ledge'),
('Kakariko Suburb Mirror Spot', 'Kakariko Suburb Area'),
('Kakariko Suburb South Mirror Spot', 'Kakariko Suburb Area'),
('Flute Boy Mirror Spot', 'Flute Boy Area'),
('Flute Boy Pass Mirror Spot', 'Flute Boy Pass'),
('Cave 45 Mirror Spot', 'Cave 45 Ledge'),
('C Whirlpool Mirror Spot', 'C Whirlpool Area'),
('C Whirlpool Outer Mirror Spot', 'C Whirlpool Outer Area'),
('Central Bonk Rock Mirror Spot', 'Central Bonk Rock Area'),
('Links House Mirror Spot', 'Links House Area'),
('Stone Bridge Mirror Spot', 'Stone Bridge Area'),
('Stone Bridge South Mirror Spot', 'Stone Bridge Area'),
('Hobo Mirror Spot', 'Stone Bridge Water'),
('Tree Line Mirror Spot', 'Tree Line Area'),
('Desert Ledge Mirror Spot', 'Desert Ledge'),
('Checkerboard Mirror Spot', 'Desert Checkerboard Ledge'),
('DP Stairs Mirror Spot', 'Desert Palace Stairs'),
('DP Entrance (North) Mirror Spot', 'Desert Palace Entrance (North) Spot'),
('Bombos Tablet Mirror Spot', 'Purple Chest Ledge'),
('Purple Chest Mirror Spot', 'Purple Chest Area'),
('Dam Mirror Spot', 'Dam Area'),
('Statues Mirror Spot', 'Statues Area'),
('South Pass Mirror Spot', 'South Pass Area'),
('Lake Hylia Mirror Spot', 'Lake Hylia Area'),
('Lake Hylia Northeast Mirror Spot', 'Lake Hylia Northeast Bank'),
('South Shore Mirror Spot', 'Lake Hylia South Shore'),
('South Shore East Mirror Spot', 'Lake Hylia South Shore'),
('Lake Hylia Island Mirror Spot', 'Lake Hylia Island'),
('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island'),
('Octoballoon Mirror Spot', 'Octoballoon Area'),
('Ice Rod Cave Mirror Spot', 'Ice Rod Cave Area'),
('Spectacle Rock Mirror Spot', 'Spectacle Rock Ledge'),
('West Death Mountain (Top) Mirror Spot', 'West Death Mountain (Top)'),
('East Death Mountain (Top West) Mirror Spot', 'East Death Mountain (Top West)'),
('East Death Mountain (Top East) Mirror Spot', 'East Death Mountain (Top East)'),
('Spiral Cave Mirror Spot', 'Spiral Cave Ledge'),
('Mimic Cave Mirror Spot', 'Mimic Cave Ledge'),
('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'),
('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'),
('Floating Island Mirror Spot', 'Death Mountain Floating Island (Light World)'),
('TR Pegs Area Mirror Spot', 'Death Mountain TR Pegs'),
# UW Connections
('Lost Woods Hideout (top to bottom)', 'Lost Woods Hideout (bottom)'),
('Lumberjack Tree (top to bottom)', 'Lumberjack Tree (bottom)'),
('Kakariko Well (top to bottom)', 'Kakariko Well (bottom)'),
('Bat Cave Door', 'Bat Cave (left)'),
('Sewer Drop', 'Sewers Rat Path'),
('Old Man Cave Dropdown', 'Old Man Cave'),
('Old Man House Front to Back', 'Old Man House Back'),
('Old Man House Back to Front', 'Old Man House'),
('Spectacle Rock Cave Drop', 'Spectacle Rock Cave (Bottom)'),
('Spectacle Rock Cave Peak Drop', 'Spectacle Rock Cave (Bottom)'),
('Spiral Cave (top to bottom)', 'Spiral Cave (Bottom)'),
('Light World Death Mountain Shop', 'Light World Death Mountain Shop'),
('Paradox Cave Push Block Reverse', 'Paradox Cave Chest Area'),
('Paradox Cave Push Block', 'Paradox Cave Front'),
('Paradox Cave Bomb Jump', 'Paradox Cave'),
('Paradox Cave Drop', 'Paradox Cave Chest Area'),
('Fairy Ascension Cave Climb', 'Fairy Ascension Cave (Top)'),
('Fairy Ascension Cave Pots', 'Fairy Ascension Cave (Bottom)'),
('Fairy Ascension Cave Drop', 'Fairy Ascension Cave (Drop)'),
('Ganon Drop', 'Bottom of Pyramid')
]
# non shuffled overworld
default_overworld_connections = [('Lost Woods SW', 'Lost Woods Pass West Area'),
('Lost Woods SC', 'Lost Woods Pass East Top Area'),
('Lost Woods SE', 'Kakariko Fortune Area'),
('Lost Woods EN', 'Lumberjack Area'),
('Lumberjack WN', 'Lost Woods Area'),
('Lumberjack SW', 'DM Ascent Area'),
('DM Ascent NW', 'Lumberjack Area'),
('DM Ascent SE', 'Kakariko Pond Area'),
('Lost Woods Pass NW', 'Lost Woods Area'),
('Lost Woods Pass SW', 'Kakariko Area'),
('Lost Woods Pass NE', 'Lost Woods Area'),
('Lost Woods Pass SE', 'Kakariko Area'),
('Kakariko Fortune NE', 'Lost Woods Area'),
('Kakariko Fortune EN', 'Kakariko Pond Area'),
('Kakariko Fortune ES', 'Kakariko Pond Area'),
('Kakariko Fortune SC', 'Kakariko Area'),
('Kakariko Pond NE', 'DM Ascent Area'),
('Kakariko Pond WN', 'Kakariko Fortune Area'),
('Kakariko Pond WS', 'Kakariko Fortune Area'),
('Kakariko Pond SW', 'Forgotten Forest Area'),
('Kakariko Pond SE', 'Forgotten Forest Area'),
('Kakariko Pond EN', 'Bonk Rock Ledge'),
('Kakariko Pond ES', 'Sanctuary Area'),
('Forgotten Forest NW', 'Kakariko Pond Area'),
('Forgotten Forest NE', 'Kakariko Pond Area'),
('Forgotten Forest ES', 'Hyrule Castle Area'),
('Sanctuary WS', 'Kakariko Pond Area'),
('Sanctuary EC', 'Graveyard Area'),
('Sanctuary WN', 'Kakariko Pond Area'),
('Graveyard WC', 'Sanctuary Area'),
('Graveyard EC', 'Useless Fairy Area'),
('Useless Fairy WC', 'Graveyard Area'),
('Useless Fairy SW', 'Wooden Bridge Area'),
('Useless Fairy SE', 'Wooden Bridge Area'),
('Useless Fairy EC', 'Potion Shop Area'),
('Useless Fairy ES', 'Potion Shop Area'),
('Useless Fairy EN', 'Potion Shop Water'),
('Useless Fairy SC', 'Wooden Bridge Water'),
('Potion Shop WC', 'Useless Fairy East Bank'),
('Potion Shop WS', 'Useless Fairy East Bank'),
('Potion Shop EC', 'Zora Warning Area'),
('Potion Shop WN', 'Useless Fairy Water'),
('Potion Shop EN', 'Zora Warning Water'),
('Zora Warning WC', 'Potion Shop Northeast'),
('Zora Warning NE', 'Zora Approach Area'),
('Zora Warning WN', 'Potion Shop Water'),
('Zora Approach SE', 'Zora Warning Area'),
('Kakariko NW', 'Lost Woods Pass West Area'),
('Kakariko NC', 'Lost Woods Pass East Bottom Area'),
('Kakariko NE', 'Kakariko Fortune Area'),
('Kakariko ES', 'Blacksmith Area'),
('Kakariko SE', 'Kakariko Suburb Area'),
('Blacksmith WS', 'Kakariko Area'),
('Hyrule Castle WN', 'Forgotten Forest Area'),
('Hyrule Castle SW', 'Central Bonk Rock Area'),
('Hyrule Castle SE', 'Links House Area'),
('Hyrule Castle ES', 'Sand Dune Area'),
('Wooden Bridge NW', 'Useless Fairy Area'),
('Wooden Bridge NE', 'Useless Fairy East Bank'),
('Wooden Bridge SW', 'Sand Dune Area'),
('Wooden Bridge NC', 'Useless Fairy Water'),
('Sand Dune NW', 'Wooden Bridge Area'),
('Sand Dune WN', 'Hyrule Castle East Entry'),
('Sand Dune SC', 'Stone Bridge Area'),
('Eastern Palace SW', 'Tree Line Area'),
('Eastern Palace SE', 'Eastern Nook Area'),
('Eastern Nook NE', 'Eastern Palace Area'),
('Maze Race ES', 'Kakariko Suburb Area'),
('Kakariko Suburb NE', 'Kakariko Area'),
('Kakariko Suburb WS', 'Maze Race Area'),
('Kakariko Suburb ES', 'Flute Boy Pass'),
('Flute Boy SC', 'Cave 45 Area'),
('Flute Boy WS', 'Kakariko Suburb Area'),
('Flute Boy SW', 'Cave 45 Area'),
('Cave 45 NW', 'Flute Boy Pass'),
('Cave 45 NC', 'Flute Boy Area'),
('Cave 45 EC', 'C Whirlpool Outer Area'),
('C Whirlpool EN', 'Statues Area'),
('C Whirlpool EC', 'Statues Area'),
('C Whirlpool ES', 'Statues Area'),
('C Whirlpool SC', 'Dam Area'),
('C Whirlpool WC', 'Cave 45 Area'),
('C Whirlpool NW', 'Central Bonk Rock Area'),
('Central Bonk Rock NW', 'Hyrule Castle Area'),
('Central Bonk Rock SW', 'C Whirlpool Outer Area'),
('Central Bonk Rock EN', 'Links House Area'),
('Central Bonk Rock EC', 'Links House Area'),
('Central Bonk Rock ES', 'Links House Area'),
('Links House NE', 'Hyrule Castle Area'),
('Links House WN', 'Central Bonk Rock Area'),
('Links House WC', 'Central Bonk Rock Area'),
('Links House WS', 'Central Bonk Rock Area'),
('Links House SC', 'Statues Area'),
('Links House ES', 'Stone Bridge Area'),
('Stone Bridge NC', 'Sand Dune Area'),
('Stone Bridge EN', 'Tree Line Area'),
('Stone Bridge WS', 'Links House Area'),
('Stone Bridge SC', 'Lake Hylia Area'),
('Stone Bridge EC', 'Tree Line Water'),
('Tree Line WN', 'Stone Bridge Area'),
('Tree Line NW', 'Eastern Palace Area'),
('Tree Line SE', 'Lake Hylia Northeast Bank'),
('Tree Line WC', 'Stone Bridge Water'),
('Tree Line SC', 'Lake Hylia Water'),
('Desert ES', 'Purple Chest Area'),
('Purple Chest WS', 'Desert Area'),
('Purple Chest EC', 'Dam Area'),
('Purple Chest ES', 'Dam Area'),
('Purple Chest WC', 'Bombos Tablet Ledge'),
('Dam WC', 'Purple Chest Area'),
('Dam WS', 'Purple Chest Area'),
('Dam NC', 'C Whirlpool Area'),
('Dam EC', 'South Pass Area'),
('Statues NC', 'Links House Area'),
('Statues WN', 'C Whirlpool Area'),
('Statues WC', 'C Whirlpool Area'),
('Statues WS', 'C Whirlpool Area'),
('Statues SC', 'South Pass Area'),
('South Pass WC', 'Dam Area'),
('South Pass NC', 'Statues Area'),
('South Pass ES', 'Lake Hylia South Shore'),
('Lake Hylia NW', 'Stone Bridge Area'),
('Lake Hylia WS', 'South Pass Area'),
('Lake Hylia ES', 'Octoballoon Area'),
('Lake Hylia NE', 'Tree Line Area'),
('Lake Hylia NC', 'Tree Line Water'),
('Lake Hylia EC', 'Octoballoon Water'),
('Octoballoon WS', 'Lake Hylia South Shore'),
('Octoballoon NE', 'Ice Rod Cave Area'),
('Octoballoon WC', 'Lake Hylia Water'),
('Octoballoon NW', 'Ice Rod Cave Area'),
('Ice Rod Cave SE', 'Octoballoon Area'),
('Ice Rod Cave SW', 'Octoballoon Water Ledge'),
('West Death Mountain ES', 'East Death Mountain (Bottom Left)'),
('West Death Mountain EN', 'East Death Mountain (Top West)'),
('East Death Mountain WN', 'West Death Mountain (Top)'),
('East Death Mountain EN', 'Death Mountain TR Pegs'),
('East Death Mountain WS', 'West Death Mountain (Bottom)'),
('Death Mountain TR Pegs WN', 'East Death Mountain (Top East)'),
('Skull Woods SE', 'Dark Fortune Area'),
('Skull Woods SC', 'Skull Woods Pass East Top Area'),
('Skull Woods SW', 'Skull Woods Pass West Area'),
('Skull Woods WN', 'Dark Lumberjack Area'),
('Dark Lumberjack WN', 'Skull Woods Forgotten Path (Northeast)'),
('Dark Lumberjack SW', 'Bumper Cave Area'),
('Bumper Cave NW', 'Dark Lumberjack Area'),
('Bumper Cave SE', 'Outcast Pond Area'),
('Skull Woods Pass NW', 'Skull Woods Forgotten Path (Southwest)'),
('Skull Woods Pass SW', 'Village of Outcasts Area'),
('Skull Woods Pass NE', 'Skull Woods Portal Entry'),
('Skull Woods Pass SE', 'Village of Outcasts Area'),
('Dark Fortune NE', 'Skull Woods Forest'),
('Dark Fortune EN', 'Outcast Pond Area'),
('Dark Fortune ES', 'Outcast Pond Area'),
('Dark Fortune SC', 'Village of Outcasts Area'),
('Outcast Pond NE', 'Bumper Cave Area'),
('Outcast Pond WN', 'Dark Fortune Area'),
('Outcast Pond WS', 'Dark Fortune Area'),
('Outcast Pond SW', 'Shield Shop Area'),
('Outcast Pond SE', 'Shield Shop Area'),
('Outcast Pond EN', 'Dark Chapel Area'),
('Outcast Pond ES', 'Dark Chapel Area'),
('Shield Shop NW', 'Outcast Pond Area'),
('Shield Shop NE', 'Outcast Pond Area'),
('Dark Chapel WN', 'Outcast Pond Area'),
('Dark Chapel WS', 'Outcast Pond Area'),
('Dark Chapel EC', 'Dark Graveyard Area'),
('Dark Graveyard WC', 'Dark Chapel Area'),
('Dark Graveyard ES', 'Qirn Jump Area'),
('Qirn Jump WC', 'Dark Graveyard Area'),
('Qirn Jump SW', 'Broken Bridge West'),
('Qirn Jump SE', 'Broken Bridge Northeast'),
('Qirn Jump EC', 'Dark Witch Area'),
('Qirn Jump ES', 'Dark Witch Area'),
('Qirn Jump EN', 'Dark Witch Water'),
('Qirn Jump SC', 'Broken Bridge Water'),
('Dark Witch WC', 'Qirn Jump East Bank'),
('Dark Witch WS', 'Qirn Jump East Bank'),
('Dark Witch EC', 'Catfish Approach Area'),
('Dark Witch WN', 'Qirn Jump Water'),
('Dark Witch EN', 'Catfish Approach Water'),
('Catfish Approach WC', 'Dark Witch Northeast'),
('Catfish Approach NE', 'Catfish Area'),
('Catfish Approach WN', 'Dark Witch Water'),
('Catfish SE', 'Catfish Approach Area'),
('Village of Outcasts NW', 'Skull Woods Pass West Area'),
('Village of Outcasts NC', 'Skull Woods Pass East Bottom Area'),
('Village of Outcasts NE', 'Dark Fortune Area'),
('Village of Outcasts ES', 'Hammer Peg Entry'),
('Village of Outcasts SE', 'Frog Area'),
('Hammer Pegs WS', 'Village of Outcasts Area'),
('Pyramid ES', 'Dark Dune Area'),
('Pyramid SW', 'Dark Bonk Rock Area'),
('Pyramid SE', 'Big Bomb Shop Area'),
('Broken Bridge SW', 'Dark Dune Area'),
('Broken Bridge NE', 'Qirn Jump East Bank'),
('Broken Bridge NW', 'Qirn Jump Area'),
('Broken Bridge NC', 'Qirn Jump Water'),
('Dark Dune NW', 'Broken Bridge Area'),
('Dark Dune WN', 'Pyramid Area'),
('Dark Dune SC', 'Hammer Bridge North Area'),
('Palace of Darkness SW', 'Dark Tree Line Area'),
('Palace of Darkness SE', 'Palace of Darkness Nook Area'),
('Palace of Darkness Nook NE', 'Palace of Darkness Area'),
('Dig Game ES', 'Archery Game Area'),
('Dig Game EC', 'Archery Game Area'),
('Frog NE', 'Village of Outcasts Area'),
('Frog WC', 'Dig Game Ledge'),
('Frog WS', 'Dig Game Area'),
('Frog ES', 'Stumpy Pass'),
('Stumpy SC', 'Circle of Bushes Area'),
('Stumpy WS', 'Archery Game Area'),
('Stumpy SW', 'Circle of Bushes Area'),
('Circle of Bushes NW', 'Stumpy Pass'),
('Circle of Bushes NC', 'Stumpy Area'),
('Circle of Bushes EC', 'Dark C Whirlpool Outer Area'),
('Dark C Whirlpool EN', 'Hype Cave Area'),
('Dark C Whirlpool EC', 'Hype Cave Area'),
('Dark C Whirlpool ES', 'Hype Cave Area'),
('Dark C Whirlpool SC', 'Swamp Palace Area'),
('Dark C Whirlpool WC', 'Circle of Bushes Area'),
('Dark C Whirlpool NW', 'Dark Bonk Rock Area'),
('Dark Bonk Rock NW', 'Pyramid Pass'),
('Dark Bonk Rock SW', 'Dark C Whirlpool Outer Area'),
('Dark Bonk Rock EN', 'Big Bomb Shop Area'),
('Dark Bonk Rock EC', 'Big Bomb Shop Area'),
('Dark Bonk Rock ES', 'Big Bomb Shop Area'),
('Big Bomb Shop NE', 'Pyramid Pass'),
('Big Bomb Shop WN', 'Dark Bonk Rock Area'),
('Big Bomb Shop WC', 'Dark Bonk Rock Area'),
('Big Bomb Shop WS', 'Dark Bonk Rock Area'),
('Big Bomb Shop SC', 'Hype Cave Area'),
('Big Bomb Shop ES', 'Hammer Bridge South Area'),
('Hammer Bridge NC', 'Dark Dune Area'),
('Hammer Bridge EN', 'Dark Tree Line Area'),
('Hammer Bridge WS', 'Big Bomb Shop Area'),
('Hammer Bridge SC', 'Dark Lake Hylia Area'),
('Hammer Bridge EC', 'Dark Tree Line Water'),
('Dark Tree Line WN', 'Hammer Bridge North Area'),
('Dark Tree Line NW', 'Palace of Darkness Area'),
('Dark Tree Line SE', 'Dark Lake Hylia Northeast Bank'),
('Dark Tree Line WC', 'Hammer Bridge Water'),
('Dark Tree Line SC', 'Dark Lake Hylia Water'),
('Dark Purple Chest EC', 'Swamp Palace Area'),
('Dark Purple Chest ES', 'Swamp Palace Area'),
('Swamp Palace WC', 'Dark Purple Chest Area'),
('Swamp Palace WS', 'Dark Purple Chest Area'),
('Swamp Palace NC', 'Dark C Whirlpool Area'),
('Swamp Palace EC', 'Dark South Pass Area'),
('Hype Cave NC', 'Big Bomb Shop Area'),
('Hype Cave WN', 'Dark C Whirlpool Area'),
('Hype Cave WC', 'Dark C Whirlpool Area'),
('Hype Cave WS', 'Dark C Whirlpool Area'),
('Hype Cave SC', 'Dark South Pass Area'),
('Dark South Pass WC', 'Swamp Palace Area'),
('Dark South Pass NC', 'Hype Cave Area'),
('Dark South Pass ES', 'Dark Lake Hylia Ledge (West)'),
('Dark Lake Hylia NW', 'Hammer Bridge South Area'),
('Dark Lake Hylia NE', 'Dark Tree Line Area'),
('Dark Lake Hylia WS', 'Dark South Pass Area'),
('Dark Lake Hylia ES', 'Southeast DW Area'),
('Dark Lake Hylia NC', 'Dark Tree Line Water'),
('Dark Lake Hylia EC', 'Southeast DW Water'),
('Southeast DW WS', 'Dark Lake Hylia Ledge (East)'),
('Southeast DW NE', 'Dark Shopping Mall Area'),
('Southeast DW WC', 'Dark Lake Hylia Water'),
('Southeast DW NW', 'Dark Shopping Mall Area'),
('Dark Shopping Mall SE', 'Southeast DW Area'),
('Dark Shopping Mall SW', 'Southeast DW Water Ledge'),
('Dark Death Mountain EN', 'Dark Death Mountain (Top East)'),
('East Dark Death Mountain WN', 'Dark Death Mountain (Top West)'),
('East Dark Death Mountain EN', 'Turtle Rock Area'),
('Turtle Rock WN', 'Dark Death Mountain (Top East)')
]