33 lines
671 B
C++
33 lines
671 B
C++
#pragma once
|
|
|
|
#include "Entity.hpp"
|
|
|
|
#include <algorithm>
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
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());
|
|
}
|