Milestone release: first alpha version

This commit is contained in:
codemann8
2021-04-19 02:43:06 -05:00
parent a2cda2f34c
commit b3c3eb6d2c
4 changed files with 580 additions and 430 deletions

View File

@@ -1442,12 +1442,26 @@ class Door(object):
return '%s' % self.name return '%s' % self.name
@unique
class WorldType(Enum):
Light = 0
Dark = 1
Special = 2
@unique
class Terrain(Enum):
Land = 0
Water = 1
class OWEdge(object): class OWEdge(object):
def __init__(self, player, name, owIndex, direction, edge_id, owSlotIndex=0xff): def __init__(self, player, name, owIndex, direction, terrain, edge_id, owSlotIndex=0xff):
self.player = player self.player = player
self.name = name self.name = name
self.type = DoorType.Open self.type = DoorType.Open
self.direction = direction self.direction = direction
self.terrain = terrain
self.deadEnd = False self.deadEnd = False
# rom properties # rom properties
@@ -1472,6 +1486,13 @@ class OWEdge(object):
self.unknownX = 0x0 self.unknownX = 0x0
self.unknownY = 0x0 self.unknownY = 0x0
if self.owIndex < 0x40:
self.worldType = WorldType.Light
elif self.owIndex < 0x80:
self.worldType = WorldType.Dark
else:
self.worldType = WorldType.Special
# logical properties # logical properties
# self.connected = False # combine with Dest? # self.connected = False # combine with Dest?
self.dest = None self.dest = None

View File

@@ -242,7 +242,10 @@ def main(args, seed=None, fish=None):
customize_shops(world, player) customize_shops(world, player)
balance_money_progression(world) balance_money_progression(world)
outfilebase = f'DR_{args.outputname if args.outputname else world.seed}' if world.owShuffle[1] != 'vanilla':
outfilebase = f'OR_{args.outputname if args.outputname else world.seed}'
else:
outfilebase = f'DR_{args.outputname if args.outputname else world.seed}'
rom_names = [] rom_names = []
jsonout = {} jsonout = {}

View File

