cs381/as6/Systems.cpp

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());
}