Removing generated stuff via prefixes

This commit is contained in:
2024-09-08 20:12:05 +03:00
parent 41b46c9526
commit f103860c79
4 changed files with 32 additions and 0 deletions

View File

@@ -385,6 +385,27 @@ void StreamWorld::remove_generated_stuff()
ERR_FAIL_COND_MSG(result != OK, "Failed to load config");
Array gen_prefixes = config.get_value("lines", "gen_prefixes");
// TODO: implement
std::vector<int> erased_indices;
erased_indices.reserve(buildings.size());
int i, j;
for (i = 0; i < (int)buildings.size(); i++) {
for (j = 0; j < (int)gen_prefixes.size(); j++) {
String prefix = gen_prefixes[j];
if (buildings[i].id.begins_with(prefix)) {
erased_indices.push_back(i);
break;
}
}
}
for (i = erased_indices.size() - 1; i >= 0; i--) {
int index = erased_indices[i];
unload_building(index);
buildings.erase(buildings.begin() + index);
for (j = index; j < (int)buildings.size(); j++)
item_nodes[j] = item_nodes[j + 1];
item_nodes.erase(buildings.size());
}
update_items();
}
void StreamWorld::remove_building(int index)