Fix performance issue in update_bitmask_region fallback

This commit is contained in:
Thomas Riedmair 2020-05-03 00:27:47 +02:00
parent f5cd33f39d
commit e0f084b924
1 changed files with 2 additions and 5 deletions

View File

@ -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) { 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)) { 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(); Array a = get_used_cells();
for (i = 0; i < a.size(); i++) { for (int 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
Vector2 vector = (Vector2)a[i]; Vector2 vector = (Vector2)a[i];
update_bitmask_area(Vector2(vector.x, vector.y)); update_cell_bitmask(vector.x, vector.y);
} }
return; return;
} }