From 5ecbade59609265901caf55266af217e309e2d24 Mon Sep 17 00:00:00 2001 From: hop311 Date: Tue, 12 Dec 2023 20:43:34 +0000 Subject: New pop history loading + bookmark selection by index --- extension/deps/openvic-simulation | 2 +- .../src/openvic-extension/singletons/GameSingleton.cpp | 14 ++++++-------- .../src/openvic-extension/singletons/GameSingleton.hpp | 5 ++--- 3 files changed, 9 insertions(+), 12 deletions(-) (limited to 'extension') diff --git a/extension/deps/openvic-simulation b/extension/deps/openvic-simulation index 6b9cf7f..14e47d5 160000 --- a/extension/deps/openvic-simulation +++ b/extension/deps/openvic-simulation @@ -1 +1 @@ -Subproject commit 6b9cf7f9dff1570b10a0a0f988e1b1ef418d0243 +Subproject commit 14e47d58b85f657ec1fed8abf88219f09bd3efbb 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; -- cgit v1.2.3-56-ga3b1