summaryrefslogtreecommitdiff
path: root/sim/src/TeamManager.cpp
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2023-02-12 00:26:12 +0100
committerAki <please@ignore.pl>2023-02-12 00:26:12 +0100
commit9e6555c0f3be53d65496b442c4a60c2592fe4f97 (patch)
tree37fda77e5816d9a127d5499b6df251a73a5ab1a9 /sim/src/TeamManager.cpp
parenta5266d3e5da1d9ee9f873124674c68843a407ac0 (diff)
downloadkurator-9e6555c0f3be53d65496b442c4a60c2592fe4f97.zip
kurator-9e6555c0f3be53d65496b442c4a60c2592fe4f97.tar.gz
kurator-9e6555c0f3be53d65496b442c4a60c2592fe4f97.tar.bz2
Extracted system update functions out of sim BaseBattle
Diffstat (limited to 'sim/src/TeamManager.cpp')
-rw-r--r--sim/src/TeamManager.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/sim/src/TeamManager.cpp b/sim/src/TeamManager.cpp
index d26ed67..0325c0c 100644
--- a/sim/src/TeamManager.cpp
+++ b/sim/src/TeamManager.cpp
@@ -6,8 +6,8 @@
#include <utility>
#include <entt/entity/registry.hpp>
-#include <entt/signal/dispatcher.hpp>
+#include <kurator/engine/Context.h>
#include <kurator/sim/events.h>
@@ -58,21 +58,15 @@ TeamManager::random(const int exclude)
void
-TeamManager::clear(entt::registry& registry)
+TeamManager::update(engine::Context& ctx)
{
for (auto& members : teams) {
- auto is_valid = [&registry](entt::entity entity){ return !registry.valid(entity); };
+ auto is_valid = [&](entt::entity entity){ return !ctx.registry.valid(entity); };
members.erase(std::remove_if(members.begin(), members.end(), is_valid), members.end());
}
-}
-
-
-void
-TeamManager::update(entt::dispatcher& dispatcher)
-{
const auto left = std::count_if(teams.begin(), teams.end(), [](const Team& team){ return team.size() > 0; });
if (left < 2)
- dispatcher.trigger(End{});
+ ctx.dispatcher.trigger(End{});
}