From 2a9f378c66b28cef1c5ee063cf4d7e4e2889076e Mon Sep 17 00:00:00 2001 From: Aki Date: Mon, 13 Feb 2023 22:52:18 +0100 Subject: Created sim::State object to hold overall state of simulation This is seems like it creats even more chaotic binding between the components but it is a very nice and testable intermediate step before moving everything to standalone systems and shoving state into the... well, State. --- sim/include/kurator/sim.h | 18 ++++++++++++++++++ sim/include/kurator/sim/Battle.h | 7 ++----- sim/include/kurator/sim/State.h | 29 +++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 sim/include/kurator/sim.h create mode 100644 sim/include/kurator/sim/State.h (limited to 'sim/include') diff --git a/sim/include/kurator/sim.h b/sim/include/kurator/sim.h new file mode 100644 index 0000000..3c4364c --- /dev/null +++ b/sim/include/kurator/sim.h @@ -0,0 +1,18 @@ +#pragma once + +#include + +#include "sim/State.h" + + +namespace kurator +{ +namespace sim +{ + + +void load_scenario(State& ctx, const campaign::Scenario& scenario); + + +} // namespace sim +} // namespace kurator diff --git a/sim/include/kurator/sim/Battle.h b/sim/include/kurator/sim/Battle.h index 6874b39..1692c0c 100644 --- a/sim/include/kurator/sim/Battle.h +++ b/sim/include/kurator/sim/Battle.h @@ -2,9 +2,6 @@ #include -#include -#include - #include #include @@ -19,8 +16,8 @@ class Battle { public: virtual ~Battle() = default; - virtual entt::registry& registry() = 0; - virtual entt::dispatcher& dispatcher() = 0; + virtual engine::Context context() = 0; + virtual engine::ConstContext const_context() const = 0; virtual void update(engine::Context& ctx) = 0; }; diff --git a/sim/include/kurator/sim/State.h b/sim/include/kurator/sim/State.h new file mode 100644 index 0000000..8449ad2 --- /dev/null +++ b/sim/include/kurator/sim/State.h @@ -0,0 +1,29 @@ +#pragma once + +#include +#include + +#include +#include +#include + + +namespace kurator +{ +namespace sim +{ + + +struct State +{ + entt::registry registry; + entt::dispatcher dispatcher; + engine::Clock clock; + engine::Camera camera; // does not fit in here really + operator engine::Context(); + operator engine::ConstContext() const; +}; + + +} // namespace sim +} // namespace kurator -- cgit v1.1