Pot Shuffle in-progress

This commit is contained in:
compiling
2020-07-24 21:06:37 +10:00
parent 18447cfe3e
commit ce835aaee6

541
PotShuffle.py Normal file
View File

@@ -0,0 +1,541 @@
from fast_enum import FastEnum
class PotItem(FastEnum):
Nothing = 0x0
OneRupee = 0x1
RockCrab = 0x2
Bee = 0x3
Random = 0x4
Bomb = 0x5
Heart = 0x6
FiveRupees = 0x7
Key = 0x8
FiveArrows = 0x9
Bomb_2 = 0xA
Heart_2 = 0xB
SmallMagic = 0xC
BigMagic = 0xD
Chicken = 0xE
GreenSoldier = 0xF
AliveRock = 0x10
BlueSoldier = 0x11
GroundBomb = 0x12
Heart_3 = 0x13
Fairy = 0x14
Heart_4 = 0x15
Hole = 0x80
Warp = 0x82
Staircase = 0x84
Bombable = 0x86
Switch = 0x88
pot_item_room_table_lookup = 0xDB67
###
# Pointer to pot location and contents for each non-empty pot in a supertile
# Format: [(x, y, item)] FF FF (Note: x,y are bit packed to include layer)
pot_item_lookup_table = [
0xdde7,0xdde7,0xdde7,0xdde7,0xdde9,0xddef,0xddef,0xddef,0xddef,0xddf1,0xddfc,0xde0d,0xde13,0xde13,0xde13,0xde13,
0xde13,0xde15,0xde21,0xde21,0xde21,0xde23,0xde40,0xde5d,0xde81,0xde81,0xde83,0xde91,0xde97,0xde97,0xde99,0xde9e,
0xdea1,0xdea3,0xdeac,0xdeae,0xdebf,0xdecb,0xdecd,0xdede,0xdef0,0xdef0,0xdef2,0xdefa,0xdf1a,0xdf20,0xdf20,0xdf22,
0xdf3a,0xdf3c,0xdf41,0xdf44,0xdf46,0xdf4e,0xdf6b,0xdf79,0xdf7e,0xdf8c,0xdf98,0xdf98,0xdf9a,0xdfb1,0xdfc8,0xdfd6,
0xdfeb,0xdfed,0xdff9,0xdffb,0xe00a,0xe00c,0xe01d,0xe023,0xe023,0xe025,0xe039,0xe059,0xe05f,0xe05f,0xe061,0xe06a,
0xe06c,0xe072,0xe074,0xe07c,0xe08a,0xe098,0xe0a0,0xe0c3,0xe0dd,0xe0f7,0xe0fa,0xe0fc,0xe101,0xe109,0xe123,0xe131,
0xe136,0xe13c,0xe13e,0xe143,0xe14b,0xe162,0xe16a,0xe18a,0xe1a1,0xe1b0,0xe1b0,0xe1b2,0xe1c0,0xe1ce,0xe1da,0xe1da,
0xe1da,0xe1da,0xe1da,0xe1dc,0xe1fc,0xe213,0xe21e,0xe227,0xe227,0xe227,0xe227,0xe229,0xe231,0xe239,0xe247,0xe250,
0xe252,0xe25b,0xe25d,0xe262,0xe270,0xe278,0xe27e,0xe280,0xe286,0xe286,0xe286,0xe288,0xe293,0xe2aa,0xe2b8,0xe2bb,
0xe2bb,0xe2bd,0xe2c3,0xe2c5,0xe2cb,0xe2cb,0xe2cd,0xe2d9,0xe2d9,0xe2db,0xe2e1,0xe2e3,0xe2eb,0xe2f3,0xe2f9,0xe2fb,
0xe310,0xe312,0xe326,0xe329,0xe329,0xe329,0xe329,0xe329,0xe32b,0xe333,0xe347,0xe358,0xe35b,0xe35b,0xe35d,0xe360,
0xe362,0xe382,0xe38a,0xe395,0xe3a0,0xe3a8,0xe3bc,0xe3c1,0xe3c6,0xe3d1,0xe3df,0xe3f1,0xe3f3,0xe41a,0xe41c,0xe421,
0xe435,0xe441,0xe443,0xe44f,0xe451,0xe469,0xe46b,0xe473,0xe47f,0xe481,0xe48a,0xe48c,0xe494,0xe4a0,0xe4a2,0xe4b1,
0xe4b3,0xe4ca,0xe4d9,0xe4d9,0xe4d9,0xe4d9,0xe4db,0xe4e1,0xe4e3,0xe4fd,0xe505,0xe513,0xe51b,0xe527,0xe527,0xe527,
0xe529,0xe52c,0xe52c,0xe52e,0xe533,0xe53b,0xe549,0xe554,0xe55c,0xe55f,0xe55f,0xe561,0xe570,0xe570,0xe570,0xe570,
0xe570,0xe572,0xe575,0xe575,0xe575,0xe575,0xe575,0xe575,0xe577,0xe57a,0xe57a,0xe57a,0xe57a,0xe57c,0xe588,0xe58a,
]
supertile_pot_contents = {
0x02: {
'Sewers Yet More Rats': [(0x50, 0x06, PotItem.Nothing), (0x50, 0x08, PotItem.Nothing), (0x2C, 0x08, PotItem.Nothing), (0x2C, 0x0A, PotItem.Nothing)]
},
0x04: {
'TR Dash Room': [(0xA2, 0x19, PotItem.Nothing), (0x98, 0x19, PotItem.Nothing), (0x98, 0x16, PotItem.Nothing), (0xA2, 0x16, PotItem.Nothing)],
'TR Tongue Pull': [(0xF0, 0x13, PotItem.Bomb_2), (0xCC, 0x13, PotItem.Bomb_2)]
},
0x09: {
'PoD Shooter Room': [(0x0C, 0x04, PotItem.OneRupee), (0x30, 0x04, PotItem.Heart_2), (0x0C, 0x0C, PotItem.Switch)]
},
0x0A: {
'PoD Stalfos Basement': [(0xCC,0x0B, PotItem.Switch),(0x60,0x08, PotItem.Heart_2),(0x64,0x07, PotItem.Nothing),(0x68,0x08, PotItem.Heart_2),(0x64,0x09, PotItem.Nothing)],
'PoD Basement Ledge': [(0x9C,0x11, PotItem.Bomb_2), (0xA0,0x11, PotItem.FiveArrows)] #todo move chest to this room if the switch is in one of these pots
},
0x0B: {
'PoD Dark Pegs': [(0xCA, 0x03, PotItem.Bomb_2), (0xCA, 0x0C, PotItem.Bomb_2)]
},
0x11: {
'Sewers Secret Room': [(0x98,0x13, PotItem.Nothing),(0x98,0x0F, PotItem.Nothing),(0x90,0x0F, PotItem.Heart_2),
(0xA0,0x0F, PotItem.Heart_2), (0x90,0x13, PotItem.Heart_2), (0xA0,0x13, PotItem.Heart_2)]
},
0x15: {
'TR Pipe Pit': [(0x60,0x04, PotItem.Bomb_2), (0x64,0x04, PotItem.SmallMagic), (0x68,0x04, PotItem.Heart_2),
(0x6C,0x04, PotItem.SmallMagic), (0x70,0x04, PotItem.FiveArrows), (0x0C,0x06, PotItem.OneRupee),(0x10,0x06, PotItem.FiveArrows),
(0x14,0x06, PotItem.FiveRupees)],
'TR Pipe Ledge': [(0x46,0x0B, PotItem.BigMagic)]
},
0x16: {
'Swamp Waterway': [(0xF0,0x13, PotItem.Key)],
'Swamp I': [(0xBC,0x03, PotItem.Heart_2),(0xC0,0x03, PotItem.Heart_2),(0xBC,0x04, PotItem.SmallMagic),
(0xC0,0x04, PotItem.SmallMagic), (0xBC,0x05, PotItem.FiveArrows), (0xC0,0x05, PotItem.FiveArrows),(0xBC,0x06, PotItem.Bomb_2),
(0xC0,0x06, PotItem.Bomb_2)]
},
0x17: {
'Hera 5F': [(0x64,0x0D, PotItem.Heart_2), (0x64,0x0E, PotItem.Heart_2), (0x64,0x0F, PotItem.Heart_2), (0x64,0x10, PotItem.Heart_2), (0x64,0x11, PotItem.Heart_2), (0x64,0x12, PotItem.Heart_2),
(0x68,0x0D, PotItem.Heart_2), (0x68,0x0E, PotItem.Heart_2), (0x68,0x0F, PotItem.Heart_2), (0x68,0x10, PotItem.Heart_2), (0x68,0x11, PotItem.Heart_2), (0x68,0x12, PotItem.Heart_2)]
},
0x1A: {
'PoD Falling Bridge': [(0x1C,0x1B, PotItem.Bomb_2),(0x20,0x1B, PotItem.Bomb_2)],
'PoD Falling Bridge Ledge': [(0x1C,0x05, PotItem.Bomb_2), (0x20,0x05, PotItem.Bomb_2)],
'PoD Harmless Hellway': [(0xE8,0x13, PotItem.Nothing),(0xD4,0x13, PotItem.Nothing)]
},
0x1B: {
'PoD Mimics 2': [(0x14,0x17, PotItem.FiveArrows), (0x28,0x17, PotItem.FiveArrows)]
},
0x1E: {
'Ice Bomb Drop': [(0x54,0x09, PotItem.Bomb_2)]
},
0x1F: {
'Ice Pengator Switch': [(0x1C,0x19, PotItem.Switch), (0x1C, 0x17, PotItem.Nothing)], # Bunny Beam
'Ice Big Key': [(0x56, 0x1A, PotItem.Nothing), (0x56, 0x1B, PotItem.Nothing)]
},
0x21: {
'Sewers Key Rat': [(0xA0,0x14, PotItem.Nothing), (0xA8,0x18, PotItem.SmallMagic), (0x30,0x1C, PotItem.Heart_2),
(0x52, 0x1C, PotItem.SmallMagic), (0x64,0x1C, PotItem.Nothing), (0x68,0x1C, PotItem.Nothing)]
},
0x23: {
'TR Lazy Eyes': [(0x56,0x1A, PotItem.OneRupee), (0x5A,0x1A, PotItem.Heart_2), (0x5E,0x1A, PotItem.OneRupee),
(0x62,0x1A, PotItem.Bomb_2), (0x66,0x1A, PotItem.OneRupee)]
},
0x24: {
'TR Twin Pokeys': [(0x0C,0x04, PotItem.FiveRupees), (0x30,0x04, PotItem.Heart_2),
(0x0C,0x0C, PotItem.SmallMagic), (0x30,0x0C, PotItem.OneRupee)]
},
0x26: {
'Swamp Push Statue': [(0x96,0x13, PotItem.Switch), (0x16,0x1A, PotItem.FiveRupees), (0xDC,0x1A, PotItem.FiveArrows)], #todo Needs somaria if switch on 3rd pot?
'Swamp Shooters': [(0x1C,0x04, PotItem.Bomb_2), (0x0C,0x08, PotItem.SmallMagic)]
},
0x27: {
'Hera 4F': [(0xD6,0x13, PotItem.Nothing),(0xD6,0x14, PotItem.Nothing),(0xA6,0x14, PotItem.Bomb_2),
(0xD6,0x15, PotItem.Heart_2),(0x28,0x1C, PotItem.OneRupee),(0x2C,0x1C, PotItem.OneRupee),(0x50,0x1C, PotItem.FiveRupees),
(0x54,0x1C, PotItem.FiveRupees),(0x66,0x11, PotItem.Nothing),(0x62,0x11, PotItem.Nothing),(0x6A,0x11, PotItem.Nothing),
(0xA6,0x15, PotItem.Nothing),(0xA6,0x13, PotItem.Nothing),(0x5C,0x0C, PotItem.Nothing),(0xA0,0x0C, PotItem.Nothing)]
},
0x2A: {
'PoD Arena Main': [(0x50,0x0C, PotItem.OneRupee), (0x50,0x13, PotItem.Heart_2)]
},
0x2B: {
'PoD Sexy Statue': [(0x10,0x05, PotItem.Heart_2),(0x2C,0x05, PotItem.Switch),(0x10,0x06, PotItem.Heart_2),
(0x2C,0x06, PotItem.Bomb_2),(0x10,0x07, PotItem.Heart_2),(0x2C,0x07, PotItem.Bomb_2)],
'PoD Map Balcony': [(0x92,0x15, PotItem.Bomb_2),(0xAA,0x15, PotItem.FiveArrows),(0x92,0x16, PotItem.Bomb_2),(0xAA,0x16, PotItem.FiveArrows)]
},
0x2C: {
'Hookshot Cave': [(0x6C,0x18, PotItem.Heart_2), (0x70,0x18, PotItem.Heart_2)]
},
0x2F: {
'Kakariko Well (top)': [(0x1C,0x07, PotItem.Heart_2),(0x20,0x07, PotItem.Heart_2),(0x1C,0x09, PotItem.FiveRupees),
(0x20,0x09, PotItem.FiveRupees),(0xAC,0x13, PotItem.FiveRupees),(0xB4,0x13, PotItem.FiveRupees)],
'Kakariko Well (bottom)': [(0x68,0x1B, PotItem.Heart_2),(0x68,0x1C, PotItem.Heart_2)]
},
0x31: {
'Hera Beetles': [(0x5C,0x1C, PotItem.Bomb_2), (0x60,0x1C, PotItem.Nothing)]
},
0x32: {
'Sewers Dark Cross': [(0x1C,0x0D, PotItem.SmallMagic)]
},
0x34: {
'Swamp Barrier Ledge': [(0x4E,0x08, PotItem.FiveRupees), (0x5C,0x08, PotItem.FiveRupees)]
},
0x35: {
'Swamp Trench 2 Pots': [(0x4C,0x17,PotItem.Nothing),(0x58,0x17,PotItem.Nothing),(0x64,0x1B,PotItem.Nothing),
(0xF2,0x1C,PotItem.Nothing),(0xF0,0x16,PotItem.Heart_2),(0x4C,0x1C, PotItem.Heart_2)],
'Swamp Trench 2 Alcove': [(0x3C,0x06, PotItem.Key)],
'Swamp Trench 2 Departure': [(0x30,0x14, PotItem.Heart_2)],
'Swamp Big Key Ledge': [(0x14,0x08, PotItem.FiveRupees),(0x18,0x08, PotItem.FiveRupees),(0x1C,0x08, PotItem.FiveRupees),(0x20,0x08, PotItem.FiveRupees),(0x24,0x08, PotItem.FiveRupees)]
},
0x36: {
'Swamp Hub': [(0x0A,0x10, PotItem.Heart_2), (0x9A,0x0F, PotItem.Nothing), (0x72,0x10, PotItem.Key), (0xDE,0x0F, PotItem.Nothing)],
'Swamp Hub Dead Ledge': [(0x6C,0x04, PotItem.Bomb_2),(0x70,0x04, PotItem.FiveRupees)],
'Swamp Hub North Ledge': [(0xBC,0x05, PotItem.Nothing), (0xC0,0x05, PotItem.Nothing)]
},
0x37: {
'Swamp Trench 1 Alcove': [(0x3C,0x06, PotItem.Key)],
'Swamp Trench 1 Key Ledge': [(0x30,0x14, PotItem.Nothing)]
},
0x38: {
'Swamp Pot Row': [(0xA4,0x0C, PotItem.Bomb_2),(0xA4,0x0D, PotItem.FiveRupees),(0xA4,0x12, PotItem.Bomb_2),(0xA4,0x13, PotItem.Key)]
},
0x39: {
'Skull Spike Corner': [(0x0C,0x14, PotItem.Heart_2),(0x30,0x1C, PotItem.FiveArrows)],
'Skull Final Drop': [(0x64,0x16, PotItem.SmallMagic),(0x64,0x1A, PotItem.FiveArrows)]
},
0x3C: {
'Hookshot Cave': [(0x18,0x08, PotItem.SmallMagic),(0x40,0x0C, PotItem.FiveRupees),(0x14,0x0E, PotItem.OneRupee),(0x14,0x13, PotItem.Nothing),
(0x44,0x12, PotItem.FiveRupees),(0x60,0x13, PotItem.Heart_2),(0x40,0x14, PotItem.FiveRupees),(0x40,0x1A, PotItem.FiveRupees)]
},
0x3D: {
'GT Mini Helmasaur Room': [(0x4C,0x0C, PotItem.Bomb_2),(0x70,0x0C, PotItem.Bomb_2)],
'GT Crystal Circles': [(0x18,0x16, PotItem.Heart_2),(0x28,0x16, PotItem.FiveArrows),(0x20,0x18, PotItem.Heart_2),
(0x14,0x1A, PotItem.FiveRupees),(0x24,0x1A, PotItem.BigMagic)]
},
0x3E: {
'Ice Stalfos Hint': [(0x60,0x06, PotItem.Bomb_2),(0x64,0x06, PotItem.SmallMagic),(0x58,0x0A, PotItem.Heart_2),
(0x5C,0x0A, PotItem.SmallMagic)]
},
0x3F: {
'Ice Hammer Block': [(0x0C,0x19, PotItem.OneRupee),(0x14,0x19, PotItem.OneRupee),(0x0C,0x1A, PotItem.Bomb_2),
(0x14,0x1A, PotItem.Bomb_2),(0x0C,0x1B, PotItem.Switch),(0x14,0x1B, PotItem.Heart_2),(0x1C,0x17, PotItem.Key)] # Bunny Beam
},
0x41: {
'Sewers Behind Tapestry': [(0x64,0x0A, PotItem.Heart_2),(0x34,0x0F, PotItem.OneRupee),(0x34,0x10, PotItem.SmallMagic),
(0x94,0x16, PotItem.SmallMagic)]
},
0x43: {
'Desert Tiles 2': [(0x70,0x1C, PotItem.Nothing),(0x4C,0x1C, PotItem.Nothing),(0x4C,0x14, PotItem.Nothing),(0x70,0x14, PotItem.Key)],
'Desert Wall Slide': [(0x42,0x04, PotItem.FiveArrows),(0x4E,0x04, PotItem.SmallMagic),(0x42,0x09, PotItem.Heart_2),(0x4E,0x09, PotItem.Heart_2)]
},
0x45: {
'Thieves Basement Block': [(0x0C,0x04, PotItem.FiveArrows),(0x30,0x0C, PotItem.FiveArrows)],
'Thieves Blind\'s Cell': [(0x5C,0x0B, PotItem.Nothing),(0x6C,0x0B, PotItem.Heart_2), # Bunny Beam
(0xDC,0x10, PotItem.SmallMagic),(0xEC,0x10, PotItem.Heart_2)]
},
0x46: {
'Swamp Donut Top': [(0x60,0x05, PotItem.Heart_2)],
'Swamp Donut Bottom': [(0x1C,0x1B, PotItem.Heart_2)]
},
0x49: {
'Skull Star Pits': [(0x9C,0x1B, PotItem.Nothing),(0xAC,0x18, PotItem.Nothing),(0xAC,0x17, PotItem.Nothing),
(0x90,0x14, PotItem.Nothing),(0x90,0x13, PotItem.SmallMagic),(0xAC,0x14, PotItem.Heart_2),
(0x90,0x1B, PotItem.Heart_2),(0xAC,0x1C, PotItem.SmallMagic),(0xA0,0x1B, PotItem.Nothing)],
'Skull Torch Room': [(0x68,0x0F, PotItem.SmallMagic),(0x68,0x10, PotItem.SmallMagic)]
},
0x4A: {
'PoD Left Cage': [(0x0E, 0x05, PotItem.Switch),(0x20, 0x05, PotItem.Bomb_2),
(0x0E, 0x0B, PotItem.Heart_2),(0x20, 0x0B, PotItem.OneRupee)],
'PoD Middle Cage': [(0x38, 0x08, PotItem.Bomb_2),(0x44, 0x08, PotItem.Bomb_2),
(0x5C, 0x05, PotItem.Bomb_2),(0x6E, 0x05, PotItem.Switch),
(0x5C, 0x0B, PotItem.OneRupee),(0x6E, 0x0B, PotItem.Heart_2)]
},
0x4B: {
'PoD Mimics 1': [(0x14,0x06, PotItem.FiveArrows), (0x28,0x06, PotItem.Heart_2)]
},
0x4E: {
'Ice Bomb Jump Catwalk': [(0x8C,0x07, PotItem.Nothing),(0x30,0x0A, PotItem.Nothing),(0x8C,0x0B, PotItem.Switch),(0x1C,0x0C, PotItem.Heart_2)],
'Ice Narrow Corridor': [(0x70,0x0C, PotItem.SmallMagic)]
},
0x50: {
'Hyrule Castle West Hall': [(0x60,0x26, PotItem.Heart_2), (0x64,0x26, PotItem.Heart_2)]
},
0x52: {
'Hyrule Castle East Hall': [(0x8A,0x03, PotItem.Heart_2), (0xC2,0x1A, PotItem.Heart_2)]
},
0x53: {
'Desert Beamos Hall': [(0x5C,0x0B, PotItem.Heart_2),(0x60,0x0B, PotItem.SmallMagic),
(0x64,0x0B, PotItem.Key),(0x68,0x0B, PotItem.Heart_2)]
},
0x54: {
'Swamp Attic': [(0xBA,0x19, PotItem.FiveRupees),(0xBA,0x1A, PotItem.Heart_2),(0xBA,0x1B, PotItem.Heart_2),
(0xBA,0x1C, PotItem.Heart_2)]
},
0x55: {
'Secret Passage': [(0xE6,0x18, PotItem.SmallMagic), (0xE6,0x19, PotItem.SmallMagic)]
},
0x56: {
'Skull Back Drop': [(0x64,0x06,PotItem.Nothing),(0x60,0x0A,PotItem.Nothing),(0x5C,0x0A,PotItem.Nothing)],
'Skull 2 West Lobby': [(0x0C,0x14, PotItem.Key), (0x30,0x14,PotItem.Nothing)],
'Skull X Room': [(0x14,0x06, PotItem.SmallMagic),(0x28,0x06, PotItem.SmallMagic),(0x18,0x07, PotItem.SmallMagic),
(0x24,0x07, PotItem.SmallMagic),(0x0C,0x08, PotItem.Heart_2),(0x30,0x08, PotItem.Heart_2),(0x18,0x09, PotItem.SmallMagic),
(0x24,0x09, PotItem.SmallMagic),(0x14,0x0A, PotItem.FiveRupees),(0x28,0x0A, PotItem.FiveRupees)]
},
0x57: {
'Skull 2 East Lobby': [(0x0C,0x14, PotItem.SmallMagic), (0x30,0x14, PotItem.SmallMagic), (0x1E,0x16, PotItem.Switch)],
'Skull Big Key': [(0x20, 0x04, PotItem.Nothing)], # Bunny Beam
'Skull Lone Pot': [(0x5C,0x07, PotItem.BigMagic)],
'Skull Pot Prison': [(0x5C,0x17, PotItem.Bomb_2), (0x64,0x17, PotItem.SmallMagic),
(0x54,0x19, PotItem.FiveRupees), (0x4C,0x1B, PotItem.Heart_2)]
},
0x58: {
'Skull Pot Circle': [(0x60,0x09, PotItem.Nothing),(0x5C,0x08, PotItem.Nothing),(0x6C,0x08, PotItem.Nothing),
(0x6C,0x06, PotItem.Nothing),(0x68,0x05, PotItem.Nothing),(0x5C,0x06, PotItem.Nothing),
(0x60,0x05, PotItem.Bomb_2),(0x64,0x05, PotItem.SmallMagic),(0x5C,0x07, PotItem.Heart_2),
(0x6C,0x07, PotItem.Heart_2),(0x64,0x09, PotItem.SmallMagic),(0x68,0x09, PotItem.Bomb_2)],
'Skull Pull Switch': [(0x0C,0x07, PotItem.SmallMagic),(0x10,0x07, PotItem.Nothing),(0x10,0x08, PotItem.SmallMagic),(0x0C,0x0C, PotItem.Nothing)]
},
0x59: {
'Skull 3 Lobby': [(0x1A,0x2B, PotItem.Heart_2), (0x20,0x28, PotItem.Nothing)],
'Skull East Bridge': [(0x4C,0x1C, PotItem.Nothing), (0x70,0x1C, PotItem.Nothing)]
},
0x5B: {
'GT Hidden Spikes': [(0xDA,0x25, PotItem.Nothing),(0xDE,0x25, PotItem.Switch),(0xE2,0x25, PotItem.Nothing)]
},
0x5C: {
'GT Refill': [(0xE4,0x19, PotItem.Nothing),(0x68,0x18, PotItem.Nothing),(0xE4,0x16, PotItem.Nothing),
(0xD8,0x19, PotItem.Nothing),(0x54,0x18, PotItem.Nothing),(0xD8,0x16, PotItem.Nothing),
(0x5E,0x16, PotItem.Bomb_2),(0x5E,0x1A, PotItem.BigMagic)]
},
0x5D: {
'GT Gauntlet 2': [(0x10,0x05, PotItem.Bomb_2),(0x2C,0x05, PotItem.FiveRupees),(0x10,0x0B, PotItem.OneRupee),(0x2C,0x0B, PotItem.FiveArrows)],
'GT Gauntlet 3': [(0x0C,0x14, PotItem.FiveArrows),(0x30,0x14, PotItem.Bomb_2),(0x0C,0x1C, PotItem.SmallMagic),(0x30,0x1C, PotItem.Bomb_2)]
},
0x5E: {
'Ice Falling Square': [(0x5C,0x04, PotItem.SmallMagic),(0x60,0x04, PotItem.SmallMagic),(0x4C,0x08, PotItem.Heart_2),(0x70,0x08, PotItem.Heart_2)]
},
0x5F: {
'Ice Spike Room': [(0x2C,0x1B, PotItem.Switch)]
},
0x60: {
'Hyrule Castle West Lobby': [(0x4C,0x04, PotItem.Heart_2), (0x70,0x04, PotItem.Heart_2)]
},
0x62: {
'Hyrule Castle East Lobby': [(0xD0,0x15, PotItem.Heart_2)]
},
0x63: {
'Desert Tiles 1': [(0x30,0x04, PotItem.Nothing),(0x0C,0x04, PotItem.Nothing),(0x0C,0x08, PotItem.Nothing),
(0x30,0x0C, PotItem.Nothing),(0x30,0x08, PotItem.Heart_2),(0x0C,0x0C, PotItem.Key)]
},
0x64: {
'Thieves Attic': [(0x24,0x1C, PotItem.Bomb_2),(0x28,0x1C, PotItem.SmallMagic),(0x2C,0x1C, PotItem.SmallMagic),(0x30,0x1C, PotItem.Switch)],
'Thieves Attic Hint': [(0x0C,0x16, PotItem.Bomb_2),(0x10,0x16, PotItem.Bomb_2),(0x14,0x16, PotItem.Bomb_2)] #todo: East door becomes orange if the switch is in here
},
0x65: {
'Thieves Attic Window': [(0x64,0x1C, PotItem.Bomb_2), (0x68,0x1C, PotItem.Bomb_2)]
},
0x66: {
'Swamp Refill': [(0x30,0x25, PotItem.FiveArrows),(0x34,0x25, PotItem.Bomb_2),(0x38,0x25, PotItem.FiveRupees),
(0x30,0x26, PotItem.FiveArrows),(0x34,0x26, PotItem.Bomb_2),(0x38,0x26, PotItem.FiveRupees)],
'Swamp Behind Waterfall': [(0x54,0x05, PotItem.Heart_2),(0x68,0x05, PotItem.FiveArrows),(0x54,0x06, PotItem.Heart_2),(0x68,0x06, PotItem.Bomb_2)]
},
0x67: {
'Skull Left Drop': [(0x16,0x1A, PotItem.Nothing),(0x12,0x16, PotItem.Nothing),(0x0C,0x07, PotItem.FiveArrows),
(0x30,0x07, PotItem.SmallMagic),(0x12,0x17, PotItem.SmallMagic),(0x12,0x1A, PotItem.Heart_2)],
'Skull Compass Room': [(0x4A,0x14, PotItem.SmallMagic),(0x5C,0x09, PotItem.Nothing),(0x54,0x1C, PotItem.Nothing),
(0x60,0x13, PotItem.Heart_2),(0x68,0x1C, PotItem.Heart_2)]
},
0x68: {
'Skull Pinball': [(0x54,0x0E, PotItem.Nothing),(0x54,0x0D, PotItem.Nothing),(0x58,0x0C, PotItem.Nothing),
(0x58,0x06, PotItem.Nothing),(0x58,0x05, PotItem.Nothing),(0x58,0x04, PotItem.Nothing),(0x40,0x11, PotItem.Nothing),
(0x40,0x0F, PotItem.Nothing),(0x40,0x07, PotItem.Heart_2),(0x58,0x07, PotItem.SmallMagic),(0x40,0x10, PotItem.Heart_2),
(0x40,0x18, PotItem.SmallMagic),(0x40,0x19, PotItem.Heart_2)]
},
0x6B: {
'GT Crystal Paths': [(0x1C,0x05, PotItem.Heart_2), (0x2C,0x05, PotItem.Nothing), (0x1C,0x08, PotItem.Nothing),
(0x2C,0x08, PotItem.SmallMagic), (0x1C,0x0B, PotItem.SmallMagic), (0x2C,0x0B, PotItem.Nothing)],
'GT Mimics 2': [(0x5E,0x19, PotItem.Nothing), (0x62,0x19, PotItem.FiveArrows)]
},
0x6C: {
'GT Quad Pot': [(0x14,0x06, PotItem.Heart_2), (0x28,0x06, PotItem.FiveArrows), (0x14,0x0A, PotItem.Bomb_2), (0x28,0x0A, PotItem.SmallMagic)]
},
0x6D: {
'GT Gauntlet 5': [(0x1C,0x1A, PotItem.Heart_2), (0x20,0x1A, PotItem.Heart_2), (0x1C,0x1B, PotItem.SmallMagic), (0x20,0x1B, PotItem.SmallMagic)]
},
0x73: {
'Desert Circle of Pots': [(0x9A,0x15, PotItem.FiveArrows),(0x9E,0x15, PotItem.OneRupee),(0x14,0x17, PotItem.Switch),
(0x24,0x17, PotItem.FiveRupees),(0x90,0x18, PotItem.Heart_2),(0xA8,0x18, PotItem.FiveArrows),(0x14,0x1A, PotItem.SmallMagic),
(0x24,0x1A, PotItem.Heart_2),(0x9A,0x1B, PotItem.OneRupee),(0x9E,0x1B, PotItem.FiveRupees)]
},
0x74: {
'Desert Map Room': [(0x1E,0x05, PotItem.SmallMagic),(0x3E,0x05, PotItem.Switch),(0x5E,0x05, PotItem.SmallMagic),
(0x0E,0x0B, PotItem.Heart_2),(0x2E,0x0B, PotItem.FiveArrows),(0x4E,0x0B, PotItem.FiveArrows),(0x6E,0x0B, PotItem.Heart_2)]
},
0x75: {
'Desert Arrow Pot Corner': [(0x94,0x16, PotItem.SmallMagic),(0xA0,0x16, PotItem.FiveArrows),(0xAC,0x16, PotItem.Heart_2)]
},
0x76: {
'Swamp Drain Right': [(0x70,0x0C, PotItem.Heart_2)],
'Swamp Flooded Spot': [(0x54,0x17, PotItem.Heart_2), (0x60,0x17, PotItem.Heart_2)]
},
0x7B: {
'GT Conveyor Star Pits': [(0x30,0x0A, PotItem.Nothing),(0x58,0x0A, PotItem.Nothing),(0x4C,0x07, PotItem.Nothing),
(0x3C,0x04, PotItem.Heart_2),(0x40,0x04, PotItem.Key)]
},
0x7C: {
'GT Falling Bridge': [(0x24,0x15, PotItem.Nothing),(0x18,0x0B, PotItem.Nothing),(0x1C,0x04, PotItem.Heart_2),
(0x20,0x04, PotItem.Heart_2)]
},
0x7D: {
'GT Firesnake Room': [(0x2C,0x0C, PotItem.Nothing),(0x2C,0x06, PotItem.Nothing),(0x70,0x06, PotItem.Heart_2)],
'GT Petting Zoo': [(0x72,0x14, PotItem.Bomb_2),(0x4C,0x1C, PotItem.Bomb_2)],
'GT Warp Maze - Pot Rail': [(0x6C,0x14, PotItem.FiveArrows)]
},
0x7E: {
'Ice Tall Hint': [(0x56,0x0F, PotItem.Heart_2),(0x52,0x1A, PotItem.SmallMagic),(0x64,0x1A, PotItem.Switch),
(0x68,0x1A, PotItem.Nothing)]
},
0x80: {
'Hyrule Dungeon Cellblock': [(0x30,0x04, PotItem.Heart_2), (0x34,0x04, PotItem.Heart_2), (0x38,0x04, PotItem.Heart_2)]
},
0x82: {
'Hyrule Dungeon South Abyss': [(0x32,0x05, PotItem.Nothing),(0x32,0x0A, PotItem.Nothing),(0x4C,0x32, PotItem.Heart_2)]
},
0x83: {
'Desert West Wing': [(0x4C,0x04, PotItem.FiveArrows),(0x50,0x04, PotItem.OneRupee),(0x4C,0x1C, PotItem.FiveRupees),
(0x50,0x1C, PotItem.FiveArrows)]
},
0x84: {
'Desert Main Lobby': [(0x40,0x11, PotItem.Nothing),(0x3C,0x11, PotItem.Nothing),(0x50,0x0E, PotItem.Nothing),
(0x2C,0x0E, PotItem.Nothing),(0x64,0x06, PotItem.Nothing),(0x18,0x06, PotItem.Nothing),(0x18,0x07, PotItem.FiveArrows),
(0x64,0x07, PotItem.FiveArrows)]
},
0x85: {
'Desert East Wing': [(0x2C,0x1C, PotItem.Heart_2), (0x30,0x1C, PotItem.FiveArrows)]
},
0x87: {
'Hera Tile Room': [(0x0C,0x0B, PotItem.Nothing),(0x10,0x0C, PotItem.Nothing),(0x28,0x0C, PotItem.Nothing),
(0x20,0x0C, PotItem.Nothing),(0x18,0x0C, PotItem.Nothing),(0x10,0x0B, PotItem.Nothing)],
'Hera Torches': [(0x4C,0x14, PotItem.SmallMagic),(0x70,0x14, PotItem.BigMagic)]
},
0x8B: {
'GT Conveyor Cross': [(0x4C,0x0C, PotItem.Nothing),(0x70,0x0C, PotItem.Key)],
'GT Hookshot South Platform': [(0x20,0x17, PotItem.Nothing),(0x1C,0x17, PotItem.Nothing)],
'GT Hookshot East Platform': [(0x20,0x09, PotItem.SmallMagic)], #todo: Not really, but need to put it somewhere the logic will make sense
'GT Map Room': [(0x4C,0x14, PotItem.Nothing),(0x4C,0x1C, PotItem.Heart_2)]
},
0x8C: {
'GT Hope Room': [(0x4C,0x0C, PotItem.Switch),(0x70,0x0C, PotItem.SmallMagic)],
'GT Bob\'s Room': [(0x4C,0x14, PotItem.Bomb_2),(0x5C,0x14, PotItem.Bomb_2),(0x64,0x15, PotItem.FiveArrows),
(0x68,0x1A, PotItem.Bomb_2),(0x58,0x1B, PotItem.Bomb_2)]
},
0x8D: {
'GT Speed Torch Upper': [(0xCC,0x0B, PotItem.Nothing), (0xCC,0x0E, PotItem.BigMagic)],
'GT Pots n Blocks': [(0x1C,0x17, PotItem.Heart_2), (0x24,0x17, PotItem.Heart_2), (0x20,0x18, PotItem.BigMagic)]
},
0x8E: {
'Ice Lonely Freezor': [(0x50,0x05, PotItem.FiveArrows), (0x50,0x06, PotItem.Nothing)] # Bunny Beam
},
0x91: {
'Mire Falling Foes': [(0x54,0x04, PotItem.Heart_2), (0x68,0x04, PotItem.SmallMagic)]
},
0x92: {
'Mire Tall Dark and Roomy': [(0x56,0x17, PotItem.Nothing), (0x5C,0x17, PotItem.Nothing), (0x62,0x17, PotItem.Nothing), (0x68,0x17, PotItem.Nothing)]
},
0x93: {
'Mire Dark Shooters': [(0x1C,0x07, PotItem.Switch), (0x60,0x07, PotItem.Heart_2)] #todo: Switch needs to be on the left block? Maybe allow on the right moving backwards through this room
},
0x96: {
'GT Torch Cross': [(0x0E,0x12, PotItem.Nothing),(0x20,0x05, PotItem.Nothing),(0x20,0x11, PotItem.SmallMagic),
(0x20,0x18, PotItem.SmallMagic),(0x0E,0x18, PotItem.Nothing)],
'GT Staredown': [(0x4C,0x15, PotItem.Heart_2),(0x70,0x15, PotItem.BigMagic)]
},
0x99: {
'Eastern Darkness': [(0x28,0x14, PotItem.SmallMagic), (0x54,0x14, PotItem.Heart_2)]
},
0x9B: {
'GT Double Switch Key Spot': [(0x30,0x04, PotItem.SmallMagic),(0x30,0x0C, PotItem.Key)],
'GT Warp Maze - Mid Section': [(0x1C,0x18, PotItem.Nothing), (0x20,0x18, PotItem.Nothing)]
},
0x9C: {
'GT Invisible Catwalk': [(0x38,0x08, PotItem.SmallMagic), (0x38,0x09, PotItem.FiveArrows)]
},
0x9D: {
'GT Crystal Conveyor': [(0x4C,0x04, PotItem.Bomb_2), (0x54,0x04, PotItem.SmallMagic)],
'GT Compass Room': [(0x20,0x07, PotItem.Nothing), (0x28,0x09, PotItem.Nothing)]
},
0x9F: {
'Ice Many Pots': [(0x8A,0x14, PotItem.Nothing),(0x8A,0x13, PotItem.Heart_2),(0xB2,0x13, PotItem.Heart_2),
(0x28,0x15, PotItem.Switch),(0x8A,0x15, PotItem.Key),(0x14,0x1B, PotItem.Heart_2),(0x8A,0x1B, PotItem.Heart_2),
(0xB2,0x1C, PotItem.Heart_2),(0xB2,0x15, PotItem.Nothing),(0xB2,0x14, PotItem.Nothing),(0x28,0x1B, PotItem.Nothing),
(0xB2,0x1B, PotItem.Nothing),(0xB2,0x1A, PotItem.Nothing),(0x8A,0x1C, PotItem.Nothing),(0x8A,0x1A, PotItem.Nothing),
(0x14,0x15, PotItem.Nothing)]
},
0xA1: {
'Mire Fishbone': [(0x96,0x06, PotItem.Key), (0x64,0x0B, PotItem.SmallMagic), (0x68,0x0C, PotItem.Heart_2),
(0x6C,0x0D, PotItem.SmallMagic),(0x70,0x0E, PotItem.Heart_2)],
'Mire South Fish': [(0x60,0x1B, PotItem.Nothing),(0x5C,0x15, PotItem.Nothing),(0x60,0x17, PotItem.Heart_2),
(0x5C,0x19, PotItem.Nothing), (0x4C,0x1C, PotItem.Nothing),(0x70,0x1C, PotItem.Nothing)] # Bunny Beam
},
0xA2: {
'Mire Left Bridge': [(0x0C,0x1C, PotItem.BigMagic)]
},
0xA8: {
'Eastern Stalfos Spawn': [(0x8A,0x1C, PotItem.Nothing),(0xB2,0x1C, PotItem.Nothing),(0xB2,0x13, PotItem.Nothing),
(0x8A,0x13, PotItem.Heart_2),(0x1E,0x18, PotItem.OneRupee)]
},
0xA9: {
'Eastern Courtyard Ledge': [(0x0C,0x13, PotItem.Nothing),(0x70,0x13, PotItem.Nothing),(0x10,0x14, PotItem.Heart_2),(0x6C,0x14, PotItem.Heart_2)],
'Eastern Courtyard': [(0x90,0x2B, PotItem.FiveArrows),(0xEC,0x2B, PotItem.FiveArrows),(0x90,0x2C, PotItem.FiveArrows),(0xEC,0x2C, PotItem.Heart_2)]
},
0xAA: {
'Eastern Pot Switch': [(0xD4,0x0A, PotItem.Nothing),(0xE8,0x0A, PotItem.Nothing),(0xE8,0x05, PotItem.Nothing),
(0xD4,0x05, PotItem.Heart_2),(0x5E,0x08, PotItem.Switch)],
'Eastern Map Balcony': [(0x6C,0x37, PotItem.Heart_2),(0x6C,0x38, PotItem.Heart_2),(0x6C,0x39, PotItem.Heart_2)] # Hidden Pots!
},
0xAB: {
'Thieves Spike Switch': [(0x14,0x18, PotItem.Key)]
},
0xAE: {
'Iced T': [(0x4C,0x0C, PotItem.Switch)]
},
0xB0: {
'Tower Circle of Pots': [(0x14,0x1B, PotItem.Nothing),(0x18,0x18, PotItem.Nothing),(0x2C,0x19, PotItem.Nothing),
(0x14,0x15, PotItem.Bomb_2),(0x1C,0x15, PotItem.OneRupee),(0x20,0x15, PotItem.FiveRupees),(0x28,0x15, PotItem.FiveArrows),
(0x10,0x17, PotItem.FiveRupees),(0x2C,0x17, PotItem.OneRupee),(0x24,0x18, PotItem.Heart_2),(0x10,0x19, PotItem.Heart_2),
(0x1C,0x1B, PotItem.FiveArrows),(0x28,0x1B, PotItem.Bomb_2),(0x20,0x1B, PotItem.Nothing)]
},
0xB1: {
'Mire Spike Barrier': [(0x4C,0x04, PotItem.Heart_2), (0x70,0x04, PotItem.OneRupee)]
},
0xB2: {
'Mire BK Door Room': [(0x30,0x28, PotItem.OneRupee), (0x4C,0x28, PotItem.OneRupee), (0x30,0x29, PotItem.Nothing),
(0x4C,0x29, PotItem.Heart_2), (0x30,0x2A, PotItem.Nothing), (0x4C,0x28, PotItem.Nothing)] # 2x Bunny Beam
},
0xB3: {
'Mire Spikes': [(0x0C,0x14, PotItem.Key),(0x30,0x14, PotItem.SmallMagic),(0x30,0x1C, PotItem.Switch)]
},
0xB4: {
'TR Final Abyss': [(0x2C,0x1C, PotItem.BigMagic),(0x30,0x1C, PotItem.Heart_2)]
},
0xB5: {
'TR Dark Ride': [(0x70,0x04, PotItem.FiveRupees),(0x70,0x0F, PotItem.Heart_2),(0x4C,0x10, PotItem.Switch),
(0x70,0x10, PotItem.BigMagic),(0x70,0x11, PotItem.Heart_2),(0x70,0x1C, PotItem.Bomb_2)]
},
0xB6: {
'TR Refill': [(0x5E,0x09, PotItem.BigMagic)]
},
0xB7: {
'TR Roller Room': [(0x1E,0x05, PotItem.SmallMagic)]
},
0xB8: {
'Eastern Big Key': [(0x60,0x0D, PotItem.Switch),(0x58,0x10, PotItem.Heart_2),(0x68,0x10, PotItem.Heart_2)]
},
0xB9: {
'Eastern Cannonball': [(0x5C,0x12, PotItem.OneRupee),(0x60,0x12, PotItem.FiveRupees),(0x68,0x12, PotItem.FiveRupees),
(0x6C,0x12, PotItem.OneRupee)]
},
0xBA: {
'Eastern Dark Pots': [(0x64,0x08, PotItem.Nothing),(0x58,0x08, PotItem.Nothing),(0x5E,0x04, PotItem.OneRupee),
(0x4C,0x06, PotItem.Heart_2),(0x70,0x06, PotItem.Key),(0x4C,0x0A, PotItem.Heart_2),(0x70,0x0A, PotItem.SmallMagic),
(0x5E,0x0C, PotItem.OneRupee)]
},
0xBC: {
'Thieves Hallway': [(0x56,0x04, PotItem.Heart_2),(0x66,0x04, PotItem.Key)],
'Thieves Pot Alcove Bottom': [(0x1C,0x1B, PotItem.FiveRupees),(0x20,0x1B, PotItem.FiveRupees)],
'Thieves Pot Alcove Mid': [(0x0C,0x14, PotItem.Nothing),(0x30,0x14, PotItem.Bomb_2),(0x0C,0x1C, PotItem.Bomb_2),(0x30,0x1C, PotItem.Bomb_2)],
'Thieves Pot Alcove Top': [(0x1C,0x15, PotItem.FiveRupees),(0x20,0x15, PotItem.FiveRupees)],
'Thieves Conveyor Maze': [(0x8A,0x03, PotItem.Bomb_2),(0xB2,0x03, PotItem.Switch),(0x8A,0x0C, PotItem.Heart_2),(0xB2,0x0C, PotItem.Bomb_2)]
},
0xBE: {
'Ice Switch Room': [(0x5C,0x19, PotItem.Switch)]
},
0xBF: {
'Ice Refill': [(0x28,0x14, PotItem.FiveArrows),(0x2C,0x14, PotItem.Heart_2),(0x30,0x14, PotItem.Bomb_2),
(0x28,0x1C, PotItem.SmallMagic),(0x2C,0x1C, PotItem.SmallMagic),(0x30,0x1C, PotItem.SmallMagic)]
},
0xC0: {
'Tower Dark Pits': [(0x30,0x0A, PotItem.Bomb_2),(0x0C,0x0E, PotItem.FiveRupees),(0x0C,0x1A, PotItem.Heart_2),
(0x1C,0x1B, PotItem.OneRupee)]
},
0xC2: {
'Mire Hub': [(0x44,0x30, PotItem.OneRupee),(0x40,0x34, PotItem.FiveArrows)], # Bunny Beam
'Mire Hub Right': [(0x64,0x2E, PotItem.SmallMagic)],
'Mire Hub Switch': [(0xB4,0x07, PotItem.Switch)] # Chest stays here - need blue state to get to it from the switch
}
}