diff options
Diffstat (limited to 'apworld/client/gamedata.gd')
-rw-r--r-- | apworld/client/gamedata.gd | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/apworld/client/gamedata.gd b/apworld/client/gamedata.gd index 334d42a..9305003 100644 --- a/apworld/client/gamedata.gd +++ b/apworld/client/gamedata.gd | |||
@@ -72,7 +72,13 @@ func load(data_bytes): | |||
72 | 72 | ||
73 | if door.has_ap_id(): | 73 | if door.has_ap_id(): |
74 | door_id_by_ap_id[door.get_ap_id()] = door.get_id() | 74 | door_id_by_ap_id[door.get_ap_id()] = door.get_id() |
75 | location_name_by_id[door.get_ap_id()] = _get_door_location_name(door) | 75 | |
76 | if ( | ||
77 | door.get_type() == SCRIPT_proto.DoorType.STANDARD | ||
78 | or door.get_type() == SCRIPT_proto.DoorType.LOCATION_ONLY | ||
79 | or door.get_type() == SCRIPT_proto.DoorType.GRAVESTONE | ||
80 | ): | ||
81 | location_name_by_id[door.get_ap_id()] = _get_door_location_name(door) | ||
76 | 82 | ||
77 | for painting in objects.get_paintings(): | 83 | for painting in objects.get_paintings(): |
78 | var room = objects.get_rooms()[painting.get_room_id()] | 84 | var room = objects.get_rooms()[painting.get_room_id()] |
@@ -166,8 +172,7 @@ func get_door_ap_id(door_id): | |||
166 | 172 | ||
167 | func get_door_map_name(door_id): | 173 | func get_door_map_name(door_id): |
168 | var door = objects.get_doors()[door_id] | 174 | var door = objects.get_doors()[door_id] |
169 | var room = objects.get_rooms()[door.get_room_id()] | 175 | var map = objects.get_maps()[door.get_map_id()] |
170 | var map = objects.get_maps()[room.get_map_id()] | ||
171 | return map.get_name() | 176 | return map.get_name() |
172 | 177 | ||
173 | 178 | ||
@@ -227,8 +232,11 @@ func _get_generated_door_location_name(door): | |||
227 | var panel = objects.get_panels()[panel_id.get_panel()] | 232 | var panel = objects.get_panels()[panel_id.get_panel()] |
228 | var panel_room = objects.get_rooms()[panel.get_room_id()] | 233 | var panel_room = objects.get_rooms()[panel.get_room_id()] |
229 | # It's okay if panel_display_name is not present because then it's coalesced with other unnamed areas. | 234 | # It's okay if panel_display_name is not present because then it's coalesced with other unnamed areas. |
230 | if not map_areas.has(panel_room.get_panel_display_name()): | 235 | var panel_display_name = "" |
231 | map_areas.append(panel_room.get_panel_display_name()) | 236 | if panel_room.has_panel_display_name(): |
237 | panel_display_name = panel_room.get_panel_display_name() | ||
238 | if not map_areas.has(panel_display_name): | ||
239 | map_areas.append(panel_display_name) | ||
232 | 240 | ||
233 | if map_areas.size() > 1: | 241 | if map_areas.size() > 1: |
234 | return null | 242 | return null |
@@ -264,7 +272,7 @@ func _get_generated_door_location_name(door): | |||
264 | 272 | ||
265 | 273 | ||
266 | func _get_letter_location_name(letter): | 274 | func _get_letter_location_name(letter): |
267 | var letter_level = 2 if letter.get_level2() else 1 | 275 | var letter_level = 2 if (letter.has_level2() and letter.get_level2()) else 1 |
268 | var letter_name = "%s%d" % [letter.get_key().to_upper(), letter_level] | 276 | var letter_name = "%s%d" % [letter.get_key().to_upper(), letter_level] |
269 | return "%s - %s" % [_get_room_object_map_name(letter), letter_name] | 277 | return "%s - %s" % [_get_room_object_map_name(letter), letter_name] |
270 | 278 | ||