diff options
author | ClarkeCode <clarke.john.robert@gmail.com> | 2023-05-01 02:48:35 +0200 |
---|---|---|
committer | ClarkeCode <clarke.john.robert@gmail.com> | 2023-05-01 02:48:35 +0200 |
commit | c92481448159d3a363d6a99b3025bd2358c3dab6 (patch) | |
tree | 3ee57808029036a7edab750f4454aeb6c50f3df3 /GameManager.hpp |
Initial commit
Diffstat (limited to 'GameManager.hpp')
-rw-r--r-- | GameManager.hpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/GameManager.hpp b/GameManager.hpp new file mode 100644 index 0000000..70e98bd --- /dev/null +++ b/GameManager.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include "GameAdvancementHook.hpp" +#include "map/Map.hpp" + +namespace OpenVic2 { + struct GameManager { + using state_updated_func_t = std::function<void()>; + + Map map; + BuildingManager building_manager; + GameAdvancementHook clock; + private: + 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); + }; +} |