from BaseClasses import OWEdge, Direction # constants We = Direction.West Ea = Direction.East So = Direction.South No = Direction.North def create_owedges(world, player): edges = [ # player, name, owIndex, direction, edge_id, (owSlotIndex) create_owedge(player, 'Lost Woods NW', 0x00, No, 0x00), create_owedge(player, 'Lost Woods SW', 0x00, So, 0x01, 0x08), create_owedge(player, 'Lost Woods SC', 0x00, So, 0x02, 0x08), create_owedge(player, 'Lost Woods SE', 0x00, So, 0x03, 0x09), create_owedge(player, 'Lost Woods EN', 0x00, Ea, 0x00, 0x01), create_owedge(player, 'Lumberjack SW', 0x02, So, 0x00), create_owedge(player, 'Lumberjack WN', 0x02, We, 0x00), create_owedge(player, 'West Death Mountain EN', 0x03, Ea, 0x01, 0x04), create_owedge(player, 'West Death Mountain ES', 0x03, Ea, 0x03, 0x0c), create_owedge(player, 'East Death Mountain WN', 0x05, We, 0x01, 0x05), create_owedge(player, 'East Death Mountain WS', 0x05, We, 0x03, 0x0d), create_owedge(player, 'East Death Mountain EN', 0x05, Ea, 0x02, 0x06), create_owedge(player, 'Death Mountain TR Pegs WN', 0x07, We, 0x02), create_owedge(player, 'DM Ascent NW', 0x0a, No, 0x01), create_owedge(player, 'DM Ascent SE', 0x0a, So, 0x04), create_owedge(player, 'Zora Approach NE', 0x0f, No, 0x02), create_owedge(player, 'Zora Approach SE', 0x0f, So, 0x05), create_owedge(player, 'Lost Woods Pass NW', 0x10, No, 0x03), create_owedge(player, 'Lost Woods Pass NE', 0x10, No, 0x04), create_owedge(player, 'Lost Woods Pass SW', 0x10, So, 0x06), create_owedge(player, 'Lost Woods Pass SE', 0x10, So, 0x07), create_owedge(player, 'Kakariko Fortune NE', 0x11, No, 0x05), create_owedge(player, 'Kakariko Fortune SC', 0x11, So, 0x08), create_owedge(player, 'Kakariko Fortune EN', 0x11, Ea, 0x04), create_owedge(player, 'Kakariko Fortune ES', 0x11, Ea, 0x05), create_owedge(player, 'Kakariko Pond NE', 0x12, No, 0x06), create_owedge(player, 'Kakariko Pond SW', 0x12, So, 0x09), create_owedge(player, 'Kakariko Pond SE', 0x12, So, 0x0a), create_owedge(player, 'Kakariko Pond WN', 0x12, We, 0x04), create_owedge(player, 'Kakariko Pond WS', 0x12, We, 0x05), create_owedge(player, 'Kakariko Pond EN', 0x12, Ea, 0x06), create_owedge(player, 'Kakariko Pond ES', 0x12, Ea, 0x07), create_owedge(player, 'Sanctuary WN', 0x13, We, 0x06), create_owedge(player, 'Sanctuary WS', 0x13, We, 0x07), create_owedge(player, 'Sanctuary EC', 0x13, Ea, 0x08), create_owedge(player, 'Graveyard WC', 0x14, We, 0x08), create_owedge(player, 'Graveyard EC', 0x14, Ea, 0x09), create_owedge(player, 'Useless Fairy SW', 0x15, So, 0x0b), create_owedge(player, 'Useless Fairy SC', 0x15, So, 0x0c), create_owedge(player, 'Useless Fairy SE', 0x15, So, 0x0d), create_owedge(player, 'Useless Fairy WC', 0x15, We, 0x09), create_owedge(player, 'Useless Fairy EN', 0x15, Ea, 0x0a), create_owedge(player, 'Useless Fairy EC', 0x15, Ea, 0x0b), create_owedge(player, 'Useless Fairy ES', 0x15, Ea, 0x0c), create_owedge(player, 'Potion Shop WN', 0x16, We, 0x0a), create_owedge(player, 'Potion Shop WC', 0x16, We, 0x0b), create_owedge(player, 'Potion Shop WS', 0x16, We, 0x0c), create_owedge(player, 'Potion Shop EN', 0x16, Ea, 0x0d), create_owedge(player, 'Potion Shop EC', 0x16, Ea, 0x0e), create_owedge(player, 'Zora Warning NE', 0x17, No, 0x07), create_owedge(player, 'Zora Warning WN', 0x17, We, 0x0d), create_owedge(player, 'Zora Warning WC', 0x17, We, 0x0e), create_owedge(player, 'Kakariko NW', 0x18, No, 0x08), create_owedge(player, 'Kakariko NC', 0x18, No, 0x09), create_owedge(player, 'Kakariko NE', 0x18, No, 0x0a, 0x19), create_owedge(player, 'Kakariko SE', 0x18, So, 0x0f, 0x21), create_owedge(player, 'Kakariko ES', 0x18, Ea, 0x10, 0x21), create_owedge(player, 'Forgotten Forest NW', 0x1a, No, 0x0b), create_owedge(player, 'Forgotten Forest NE', 0x1a, No, 0x0c), create_owedge(player, 'Forgotten Forest ES', 0x1a, Ea, 0x0f), create_owedge(player, 'Hyrule Castle SW', 0x1b, So, 0x10, 0x23), create_owedge(player, 'Hyrule Castle SE', 0x1b, So, 0x11, 0x24), create_owedge(player, 'Hyrule Castle WN', 0x1b, We, 0x0f), create_owedge(player, 'Hyrule Castle ES', 0x1b, Ea, 0x11, 0x24), create_owedge(player, 'Wooden Bridge NW', 0x1d, No, 0x0d), create_owedge(player, 'Wooden Bridge NC', 0x1d, No, 0x0e), create_owedge(player, 'Wooden Bridge NE', 0x1d, No, 0x0f), create_owedge(player, 'Wooden Bridge SW', 0x1d, So, 0x0e), create_owedge(player, 'Eastern Palace SW', 0x1e, So, 0x13, 0x26), create_owedge(player, 'Eastern Palace SE', 0x1e, So, 0x14, 0x27), create_owedge(player, 'Blacksmith WS', 0x22, We, 0x10), create_owedge(player, 'Sand Dune NW', 0x25, No, 0x10), create_owedge(player, 'Sand Dune SC', 0x25, So, 0x12), create_owedge(player, 'Sand Dune WN', 0x25, We, 0x11), create_owedge(player, 'Maze Race ES', 0x28, Ea, 0x12), create_owedge(player, 'Kakariko Suburb NE', 0x29, No, 0x11), create_owedge(player, 'Kakariko Suburb WS', 0x29, We, 0x12), create_owedge(player, 'Kakariko Suburb ES', 0x29, Ea, 0x13), create_owedge(player, 'Flute Boy SW', 0x2a, So, 0x15), create_owedge(player, 'Flute Boy SC', 0x2a, So, 0x16), create_owedge(player, 'Flute Boy WS', 0x2a, We, 0x13), create_owedge(player, 'Central Bonk Rock NW', 0x2b, No, 0x12), create_owedge(player, 'Central Bonk Rock SW', 0x2b, So, 0x17), create_owedge(player, 'Central Bonk Rock EN', 0x2b, Ea, 0x14), create_owedge(player, 'Central Bonk Rock EC', 0x2b, Ea, 0x15), create_owedge(player, 'Central Bonk Rock ES', 0x2b, Ea, 0x16), create_owedge(player, 'Links House NE', 0x2c, No, 0x13), create_owedge(player, 'Links House SC', 0x2c, So, 0x18), create_owedge(player, 'Links House WN', 0x2c, We, 0x14), create_owedge(player, 'Links House WC', 0x2c, We, 0x15), create_owedge(player, 'Links House WS', 0x2c, We, 0x16), create_owedge(player, 'Links House ES', 0x2c, Ea, 0x17), create_owedge(player, 'Stone Bridge NC', 0x2d, No, 0x14), create_owedge(player, 'Stone Bridge SC', 0x2d, So, 0x19), create_owedge(player, 'Stone Bridge WC', 0x2d, We, 0x17), create_owedge(player, 'Stone Bridge WS', 0x2d, We, 0x18), create_owedge(player, 'Stone Bridge EN', 0x2d, Ea, 0x18), create_owedge(player, 'Stone Bridge EC', 0x2d, Ea, 0x19), create_owedge(player, 'Tree Line NW', 0x2e, No, 0x15), create_owedge(player, 'Tree Line SC', 0x2e, So, 0x1a), create_owedge(player, 'Tree Line SE', 0x2e, So, 0x1b), create_owedge(player, 'Tree Line WN', 0x2e, We, 0x19), create_owedge(player, 'Tree Line WC', 0x2e, We, 0x1a), create_owedge(player, 'Eastern Nook NE', 0x2f, No, 0x16), create_owedge(player, 'Desert EC', 0x30, Ea, 0x1e, 0x39), create_owedge(player, 'Desert ES', 0x30, Ea, 0x1f, 0x39), create_owedge(player, 'Cave 45 NW', 0x32, No, 0x17), create_owedge(player, 'Cave 45 NC', 0x32, No, 0x18), create_owedge(player, 'Cave 45 EC', 0x32, Ea, 0x1a), create_owedge(player, 'C Whirlpool NW', 0x33, No, 0x19), create_owedge(player, 'C Whirlpool SC', 0x33, So, 0x1c), create_owedge(player, 'C Whirlpool WC', 0x33, We, 0x1b), create_owedge(player, 'C Whirlpool EN', 0x33, Ea, 0x1b), create_owedge(player, 'C Whirlpool EC', 0x33, Ea, 0x1c), create_owedge(player, 'C Whirlpool ES', 0x33, Ea, 0x1d), create_owedge(player, 'Statues NC', 0x34, No, 0x1a), create_owedge(player, 'Statues SC', 0x34, So, 0x1d), create_owedge(player, 'Statues WN', 0x34, We, 0x1c), create_owedge(player, 'Statues WC', 0x34, We, 0x1d), create_owedge(player, 'Statues WS', 0x34, We, 0x1e), create_owedge(player, 'Lake Hylia NW', 0x35, No, 0x1b), create_owedge(player, 'Lake Hylia NC', 0x35, No, 0x1c, 0x36), create_owedge(player, 'Lake Hylia NE', 0x35, No, 0x1d, 0x36), create_owedge(player, 'Lake Hylia WS', 0x35, We, 0x24, 0x3d), create_owedge(player, 'Lake Hylia EC', 0x35, Ea, 0x24, 0x3e), create_owedge(player, 'Lake Hylia ES', 0x35, Ea, 0x25, 0x3e), create_owedge(player, 'Ice Rod Cave SW', 0x37, So, 0x1e), create_owedge(player, 'Ice Rod Cave SE', 0x37, So, 0x1f), create_owedge(player, 'Purple Chest WC', 0x3a, We, 0x1f), create_owedge(player, 'Purple Chest WS', 0x3a, We, 0x20), create_owedge(player, 'Purple Chest EC', 0x3a, Ea, 0x20), create_owedge(player, 'Purple Chest ES', 0x3a, Ea, 0x21), create_owedge(player, 'Dam NC', 0x3b, No, 0x1e), create_owedge(player, 'Dam WC', 0x3b, We, 0x21), create_owedge(player, 'Dam WS', 0x3b, We, 0x22), create_owedge(player, 'Dam EC', 0x3b, Ea, 0x22), create_owedge(player, 'South Pass NC', 0x3c, No, 0x1f), create_owedge(player, 'South Pass WC', 0x3c, We, 0x23), create_owedge(player, 'South Pass ES', 0x3c, Ea, 0x23), create_owedge(player, 'Octoballoon NW', 0x3f, No, 0x20), create_owedge(player, 'Octoballoon NE', 0x3f, No, 0x21), create_owedge(player, 'Octoballoon WC', 0x3f, We, 0x25), create_owedge(player, 'Octoballoon WS', 0x3f, We, 0x26), create_owedge(player, 'Skull Woods SW', 0x40, So, 0x21, 0x48), create_owedge(player, 'Skull Woods SC', 0x40, So, 0x22, 0x48), create_owedge(player, 'Skull Woods SE', 0x40, So, 0x23, 0x49), create_owedge(player, 'Skull Woods EN', 0x40, Ea, 0x26, 0x41), create_owedge(player, 'Dark Lumberjack SW', 0x42, So, 0x20), create_owedge(player, 'Dark Lumberjack WN', 0x42, We, 0x27), create_owedge(player, 'West Dark Death Mountain EN', 0x43, Ea, 0x27, 0x44), create_owedge(player, 'West Dark Death Mountain ES', 0x43, Ea, 0x29, 0x4c), create_owedge(player, 'East Dark Death Mountain WN', 0x45, We, 0x28), create_owedge(player, 'East Dark Death Mountain WS', 0x45, We, 0x2a, 0x4d), create_owedge(player, 'East Dark Death Mountain EN', 0x45, Ea, 0x28, 0x46), create_owedge(player, 'Turtle Rock WN', 0x47, We, 0x29), create_owedge(player, 'Bumper Cave NW', 0x4a, No, 0x22), create_owedge(player, 'Bumper Cave SE', 0x4a, So, 0x24), create_owedge(player, 'Catfish SE', 0x4f, So, 0x25), create_owedge(player, 'Skull Woods Pass NW', 0x50, No, 0x23), create_owedge(player, 'Skull Woods Pass NE', 0x50, No, 0x24), create_owedge(player, 'Skull Woods Pass SW', 0x50, So, 0x26), create_owedge(player, 'Skull Woods Pass SE', 0x50, So, 0x27), create_owedge(player, 'Dark Fortune NE', 0x51, No, 0x25), create_owedge(player, 'Dark Fortune SC', 0x51, So, 0x28), create_owedge(player, 'Dark Fortune EN', 0x51, Ea, 0x2a), create_owedge(player, 'Dark Fortune ES', 0x51, Ea, 0x2b), create_owedge(player, 'Outcast Pond NE', 0x52, No, 0x26), create_owedge(player, 'Outcast Pond SW', 0x52, So, 0x29), create_owedge(player, 'Outcast Pond SE', 0x52, So, 0x2a), create_owedge(player, 'Outcast Pond WN', 0x52, We, 0x2b), create_owedge(player, 'Outcast Pond WS', 0x52, We, 0x2c), create_owedge(player, 'Outcast Pond EN', 0x52, Ea, 0x2c), create_owedge(player, 'Outcast Pond ES', 0x52, Ea, 0x2d), create_owedge(player, 'Dark Chapel WN', 0x53, We, 0x2d), create_owedge(player, 'Dark Chapel WS', 0x53, We, 0x2e), create_owedge(player, 'Dark Chapel EC', 0x53, Ea, 0x2e), create_owedge(player, 'Dark Graveyard WC', 0x54, We, 0x2f), create_owedge(player, 'Dark Graveyard ES', 0x54, Ea, 0x2f), create_owedge(player, 'Qirn Jump SW', 0x55, So, 0x2b), create_owedge(player, 'Qirn Jump SC', 0x55, So, 0x2c), create_owedge(player, 'Qirn Jump SE', 0x55, So, 0x2d), create_owedge(player, 'Qirn Jump WC', 0x55, We, 0x30), create_owedge(player, 'Qirn Jump EN', 0x55, Ea, 0x30), create_owedge(player, 'Qirn Jump EC', 0x55, Ea, 0x31), create_owedge(player, 'Qirn Jump ES', 0x55, Ea, 0x32), create_owedge(player, 'Dark Witch WN', 0x56, We, 0x31), create_owedge(player, 'Dark Witch WC', 0x56, We, 0x32), create_owedge(player, 'Dark Witch WS', 0x56, We, 0x33), create_owedge(player, 'Dark Witch EN', 0x56, Ea, 0x33), create_owedge(player, 'Dark Witch EC', 0x56, Ea, 0x34), create_owedge(player, 'Catfish Approach NE', 0x57, No, 0x27), create_owedge(player, 'Catfish Approach WN', 0x57, We, 0x34), create_owedge(player, 'Catfish Approach WC', 0x57, We, 0x35), create_owedge(player, 'Village of Outcasts NW', 0x58, No, 0x28), create_owedge(player, 'Village of Outcasts NC', 0x58, No, 0x29), create_owedge(player, 'Village of Outcasts NE', 0x58, No, 0x2a, 0x59), create_owedge(player, 'Village of Outcasts SE', 0x58, So, 0x2f, 0x61), create_owedge(player, 'Village of Outcasts ES', 0x58, Ea, 0x35, 0x61), create_owedge(player, 'Shield Shop NW', 0x5a, No, 0x2b), create_owedge(player, 'Shield Shop NE', 0x5a, No, 0x2c), create_owedge(player, 'Pyramid SW', 0x5b, So, 0x30, 0x63), create_owedge(player, 'Pyramid SE', 0x5b, So, 0x31, 0x64), create_owedge(player, 'Pyramid ES', 0x5b, Ea, 0x36, 0x64), create_owedge(player, 'Broken Bridge NW', 0x5d, No, 0x2d), create_owedge(player, 'Broken Bridge NC', 0x5d, No, 0x2e), create_owedge(player, 'Broken Bridge NE', 0x5d, No, 0x2f), create_owedge(player, 'Broken Bridge SW', 0x5d, So, 0x2e), create_owedge(player, 'Palace of Darkness SW', 0x5e, So, 0x33, 0x66), create_owedge(player, 'Palace of Darkness SE', 0x5e, So, 0x34, 0x67), create_owedge(player, 'Hammer Pegs WS', 0x62, We, 0x36), create_owedge(player, 'Dark Dune NW', 0x65, No, 0x30), create_owedge(player, 'Dark Dune SC', 0x65, So, 0x32), create_owedge(player, 'Dark Dune WN', 0x65, We, 0x37), create_owedge(player, 'Dig Game EC', 0x68, Ea, 0x37), create_owedge(player, 'Dig Game ES', 0x68, Ea, 0x38), create_owedge(player, 'Frog NE', 0x69, No, 0x31), create_owedge(player, 'Frog WC', 0x69, We, 0x38), create_owedge(player, 'Frog WS', 0x69, We, 0x39), create_owedge(player, 'Frog ES', 0x69, Ea, 0x39), create_owedge(player, 'Stumpy SW', 0x6a, So, 0x35), create_owedge(player, 'Stumpy SC', 0x6a, So, 0x36), create_owedge(player, 'Stumpy WS', 0x6a, We, 0x3a), create_owedge(player, 'Dark Bonk Rock NW', 0x6b, No, 0x32), create_owedge(player, 'Dark Bonk Rock SW', 0x6b, So, 0x37), create_owedge(player, 'Dark Bonk Rock EN', 0x6b, Ea, 0x3a), create_owedge(player, 'Dark Bonk Rock EC', 0x6b, Ea, 0x3b), create_owedge(player, 'Dark Bonk Rock ES', 0x6b, Ea, 0x3c), create_owedge(player, 'Big Bomb Shop NE', 0x6c, No, 0x33), create_owedge(player, 'Big Bomb Shop SC', 0x6c, So, 0x38), create_owedge(player, 'Big Bomb Shop WN', 0x6c, We, 0x3b), create_owedge(player, 'Big Bomb Shop WC', 0x6c, We, 0x3c), create_owedge(player, 'Big Bomb Shop WS', 0x6c, We, 0x3d), create_owedge(player, 'Big Bomb Shop ES', 0x6c, Ea, 0x3d), create_owedge(player, 'Hammer Bridge NC', 0x6d, No, 0x34), create_owedge(player, 'Hammer Bridge SC', 0x6d, So, 0x39), create_owedge(player, 'Hammer Bridge WS', 0x6d, We, 0x3e), create_owedge(player, 'Hammer Bridge EN', 0x6d, Ea, 0x3e), create_owedge(player, 'Hammer Bridge EC', 0x6d, Ea, 0x3f), create_owedge(player, 'Dark Tree Line NW', 0x6e, No, 0x35), create_owedge(player, 'Dark Tree Line SC', 0x6e, So, 0x3a), create_owedge(player, 'Dark Tree Line SE', 0x6e, So, 0x3b), create_owedge(player, 'Dark Tree Line WN', 0x6e, We, 0x3f), create_owedge(player, 'Dark Tree Line WC', 0x6e, We, 40), create_owedge(player, 'Palace of Darkness Nook NE', 0x6f, No, 0x36), create_owedge(player, 'Circle of Bushes NW', 0x72, No, 0x37), create_owedge(player, 'Circle of Bushes NC', 0x72, No, 0x38), create_owedge(player, 'Circle of Bushes EC', 0x72, Ea, 0x40), create_owedge(player, 'Dark C Whirlpool NW', 0x73, No, 0x39), create_owedge(player, 'Dark C Whirlpool SC', 0x73, So, 0x3c), create_owedge(player, 'Dark C Whirlpool WC', 0x73, We, 0x41), create_owedge(player, 'Dark C Whirlpool EN', 0x73, Ea, 0x41), create_owedge(player, 'Dark C Whirlpool EC', 0x73, Ea, 0x42), create_owedge(player, 'Dark C Whirlpool ES', 0x73, Ea, 0x43), create_owedge(player, 'Hype Cave NC', 0x74, No, 0x3a), create_owedge(player, 'Hype Cave SC', 0x74, So, 0x3d), create_owedge(player, 'Hype Cave WN', 0x74, We, 0x42), create_owedge(player, 'Hype Cave WC', 0x74, We, 0x43), create_owedge(player, 'Hype Cave WS', 0x74, We, 0x44), create_owedge(player, 'Dark Lake Hylia NW', 0x75, No, 0x3b), create_owedge(player, 'Dark Lake Hylia NC', 0x75, No, 0x3c, 0x76), create_owedge(player, 'Dark Lake Hylia NE', 0x75, No, 0x3d, 0x76), create_owedge(player, 'Dark Lake Hylia WS', 0x75, We, 0x48, 0x7d), create_owedge(player, 'Dark Lake Hylia EC', 0x75, Ea, 0x48, 0x7e), create_owedge(player, 'Dark Lake Hylia ES', 0x75, Ea, 0x49, 0x7e), create_owedge(player, 'Dark Shopping Mall SW', 0x77, So, 0x3e), create_owedge(player, 'Dark Shopping Mall SE', 0x77, So, 0x3f), create_owedge(player, 'Dark Purple Chest EC', 0x7a, Ea, 0x44), create_owedge(player, 'Dark Purple Chest ES', 0x7a, Ea, 0x45), create_owedge(player, 'Swamp Palace NC', 0x7b, No, 0x3e), create_owedge(player, 'Swamp Palace WC', 0x7b, We, 0x45), create_owedge(player, 'Swamp Palace WS', 0x7b, We, 0x46), create_owedge(player, 'Swamp Palace EC', 0x7b, Ea, 0x46), create_owedge(player, 'Dark South Pass NC', 0x7c, No, 0x3f), create_owedge(player, 'Dark South Pass WC', 0x7c, We, 0x47), create_owedge(player, 'Dark South Pass ES', 0x7c, Ea, 0x47), create_owedge(player, 'Southeast DW NW', 0x7f, No, 0x40), create_owedge(player, 'Southeast DW NE', 0x7f, No, 0x41), create_owedge(player, 'Southeast DW WC', 0x7f, We, 0x49), create_owedge(player, 'Southeast DW WS', 0x7f, We, 0x4a), create_owedge(player, 'Master Sword Meadow SC', 0x80, So, 0x40), create_owedge(player, 'Hobo EC', 0x80, Ea, 0x4a), create_owedge(player, 'Zoras Domain SW', 0x81, So, 0x41) ] world.owedges += edges world.initialize_owedges(edges) def create_owedge(player, name, owIndex, direction, edge_id, owSlotIndex=0xff): return OWEdge(player, name, owIndex, direction, edge_id, owSlotIndex)