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 | ||
