Zero out more door frame tables, prepare structure for proper fix once understood.

This commit is contained in:
LLCoolDave
2017-06-17 13:16:13 +02:00
parent 2d81e87e7f
commit 57a6ba73c1
4 changed files with 180 additions and 157 deletions

View File

@@ -694,9 +694,14 @@ def connect_entrance(world, entrancename, exitname):
entrance.connected_region.entrances.remove(entrance)
target = exit_ids[exit.name][0] if exit is not None else exit_ids.get(region.name, None)
addresses = door_addresses[entrance.name][0] if exit is not None else door_addresses[entrance.name]
addresses = door_addresses[entrance.name][0][0] if exit is not None else door_addresses[entrance.name][0]
try:
vanilla_ref = door_addresses[entrance.name][1]
vanilla = exit_ids[vanilla_ref]
except IndexError:
vanilla = None
entrance.connect(region, addresses, target)
entrance.connect(region, addresses, target, vanilla)
return '%s => %s' % (entrance.name, exit.name if exit is not None else region.name)
@@ -708,7 +713,7 @@ def connect_exit(world, exitname, entrancename):
if exit.connected_region is not None:
exit.connected_region.entrances.remove(exit)
exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1])
exit.connect(entrance.parent_region, door_addresses[entrance.name][0][1], exit_ids[exit.name][1])
return '%s <= %s' % (entrance.name, exit.name)
@@ -722,8 +727,8 @@ def connect_two_way(world, entrancename, exitname):
if exit.connected_region is not None:
exit.connected_region.entrances.remove(exit)
entrance.connect(exit.parent_region, door_addresses[entrance.name][0], exit_ids[exit.name][0])
exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1])
entrance.connect(exit.parent_region, door_addresses[entrance.name][0][0], exit_ids[exit.name][0])
exit.connect(entrance.parent_region, door_addresses[entrance.name][0][1], exit_ids[exit.name][1])
return '%s <=> %s' % (entrance.name, exit.name)
@@ -1231,10 +1236,10 @@ mandatory_connections = [('Links House', 'Links House'), # unshuffled. For now
('South Hyrule Teleporter', 'South Dark World'),
('Kakariko Teleporter', 'West Dark World'),
('Death Mountain Teleporter', 'Dark Death Mountain (West Bottom)'),
('7 Chest Cave Push Block Reverse', '7 Chest Cave Cave Chest Area'),
('7 Chest Cave Push Block', '7 Chest Cave Cave Front'),
('7 Chest Cave Bomb Jump', '7 Chest Cave Cave'),
('7 Chest Cave Drop', '7 Chest Cave Cave Chest Area'),
('7 Chest Cave Push Block Reverse', '7 Chest Cave Chest Area'),
('7 Chest Cave Push Block', '7 Chest Cave Front'),
('7 Chest Cave Bomb Jump', '7 Chest Cave'),
('7 Chest Cave Drop', '7 Chest Cave Chest Area'),
('Fairy Ascension Rocks', 'Fairy Ascension Plateau'),
('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'),
('Fairy Ascension Drop', 'East Death Mountain (Bottom)'),
@@ -1408,9 +1413,9 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
('Spectacle Rock Cave Exit', 'Death Mountain'),
('Spectacle Rock Cave Exit (Top)', 'Death Mountain'),
('Spectacle Rock Cave Exit (Peak)', 'Death Mountain'),
('7 Chest Cave (Bottom)', '7 Chest Cave Cave Front'),
('7 Chest Cave (Middle)', '7 Chest Cave Cave'),
('7 Chest Cave (Top)', '7 Chest Cave Cave'),
('7 Chest Cave (Bottom)', '7 Chest Cave Front'),
('7 Chest Cave (Middle)', '7 Chest Cave'),
('7 Chest Cave (Top)', '7 Chest Cave'),
('7 Chest Cave Exit (Bottom)', 'East Death Mountain (Bottom)'),
('7 Chest Cave Exit (Middle)', 'East Death Mountain (Bottom)'),
('7 Chest Cave Exit (Top)', 'East Death Mountain (Top)'),
@@ -1527,145 +1532,145 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert Palace
# ToDo somehow merge this with creation of the locations
door_addresses = {'Desert Palace Entrance (South)': (0xDBB7B, 0x15B02),
'Desert Palace Entrance (West)': (0xDBB7D, 0x15B06),
'Desert Palace Entrance (North)': (0xDBB7E, 0x15B08),
'Desert Palace Entrance (East)': (0xDBB7C, 0x15B04),
'Eastern Palace': (0xDBB7A, 0x15B00),
'Tower of Hera': (0xDBBA5, 0x15B48),
'Hyrule Castle Entrance (South)': (0xDBB76, 0x15AF4),
'Hyrule Castle Entrance (West)': (0xDBB75, 0x15AF2),
'Hyrule Castle Entrance (East)': (0xDBB77, 0x15AF6),
'Agahnims Tower': (0xDBB96, 0x15B38),
'Thieves Town': (0xDBBA6, 0x15B58),
'Skull Woods First Section Door': (0xDBB9C, 0x15B44),
'Skull Woods Second Section Door (East)': (0xDBB9B, 0x15B42),
'Skull Woods Second Section Door (West)': (0xDBB9A, 0x15B40),
'Skull Woods Final Section': (0xDBB9D, 0x15B46),
'Ice Palace': (0xDBB9F, 0x15B4A),
'Misery Mire': (0xDBB99, 0x15B3E),
'Palace of Darkness': (0xDBB98, 0x15B3C),
'Swamp Palace': (0xDBB97, 0x15B3A),
'Turtle Rock': (0xDBBA7, 0x15B56),
'Dark Death Mountain Ledge (West)': (0xDBB87, 0x15B1A),
'Dark Death Mountain Ledge (East)': (0xDBB8B, 0x15B22),
'Turtle Rock Isolated Ledge Entrance': (0xDBB8A, 0x15B20),
'Hyrule Castle Secret Entrance Stairs': (0xDBBA4, 0x15B54),
'Kakariko Well Cave': (0xDBBAB, 0x15B62),
'Bat Cave Cave': (0xDBB83, 0x15B12),
'Elder House (East)': (0xDBB80, 0x15B0C),
'Elder House (West)': (0xDBB7F, 0x15B0A),
'North Fairy Cave': (0xDBBAA, 0x15B60),
'Thieves Forest Hideout Stump': (0xDBB9E, 0x15B5A),
'Lumberjack Tree Cave': (0xDBB84, 0x15B14),
'Two Brothers House (East)': (0xDBB82, 0x15B10),
'Two Brothers House (West)': (0xDBB81, 0x15B0E),
'Sanctuary': (0xDBB74, 0x15AF0),
'Old Man Cave (West)': (0xDBB78, 0x15AFC),
'Old Man Cave (East)': (0xDBB79, 0x15AFE),
'Old Man House (Bottom)': (0xDBBA2, 0x15B50),
'Old Man House (Top)': (0xDBBA3, 0x15B52),
'Death Mountain Return Cave (East)': (0xDBBA1, 0x15B4E),
'Death Mountain Return Cave (West)': (0xDBBA0, 0x15B4C),
'Spectacle Rock Cave Peak': (0xDBB95, 0x15B36),
'Spectacle Rock Cave': (0xDBB94, 0x15B34),
'Spectacle Rock Cave (Bottom)': (0xDBB93, 0x15B32),
'7 Chest Cave (Bottom)': (0xDBB90, 0x15B2C),
'7 Chest Cave (Middle)': (0xDBB91, 0x15B2E),
'7 Chest Cave (Top)': (0xDBB92, 0x15B30),
'Fairy Ascension Cave (Bottom)': (0xDBB8C, 0x15B24),
'Fairy Ascension Cave (Top)': (0xDBB8D, 0x15B26),
'Spiral Cave': (0xDBB8F, 0x15B2A),
'Spiral Cave (Bottom)': (0xDBB8E, 0x15B28),
'Bumper Cave (Bottom)': (0xDBB88, 0x15B1C),
'Bumper Cave (Top)': (0xDBB89, 0x15B1E),
'Dark Death Mountain Ascend (Top)': (0xDBB86, 0x15B18),
'Dark Death Mountain Ascend (Bottom)': (0xDBB85, 0x15B16),
'Hookshot Cave': (0xDBBAC, 0x15B64),
'Hookshot Cave Back Entrance': (0xDBBAD, 0x15B66),
'Ganons Tower': (0xDBBA9, 0x15B5E),
'Pyramid Entrance': (0xDBBA8, 0x15B5C),
'Skull Woods First Section Hole (East)': (0xDB84D, 0xDB84E),
'Skull Woods First Section Hole (West)': (0xDB84F, 0xDB850),
'Skull Woods First Section Hole (North)': 0xDB84C,
'Skull Woods Second Section Hole': (0xDB851, 0xDB852),
'Pyramid Hole': (0xDB854, 0xDB855, 0xDB856),
'Waterfall of Wishing': 0xDBBCE,
'Dam': 0xDBBC0,
'Thiefs Hut': 0xDBBD3,
'Hyrule Castle Secret Entrance Drop': 0xDB858,
'Bonk Fairy (Light)': 0xDBBE9,
'Lake Hylia Fairy': 0xDBBD0,
'Swamp Fairy': 0xDBBDE,
'Desert Fairy': 0xDBBE4,
'Kings Grave': 0xDBBCD,
'Tavern North': 0xDBBB5, # do not use, buggy
'Chicken House': 0xDBBBD,
'Aginahs Cave': 0xDBBE3,
'Sahasrahlas Hut': 0xDBBB7,
'Cave Shop (Lake Hylia)': 0xDBBCA,
'Capacity Upgrade': 0xDBBCF,
'Kakariko Well Drop': (0xDB85C, 0xDB85D),
'Blacksmiths Hut': 0xDBBD6,
'Bat Cave Drop': (0xDB859, 0xDB85A),
'Sick Kids House': 0xDBBB2,
'North Fairy Cave Drop': 0xDB857,
'Lost Woods Gamble': 0xDBBAE,
'Fortune Teller (Light)': 0xDBBD7,
'Snitch Lady (East)': 0xDBBB0,
'Snitch Lady (West)': 0xDBBB1,
'Bush Covered House': 0xDBBB6,
'Tavern (Front)': 0xDBBB4,
'Light World Bomb Hut': 0xDBBBC,
'Kakariko Shop': 0xDBBB8,
'Thieves Forest Hideout Drop': 0xDB853,
'Lumberjack Tree Tree': 0xDB85B,
'Cave South of Haunted Grove': 0xDBBC3,
'Graveyard Cave': 0xDBBC4,
'Checkerboard Cave': 0xDBBF0,
'Mini Moldorm Cave': 0xDBBEF,
'Long Fairy Cave': 0xDBBC7,
'Good Bee Cave': 0xDBBDD,
'20 Rupee Cave': 0xDBBED,
'50 Rupee Cave': 0xDBBEB,
'Ice Cave': 0xDBBF2,
'Bonk Rock Cave': 0xDBBEC,
'Library': 0xDBBBB,
'Witch Hut': 0xDBBBE,
'Sanctuary Grave': 0xDB85E,
'Hookshot Fairy': 0xDBBC2,
'Pyramid Fairy': 0xDBBD5,
'East Dark World Hint': 0xDBBDB,
'Palace of Darkness Hint': 0xDBBDA,
'Dark Lake Hylia Fairy': 0xDBBDF,
'Dark Lake Hylia Ledge Fairy': 0xDBBF3,
'Dark Lake Hylia Ledge Spike Cave': 0xDBBEE,
'Dark Lake Hylia Ledge Hint': 0xDBBDC,
'Dark Swamp Cave': 0xDBBAF,
'Bonk Fairy (Dark)': 0xDBBEA,
'Doorless Hut': 0xDBBBA,
'C-Shaped House': 0xDBBC6,
'Chest Game': 0xDBBB9,
'Dark World Hammer Peg Cave': 0xDBBF1,
'Red Shield Shop': 0xDBBE7,
'Dark Sanctuary Hint': 0xDBBCC,
'Fortune Teller (Dark)': 0xDBBD8,
'Dark World Shop': 0xDBBD2,
'Dark World Lumberjack Shop': 0xDBBC9,
'Dark World Potion Shop': 0xDBBE1,
'Archery Game': 0xDBBCB,
'Dark Desert Cave': 0xDBBD1,
'Dark Desert Hint': 0xDBBD4,
'Dark Desert Fairy': 0xDBBC8,
'Spike Cave': 0xDBBB3,
'Cave Shop (Dark Death Mountain)': 0xDBBE0,
'Dark Death Mountain Fairy': 0xDBBE2,
'Mimic Cave Mirror Spot': 0xDBBC1,
'Big Bomb Shop': 0xDBBC5,
'Dark Lake Hylia Shop': 0xDBBE6,
'Lumberjack House': 0xDBBE8,
'Lake Hylia Fortune Teller': 0xDBBE5,
'Kakariko Gamble Game': 0xDBBD9}
door_addresses = {'Desert Palace Entrance (South)': ((0xDBB7B, 0x15B02),),
'Desert Palace Entrance (West)': ((0xDBB7D, 0x15B06),),
'Desert Palace Entrance (North)': ((0xDBB7E, 0x15B08),),
'Desert Palace Entrance (East)': ((0xDBB7C, 0x15B04),),
'Eastern Palace': ((0xDBB7A, 0x15B00),),
'Tower of Hera': ((0xDBBA5, 0x15B48),),
'Hyrule Castle Entrance (South)': ((0xDBB76, 0x15AF4),),
'Hyrule Castle Entrance (West)': ((0xDBB75, 0x15AF2),),
'Hyrule Castle Entrance (East)': ((0xDBB77, 0x15AF6),),
'Agahnims Tower': ((0xDBB96, 0x15B38),),
'Thieves Town': ((0xDBBA6, 0x15B58),),
'Skull Woods First Section Door': ((0xDBB9C, 0x15B44),),
'Skull Woods Second Section Door (East)': ((0xDBB9B, 0x15B42),),
'Skull Woods Second Section Door (West)': ((0xDBB9A, 0x15B40),),
'Skull Woods Final Section': ((0xDBB9D, 0x15B46),),
'Ice Palace': ((0xDBB9F, 0x15B4A),),
'Misery Mire': ((0xDBB99, 0x15B3E),),
'Palace of Darkness': ((0xDBB98, 0x15B3C),),
'Swamp Palace': ((0xDBB97, 0x15B3A),),
'Turtle Rock': ((0xDBBA7, 0x15B56),),
'Dark Death Mountain Ledge (West)': ((0xDBB87, 0x15B1A),),
'Dark Death Mountain Ledge (East)': ((0xDBB8B, 0x15B22),),
'Turtle Rock Isolated Ledge Entrance': ((0xDBB8A, 0x15B20),),
'Hyrule Castle Secret Entrance Stairs': ((0xDBBA4, 0x15B54),),
'Kakariko Well Cave': ((0xDBBAB, 0x15B62),),
'Bat Cave Cave': ((0xDBB83, 0x15B12),),
'Elder House (East)': ((0xDBB80, 0x15B0C),),
'Elder House (West)': ((0xDBB7F, 0x15B0A),),
'North Fairy Cave': ((0xDBBAA, 0x15B60),),
'Thieves Forest Hideout Stump': ((0xDBB9E, 0x15B5A),),
'Lumberjack Tree Cave': ((0xDBB84, 0x15B14),),
'Two Brothers House (East)': ((0xDBB82, 0x15B10),),
'Two Brothers House (West)': ((0xDBB81, 0x15B0E),),
'Sanctuary': ((0xDBB74, 0x15AF0),),
'Old Man Cave (West)': ((0xDBB78, 0x15AFC),),
'Old Man Cave (East)': ((0xDBB79, 0x15AFE),),
'Old Man House (Bottom)': ((0xDBBA2, 0x15B50),),
'Old Man House (Top)': ((0xDBBA3, 0x15B52),),
'Death Mountain Return Cave (East)': ((0xDBBA1, 0x15B4E),),
'Death Mountain Return Cave (West)': ((0xDBBA0, 0x15B4C),),
'Spectacle Rock Cave Peak': ((0xDBB95, 0x15B36),),
'Spectacle Rock Cave': ((0xDBB94, 0x15B34),),
'Spectacle Rock Cave (Bottom)': ((0xDBB93, 0x15B32),),
'7 Chest Cave (Bottom)': ((0xDBB90, 0x15B2C),),
'7 Chest Cave (Middle)': ((0xDBB91, 0x15B2E),),
'7 Chest Cave (Top)': ((0xDBB92, 0x15B30),),
'Fairy Ascension Cave (Bottom)': ((0xDBB8C, 0x15B24),),
'Fairy Ascension Cave (Top)': ((0xDBB8D, 0x15B26),),
'Spiral Cave': ((0xDBB8F, 0x15B2A),),
'Spiral Cave (Bottom)': ((0xDBB8E, 0x15B28),),
'Bumper Cave (Bottom)': ((0xDBB88, 0x15B1C),),
'Bumper Cave (Top)': ((0xDBB89, 0x15B1E),),
'Dark Death Mountain Ascend (Top)': ((0xDBB86, 0x15B18),),
'Dark Death Mountain Ascend (Bottom)': ((0xDBB85, 0x15B16),),
'Hookshot Cave': ((0xDBBAC, 0x15B64),),
'Hookshot Cave Back Entrance': ((0xDBBAD, 0x15B66),),
'Ganons Tower': ((0xDBBA9, 0x15B5E),),
'Pyramid Entrance': ((0xDBBA8, 0x15B5C),),
'Skull Woods First Section Hole (East)': ((0xDB84D, 0xDB84E),),
'Skull Woods First Section Hole (West)': ((0xDB84F, 0xDB850),),
'Skull Woods First Section Hole (North)': (0xDB84C,),
'Skull Woods Second Section Hole': ((0xDB851, 0xDB852),),
'Pyramid Hole': ((0xDB854, 0xDB855, 0xDB856),),
'Waterfall of Wishing': (0xDBBCE, 'Waterfall of Wishing'),
'Dam': (0xDBBC0, 'Dam'),
'Thiefs Hut': (0xDBBD3, 'Thiefs Hut'),
'Hyrule Castle Secret Entrance Drop': (0xDB858,),
'Bonk Fairy (Light)': (0xDBBE9, 'Bonk Fairy'),
'Lake Hylia Fairy': (0xDBBD0, 'Healer Fairy'),
'Swamp Fairy': (0xDBBDE, 'Healer Fairy'),
'Desert Fairy': (0xDBBE4, 'Healer Fairy'),
'Kings Grave': (0xDBBCD, 'Kings Grave'),
'Tavern North': (0xDBBB5, 'Tavern'), # do not use, buggy
'Chicken House': (0xDBBBD, 'Chicken House'),
'Aginahs Cave': (0xDBBE3, 'Aginahs Cave'),
'Sahasrahlas Hut': (0xDBBB7, 'Sahasrahlas Hut'),
'Cave Shop (Lake Hylia)': (0xDBBCA, 'Cave Shop'),
'Capacity Upgrade': (0xDBBCF, 'Capacity Upgrade'),
'Kakariko Well Drop': ((0xDB85C, 0xDB85D),),
'Blacksmiths Hut': (0xDBBD6, 'Blacksmiths Hut'),
'Bat Cave Drop': ((0xDB859, 0xDB85A),),
'Sick Kids House': (0xDBBB2, 'Sick Kids House'),
'North Fairy Cave Drop': (0xDB857,),
'Lost Woods Gamble': (0xDBBAE, 'Lost Woods Gamble'),
'Fortune Teller (Light)': (0xDBBD7, 'Fortune Teller (Light)'),
'Snitch Lady (East)': (0xDBBB0, 'Snitch Lady (East)'),
'Snitch Lady (West)': (0xDBBB1, 'Snitch Lady (West)'),
'Bush Covered House': (0xDBBB6, 'Bush Covered House'),
'Tavern (Front)': (0xDBBB4, 'Tavern (Front)'),
'Light World Bomb Hut': (0xDBBBC, 'Light World Bomb Hut'),
'Kakariko Shop': (0xDBBB8, 'Kakariko Shop'),
'Thieves Forest Hideout Drop': (0xDB853,),
'Lumberjack Tree Tree': (0xDB85B,),
'Cave South of Haunted Grove': (0xDBBC3, 'Cave South of Haunted Grove'),
'Graveyard Cave': (0xDBBC4, 'Graveyard Cave'),
'Checkerboard Cave': (0xDBBF0, 'Checkerboard Cave'),
'Mini Moldorm Cave': (0xDBBEF, 'Mini Moldorm Cave'),
'Long Fairy Cave': (0xDBBC7, 'Long Fairy Cave'),
'Good Bee Cave': (0xDBBDD, 'Good Bee Cave'),
'20 Rupee Cave': (0xDBBED, '20 Rupee Cave'),
'50 Rupee Cave': (0xDBBEB, '50 Rupee Cave'),
'Ice Cave': (0xDBBF2, 'Ice Cave'),
'Bonk Rock Cave': (0xDBBEC, 'Bonk Rock Cave'),
'Library': (0xDBBBB, 'Library'),
'Witch Hut': (0xDBBBE, 'Witch Hut'),
'Sanctuary Grave': (0xDB85E,),
'Hookshot Fairy': (0xDBBC2, 'Hookshot Fairy'),
'Pyramid Fairy': (0xDBBD5, 'Pyramid Fairy'),
'East Dark World Hint': (0xDBBDB, 'East Dark World Hint'),
'Palace of Darkness Hint': (0xDBBDA, 'Palace of Darkness Hint'),
'Dark Lake Hylia Fairy': (0xDBBDF, 'Healer Fairy'),
'Dark Lake Hylia Ledge Fairy': (0xDBBF3, 'Healer Fairy'),
'Dark Lake Hylia Ledge Spike Cave': (0xDBBEE, 'Dark Lake Hylia Ledge Spike Cave'),
'Dark Lake Hylia Ledge Hint': (0xDBBDC, 'Dark Lake Hylia Ledge Hint'),
'Dark Swamp Cave': (0xDBBAF, 'Dark Swamp Cave'),
'Bonk Fairy (Dark)': (0xDBBEA, 'Bonk Fairy'),
'Doorless Hut': (0xDBBBA, 'Doorless Hut'),
'C-Shaped House': (0xDBBC6, 'C-Shaped House'),
'Chest Game': (0xDBBB9, 'Chest Game'),
'Dark World Hammer Peg Cave': (0xDBBF1, 'Dark World Hammer Peg Cave'),
'Red Shield Shop': (0xDBBE7, 'Red Shield Shop'),
'Dark Sanctuary Hint': (0xDBBCC, 'Dark Sanctuary Hint'),
'Fortune Teller (Dark)': (0xDBBD8, 'Fortune Teller (Dark)'),
'Dark World Shop': (0xDBBD2, 'Dark World Shop'),
'Dark World Lumberjack Shop': (0xDBBC9, 'Dark World Shop'),
'Dark World Potion Shop': (0xDBBE1, 'Dark World Shop'),
'Archery Game': (0xDBBCB, 'Archery Game'),
'Dark Desert Cave': (0xDBBD1, 'Dark Desert Cave'),
'Dark Desert Hint': (0xDBBD4, 'Dark Desert Hint'),
'Dark Desert Fairy': (0xDBBC8, 'Healer Fairy'),
'Spike Cave': (0xDBBB3, 'Spike Cave'),
'Cave Shop (Dark Death Mountain)': (0xDBBE0, 'Cave Shop'),
'Dark Death Mountain Fairy': (0xDBBE2, 'Healer Fairy'),
'Mimic Cave Mirror Spot': (0xDBBC1, 'Mimic Cave'),
'Big Bomb Shop': (0xDBBC5, 'Big Bomb Shop'),
'Dark Lake Hylia Shop': (0xDBBE6, 'Dark World Shop'),
'Lumberjack House': (0xDBBE8, 'Lumberjack House'),
'Lake Hylia Fortune Teller': (0xDBBE5, 'Fortune Teller (Light)'),
'Kakariko Gamble Game': (0xDBBD9, 'Kakariko Gamble Game')}
exit_ids = {'Desert Palace Exit (South)': (0x09, 0x84),
'Desert Palace Exit (West)': (0x0B, 0x83),