Do not iterate over map when removing its values
This commit is contained in:
parent
41e9028868
commit
29b2882381
@ -1024,7 +1024,9 @@ void TileMap::update_dirty_bitmask() {
|
|||||||
|
|
||||||
void TileMap::fix_invalid_tiles() {
|
void TileMap::fix_invalid_tiles() {
|
||||||
ERR_FAIL_COND_MSG(tile_set.is_null(), "Cannot fix invalid tiles if Tileset is not open.");
|
ERR_FAIL_COND_MSG(tile_set.is_null(), "Cannot fix invalid tiles if Tileset is not open.");
|
||||||
for (Map<PosKey, Cell>::Element *E = tile_map.front(); E; E = E->next()) {
|
|
||||||
|
Map<PosKey, Cell> temp_tile_map = tile_map;
|
||||||
|
for (Map<PosKey, Cell>::Element *E = temp_tile_map.front(); E; E = E->next()) {
|
||||||
if (!tile_set->has_tile(get_cell(E->key().x, E->key().y))) {
|
if (!tile_set->has_tile(get_cell(E->key().x, E->key().y))) {
|
||||||
set_cell(E->key().x, E->key().y, INVALID_CELL);
|
set_cell(E->key().x, E->key().y, INVALID_CELL);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user