From 830fedb6b87c83b3be40df4a07a9d4780143dbe4 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Sat, 8 Oct 2022 19:27:47 +0200 Subject: [PATCH] Replace load_from_sv6() and load_from_sc6() --- src/openrct2/Editor.cpp | 8 +--- src/openrct2/Game.h | 1 - src/openrct2/rct2/S6Importer.cpp | 82 -------------------------------- src/openrct2/scenario/Scenario.h | 1 - test/tests/MultiLaunch.cpp | 2 +- test/tests/Pathfinding.cpp | 2 +- test/tests/RideRatings.cpp | 2 +- test/tests/TileElements.cpp | 2 +- test/tests/TileElementsView.cpp | 2 +- 9 files changed, 7 insertions(+), 95 deletions(-) diff --git a/src/openrct2/Editor.cpp b/src/openrct2/Editor.cpp index 7d90c73ad0..5b8d9d2574 100644 --- a/src/openrct2/Editor.cpp +++ b/src/openrct2/Editor.cpp @@ -283,13 +283,9 @@ namespace Editor auto extensionS = Path::GetExtension(path); const char* extension = extensionS.c_str(); auto loadedFromSave = false; - if (_stricmp(extension, ".sc6") == 0) + GetContext()->LoadParkFromFile(path); + if (_stricmp(extension, ".sv6") == 0 || _stricmp(extension, ".sv7") == 0) { - load_from_sc6(path); - } - else if (_stricmp(extension, ".sv6") == 0 || _stricmp(extension, ".sv7") == 0) - { - load_from_sv6(path); loadedFromSave = true; } diff --git a/src/openrct2/Game.h b/src/openrct2/Game.h index d06a98b27d..3634a63a53 100644 --- a/src/openrct2/Game.h +++ b/src/openrct2/Game.h @@ -158,7 +158,6 @@ void reset_all_sprite_quadrant_placements(); void update_palette_effects(); void game_load_or_quit_no_save_prompt(); -void load_from_sv6(const char* path); void game_load_init(); void game_load_scripts(); void game_unload_scripts(); diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index ed933660c0..d4faa848a9 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -2316,85 +2316,3 @@ std::unique_ptr ParkImporter::CreateS6(IObjectRepository& objectR { return std::make_unique(objectRepository); } - -static void show_error(uint8_t errorType, StringId errorStringId) -{ - if (errorType == ERROR_TYPE_GENERIC) - { - context_show_error(errorStringId, STR_NONE, {}); - } - context_show_error(STR_UNABLE_TO_LOAD_FILE, errorStringId, {}); -} - -void load_from_sv6(const char* path) -{ - auto context = OpenRCT2::GetContext(); - auto s6Importer = std::make_unique(context->GetObjectRepository()); - try - { - auto& objectMgr = context->GetObjectManager(); - auto result = s6Importer->LoadSavedGame(path); - objectMgr.LoadObjects(result.RequiredObjects); - s6Importer->Import(); - game_fix_save_vars(); - MapAnimationAutoCreate(); - EntityTweener::Get().Reset(); - gScreenAge = 0; - gLastAutoSaveUpdate = AUTOSAVE_PAUSE; - } - catch (const ObjectLoadException&) - { - show_error(ERROR_TYPE_FILE_LOAD, STR_FILE_CONTAINS_INVALID_DATA); - } - catch (const IOException& loadError) - { - log_error("Error loading: %s", loadError.what()); - show_error(ERROR_TYPE_FILE_LOAD, STR_GAME_SAVE_FAILED); - } - catch (const UnsupportedRideTypeException&) - { - show_error(ERROR_TYPE_FILE_LOAD, STR_FILE_CONTAINS_UNSUPPORTED_RIDE_TYPES); - } - catch (const std::exception&) - { - show_error(ERROR_TYPE_FILE_LOAD, STR_FILE_CONTAINS_INVALID_DATA); - } -} - -/** - * - * rct2: 0x00676053 - * scenario (ebx) - */ -void load_from_sc6(const char* path) -{ - auto context = OpenRCT2::GetContext(); - auto& objManager = context->GetObjectManager(); - auto s6Importer = std::make_unique(context->GetObjectRepository()); - try - { - auto result = s6Importer->LoadScenario(path); - objManager.LoadObjects(result.RequiredObjects); - s6Importer->Import(); - game_fix_save_vars(); - MapAnimationAutoCreate(); - EntityTweener::Get().Reset(); - return; - } - catch (const ObjectLoadException& loadError) - { - log_error("Error loading: %s", loadError.what()); - show_error(ERROR_TYPE_FILE_LOAD, STR_GAME_SAVE_FAILED); - } - catch (const IOException& loadError) - { - log_error("Error loading: %s", loadError.what()); - show_error(ERROR_TYPE_FILE_LOAD, STR_GAME_SAVE_FAILED); - } - catch (const std::exception&) - { - show_error(ERROR_TYPE_FILE_LOAD, STR_FILE_CONTAINS_INVALID_DATA); - } - gScreenAge = 0; - gLastAutoSaveUpdate = AUTOSAVE_PAUSE; -} diff --git a/src/openrct2/scenario/Scenario.h b/src/openrct2/scenario/Scenario.h index 8c4d1e8112..8604ddaf1b 100644 --- a/src/openrct2/scenario/Scenario.h +++ b/src/openrct2/scenario/Scenario.h @@ -170,7 +170,6 @@ extern uint32_t gLastAutoSaveUpdate; extern std::string gScenarioFileName; -void load_from_sc6(const char* path); void scenario_begin(); void scenario_reset(); void scenario_update(); diff --git a/test/tests/MultiLaunch.cpp b/test/tests/MultiLaunch.cpp index 40158fa9b3..2773733137 100644 --- a/test/tests/MultiLaunch.cpp +++ b/test/tests/MultiLaunch.cpp @@ -41,7 +41,7 @@ TEST(MultiLaunchTest, all) bool initialised = context->Initialise(); ASSERT_TRUE(initialised); - load_from_sv6(path.c_str()); + GetContext()->LoadParkFromFile(path); game_load_init(); // Check ride count to check load was successful diff --git a/test/tests/Pathfinding.cpp b/test/tests/Pathfinding.cpp index 2b0fc47772..65397c101e 100644 --- a/test/tests/Pathfinding.cpp +++ b/test/tests/Pathfinding.cpp @@ -38,7 +38,7 @@ public: ASSERT_TRUE(initialised); std::string parkPath = TestData::GetParkPath("pathfinding-tests.sv6"); - load_from_sv6(parkPath.c_str()); + GetContext()->LoadParkFromFile(parkPath); game_load_init(); } diff --git a/test/tests/RideRatings.cpp b/test/tests/RideRatings.cpp index b6ef57b1d3..3c18cb306f 100644 --- a/test/tests/RideRatings.cpp +++ b/test/tests/RideRatings.cpp @@ -66,7 +66,7 @@ TEST_F(RideRatings, all) bool initialised = context->Initialise(); ASSERT_TRUE(initialised); - load_from_sv6(path.c_str()); + GetContext()->LoadParkFromFile(path); // Check ride count to check load was successful ASSERT_EQ(ride_get_count(), 134); diff --git a/test/tests/TileElements.cpp b/test/tests/TileElements.cpp index 583553273b..2e1c25c7cc 100644 --- a/test/tests/TileElements.cpp +++ b/test/tests/TileElements.cpp @@ -32,7 +32,7 @@ protected: bool initialised = _context->Initialise(); ASSERT_TRUE(initialised); - load_from_sv6(parkPath.c_str()); + GetContext()->LoadParkFromFile(parkPath); game_load_init(); // Changed in some tests. Store to restore its value diff --git a/test/tests/TileElementsView.cpp b/test/tests/TileElementsView.cpp index 1695a4c69a..05d910fa2e 100644 --- a/test/tests/TileElementsView.cpp +++ b/test/tests/TileElementsView.cpp @@ -33,7 +33,7 @@ protected: bool initialised = _context->Initialise(); ASSERT_TRUE(initialised); - load_from_sv6(parkPath.c_str()); + GetContext()->LoadParkFromFile(parkPath); game_load_init(); // Changed in some tests. Store to restore its value