X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FEnvironment%2FTerrain.cpp;h=2530f0a873f5b156fc2c4b8c8a9c1b815a3c2ae1;hb=00a07ffc6abc6e36cf790448e694155f021c7b9d;hp=4874e337bcd1fa5e532597a414afa67a48fc5283;hpb=0aab437dc560d2afa982e61cc2547756ad7b0761;p=lugaru.git diff --git a/Source/Environment/Terrain.cpp b/Source/Environment/Terrain.cpp index 4874e33..2530f0a 100644 --- a/Source/Environment/Terrain.cpp +++ b/Source/Environment/Terrain.cpp @@ -1241,6 +1241,26 @@ void Terrain::AddObject(XYZ where, float radius, int id) } } +void Terrain::DeleteObject(unsigned int id) +{ + for (int i = 0; i < subdivision; i++) { + for (int j = 0; j < subdivision; j++) { + for (unsigned int k = 0; k < patchobjects[i][j].size();) { + if (patchobjects[i][j][k] == id) { + /* Remove all occurences of id (there should never be more than 1 though) */ + patchobjects[i][j].erase(patchobjects[i][j].begin() + k); + } else { + /* Update id of other objects if needed */ + if (patchobjects[i][j][k] > id) { + patchobjects[i][j][k]--; + } + k++; + } + } + } + } +} + void Terrain::DeleteDecal(int which) { if (decalstoggle) {