diff options
author | hop311 <hop3114@gmail.com> | 2023-12-12 21:43:34 +0100 |
---|---|---|
committer | Hop311 <Hop3114@gmail.com> | 2023-12-18 22:27:24 +0100 |
commit | 5ecbade59609265901caf55266af217e309e2d24 (patch) | |
tree | 0c336e402341a141e58206c458c617d2c1e36727 /extension/src/openvic-extension/singletons | |
parent | e35b9ed5d753a6690e720d5403953f89d8f1faad (diff) |
New pop history loading + bookmark selection by index
Diffstat (limited to 'extension/src/openvic-extension/singletons')
-rw-r--r-- | extension/src/openvic-extension/singletons/GameSingleton.cpp | 14 | ||||
-rw-r--r-- | extension/src/openvic-extension/singletons/GameSingleton.hpp | 5 |
2 files changed, 8 insertions, 11 deletions
diff --git a/extension/src/openvic-extension/singletons/GameSingleton.cpp b/extension/src/openvic-extension/singletons/GameSingleton.cpp index ac029d9..a53ba54 100644 --- a/extension/src/openvic-extension/singletons/GameSingleton.cpp +++ b/extension/src/openvic-extension/singletons/GameSingleton.cpp @@ -29,7 +29,7 @@ void GameSingleton::_bind_methods() { OV_BIND_METHOD(GameSingleton::load_defines_compatibility_mode, { "file_paths" }); OV_BIND_SMETHOD(search_for_game_path, { "hint_path" }, DEFVAL(String {})); - OV_BIND_METHOD(GameSingleton::setup_game); + OV_BIND_METHOD(GameSingleton::setup_game, { "bookmark_index" }); OV_BIND_METHOD(GameSingleton::get_province_index_from_uv_coords, { "coords" }); OV_BIND_METHOD(GameSingleton::get_province_info_from_index, { "index" }); @@ -112,15 +112,13 @@ Dataloader const& GameSingleton::get_dataloader() const { return dataloader; } -Error GameSingleton::setup_game() { - BookmarkManager const& bookmark_manager = game_manager.get_history_manager().get_bookmark_manager(); - if (bookmark_manager.bookmarks_empty()) { - UtilityFunctions::push_error("No bookmark to load!"); +Error GameSingleton::setup_game(int32_t bookmark_index) { + Bookmark const* bookmark = game_manager.get_history_manager().get_bookmark_manager().get_bookmark_by_index(bookmark_index); + if (bookmark == nullptr) { + UtilityFunctions::push_error("Failed to get bookmark with index: ", bookmark_index); return FAILED; } - bool ret = game_manager.load_bookmark(&bookmark_manager.get_bookmarks().front()); - // TODO - load pop history with the new history system - ret &= dataloader.load_pop_history(game_manager, "history/pops/" + game_manager.get_today().to_string()); + bool ret = game_manager.load_bookmark(bookmark); for (Province& province : game_manager.get_map().get_provinces()) { province.set_crime( game_manager.get_crime_manager().get_crime_modifier_by_index( diff --git a/extension/src/openvic-extension/singletons/GameSingleton.hpp b/extension/src/openvic-extension/singletons/GameSingleton.hpp index 5895899..5559f1b 100644 --- a/extension/src/openvic-extension/singletons/GameSingleton.hpp +++ b/extension/src/openvic-extension/singletons/GameSingleton.hpp @@ -56,9 +56,8 @@ namespace OpenVic { static godot::String search_for_game_path(godot::String hint_path = {}); - /* Post-load/restart game setup - reset the game to post-load state - * and (re)generate starting data, e.g. buildings. */ - godot::Error setup_game(); + /* Post-load/restart game setup - reset the game to post-load state and load the specified bookmark. */ + godot::Error setup_game(int32_t bookmark_index); int32_t get_province_index_from_uv_coords(godot::Vector2 const& coords) const; |