diff options
| author | Rakka Rage <rakkarage@gmail.com> | 2023-05-22 20:53:21 -0400 |
|---|---|---|
| committer | Rakka Rage <rakkarage@gmail.com> | 2023-05-23 10:32:02 -0400 |
| commit | 88d2ed433d7f5a90f09b75dab8bd9574ffa8d4ae (patch) | |
| tree | d94ccc60dee9e9bea2c614bcad3f1a73e4d59b86 | |
| parent | 809a98216267f3066b9fec2f02b2042bdc9d3e0d (diff) | |
| download | redot-engine-88d2ed433d7f5a90f09b75dab8bd9574ffa8d4ae.tar.gz | |
Fix crash when using tile atlas merge with recreated alt tile
| -rw-r--r-- | editor/plugins/tiles/atlas_merging_dialog.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp index 274d52da47..54edc745da 100644 --- a/editor/plugins/tiles/atlas_merging_dialog.cpp +++ b/editor/plugins/tiles/atlas_merging_dialog.cpp @@ -105,10 +105,11 @@ void AtlasMergingDialog::_generate_merged(Vector<Ref<TileSetAtlasSource>> p_atla // Create tiles and alternatives, then copy their properties. for (int alternative_index = 0; alternative_index < atlas_source->get_alternative_tiles_count(tile_mapping.key); alternative_index++) { int alternative_id = atlas_source->get_alternative_tile_id(tile_mapping.key, alternative_index); + int changed_id = -1; if (alternative_id == 0) { merged->create_tile(tile_mapping.value, atlas_source->get_tile_size_in_atlas(tile_mapping.key)); } else { - merged->create_alternative_tile(tile_mapping.value, alternative_index); + changed_id = merged->create_alternative_tile(tile_mapping.value, alternative_index); } // Copy the properties. @@ -116,7 +117,7 @@ void AtlasMergingDialog::_generate_merged(Vector<Ref<TileSetAtlasSource>> p_atla List<PropertyInfo> properties; src_tile_data->get_property_list(&properties); - TileData *dst_tile_data = merged->get_tile_data(tile_mapping.value, alternative_id); + TileData *dst_tile_data = merged->get_tile_data(tile_mapping.value, changed_id == -1 ? alternative_id : changed_id); for (PropertyInfo property : properties) { if (!(property.usage & PROPERTY_USAGE_STORAGE)) { continue; |
