diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-05-03 18:12:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-03 18:12:54 +0200 |
commit | 09442638eeaf3e42c93733dcd4265157541103b0 (patch) | |
tree | 3e7b80e05ef8a8b9569d79c7dec5ef597fe57043 | |
parent | 687f02dd01cf77472c3ee9ff21ee9ed0336a7108 (diff) | |
parent | e0f084b924fe6e80805005632c6b203014df755b (diff) |
Merge pull request #38420 from zzz-assault/Tilemap_update-bitmask-region
Tilemap: Fix performance issue in fallback of update_bitmask_region
-rw-r--r-- | scene/2d/tile_map.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 9628c01718..86e61fe878 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -940,13 +940,10 @@ void TileMap::update_bitmask_area(const Vector2 &p_pos) { void TileMap::update_bitmask_region(const Vector2 &p_start, const Vector2 &p_end) { if ((p_end.x < p_start.x || p_end.y < p_start.y) || (p_end.x == p_start.x && p_end.y == p_start.y)) { - int i; Array a = get_used_cells(); - for (i = 0; i < a.size(); i++) { - // update_bitmask_area() in order to update cells adjacent to the - // current cell, since ordering in array may not be reliable + for (int i = 0; i < a.size(); i++) { Vector2 vector = (Vector2)a[i]; - update_bitmask_area(Vector2(vector.x, vector.y)); + update_cell_bitmask(vector.x, vector.y); } return; } |