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 } }