@@ -1,5 +1,5 @@
from BaseClasses import OWEdge, Direction from BaseClasses import OWEdge, Direction, Terrain
# constants # constants
We = Direction.West We = Direction.West
@@ -7,296 +7,298 @@ Ea = Direction.East
So = Direction.South So = Direction.South
No = Direction.North No = Direction.North
Ld = Terrain.Land
Wr = Terrain.Water
def create_owedges(world, player): def create_owedges(world, player):
edges = [ edges = [
# name, owID, dir, edge_id, (owSlot) #(vram, scrollY, scrollX, linkY, linkX, camY, camX, unk1, unk2) # name, owID,dir,type,edge_id,(owSlot) #(vram, scrollY, scrollX, linkY, linkX, camY, camX, unk1, unk2)
create_owedge(player, 'Lost Woods NW', 0x00, No, 0x00) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lost Woods NW', 0x00, No, Ld, 0x00) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lost Woods SW', 0x00, So, 0x01, 0x08).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lost Woods SW', 0x00, So, Ld, 0x01, 0x08).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lost Woods SC', 0x00, So, 0x02, 0x08).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lost Woods SC', 0x00, So, Ld, 0x02, 0x08).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lost Woods SE', 0x00, So, 0x03, 0x09).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lost Woods SE', 0x00, So, Ld, 0x03, 0x09).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lost Woods EN', 0x00, Ea, 0x00, 0x01).coordInfo(0x0180, 0x0024, 0x0400, 0x0088, 0x0405, 0x0093, 0x047d, 0x0c, 0x00), create_owedge(player, 'Lost Woods EN', 0x00, Ea, Ld, 0x00, 0x01).coordInfo(0x0180, 0x0024, 0x0400, 0x0088, 0x0405, 0x0093, 0x047d, 0x0c, 0x00),
create_owedge(player, 'Lumberjack SW', 0x02, So, 0x00) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lumberjack SW', 0x02, So, Ld, 0x00) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lumberjack WN', 0x02, We, 0x00) .coordInfo(0x01e0, 0x0028, 0x0300, 0x0088, 0x03e8, 0x0097, 0x0385, 0xf8, 0x00), create_owedge(player, 'Lumberjack WN', 0x02, We, Ld, 0x00) .coordInfo(0x01e0, 0x0028, 0x0300, 0x0088, 0x03e8, 0x0097, 0x0385, 0xf8, 0x00),
create_owedge(player, 'West Death Mountain EN', 0x03, Ea, 0x01, 0x04).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'West Death Mountain EN', 0x03, Ea, Ld, 0x01, 0x04).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'West Death Mountain ES', 0x03, Ea, 0x03, 0x0c).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'West Death Mountain ES', 0x03, Ea, Ld, 0x03, 0x0c).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'East Death Mountain WN', 0x05, We, 0x01, 0x05).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'East Death Mountain WN', 0x05, We, Ld, 0x01, 0x05).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'East Death Mountain WS', 0x05, We, 0x03, 0x0d).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'East Death Mountain WS', 0x05, We, Ld, 0x03, 0x0d).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'East Death Mountain EN', 0x05, Ea, 0x02, 0x06).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'East Death Mountain EN', 0x05, Ea, Ld, 0x02, 0x06).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Death Mountain TR Pegs WN', 0x07, We, 0x02) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Death Mountain TR Pegs WN', 0x07, We, Ld, 0x02) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'DM Ascent NW', 0x0a, No, 0x01) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'DM Ascent NW', 0x0a, No, Ld, 0x01) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'DM Ascent SE', 0x0a, So, 0x04) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'DM Ascent SE', 0x0a, So, Ld, 0x04) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Zora Approach NE', 0x0f, No, 0x02) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Zora Approach NE', 0x0f, No, Ld, 0x02) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Zora Approach SE', 0x0f, So, 0x05) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Zora Approach SE', 0x0f, So, Ld, 0x05) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lost Woods Pass NW', 0x10, No, 0x03) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lost Woods Pass NW', 0x10, No, Ld, 0x03) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lost Woods Pass NE', 0x10, No, 0x04) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lost Woods Pass NE', 0x10, No, Ld, 0x04) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lost Woods Pass SW', 0x10, So, 0x06) .coordInfo(0x0000, 0x0600, 0x0006, 0x0603, 0x0088, 0x066d, 0x0093, 0x00, 0xfa), create_owedge(player, 'Lost Woods Pass SW', 0x10, So, Ld, 0x06) .coordInfo(0x0000, 0x0600, 0x0006, 0x0603, 0x0088, 0x066d, 0x0093, 0x00, 0xfa),
create_owedge(player, 'Lost Woods Pass SE', 0x10, So, 0x07) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lost Woods Pass SE', 0x10, So, Ld, 0x07) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Fortune SC', 0x11, So, 0x08) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Fortune SC', 0x11, So, Ld, 0x08) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Fortune EN', 0x11, Ea, 0x04) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Fortune EN', 0x11, Ea, Ld, 0x04) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Fortune NE', 0x11, No, 0x05) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Fortune NE', 0x11, No, Ld, 0x05) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Fortune ES', 0x11, Ea, 0x05) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Fortune ES', 0x11, Ea, Ld, 0x05) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Pond NE', 0x12, No, 0x06) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Pond NE', 0x12, No, Ld, 0x06) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Pond SW', 0x12, So, 0x09) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Pond SW', 0x12, So, Ld, 0x09) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Pond SE', 0x12, So, 0x0a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Pond SE', 0x12, So, Ld, 0x0a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Pond WN', 0x12, We, 0x04) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Pond WN', 0x12, We, Ld, 0x04) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Pond WS', 0x12, We, 0x05) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Pond WS', 0x12, We, Ld, 0x05) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Pond EN', 0x12, Ea, 0x06) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Pond EN', 0x12, Ea, Ld, 0x06) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Pond ES', 0x12, Ea, 0x07) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Pond ES', 0x12, Ea, Ld, 0x07) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Sanctuary WN', 0x13, We, 0x06) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Sanctuary WN', 0x13, We, Ld, 0x06) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Sanctuary WS', 0x13, We, 0x07) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Sanctuary WS', 0x13, We, Ld, 0x07) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Sanctuary EC', 0x13, Ea, 0x08) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Sanctuary EC', 0x13, Ea, Ld, 0x08) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Graveyard WC', 0x14, We, 0x08) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Graveyard WC', 0x14, We, Ld, 0x08) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Graveyard EC', 0x14, Ea, 0x09) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Graveyard EC', 0x14, Ea, Ld, 0x09) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Useless Fairy SW', 0x15, So, 0x0b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Useless Fairy SW', 0x15, So, Ld, 0x0b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Useless Fairy SC', 0x15, So, 0x0c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Useless Fairy SC', 0x15, So, Wr, 0x0c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Useless Fairy SE', 0x15, So, 0x0d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Useless Fairy SE', 0x15, So, Ld, 0x0d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Useless Fairy WC', 0x15, We, 0x09) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Useless Fairy WC', 0x15, We, Ld, 0x09) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Useless Fairy EN', 0x15, Ea, 0x0a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Useless Fairy EN', 0x15, Ea, Wr, 0x0a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Useless Fairy EC', 0x15, Ea, 0x0b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Useless Fairy EC', 0x15, Ea, Ld, 0x0b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Useless Fairy ES', 0x15, Ea, 0x0c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Useless Fairy ES', 0x15, Ea, Ld, 0x0c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Potion Shop WN', 0x16, We, 0x0a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Potion Shop WN', 0x16, We, Wr, 0x0a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Potion Shop WC', 0x16, We, 0x0b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Potion Shop WC', 0x16, We, Ld, 0x0b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Potion Shop WS', 0x16, We, 0x0c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Potion Shop WS', 0x16, We, Ld, 0x0c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Potion Shop EN', 0x16, Ea, 0x0d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Potion Shop EN', 0x16, Ea, Wr, 0x0d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Potion Shop EC', 0x16, Ea, 0x0e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Potion Shop EC', 0x16, Ea, Ld, 0x0e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Zora Warning NE', 0x17, No, 0x07) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Zora Warning NE', 0x17, No, Ld, 0x07) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Zora Warning WN', 0x17, We, 0x0d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Zora Warning WN', 0x17, We, Wr, 0x0d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Zora Warning WC', 0x17, We, 0x0e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Zora Warning WC', 0x17, We, Ld, 0x0e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko NW', 0x18, No, 0x08) .coordInfo(0x0900, 0x051e, 0x0006, 0x05e4, 0x0088, 0x058d, 0x0093, 0x00, 0xfa), create_owedge(player, 'Kakariko NW', 0x18, No, Ld, 0x08) .coordInfo(0x0900, 0x051e, 0x0006, 0x05e4, 0x0088, 0x058d, 0x0093, 0x00, 0xfa),
create_owedge(player, 'Kakariko NC', 0x18, No, 0x09) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko NC', 0x18, No, Ld, 0x09) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko NE', 0x18, No, 0x0a, 0x19).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko NE', 0x18, No, Ld, 0x0a, 0x19).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko SE', 0x18, So, 0x0f, 0x21).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko SE', 0x18, So, Ld, 0x0f, 0x21).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko ES', 0x18, Ea, 0x10, 0x21).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko ES', 0x18, Ea, Ld, 0x10, 0x21).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Forgotten Forest NW', 0x1a, No, 0x0b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Forgotten Forest NW', 0x1a, No, Ld, 0x0b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Forgotten Forest NE', 0x1a, No, 0x0c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Forgotten Forest NE', 0x1a, No, Ld, 0x0c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Forgotten Forest ES', 0x1a, Ea, 0x0f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Forgotten Forest ES', 0x1a, Ea, Ld, 0x0f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hyrule Castle SW', 0x1b, So, 0x10, 0x23).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hyrule Castle SW', 0x1b, So, Ld, 0x10, 0x23).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hyrule Castle SE', 0x1b, So, 0x11, 0x24).coordInfo(0x1854, 0x091e, 0x089e, 0x09e0, 0x0924, 0x098d, 0x092b, 0x00, 0x02), create_owedge(player, 'Hyrule Castle SE', 0x1b, So, Ld, 0x11, 0x24).coordInfo(0x1854, 0x091e, 0x089e, 0x09e0, 0x0924, 0x098d, 0x092b, 0x00, 0x02),
create_owedge(player, 'Hyrule Castle WN', 0x1b, We, 0x0f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hyrule Castle WN', 0x1b, We, Ld, 0x0f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hyrule Castle ES', 0x1b, Ea, 0x11, 0x24).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hyrule Castle ES', 0x1b, Ea, Ld, 0x11, 0x24).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Wooden Bridge NW', 0x1d, No, 0x0d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Wooden Bridge NW', 0x1d, No, Ld, 0x0d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Wooden Bridge NE', 0x1d, No, 0x0f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Wooden Bridge NC', 0x1d, No, Wr, 0x0e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Wooden Bridge NC', 0x1d, No, 0x0e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Wooden Bridge NE', 0x1d, No, Ld, 0x0f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Wooden Bridge SW', 0x1d, So, 0x0e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Wooden Bridge SW', 0x1d, So, Ld, 0x0e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Eastern Palace SW', 0x1e, So, 0x13, 0x26).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Eastern Palace SW', 0x1e, So, Ld, 0x13, 0x26).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Eastern Palace SE', 0x1e, So, 0x14, 0x27).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Eastern Palace SE', 0x1e, So, Ld, 0x14, 0x27).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Blacksmith WS', 0x22, We, 0x10) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Blacksmith WS', 0x22, We, Ld, 0x10) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Sand Dune NW', 0x25, No, 0x10) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Sand Dune NW', 0x25, No, Ld, 0x10) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Sand Dune SC', 0x25, So, 0x12) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Sand Dune SC', 0x25, So, Ld, 0x12) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Sand Dune WN', 0x25, We, 0x11) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Sand Dune WN', 0x25, We, Ld, 0x11) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Maze Race ES', 0x28, Ea, 0x12) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Maze Race ES', 0x28, Ea, Ld, 0x12) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Suburb NE', 0x29, No, 0x11) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Suburb NE', 0x29, No, Ld, 0x11) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Suburb WS', 0x29, We, 0x12) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Suburb WS', 0x29, We, Ld, 0x12) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Kakariko Suburb ES', 0x29, Ea, 0x13) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Kakariko Suburb ES', 0x29, Ea, Ld, 0x13) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Flute Boy SW', 0x2a, So, 0x15) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Flute Boy SW', 0x2a, So, Ld, 0x15) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Flute Boy SC', 0x2a, So, 0x16) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Flute Boy SC', 0x2a, So, Ld, 0x16) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Flute Boy WS', 0x2a, We, 0x13) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Flute Boy WS', 0x2a, We, Ld, 0x13) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Central Bonk Rock NW', 0x2b, No, 0x12) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Central Bonk Rock NW', 0x2b, No, Ld, 0x12) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Central Bonk Rock SW', 0x2b, So, 0x17) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Central Bonk Rock SW', 0x2b, So, Ld, 0x17) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Central Bonk Rock EN', 0x2b, Ea, 0x14) .coordInfo(0x0280, 0x0a5e, 0x0800, 0x0ac0, 0x0805, 0x0acb, 0x087d, 0x00, 0x00), create_owedge(player, 'Central Bonk Rock EN', 0x2b, Ea, Ld, 0x14) .coordInfo(0x0280, 0x0a5e, 0x0800, 0x0ac0, 0x0805, 0x0acb, 0x087d, 0x00, 0x00),
create_owedge(player, 'Central Bonk Rock EC', 0x2b, Ea, 0x15) .coordInfo(0x0600, 0x0aba, 0x0800, 0x0b18, 0x0805, 0x0b27, 0x087d, 0x06, 0x00), create_owedge(player, 'Central Bonk Rock EC', 0x2b, Ea, Ld, 0x15) .coordInfo(0x0600, 0x0aba, 0x0800, 0x0b18, 0x0805, 0x0b27, 0x087d, 0x06, 0x00),
create_owedge(player, 'Central Bonk Rock ES', 0x2b, Ea, 0x16) .coordInfo(0x0880, 0x0b1e, 0x0800, 0x0b8c, 0x0805, 0x0b8b, 0x087d, 0x00, 0x00), create_owedge(player, 'Central Bonk Rock ES', 0x2b, Ea, Ld, 0x16) .coordInfo(0x0880, 0x0b1e, 0x0800, 0x0b8c, 0x0805, 0x0b8b, 0x087d, 0x00, 0x00),
create_owedge(player, 'Links House NE', 0x2c, No, 0x13) .coordInfo(0x1814, 0x091e, 0x089e, 0x09e4, 0x0924, 0x098d, 0x092b, 0x00, 0x02), create_owedge(player, 'Links House NE', 0x2c, No, Ld, 0x13) .coordInfo(0x1814, 0x091e, 0x089e, 0x09e4, 0x0924, 0x098d, 0x092b, 0x00, 0x02),
create_owedge(player, 'Links House SC', 0x2c, So, 0x18) .coordInfo(0x000c, 0x0c00, 0x0862, 0x00c03, 0x008e0, 0x00c6d, 0x08e7, 0x00, 0xfe), create_owedge(player, 'Links House SC', 0x2c, So, Ld, 0x18) .coordInfo(0x000c, 0x0c00, 0x0862, 0x00c03, 0x008e0, 0x00c6d, 0x08e7, 0x00, 0xfe),
create_owedge(player, 'Links House WN', 0x2c, We, 0x14) .coordInfo(0x02a0, 0x0a5e, 0x0700, 0x0ac0, 0x07e8, 0x0acb, 0x0785, 0x00, 0x00), create_owedge(player, 'Links House WN', 0x2c, We, Ld, 0x14) .coordInfo(0x02a0, 0x0a5e, 0x0700, 0x0ac0, 0x07e8, 0x0acb, 0x0785, 0x00, 0x00),
create_owedge(player, 'Links House WC', 0x2c, We, 0x15) .coordInfo(0x05a0, 0x0aba, 0x0700, 0x0b18, 0x07e9, 0x0b27, 0x0785, 0x06, 0x00), create_owedge(player, 'Links House WC', 0x2c, We, Ld, 0x15) .coordInfo(0x05a0, 0x0aba, 0x0700, 0x0b18, 0x07e9, 0x0b27, 0x0785, 0x06, 0x00),
create_owedge(player, 'Links House WS', 0x2c, We, 0x16) .coordInfo(0x08a0, 0x0b1e, 0x0700, 0x0b8c, 0x07e9, 0x0b8b, 0x0785, 0x00, 0x00), create_owedge(player, 'Links House WS', 0x2c, We, Ld, 0x16) .coordInfo(0x08a0, 0x0b1e, 0x0700, 0x0b8c, 0x07e9, 0x0b8b, 0x0785, 0x00, 0x00),
create_owedge(player, 'Links House ES', 0x2c, Ea, 0x17) .coordInfo(0x08c0, 0x0b1e, 0x0a00, 0x0b80, 0x0a05, 0x0b8b, 0x0a7d, 0x00, 0x00), create_owedge(player, 'Links House ES', 0x2c, Ea, Ld, 0x17) .coordInfo(0x08c0, 0x0b1e, 0x0a00, 0x0b80, 0x0a05, 0x0b8b, 0x0a7d, 0x00, 0x00),
create_owedge(player, 'Stone Bridge NC', 0x2d, No, 0x14) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Stone Bridge NC', 0x2d, No, Ld, 0x14) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Stone Bridge SC', 0x2d, So, 0x19) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Stone Bridge SC', 0x2d, So, Ld, 0x19) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Stone Bridge WC', 0x2d, We, 0x17) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Stone Bridge WC', 0x2d, We, Wr, 0x17) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Stone Bridge WS', 0x2d, We, 0x18) .coordInfo(0x08e0, 0x0b1e, 0x0900, 0x0b80, 0x09e9, 0x0b8b, 0x0985, 0x00, 0x00), create_owedge(player, 'Stone Bridge WS', 0x2d, We, Ld, 0x18) .coordInfo(0x08e0, 0x0b1e, 0x0900, 0x0b80, 0x09e9, 0x0b8b, 0x0985, 0x00, 0x00),
create_owedge(player, 'Stone Bridge EN', 0x2d, Ea, 0x18) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Stone Bridge EN', 0x2d, Ea, Ld, 0x18) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Stone Bridge EC', 0x2d, Ea, 0x19) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Stone Bridge EC', 0x2d, Ea, Wr, 0x19) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Tree Line NW', 0x2e, No, 0x15) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Tree Line NW', 0x2e, No, Ld, 0x15) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Tree Line SC', 0x2e, So, 0x1a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Tree Line SC', 0x2e, So, Wr, 0x1a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Tree Line SE', 0x2e, So, 0x1b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Tree Line SE', 0x2e, So, Ld, 0x1b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Tree Line WN', 0x2e, We, 0x19) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Tree Line WN', 0x2e, We, Ld, 0x19) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Tree Line WC', 0x2e, We, 0x1a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Tree Line WC', 0x2e, We, Wr, 0x1a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Eastern Nook NE', 0x2f, No, 0x16) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Eastern Nook NE', 0x2f, No, Ld, 0x16) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Desert EC', 0x30, Ea, 0x1e, 0x39).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Desert EC', 0x30, Ea, Ld, 0x1e, 0x39).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Desert ES', 0x30, Ea, 0x1f, 0x39).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Desert ES', 0x30, Ea, Ld, 0x1f, 0x39).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Cave 45 NW', 0x32, No, 0x17) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Cave 45 NW', 0x32, No, Ld, 0x17) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Cave 45 NC', 0x32, No, 0x18) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Cave 45 NC', 0x32, No, Ld, 0x18) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Cave 45 EC', 0x32, Ea, 0x1a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Cave 45 EC', 0x32, Ea, Ld, 0x1a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'C Whirlpool NW', 0x33, No, 0x19) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'C Whirlpool NW', 0x33, No, Ld, 0x19) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'C Whirlpool SC', 0x33, So, 0x1c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'C Whirlpool SC', 0x33, So, Ld, 0x1c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'C Whirlpool WC', 0x33, We, 0x1b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'C Whirlpool WC', 0x33, We, Ld, 0x1b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'C Whirlpool EN', 0x33, Ea, 0x1b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'C Whirlpool EN', 0x33, Ea, Ld, 0x1b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'C Whirlpool EC', 0x33, Ea, 0x1c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'C Whirlpool EC', 0x33, Ea, Wr, 0x1c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'C Whirlpool ES', 0x33, Ea, 0x1d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'C Whirlpool ES', 0x33, Ea, Ld, 0x1d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Statues NC', 0x34, No, 0x1a) .coordInfo(0x180c, 0x0b1e, 0x0862, 0x0be4, 0x08e0, 0x0b8d, 0x08e7, 0x00, 0xfe), create_owedge(player, 'Statues NC', 0x34, No, Ld, 0x1a) .coordInfo(0x180c, 0x0b1e, 0x0862, 0x0be4, 0x08e0, 0x0b8d, 0x08e7, 0x00, 0xfe),
create_owedge(player, 'Statues SC', 0x34, So, 0x1d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Statues SC', 0x34, So, Ld, 0x1d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Statues WN', 0x34, We, 0x1c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Statues WN', 0x34, We, Ld, 0x1c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Statues WC', 0x34, We, 0x1d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Statues WC', 0x34, We, Wr, 0x1d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Statues WS', 0x34, We, 0x1e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Statues WS', 0x34, We, Ld, 0x1e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lake Hylia NW', 0x35, No, 0x1b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lake Hylia NW', 0x35, No, Ld, 0x1b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lake Hylia NC', 0x35, No, 0x1c, 0x36).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lake Hylia NC', 0x35, No, Wr, 0x1c, 0x36).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lake Hylia NE', 0x35, No, 0x1d, 0x36).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lake Hylia NE', 0x35, No, Ld, 0x1d, 0x36).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lake Hylia WS', 0x35, We, 0x24, 0x3d).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lake Hylia WS', 0x35, We, Ld, 0x24, 0x3d).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lake Hylia EC', 0x35, Ea, 0x24, 0x3e).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Lake Hylia EC', 0x35, Ea, Wr, 0x24, 0x3e).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Lake Hylia ES', 0x35, Ea, 0x25, 0x3e).coordInfo(0x0880, 0x0f1e, 0x0e00, 0x0f94, 0x0e05, 0x0f8b, 0x0e85, 0x00, 0x00), create_owedge(player, 'Lake Hylia ES', 0x35, Ea, Ld, 0x25, 0x3e).coordInfo(0x0880, 0x0f1e, 0x0e00, 0x0f94, 0x0e05, 0x0f8b, 0x0e85, 0x00, 0x00),
create_owedge(player, 'Ice Rod Cave SW', 0x37, So, 0x1e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Ice Rod Cave SW', 0x37, So, Wr, 0x1e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Ice Rod Cave SE', 0x37, So, 0x1f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Ice Rod Cave SE', 0x37, So, Ld, 0x1f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Purple Chest WC', 0x3a, We, 0x1f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Purple Chest WC', 0x3a, We, Ld, 0x1f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Purple Chest WS', 0x3a, We, 0x20) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Purple Chest WS', 0x3a, We, Ld, 0x20) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Purple Chest EC', 0x3a, Ea, 0x20) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Purple Chest EC', 0x3a, Ea, Ld, 0x20) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Purple Chest ES', 0x3a, Ea, 0x21) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Purple Chest ES', 0x3a, Ea, Ld, 0x21) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dam NC', 0x3b, No, 0x1e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dam NC', 0x3b, No, Ld, 0x1e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dam WC', 0x3b, We, 0x21) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dam WC', 0x3b, We, Ld, 0x21) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dam WS', 0x3b, We, 0x22) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dam WS', 0x3b, We, Ld, 0x22) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dam EC', 0x3b, Ea, 0x22) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dam EC', 0x3b, Ea, Ld, 0x22) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'South Pass NC', 0x3c, No, 0x1f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'South Pass NC', 0x3c, No, Ld, 0x1f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'South Pass WC', 0x3c, We, 0x23) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'South Pass WC', 0x3c, We, Ld, 0x23) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'South Pass ES', 0x3c, Ea, 0x23) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'South Pass ES', 0x3c, Ea, Ld, 0x23) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Octoballoon NW', 0x3f, No, 0x20) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Octoballoon NW', 0x3f, No, Wr, 0x20) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Octoballoon NE', 0x3f, No, 0x21) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Octoballoon NE', 0x3f, No, Ld, 0x21) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Octoballoon WC', 0x3f, We, 0x25) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Octoballoon WC', 0x3f, We, Wr, 0x25) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Octoballoon WS', 0x3f, We, 0x26) .coordInfo(0x18e0, 0x0f1e, 0x0d00, 0x0f94, 0x0de9, 0x0f8b, 0x0d85, 0x00, 0x00), create_owedge(player, 'Octoballoon WS', 0x3f, We, Ld, 0x26) .coordInfo(0x18e0, 0x0f1e, 0x0d00, 0x0f94, 0x0de9, 0x0f8b, 0x0d85, 0x00, 0x00),
create_owedge(player, 'Skull Woods SW', 0x40, So, 0x21, 0x48).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Skull Woods SW', 0x40, So, Ld, 0x21, 0x48).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Skull Woods SC', 0x40, So, 0x22, 0x48).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Skull Woods SC', 0x40, So, Ld, 0x22, 0x48).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Skull Woods SE', 0x40, So, 0x23, 0x49).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Skull Woods SE', 0x40, So, Ld, 0x23, 0x49).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Skull Woods EN', 0x40, Ea, 0x26, 0x41).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Skull Woods EN', 0x40, Ea, Ld, 0x26, 0x41).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Lumberjack SW', 0x42, So, 0x20) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Lumberjack SW', 0x42, So, Ld, 0x20) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Lumberjack WN', 0x42, We, 0x27) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Lumberjack WN', 0x42, We, Ld, 0x27) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'West Dark Death Mountain EN', 0x43, Ea, 0x27, 0x44).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'West Dark Death Mountain EN', 0x43, Ea, Ld, 0x27, 0x44).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'West Dark Death Mountain ES', 0x43, Ea, 0x29, 0x4c).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'West Dark Death Mountain ES', 0x43, Ea, Ld, 0x29, 0x4c).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'East Dark Death Mountain WN', 0x45, We, 0x28) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'East Dark Death Mountain WN', 0x45, We, Ld, 0x28) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'East Dark Death Mountain WS', 0x45, We, 0x2a, 0x4d).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'East Dark Death Mountain WS', 0x45, We, Ld, 0x2a, 0x4d).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'East Dark Death Mountain EN', 0x45, Ea, 0x28, 0x46).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'East Dark Death Mountain EN', 0x45, Ea, Ld, 0x28, 0x46).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Turtle Rock WN', 0x47, We, 0x29) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Turtle Rock WN', 0x47, We, Ld, 0x29) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Bumper Cave NW', 0x4a, No, 0x22) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Bumper Cave NW', 0x4a, No, Ld, 0x22) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Bumper Cave SE', 0x4a, So, 0x24) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Bumper Cave SE', 0x4a, So, Ld, 0x24) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Catfish SE', 0x4f, So, 0x25) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Catfish SE', 0x4f, So, Ld, 0x25) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Skull Woods Pass NW', 0x50, No, 0x23) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Skull Woods Pass NW', 0x50, No, Ld, 0x23) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Skull Woods Pass NE', 0x50, No, 0x24) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Skull Woods Pass NE', 0x50, No, Ld, 0x24) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Skull Woods Pass SW', 0x50, So, 0x26) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Skull Woods Pass SW', 0x50, So, Ld, 0x26) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Skull Woods Pass SE', 0x50, So, 0x27) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Skull Woods Pass SE', 0x50, So, Ld, 0x27) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Fortune NE', 0x51, No, 0x25) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Fortune NE', 0x51, No, Ld, 0x25) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Fortune SC', 0x51, So, 0x28) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Fortune SC', 0x51, So, Ld, 0x28) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Fortune EN', 0x51, Ea, 0x2a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Fortune EN', 0x51, Ea, Ld, 0x2a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Fortune ES', 0x51, Ea, 0x2b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Fortune ES', 0x51, Ea, Ld, 0x2b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Outcast Pond NE', 0x52, No, 0x26) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Outcast Pond NE', 0x52, No, Ld, 0x26) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Outcast Pond SW', 0x52, So, 0x29) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Outcast Pond SW', 0x52, So, Ld, 0x29) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Outcast Pond SE', 0x52, So, 0x2a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Outcast Pond SE', 0x52, So, Ld, 0x2a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Outcast Pond WN', 0x52, We, 0x2b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Outcast Pond WN', 0x52, We, Ld, 0x2b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Outcast Pond WS', 0x52, We, 0x2c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Outcast Pond WS', 0x52, We, Ld, 0x2c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Outcast Pond EN', 0x52, Ea, 0x2c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Outcast Pond EN', 0x52, Ea, Ld, 0x2c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Outcast Pond ES', 0x52, Ea, 0x2d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Outcast Pond ES', 0x52, Ea, Ld, 0x2d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Chapel WN', 0x53, We, 0x2d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Chapel WN', 0x53, We, Ld, 0x2d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Chapel WS', 0x53, We, 0x2e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Chapel WS', 0x53, We, Ld, 0x2e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Chapel EC', 0x53, Ea, 0x2e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Chapel EC', 0x53, Ea, Ld, 0x2e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Graveyard WC', 0x54, We, 0x2f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Graveyard WC', 0x54, We, Ld, 0x2f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Graveyard ES', 0x54, Ea, 0x2f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Graveyard ES', 0x54, Ea, Ld, 0x2f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Qirn Jump SW', 0x55, So, 0x2b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Qirn Jump SW', 0x55, So, Ld, 0x2b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Qirn Jump SC', 0x55, So, 0x2c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Qirn Jump SC', 0x55, So, Wr, 0x2c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Qirn Jump SE', 0x55, So, 0x2d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Qirn Jump SE', 0x55, So, Ld, 0x2d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Qirn Jump WC', 0x55, We, 0x30) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Qirn Jump WC', 0x55, We, Ld, 0x30) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Qirn Jump EN', 0x55, Ea, 0x30) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Qirn Jump EN', 0x55, Ea, Wr, 0x30) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Qirn Jump EC', 0x55, Ea, 0x31) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Qirn Jump EC', 0x55, Ea, Ld, 0x31) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Qirn Jump ES', 0x55, Ea, 0x32) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Qirn Jump ES', 0x55, Ea, Ld, 0x32) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Witch WN', 0x56, We, 0x31) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Witch WN', 0x56, We, Wr, 0x31) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Witch WC', 0x56, We, 0x32) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Witch WC', 0x56, We, Ld, 0x32) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Witch WS', 0x56, We, 0x33) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Witch WS', 0x56, We, Ld, 0x33) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Witch EN', 0x56, Ea, 0x33) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Witch EN', 0x56, Ea, Wr, 0x33) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Witch EC', 0x56, Ea, 0x34) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Witch EC', 0x56, Ea, Ld, 0x34) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Catfish Approach NE', 0x57, No, 0x27) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Catfish Approach NE', 0x57, No, Ld, 0x27) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Catfish Approach WN', 0x57, We, 0x34) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Catfish Approach WN', 0x57, We, Wr, 0x34) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Catfish Approach WC', 0x57, We, 0x35) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Catfish Approach WC', 0x57, We, Ld, 0x35) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Village of Outcasts NW', 0x58, No, 0x28) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Village of Outcasts NW', 0x58, No, Ld, 0x28) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Village of Outcasts NC', 0x58, No, 0x29) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Village of Outcasts NC', 0x58, No, Ld, 0x29) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Village of Outcasts NE', 0x58, No, 0x2a, 0x59).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Village of Outcasts NE', 0x58, No, Ld, 0x2a, 0x59).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Village of Outcasts SE', 0x58, So, 0x2f, 0x61).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Village of Outcasts SE', 0x58, So, Ld, 0x2f, 0x61).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Village of Outcasts ES', 0x58, Ea, 0x35, 0x61).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Village of Outcasts ES', 0x58, Ea, Ld, 0x35, 0x61).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Shield Shop NE', 0x5a, No, 0x2c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Shield Shop NE', 0x5a, No, Ld, 0x2c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Shield Shop NW', 0x5a, No, 0x2b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Shield Shop NW', 0x5a, No, Ld, 0x2b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Pyramid SW', 0x5b, So, 0x30, 0x63).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Pyramid SW', 0x5b, So, Ld, 0x30, 0x63).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Pyramid SE', 0x5b, So, 0x31, 0x64).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Pyramid SE', 0x5b, So, Ld, 0x31, 0x64).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Pyramid ES', 0x5b, Ea, 0x36, 0x64).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Pyramid ES', 0x5b, Ea, Ld, 0x36, 0x64).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Broken Bridge NW', 0x5d, No, 0x2d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Broken Bridge NW', 0x5d, No, Ld, 0x2d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Broken Bridge NC', 0x5d, No, 0x2e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Broken Bridge NC', 0x5d, No, Wr, 0x2e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Broken Bridge NE', 0x5d, No, 0x2f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Broken Bridge NE', 0x5d, No, Ld, 0x2f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Broken Bridge SW', 0x5d, So, 0x2e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Broken Bridge SW', 0x5d, So, Ld, 0x2e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Palace of Darkness SW', 0x5e, So, 0x33, 0x66).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Palace of Darkness SW', 0x5e, So, Ld, 0x33, 0x66).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Palace of Darkness SE', 0x5e, So, 0x34, 0x67).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Palace of Darkness SE', 0x5e, So, Ld, 0x34, 0x67).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hammer Pegs WS', 0x62, We, 0x36) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hammer Pegs WS', 0x62, We, Ld, 0x36) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Dune NW', 0x65, No, 0x30) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Dune NW', 0x65, No, Ld, 0x30) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Dune SC', 0x65, So, 0x32) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Dune SC', 0x65, So, Ld, 0x32) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Dune WN', 0x65, We, 0x37) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Dune WN', 0x65, We, Ld, 0x37) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dig Game EC', 0x68, Ea, 0x37) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dig Game EC', 0x68, Ea, Ld, 0x37) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dig Game ES', 0x68, Ea, 0x38) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dig Game ES', 0x68, Ea, Ld, 0x38) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Frog NE', 0x69, No, 0x31) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Frog NE', 0x69, No, Ld, 0x31) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Frog WC', 0x69, We, 0x38) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Frog WC', 0x69, We, Ld, 0x38) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Frog WS', 0x69, We, 0x39) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Frog WS', 0x69, We, Ld, 0x39) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Frog ES', 0x69, Ea, 0x39) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Frog ES', 0x69, Ea, Ld, 0x39) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Stumpy SW', 0x6a, So, 0x35) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Stumpy SW', 0x6a, So, Ld, 0x35) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Stumpy SC', 0x6a, So, 0x36) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Stumpy SC', 0x6a, So, Ld, 0x36) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Stumpy WS', 0x6a, We, 0x3a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Stumpy WS', 0x6a, We, Ld, 0x3a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Bonk Rock NW', 0x6b, No, 0x32) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Bonk Rock NW', 0x6b, No, Ld, 0x32) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Bonk Rock SW', 0x6b, So, 0x37) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Bonk Rock SW', 0x6b, So, Ld, 0x37) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Bonk Rock EN', 0x6b, Ea, 0x3a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Bonk Rock EN', 0x6b, Ea, Ld, 0x3a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Bonk Rock EC', 0x6b, Ea, 0x3b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Bonk Rock EC', 0x6b, Ea, Ld, 0x3b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Bonk Rock ES', 0x6b, Ea, 0x3c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Bonk Rock ES', 0x6b, Ea, Ld, 0x3c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Big Bomb Shop NE', 0x6c, No, 0x33) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Big Bomb Shop NE', 0x6c, No, Ld, 0x33) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Big Bomb Shop SC', 0x6c, So, 0x38) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Big Bomb Shop SC', 0x6c, So, Ld, 0x38) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Big Bomb Shop WN', 0x6c, We, 0x3b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Big Bomb Shop WN', 0x6c, We, Ld, 0x3b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Big Bomb Shop WC', 0x6c, We, 0x3c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Big Bomb Shop WC', 0x6c, We, Ld, 0x3c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Big Bomb Shop WS', 0x6c, We, 0x3d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Big Bomb Shop WS', 0x6c, We, Ld, 0x3d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Big Bomb Shop ES', 0x6c, Ea, 0x3d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Big Bomb Shop ES', 0x6c, Ea, Ld, 0x3d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hammer Bridge NC', 0x6d, No, 0x34) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hammer Bridge NC', 0x6d, No, Ld, 0x34) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hammer Bridge SC', 0x6d, So, 0x39) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hammer Bridge SC', 0x6d, So, Ld, 0x39) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hammer Bridge WS', 0x6d, We, 0x3e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hammer Bridge WS', 0x6d, We, Ld, 0x3e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hammer Bridge EN', 0x6d, Ea, 0x3e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hammer Bridge EN', 0x6d, Ea, Ld, 0x3e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hammer Bridge EC', 0x6d, Ea, 0x3f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hammer Bridge EC', 0x6d, Ea, Wr, 0x3f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Tree Line NW', 0x6e, No, 0x35) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Tree Line NW', 0x6e, No, Ld, 0x35) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Tree Line SC', 0x6e, So, 0x3a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Tree Line SC', 0x6e, So, Wr, 0x3a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Tree Line SE', 0x6e, So, 0x3b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Tree Line SE', 0x6e, So, Ld, 0x3b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Tree Line WN', 0x6e, We, 0x3f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Tree Line WN', 0x6e, We, Ld, 0x3f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Tree Line WC', 0x6e, We, 0x40) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Tree Line WC', 0x6e, We, Wr, 0x40) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Palace of Darkness Nook NE', 0x6f, No, 0x36) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Palace of Darkness Nook NE', 0x6f, No, Ld, 0x36) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Circle of Bushes NW', 0x72, No, 0x37) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Circle of Bushes NW', 0x72, No, Ld, 0x37) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Circle of Bushes NC', 0x72, No, 0x38) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Circle of Bushes NC', 0x72, No, Ld, 0x38) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Circle of Bushes EC', 0x72, Ea, 0x40) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Circle of Bushes EC', 0x72, Ea, Ld, 0x40) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark C Whirlpool NW', 0x73, No, 0x39) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark C Whirlpool NW', 0x73, No, Ld, 0x39) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark C Whirlpool SC', 0x73, So, 0x3c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark C Whirlpool SC', 0x73, So, Ld, 0x3c) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark C Whirlpool WC', 0x73, We, 0x41) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark C Whirlpool WC', 0x73, We, Ld, 0x41) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark C Whirlpool EN', 0x73, Ea, 0x41) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark C Whirlpool EN', 0x73, Ea, Ld, 0x41) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark C Whirlpool EC', 0x73, Ea, 0x42) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark C Whirlpool EC', 0x73, Ea, Wr, 0x42) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark C Whirlpool ES', 0x73, Ea, 0x43) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark C Whirlpool ES', 0x73, Ea, Ld, 0x43) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hype Cave NC', 0x74, No, 0x3a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hype Cave NC', 0x74, No, Ld, 0x3a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hype Cave SC', 0x74, So, 0x3d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hype Cave SC', 0x74, So, Ld, 0x3d) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hype Cave WN', 0x74, We, 0x42) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hype Cave WN', 0x74, We, Ld, 0x42) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hype Cave WC', 0x74, We, 0x43) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hype Cave WC', 0x74, We, Wr, 0x43) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hype Cave WS', 0x74, We, 0x44) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hype Cave WS', 0x74, We, Ld, 0x44) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Lake Hylia NW', 0x75, No, 0x3b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Lake Hylia NW', 0x75, No, Ld, 0x3b) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Lake Hylia NC', 0x75, No, 0x3c, 0x76).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Lake Hylia NC', 0x75, No, Wr, 0x3c, 0x76).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Lake Hylia NE', 0x75, No, 0x3d, 0x76).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Lake Hylia NE', 0x75, No, Ld, 0x3d, 0x76).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Lake Hylia WS', 0x75, We, 0x48, 0x7d).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Lake Hylia WS', 0x75, We, Ld, 0x48, 0x7d).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Lake Hylia EC', 0x75, Ea, 0x48, 0x7e).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Lake Hylia EC', 0x75, Ea, Wr, 0x48, 0x7e).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Lake Hylia ES', 0x75, Ea, 0x49, 0x7e).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Lake Hylia ES', 0x75, Ea, Ld, 0x49, 0x7e).coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Shopping Mall SW', 0x77, So, 0x3e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Shopping Mall SW', 0x77, So, Wr, 0x3e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Shopping Mall SE', 0x77, So, 0x3f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Shopping Mall SE', 0x77, So, Ld, 0x3f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Purple Chest EC', 0x7a, Ea, 0x44) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Purple Chest EC', 0x7a, Ea, Ld, 0x44) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark Purple Chest ES', 0x7a, Ea, 0x45) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark Purple Chest ES', 0x7a, Ea, Ld, 0x45) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Swamp Palace NC', 0x7b, No, 0x3e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Swamp Palace NC', 0x7b, No, Ld, 0x3e) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Swamp Palace WC', 0x7b, We, 0x45) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Swamp Palace WC', 0x7b, We, Ld, 0x45) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Swamp Palace WS', 0x7b, We, 0x46) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Swamp Palace WS', 0x7b, We, Ld, 0x46) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Swamp Palace EC', 0x7b, Ea, 0x46) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Swamp Palace EC', 0x7b, Ea, Ld, 0x46) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark South Pass NC', 0x7c, No, 0x3f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark South Pass NC', 0x7c, No, Ld, 0x3f) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark South Pass WC', 0x7c, We, 0x47) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark South Pass WC', 0x7c, We, Ld, 0x47) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Dark South Pass ES', 0x7c, Ea, 0x47) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Dark South Pass ES', 0x7c, Ea, Ld, 0x47) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Southeast DW NW', 0x7f, No, 0x40) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Southeast DW NW', 0x7f, No, Wr, 0x40) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Southeast DW NE', 0x7f, No, 0x41) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Southeast DW NE', 0x7f, No, Ld, 0x41) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Southeast DW WC', 0x7f, We, 0x49) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Southeast DW WC', 0x7f, We, Wr, 0x49) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Southeast DW WS', 0x7f, We, 0x4a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Southeast DW WS', 0x7f, We, Ld, 0x4a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Master Sword Meadow SC', 0x80, So, 0x40) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Master Sword Meadow SC', 0x80, So, Ld, 0x40) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Hobo EC', 0x80, Ea, 0x4a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff), create_owedge(player, 'Hobo EC', 0x80, Ea, Wr, 0x4a) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff),
create_owedge(player, 'Zoras Domain SW', 0x81, So, 0x41) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff) create_owedge(player, 'Zoras Domain SW', 0x81, So, Ld, 0x41) .coordInfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff)
] ]
world.owedges += edges world.owedges += edges
world.initialize_owedges(edges) world.initialize_owedges(edges)
def create_owedge(player, name, owIndex, direction, edge_id, owSlotIndex=0xff): def create_owedge(player, name, owIndex, direction, terrain, edge_id, owSlotIndex=0xff):
return OWEdge(player, name, owIndex, direction, edge_id, owSlotIndex) return OWEdge(player, name, owIndex, direction, terrain, edge_id, owSlotIndex)

