summaryrefslogtreecommitdiffstats
path: root/editor/plugins/tiles
diff options
context:
space:
mode:
authorkleonc <9283098+kleonc@users.noreply.github.com>2024-09-11 10:45:23 +0200
committerkleonc <9283098+kleonc@users.noreply.github.com>2024-09-11 10:45:23 +0200
commitab504b31395c2d49747a2d4f1da59258f30de983 (patch)
tree29f4491a629a7fb90e392de64ed3b9676121d603 /editor/plugins/tiles
parent97ef3c837263099faf02d8ebafd6c77c94d2aaba (diff)
downloadredot-engine-ab504b31395c2d49747a2d4f1da59258f30de983.tar.gz
Fix undoing "Move tiles" TileMapLayer action when drag/drop areas overlap
Diffstat (limited to 'editor/plugins/tiles')
-rw-r--r--editor/plugins/tiles/tile_map_layer_editor.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/editor/plugins/tiles/tile_map_layer_editor.cpp b/editor/plugins/tiles/tile_map_layer_editor.cpp
index 7e6746dd3c..dcfd92f6f9 100644
--- a/editor/plugins/tiles/tile_map_layer_editor.cpp
+++ b/editor/plugins/tiles/tile_map_layer_editor.cpp
@@ -1364,11 +1364,13 @@ void TileMapLayerEditorTilesPlugin::_stop_dragging() {
Vector2i coords;
HashMap<Vector2i, TileMapCell> cells_undo;
for (int i = 0; i < selection_used_cells.size(); i++) {
- coords = tile_set->map_pattern(top_left, selection_used_cells[i], selection_pattern);
- cells_undo[coords] = TileMapCell(drag_modified[coords].source_id, drag_modified[coords].get_atlas_coords(), drag_modified[coords].alternative_tile);
coords = tile_set->map_pattern(top_left + offset, selection_used_cells[i], selection_pattern);
cells_undo[coords] = TileMapCell(edited_layer->get_cell_source_id(coords), edited_layer->get_cell_atlas_coords(coords), edited_layer->get_cell_alternative_tile(coords));
}
+ for (int i = 0; i < selection_used_cells.size(); i++) {
+ coords = tile_set->map_pattern(top_left, selection_used_cells[i], selection_pattern);
+ cells_undo[coords] = TileMapCell(drag_modified[coords].source_id, drag_modified[coords].get_atlas_coords(), drag_modified[coords].alternative_tile);
+ }
// Build the list of cells to do.
HashMap<Vector2i, TileMapCell> cells_do;