diff options
Diffstat (limited to 'client/Archipelago/gamedata.gd')
-rw-r--r-- | client/Archipelago/gamedata.gd | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/client/Archipelago/gamedata.gd b/client/Archipelago/gamedata.gd index 41d966a..9eeec3b 100644 --- a/client/Archipelago/gamedata.gd +++ b/client/Archipelago/gamedata.gd | |||
@@ -6,6 +6,7 @@ var objects | |||
6 | var door_id_by_map_node_path = {} | 6 | var door_id_by_map_node_path = {} |
7 | var painting_id_by_map_node_path = {} | 7 | var painting_id_by_map_node_path = {} |
8 | var panel_id_by_map_node_path = {} | 8 | var panel_id_by_map_node_path = {} |
9 | var port_id_by_map_node_path = {} | ||
9 | var door_id_by_ap_id = {} | 10 | var door_id_by_ap_id = {} |
10 | var map_id_by_name = {} | 11 | var map_id_by_name = {} |
11 | var progressive_id_by_ap_id = {} | 12 | var progressive_id_by_ap_id = {} |
@@ -79,6 +80,16 @@ func load(data_bytes): | |||
79 | 80 | ||
80 | var _map_data = painting_id_by_map_node_path[map.get_name()] | 81 | var _map_data = painting_id_by_map_node_path[map.get_name()] |
81 | 82 | ||
83 | for port in objects.get_ports(): | ||
84 | var room = objects.get_rooms()[port.get_room_id()] | ||
85 | var map = objects.get_maps()[room.get_map_id()] | ||
86 | |||
87 | if not map.get_name() in port_id_by_map_node_path: | ||
88 | port_id_by_map_node_path[map.get_name()] = {} | ||
89 | |||
90 | var map_data = port_id_by_map_node_path[map.get_name()] | ||
91 | map_data[port.get_path()] = port.get_id() | ||
92 | |||
82 | for progressive in objects.get_progressives(): | 93 | for progressive in objects.get_progressives(): |
83 | progressive_id_by_ap_id[progressive.get_ap_id()] = progressive.get_id() | 94 | progressive_id_by_ap_id[progressive.get_ap_id()] = progressive.get_id() |
84 | 95 | ||
@@ -121,6 +132,14 @@ func get_panel_for_map_node_path(map_name, node_path): | |||
121 | return map_data.get(node_path, null) | 132 | return map_data.get(node_path, null) |
122 | 133 | ||
123 | 134 | ||
135 | func get_port_for_map_node_path(map_name, node_path): | ||
136 | if not port_id_by_map_node_path.has(map_name): | ||
137 | return null | ||
138 | |||
139 | var map_data = port_id_by_map_node_path[map_name] | ||
140 | return map_data.get(node_path, null) | ||
141 | |||
142 | |||
124 | func get_door_ap_id(door_id): | 143 | func get_door_ap_id(door_id): |
125 | var door = objects.get_doors()[door_id] | 144 | var door = objects.get_doors()[door_id] |
126 | if door.has_ap_id(): | 145 | if door.has_ap_id(): |