#pragma once #include "Entity.hpp" #include #include #include void UpdateAllSystems(std::vector> &entities, float deltaTime) { for (auto &entity : entities) { if (!entity) { continue; } entity->Update(deltaTime); } auto remover = [](const std::shared_ptr &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()); }