diff options
author | Aki <please@ignore.pl> | 2023-02-13 00:48:43 +0100 |
---|---|---|
committer | Aki <please@ignore.pl> | 2023-02-13 00:48:43 +0100 |
commit | 6f8db05c02f941ce75da34e3c50c987d03c23e54 (patch) | |
tree | 43dfefb9c45b2d48dc55695bcea16b42e491e7d3 /sim/src/BaseBattle.cpp | |
parent | 4f2f2d329aeee7e45198cfc6e46f7648cedf1707 (diff) | |
download | kurator-6f8db05c02f941ce75da34e3c50c987d03c23e54.zip kurator-6f8db05c02f941ce75da34e3c50c987d03c23e54.tar.gz kurator-6f8db05c02f941ce75da34e3c50c987d03c23e54.tar.bz2 |
Extracted scenario setup from BaseBattle constructor
Diffstat (limited to 'sim/src/BaseBattle.cpp')
-rw-r--r-- | sim/src/BaseBattle.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/sim/src/BaseBattle.cpp b/sim/src/BaseBattle.cpp index fa91134..0c23065 100644 --- a/sim/src/BaseBattle.cpp +++ b/sim/src/BaseBattle.cpp @@ -25,20 +25,30 @@ namespace sim { +static void setup_scenario(entt::registry& registry, const campaign::Scenario& scenario); + + BaseBattle::BaseBattle(const campaign::Scenario& scenario) : _registry {} { + setup_scenario(_registry, scenario); + manager.extend(_registry); +} + + +void +setup_scenario(entt::registry& registry, const campaign::Scenario& scenario) +{ RandomSpawner spawner {scenario.last_team(), scenario.radius, 0.1}; - Builder build {_registry, spawner}; + Builder build {registry, spawner}; for (const auto& ship : scenario.ships) { const auto entity = build(ship.loadout.type, ship.team); - _registry.emplace<universe::UniqueIdentifier>(entity, ship.identifier); - auto& state = _registry.get<AIState>(entity); + registry.emplace<universe::UniqueIdentifier>(entity, ship.identifier); + auto& state = registry.get<AIState>(entity); for (const auto& turret_type : ship.loadout.turrets) { build(turret_type, entity); state.keep_at_range = std::min(state.keep_at_range, turret_type.optimal_range); } - manager.add(ship.team, entity); // registry supports on construction events } } |