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(): |
