diff --git a/scripts/loaders/MapLoader.gd b/scripts/loaders/MapLoader.gd index a3733ab..4591f26 100644 --- a/scripts/loaders/MapLoader.gd +++ b/scripts/loaders/MapLoader.gd @@ -70,6 +70,7 @@ class WorldMap: var block_tile_ids: PoolByteArray var block_pathing: PoolIntArray var event_replacements: Dictionary # Dictionary[Array[EventReplacementRegion]] + var event_replacements_ordered: Array # Array[int flag, EventReplacementRegion] class EventReplacementRegion: var start_y: int @@ -142,6 +143,7 @@ class WorldMap: func init_event_replacements(_data: Dictionary, buffer: StreamPeerBuffer, worldmap_event_replacements: Array): # Turn deserialized WorldMapEventReplacement structs into EventReplacementRegions self.event_replacements = {} + self.event_replacements_ordered = [] var last_event_flag: int = -1 var last_y: int = -1 var region := WorldMap.EventReplacementRegion.new() @@ -158,6 +160,7 @@ class WorldMap: elif last_event_flag != event_flag or last_y != y-1: # Save last region and start a new one self.event_replacements.get_or_add(last_event_flag, []).append(region) + self.event_replacements_ordered.append([last_event_flag, region]) # Start a new region region = WorldMap.EventReplacementRegion.new() region.start_y = y @@ -167,6 +170,7 @@ class WorldMap: region.rows.append([x, blocks]) # Save final region self.event_replacements.get_or_add(last_event_flag, []).append(region) + self.event_replacements_ordered.append([last_event_flag, region]) var worldmaps = [WorldMap.new(), WorldMap.new(), WorldMap.new(), WorldMap.new(), WorldMap.new()] diff --git a/test/worldmap_system.gd b/test/worldmap_system.gd index 86eecae..060385f 100644 --- a/test/worldmap_system.gd +++ b/test/worldmap_system.gd @@ -28,9 +28,11 @@ func _create_worldmap_texture(id: int) -> void: func _create_worldmap_textures() -> void: for id in 5: self._create_worldmap_texture(id) - for flag_block in MapLoader.worldmaps[id].event_replacements.values(): - for region in flag_block: - self.map_regional_replacement_lists[id].append(region) + # for flag_block in MapLoader.worldmaps[id].event_replacements.values(): + # for region in flag_block: + # self.map_regional_replacement_lists[id].append(region) + for flag_and_region in MapLoader.worldmaps[id].event_replacements_ordered: + self.map_regional_replacement_lists[id].append(flag_and_region[1]) func _set_map(id: int) -> void: if id < 0 or id >= len(map_images):