27 lines
600 B
C++
27 lines
600 B
C++
#include "Systems.hpp"
|
|
|
|
void UpdateAllSystems(std::vector<std::shared_ptr<Entity>> &entities, float deltaTime) {
|
|
for (auto &entity : entities) {
|
|
if (!entity) {
|
|
continue;
|
|
}
|
|
|
|
entity->Update(deltaTime);
|
|
}
|
|
|
|
auto remover = [](const std::shared_ptr<Entity> &entity) {
|
|
if (!entity) {
|
|
return true;
|
|
}
|
|
|
|
if (entity->queuedForFree) {
|
|
entity->Cleanup();
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
};
|
|
|
|
entities.erase(std::remove_if(entities.begin(), entities.end(), remover), entities.end());
|
|
}
|