View File

@@ -1,4 +1,5 @@
import random import random
from BaseClasses import OWEdge, WorldType, Direction, Terrain
def link_overworld(world, player): def link_overworld(world, player):
# setup mandatory connections # setup mandatory connections
@@ -11,14 +12,29 @@ def link_overworld(world, player):
# if we do not shuffle, set default connections # if we do not shuffle, set default connections
if world.owShuffle[player] == 'vanilla': if world.owShuffle[player] == 'vanilla':
for exitname, destname in default_overworld_connections: for exitname, destname in default_connections:
connect_two_way(world, exitname, destname, player) connect_two_way(world, exitname, destname, player)
elif world.owShuffle[player] == 'full': elif world.owShuffle[player] == 'full':
for exitname, destname in default_overworld_connections: remaining_edges = list()
connect_two_way(world, exitname, destname, player) for exitname, destname in default_connections:
remaining_edges.append(exitname)
remaining_edges.append(destname)
#for exitname, destname in default_connections:
#connect_two_way(world, exitname, destname, player)
if world.mode[player] == 'standard':
for exitname, destname in standard_connections:
connect_two_way(world, exitname, destname, player)
remaining_edges.remove(exitname)
remaining_edges.remove(destname)
#TODO: Remove, just for testing #TODO: Remove, just for testing
for exitname, destname in test_connections: for exitname, destname in test_connections:
connect_two_way(world, exitname, destname, player) connect_two_way(world, exitname, destname, player)
remaining_edges.remove(exitname)
remaining_edges.remove(destname)
connect_remaining(world, remaining_edges, player)
else: else:
raise NotImplementedError('Shuffling not supported yet') raise NotImplementedError('Shuffling not supported yet')
@@ -58,6 +74,114 @@ def connect_two_way(world, entrancename, exitname, player):
world.spoiler.set_overworld(exitname, entrancename, 'both', player) world.spoiler.set_overworld(exitname, entrancename, 'both', player)
def connect_edges(world, edges, targets, player):
"""This works inplace"""
random.shuffle(edges)
random.shuffle(targets)
while edges:
edge = edges.pop()
target = targets.pop()
connect_two_way(world, edge, target, player)
def connect_remaining(world, edges, player):
lw_edges = list()
dw_edges = list()
for edgename in edges:
edge = world.check_for_owedge(edgename, player)
if edge.worldType == WorldType.Dark:
dw_edges.append(edge)
else:
lw_edges.append(edge)
land_edges = list()
water_edges = list()
for edge in lw_edges:
if edge.terrain == Terrain.Land:
land_edges.append(edge)
else:
water_edges.append(edge)
north_edges = list()
south_edges = list()
west_edges = list()
east_edges = list()
for edge in land_edges:
if edge.direction == Direction.North:
north_edges.append(edge.name)
elif edge.direction == Direction.South:
south_edges.append(edge.name)
elif edge.direction == Direction.West:
west_edges.append(edge.name)
else:
east_edges.append(edge.name)
#lw land edges
connect_edges(world, north_edges, south_edges, player)
connect_edges(world, west_edges, east_edges, player)
north_edges = list()
south_edges = list()
west_edges = list()
east_edges = list()
for edge in water_edges:
if edge.direction == Direction.North:
north_edges.append(edge.name)
elif edge.direction == Direction.South:
south_edges.append(edge.name)
elif edge.direction == Direction.West:
west_edges.append(edge.name)
else:
east_edges.append(edge.name)
#lw water edges
connect_edges(world, north_edges, south_edges, player)
connect_edges(world, west_edges, east_edges, player)
land_edges = list()
water_edges = list()
for edge in dw_edges:
if edge.terrain == Terrain.Land:
land_edges.append(edge)
else:
water_edges.append(edge)
north_edges = list()
south_edges = list()
west_edges = list()
east_edges = list()
for edge in land_edges:
if edge.direction == Direction.North:
north_edges.append(edge.name)
elif edge.direction == Direction.South:
south_edges.append(edge.name)
elif edge.direction == Direction.West:
west_edges.append(edge.name)
else:
east_edges.append(edge.name)
#dw land edges
connect_edges(world, north_edges, south_edges, player)
connect_edges(world, west_edges, east_edges, player)
north_edges = list()
south_edges = list()
west_edges = list()
east_edges = list()
for edge in water_edges:
if edge.direction == Direction.North:
north_edges.append(edge.name)
elif edge.direction == Direction.South:
south_edges.append(edge.name)
elif edge.direction == Direction.West:
west_edges.append(edge.name)
else:
east_edges.append(edge.name)
#dw water edges
connect_edges(world, north_edges, south_edges, player)
connect_edges(world, west_edges, east_edges, player)
test_connections = [ test_connections = [
#('Links House ES', 'Octoballoon WS'), #('Links House ES', 'Octoballoon WS'),
#('Links House NE', 'Lost Woods Pass SW') #('Links House NE', 'Lost Woods Pass SW')
@@ -309,144 +433,144 @@ mandatory_connections = [('Flute Spot 1', 'West Death Mountain (Bottom)'),
] ]
# non shuffled overworld # non shuffled overworld
default_overworld_connections = [('Lost Woods SW', 'Lost Woods Pass NW'), default_connections = [('Lost Woods SW', 'Lost Woods Pass NW'),
('Lost Woods SC', 'Lost Woods Pass NE'), ('Lost Woods SC', 'Lost Woods Pass NE'),
('Lost Woods SE', 'Kakariko Fortune NE'), ('Lost Woods SE', 'Kakariko Fortune NE'),
('Lost Woods EN', 'Lumberjack WN'), ('Lost Woods EN', 'Lumberjack WN'),
('Lumberjack SW', 'DM Ascent NW'), ('Lumberjack SW', 'DM Ascent NW'),
('DM Ascent SE', 'Kakariko Pond NE'), ('DM Ascent SE', 'Kakariko Pond NE'),
('Lost Woods Pass SW', 'Kakariko NW'), ('Lost Woods Pass SW', 'Kakariko NW'),
('Lost Woods Pass SE', 'Kakariko NC'), ('Lost Woods Pass SE', 'Kakariko NC'),
('Kakariko Fortune SC', 'Kakariko NE'), ('Kakariko Fortune SC', 'Kakariko NE'),
('Kakariko Fortune EN', 'Kakariko Pond WN'), ('Kakariko Fortune EN', 'Kakariko Pond WN'),
('Kakariko Fortune ES', 'Kakariko Pond WS'), ('Kakariko Fortune ES', 'Kakariko Pond WS'),
('Kakariko Pond SW', 'Forgotten Forest NW'), ('Kakariko Pond SW', 'Forgotten Forest NW'),
('Kakariko Pond SE', 'Forgotten Forest NE'), ('Kakariko Pond SE', 'Forgotten Forest NE'),
('Kakariko Pond EN', 'Sanctuary WN'), ('Kakariko Pond EN', 'Sanctuary WN'),
('Kakariko Pond ES', 'Sanctuary WS'), ('Kakariko Pond ES', 'Sanctuary WS'),
('Forgotten Forest ES', 'Hyrule Castle WN'), ('Forgotten Forest ES', 'Hyrule Castle WN'),
('Sanctuary EC', 'Graveyard WC'), ('Sanctuary EC', 'Graveyard WC'),
('Graveyard EC', 'Useless Fairy WC'), ('Graveyard EC', 'Useless Fairy WC'),
('Useless Fairy SW', 'Wooden Bridge NW'), ('Useless Fairy SW', 'Wooden Bridge NW'),
('Useless Fairy SC', 'Wooden Bridge NC'), ('Useless Fairy SC', 'Wooden Bridge NC'),
('Useless Fairy SE', 'Wooden Bridge NE'), ('Useless Fairy SE', 'Wooden Bridge NE'),
('Useless Fairy EN', 'Potion Shop WN'), ('Useless Fairy EN', 'Potion Shop WN'),
('Useless Fairy EC', 'Potion Shop WC'), ('Useless Fairy EC', 'Potion Shop WC'),
('Useless Fairy ES', 'Potion Shop WS'), ('Useless Fairy ES', 'Potion Shop WS'),
('Potion Shop EN', 'Zora Warning WN'), ('Potion Shop EN', 'Zora Warning WN'),
('Potion Shop EC', 'Zora Warning WC'), ('Potion Shop EC', 'Zora Warning WC'),
('Zora Warning NE', 'Zora Approach SE'), ('Zora Warning NE', 'Zora Approach SE'),
('Kakariko SE', 'Kakariko Suburb NE'), ('Kakariko SE', 'Kakariko Suburb NE'),
('Kakariko ES', 'Blacksmith WS'), ('Kakariko ES', 'Blacksmith WS'),
('Hyrule Castle SW', 'Central Bonk Rock NW'), ('Hyrule Castle SW', 'Central Bonk Rock NW'),
('Hyrule Castle SE', 'Links House NE'), ('Hyrule Castle SE', 'Links House NE'),
('Hyrule Castle ES', 'Sand Dune WN'), ('Hyrule Castle ES', 'Sand Dune WN'),
('Wooden Bridge SW', 'Sand Dune NW'), ('Wooden Bridge SW', 'Sand Dune NW'),
('Sand Dune SC', 'Stone Bridge NC'), ('Sand Dune SC', 'Stone Bridge NC'),
('Eastern Palace SW', 'Tree Line NW'), ('Eastern Palace SW', 'Tree Line NW'),
('Eastern Palace SE', 'Eastern Nook NE'), ('Eastern Palace SE', 'Eastern Nook NE'),
('Maze Race ES', 'Kakariko Suburb WS'), ('Maze Race ES', 'Kakariko Suburb WS'),
('Kakariko Suburb ES', 'Flute Boy WS'), ('Kakariko Suburb ES', 'Flute Boy WS'),
('Flute Boy SW', 'Cave 45 NW'), ('Flute Boy SW', 'Cave 45 NW'),
('Flute Boy SC', 'Cave 45 NC'), ('Flute Boy SC', 'Cave 45 NC'),
('Cave 45 EC', 'C Whirlpool WC'), ('Cave 45 EC', 'C Whirlpool WC'),
('C Whirlpool NW', 'Central Bonk Rock SW'), ('C Whirlpool NW', 'Central Bonk Rock SW'),
('C Whirlpool SC', 'Dam NC'), ('C Whirlpool SC', 'Dam NC'),
('C Whirlpool EN', 'Statues WN'), ('C Whirlpool EN', 'Statues WN'),
('C Whirlpool EC', 'Statues WC'), ('C Whirlpool EC', 'Statues WC'),
('C Whirlpool ES', 'Statues WS'), ('C Whirlpool ES', 'Statues WS'),
('Central Bonk Rock EN', 'Links House WN'), ('Central Bonk Rock EN', 'Links House WN'),
('Central Bonk Rock EC', 'Links House WC'), ('Central Bonk Rock EC', 'Links House WC'),
('Central Bonk Rock ES', 'Links House WS'), ('Central Bonk Rock ES', 'Links House WS'),
('Links House SC', 'Statues NC'), ('Links House SC', 'Statues NC'),
('Links House ES', 'Stone Bridge WS'), ('Links House ES', 'Stone Bridge WS'),
('Stone Bridge SC', 'Lake Hylia NW'), ('Stone Bridge SC', 'Lake Hylia NW'),
('Stone Bridge EN', 'Tree Line WN'), ('Stone Bridge EN', 'Tree Line WN'),
('Stone Bridge EC', 'Tree Line WC'), ('Stone Bridge EC', 'Tree Line WC'),
('Tree Line SC', 'Lake Hylia NC'), ('Tree Line SC', 'Lake Hylia NC'),
('Tree Line SE', 'Lake Hylia NE'), ('Tree Line SE', 'Lake Hylia NE'),
('Desert EC', 'Purple Chest WC'), ('Desert EC', 'Purple Chest WC'),
('Desert ES', 'Purple Chest WS'), ('Desert ES', 'Purple Chest WS'),
('Purple Chest EC', 'Dam WC'), ('Purple Chest EC', 'Dam WC'),
('Purple Chest ES', 'Dam WS'), ('Purple Chest ES', 'Dam WS'),
('Dam EC', 'South Pass WC'), ('Dam EC', 'South Pass WC'),
('Statues SC', 'South Pass NC'), ('Statues SC', 'South Pass NC'),
('South Pass ES', 'Lake Hylia WS'), ('South Pass ES', 'Lake Hylia WS'),
('Lake Hylia EC', 'Octoballoon WC'), ('Lake Hylia EC', 'Octoballoon WC'),
('Lake Hylia ES', 'Octoballoon WS'), ('Lake Hylia ES', 'Octoballoon WS'),
('Octoballoon NW', 'Ice Rod Cave SW'), ('Octoballoon NW', 'Ice Rod Cave SW'),
('Octoballoon NE', 'Ice Rod Cave SE'), ('Octoballoon NE', 'Ice Rod Cave SE'),
('West Death Mountain EN', 'East Death Mountain WN'), ('West Death Mountain EN', 'East Death Mountain WN'),
('West Death Mountain ES', 'East Death Mountain WS'), ('West Death Mountain ES', 'East Death Mountain WS'),
('East Death Mountain EN', 'Death Mountain TR Pegs WN'), ('East Death Mountain EN', 'Death Mountain TR Pegs WN'),
('Skull Woods SW', 'Skull Woods Pass NW'), ('Skull Woods SW', 'Skull Woods Pass NW'),
('Skull Woods SC', 'Skull Woods Pass NE'), ('Skull Woods SC', 'Skull Woods Pass NE'),
('Skull Woods SE', 'Dark Fortune NE'), ('Skull Woods SE', 'Dark Fortune NE'),
('Skull Woods EN', 'Dark Lumberjack WN'), ('Skull Woods EN', 'Dark Lumberjack WN'),
('Dark Lumberjack SW', 'Bumper Cave NW'), ('Dark Lumberjack SW', 'Bumper Cave NW'),
('Bumper Cave SE', 'Outcast Pond NE'), ('Bumper Cave SE', 'Outcast Pond NE'),
('Skull Woods Pass SW', 'Village of Outcasts NW'), ('Skull Woods Pass SW', 'Village of Outcasts NW'),
('Skull Woods Pass SE', 'Village of Outcasts NC'), ('Skull Woods Pass SE', 'Village of Outcasts NC'),
('Dark Fortune SC', 'Village of Outcasts NE'), ('Dark Fortune SC', 'Village of Outcasts NE'),
('Dark Fortune EN', 'Outcast Pond WN'), ('Dark Fortune EN', 'Outcast Pond WN'),
('Dark Fortune ES', 'Outcast Pond WS'), ('Dark Fortune ES', 'Outcast Pond WS'),
('Outcast Pond SW', 'Shield Shop NW'), ('Outcast Pond SW', 'Shield Shop NW'),
('Outcast Pond SE', 'Shield Shop NE'), ('Outcast Pond SE', 'Shield Shop NE'),
('Outcast Pond EN', 'Dark Chapel WN'), ('Outcast Pond EN', 'Dark Chapel WN'),
('Outcast Pond ES', 'Dark Chapel WS'), ('Outcast Pond ES', 'Dark Chapel WS'),
('Dark Chapel EC', 'Dark Graveyard WC'), ('Dark Chapel EC', 'Dark Graveyard WC'),
('Dark Graveyard ES', 'Qirn Jump WC'), ('Dark Graveyard ES', 'Qirn Jump WC'),
('Qirn Jump SW', 'Broken Bridge NW'), ('Qirn Jump SW', 'Broken Bridge NW'),
('Qirn Jump SC', 'Broken Bridge NC'), ('Qirn Jump SC', 'Broken Bridge NC'),
('Qirn Jump SE', 'Broken Bridge NE'), ('Qirn Jump SE', 'Broken Bridge NE'),
('Qirn Jump EN', 'Dark Witch WN'), ('Qirn Jump EN', 'Dark Witch WN'),
('Qirn Jump EC', 'Dark Witch WC'), ('Qirn Jump EC', 'Dark Witch WC'),
('Qirn Jump ES', 'Dark Witch WS'), ('Qirn Jump ES', 'Dark Witch WS'),
('Dark Witch EN', 'Catfish Approach WN'), ('Dark Witch EN', 'Catfish Approach WN'),
('Dark Witch EC', 'Catfish Approach WC'), ('Dark Witch EC', 'Catfish Approach WC'),
('Catfish Approach NE', 'Catfish SE'), ('Catfish Approach NE', 'Catfish SE'),
('Village of Outcasts SE', 'Frog NE'), ('Village of Outcasts SE', 'Frog NE'),
('Village of Outcasts ES', 'Hammer Pegs WS'), ('Village of Outcasts ES', 'Hammer Pegs WS'),
('Pyramid SW', 'Dark Bonk Rock NW'), ('Pyramid SW', 'Dark Bonk Rock NW'),
('Pyramid SE', 'Big Bomb Shop NE'), ('Pyramid SE', 'Big Bomb Shop NE'),
('Pyramid ES', 'Dark Dune WN'), ('Pyramid ES', 'Dark Dune WN'),
('Broken Bridge SW', 'Dark Dune NW'), ('Broken Bridge SW', 'Dark Dune NW'),
('Dark Dune SC', 'Hammer Bridge NC'), ('Dark Dune SC', 'Hammer Bridge NC'),
('Palace of Darkness SW', 'Dark Tree Line NW'), ('Palace of Darkness SW', 'Dark Tree Line NW'),
('Palace of Darkness SE', 'Palace of Darkness Nook NE'), ('Palace of Darkness SE', 'Palace of Darkness Nook NE'),
('Dig Game EC', 'Frog WC'), ('Dig Game EC', 'Frog WC'),
('Dig Game ES', 'Frog WS'), ('Dig Game ES', 'Frog WS'),
('Frog ES', 'Stumpy WS'), ('Frog ES', 'Stumpy WS'),
('Stumpy SW', 'Circle of Bushes NW'), ('Stumpy SW', 'Circle of Bushes NW'),
('Stumpy SC', 'Circle of Bushes NC'), ('Stumpy SC', 'Circle of Bushes NC'),
('Circle of Bushes EC', 'Dark C Whirlpool WC'), ('Circle of Bushes EC', 'Dark C Whirlpool WC'),
('Dark C Whirlpool NW', 'Dark Bonk Rock SW'), ('Dark C Whirlpool NW', 'Dark Bonk Rock SW'),
('Dark C Whirlpool SC', 'Swamp Palace NC'), ('Dark C Whirlpool SC', 'Swamp Palace NC'),
('Dark C Whirlpool EN', 'Hype Cave WN'), ('Dark C Whirlpool EN', 'Hype Cave WN'),
('Dark C Whirlpool EC', 'Hype Cave WC'), ('Dark C Whirlpool EC', 'Hype Cave WC'),
('Dark C Whirlpool ES', 'Hype Cave WS'), ('Dark C Whirlpool ES', 'Hype Cave WS'),
('Dark Bonk Rock EN', 'Big Bomb Shop WN'), ('Dark Bonk Rock EN', 'Big Bomb Shop WN'),
('Dark Bonk Rock EC', 'Big Bomb Shop WC'), ('Dark Bonk Rock EC', 'Big Bomb Shop WC'),
('Dark Bonk Rock ES', 'Big Bomb Shop WS'), ('Dark Bonk Rock ES', 'Big Bomb Shop WS'),
('Big Bomb Shop SC', 'Hype Cave NC'), ('Big Bomb Shop SC', 'Hype Cave NC'),
('Big Bomb Shop ES', 'Hammer Bridge WS'), ('Big Bomb Shop ES', 'Hammer Bridge WS'),
('Hammer Bridge SC', 'Dark Lake Hylia NW'), ('Hammer Bridge SC', 'Dark Lake Hylia NW'),
('Hammer Bridge EN', 'Dark Tree Line WN'), ('Hammer Bridge EN', 'Dark Tree Line WN'),
('Hammer Bridge EC', 'Dark Tree Line WC'), ('Hammer Bridge EC', 'Dark Tree Line WC'),
('Dark Tree Line SC', 'Dark Lake Hylia NC'), ('Dark Tree Line SC', 'Dark Lake Hylia NC'),
('Dark Tree Line SE', 'Dark Lake Hylia NE'), ('Dark Tree Line SE', 'Dark Lake Hylia NE'),
('Dark Purple Chest EC', 'Swamp Palace WC'), ('Dark Purple Chest EC', 'Swamp Palace WC'),
('Dark Purple Chest ES', 'Swamp Palace WS'), ('Dark Purple Chest ES', 'Swamp Palace WS'),
('Swamp Palace EC', 'Dark South Pass WC'), ('Swamp Palace EC', 'Dark South Pass WC'),
('Hype Cave SC', 'Dark South Pass NC'), ('Hype Cave SC', 'Dark South Pass NC'),
('Dark South Pass ES', 'Dark Lake Hylia WS'), ('Dark South Pass ES', 'Dark Lake Hylia WS'),
('Dark Lake Hylia EC', 'Southeast DW WC'), ('Dark Lake Hylia EC', 'Southeast DW WC'),
('Dark Lake Hylia ES', 'Southeast DW WS'), ('Dark Lake Hylia ES', 'Southeast DW WS'),
('Southeast DW NW', 'Dark Shopping Mall SW'), ('Southeast DW NW', 'Dark Shopping Mall SW'),
('Southeast DW NE', 'Dark Shopping Mall SE'), ('Southeast DW NE', 'Dark Shopping Mall SE'),
('West Dark Death Mountain EN', 'East Dark Death Mountain WN'), ('West Dark Death Mountain EN', 'East Dark Death Mountain WN'),
('West Dark Death Mountain ES', 'East Dark Death Mountain WS'), ('West Dark Death Mountain ES', 'East Dark Death Mountain WS'),
('East Dark Death Mountain EN', 'Turtle Rock WN') ('East Dark Death Mountain EN', 'Turtle Rock WN')
] ]