From d3f3187209cb4085f27f95ce8ad2a77af25704fd Mon Sep 17 00:00:00 2001 From: Hop311 Date: Sun, 23 Apr 2023 19:49:01 +0100 Subject: C++ refactoring + simulation prototype --- extension/src/openvic2/GameManager.hpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 extension/src/openvic2/GameManager.hpp (limited to 'extension/src/openvic2/GameManager.hpp') diff --git a/extension/src/openvic2/GameManager.hpp b/extension/src/openvic2/GameManager.hpp new file mode 100644 index 0000000..cba0180 --- /dev/null +++ b/extension/src/openvic2/GameManager.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include "openvic2/GameAdvancementHook.hpp" +#include "openvic2/map/Map.hpp" + +namespace OpenVic2 { + struct GameManager { + using state_updated_func_t = std::function; + + Map map; + BuildingManager building_manager; + GameAdvancementHook clock; + private: + Date today; + state_updated_func_t state_updated; + bool needs_update = true; + + void set_needs_update(); + void update_state(); + void tick(); + public: + GameManager(state_updated_func_t state_updated_callback); + + void finished_loading_data(); + + Date const& get_today() const; + return_t expand_building(Province::index_t province_index, std::string const& building_type_identifier); + }; +} -- cgit v1.2.3-56-ga3b1