diff options
author | Hop311 <hop3114@gmail.com> | 2023-05-16 20:59:39 +0200 |
---|---|---|
committer | Hop311 <hop3114@gmail.com> | 2023-05-16 20:59:39 +0200 |
commit | 42d9d1d5417deb5979a9d5775cfe97dcff4b77ba (patch) | |
tree | 440634772615531e704a5554aa59c9890cd9cd85 /src/openvic/GameManager.hpp | |
parent | 339e0278a2064f7eeb152fe8c5778840b609e9f3 (diff) |
Changed from OpenVic2 to OpenVic
Diffstat (limited to 'src/openvic/GameManager.hpp')
-rw-r--r-- | src/openvic/GameManager.hpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/openvic/GameManager.hpp b/src/openvic/GameManager.hpp new file mode 100644 index 0000000..e1a9e9b --- /dev/null +++ b/src/openvic/GameManager.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include "GameAdvancementHook.hpp" +#include "map/Map.hpp" +#include "economy/Good.hpp" + +namespace OpenVic { + struct GameManager { + using state_updated_func_t = std::function<void()>; + + Map map; + BuildingManager building_manager; + GoodManager good_manager; + GameAdvancementHook clock; + private: + time_t session_start; /* SS-54, as well as allowing time-tracking */ + Date today; + state_updated_func_t state_updated; + bool needs_update; + + void set_needs_update(); + void update_state(); + void tick(); + public: + GameManager(state_updated_func_t state_updated_callback); + + return_t setup(); + + Date const& get_today() const; + return_t expand_building(index_t province_index, std::string const& building_type_identifier); + }; +} |