diff --git a/src/openrct2/Context.cpp b/src/openrct2/Context.cpp index f2cb2d08b9..605c37f586 100644 --- a/src/openrct2/Context.cpp +++ b/src/openrct2/Context.cpp @@ -89,17 +89,17 @@ namespace OpenRCT2 // Services std::shared_ptr _localisationService; - IObjectRepository * _objectRepository = nullptr; - IObjectManager * _objectManager = nullptr; - ITrackDesignRepository * _trackDesignRepository = nullptr; - IScenarioRepository * _scenarioRepository = nullptr; + std::shared_ptr _objectRepository; + std::shared_ptr _objectManager; + std::unique_ptr _trackDesignRepository; + std::unique_ptr _scenarioRepository; #ifdef __ENABLE_DISCORD__ std::unique_ptr _discordService; #endif StdInOutConsole _stdInOutConsole; // Game states - TitleScreen * _titleScreen = nullptr; + std::unique_ptr _titleScreen; bool _initialised = false; bool _isWindowMinimised = false; @@ -143,13 +143,6 @@ namespace OpenRCT2 EVP_MD_CTX_destroy(gHashCTX); #endif // DISABLE_NETWORK - delete _titleScreen; - - delete _scenarioRepository; - delete _trackDesignRepository; - delete _objectManager; - delete _objectRepository; - Instance = nullptr; } @@ -173,24 +166,24 @@ namespace OpenRCT2 return *_localisationService; } - IObjectManager * GetObjectManager() override + std::shared_ptr GetObjectManager() override { return _objectManager; } - IObjectRepository * GetObjectRepository() override + std::shared_ptr GetObjectRepository() override { return _objectRepository; } ITrackDesignRepository * GetTrackDesignRepository() override { - return _trackDesignRepository; + return _trackDesignRepository.get(); } IScenarioRepository * GetScenarioRepository() override { - return _scenarioRepository; + return _scenarioRepository.get(); } sint32 RunOpenRCT2(int argc, const char * * argv) override @@ -346,8 +339,8 @@ namespace OpenRCT2 _env->SetBasePath(DIRBASE::RCT2, rct2InstallPath); } - _objectRepository = CreateObjectRepository(_env); - _objectManager = CreateObjectManager(_objectRepository); + _objectRepository = std::shared_ptr(CreateObjectRepository(_env)); + _objectManager = std::shared_ptr(CreateObjectManager(_objectRepository)); _trackDesignRepository = CreateTrackDesignRepository(_env); _scenarioRepository = CreateScenarioRepository(_env); #ifdef __ENABLE_DISCORD__ @@ -432,7 +425,7 @@ namespace OpenRCT2 viewport_init_all(); game_init_all(150); - _titleScreen = new TitleScreen(); + _titleScreen = std::make_unique(); return true; } @@ -462,12 +455,12 @@ namespace OpenRCT2 if (info.Version <= FILE_TYPE_S4_CUTOFF) { // Save is an S4 (RCT1 format) - parkImporter.reset(ParkImporter::CreateS4()); + parkImporter = ParkImporter::CreateS4(); } else { // Save is an S6 (RCT2 format) - parkImporter.reset(ParkImporter::CreateS6(_objectRepository, _objectManager)); + parkImporter = ParkImporter::CreateS6(_objectRepository, _objectManager); } try diff --git a/src/openrct2/Context.h b/src/openrct2/Context.h index b5252e413f..846ff3efd3 100644 --- a/src/openrct2/Context.h +++ b/src/openrct2/Context.h @@ -98,8 +98,8 @@ namespace OpenRCT2 virtual std::shared_ptr GetUiContext() abstract; virtual std::shared_ptr GetPlatformEnvironment() abstract; virtual Localisation::LocalisationService& GetLocalisationService() abstract; - virtual IObjectManager * GetObjectManager() abstract; - virtual IObjectRepository * GetObjectRepository() abstract; + virtual std::shared_ptr GetObjectManager() abstract; + virtual std::shared_ptr GetObjectRepository() abstract; virtual ITrackDesignRepository * GetTrackDesignRepository() abstract; virtual IScenarioRepository * GetScenarioRepository() abstract; diff --git a/src/openrct2/ParkImporter.cpp b/src/openrct2/ParkImporter.cpp index f03058454c..06b6801a25 100644 --- a/src/openrct2/ParkImporter.cpp +++ b/src/openrct2/ParkImporter.cpp @@ -99,9 +99,9 @@ ParkLoadResult * ParkLoadResult_CreateInvalidExtension() namespace ParkImporter { - IParkImporter * Create(const std::string &hintPath) + std::unique_ptr Create(const std::string &hintPath) { - IParkImporter * parkImporter = nullptr; + std::unique_ptr parkImporter; std::string extension = Path::GetExtension(hintPath); if (ExtensionIsRCT1(extension)) { diff --git a/src/openrct2/ParkImporter.h b/src/openrct2/ParkImporter.h index 096f6847f8..eb775ac1b2 100644 --- a/src/openrct2/ParkImporter.h +++ b/src/openrct2/ParkImporter.h @@ -29,6 +29,7 @@ enum PARK_LOAD_ERROR PARK_LOAD_ERROR_UNKNOWN = 255 }; +#include #include #include #include "core/String.hpp" @@ -79,9 +80,9 @@ public: namespace ParkImporter { - IParkImporter * Create(const std::string &hintPath); - IParkImporter * CreateS4(); - IParkImporter * CreateS6(IObjectRepository * objectRepository, IObjectManager * objectManager); + std::unique_ptr Create(const std::string &hintPath); + std::unique_ptr CreateS4(); + std::unique_ptr CreateS6(std::shared_ptr objectRepository, std::shared_ptr objectManager); bool ExtensionIsRCT1(const std::string &extension); bool ExtensionIsScenario(const std::string &extension); diff --git a/src/openrct2/cmdline/ConvertCommand.cpp b/src/openrct2/cmdline/ConvertCommand.cpp index f7973eab19..8631aa3261 100644 --- a/src/openrct2/cmdline/ConvertCommand.cpp +++ b/src/openrct2/cmdline/ConvertCommand.cpp @@ -105,7 +105,7 @@ exitcode_t CommandLine::HandleCommandConvert(CommandLineArgEnumerator * enumerat try { - auto importer = std::unique_ptr(ParkImporter::Create(sourcePath)); + auto importer = ParkImporter::Create(sourcePath); importer->Load(sourcePath); importer->Import(); } diff --git a/src/openrct2/network/Network.cpp b/src/openrct2/network/Network.cpp index 648dea1d7e..392f00ab8a 100644 --- a/src/openrct2/network/Network.cpp +++ b/src/openrct2/network/Network.cpp @@ -1107,7 +1107,7 @@ void Network::Server_Send_MAP(NetworkConnection* connection) // This will send all custom objects to connected clients // TODO: fix it so custom objects negotiation is performed even in this case. auto context = GetContext(); - IObjectManager * objManager = context->GetObjectManager(); + auto objManager = context->GetObjectManager(); objects = objManager->GetPackableObjects(); } @@ -1794,7 +1794,7 @@ void Network::Server_Client_Joined(const char* name, const std::string &keyhash, chat_history_add(text); auto context = GetContext(); - IObjectManager * objManager = context->GetObjectManager(); + auto objManager = context->GetObjectManager(); auto objects = objManager->GetPackableObjects(); Server_Send_OBJECTS(connection, objects); @@ -1815,7 +1815,7 @@ void Network::Server_Handle_TOKEN(NetworkConnection& connection, NetworkPacket& void Network::Client_Handle_OBJECTS(NetworkConnection& connection, NetworkPacket& packet) { - IObjectRepository * repo = GetContext()->GetObjectRepository(); + auto repo = GetContext()->GetObjectRepository(); uint32 size; packet >> size; log_verbose("client received object list, it has %u entries", size); @@ -1868,7 +1868,7 @@ void Network::Server_Handle_OBJECTS(NetworkConnection& connection, NetworkPacket return; } log_verbose("Client requested %u objects", size); - IObjectRepository * repo = GetContext()->GetObjectRepository(); + auto repo = GetContext()->GetObjectRepository(); for (uint32 i = 0; i < size; i++) { const char * name = (const char *)packet.Read(8); @@ -2059,8 +2059,7 @@ bool Network::LoadMap(IStream * stream) try { auto context = GetContext(); - auto importer = std::unique_ptr( - ParkImporter::CreateS6(GetContext()->GetObjectRepository(), context->GetObjectManager())); + auto importer = ParkImporter::CreateS6(context->GetObjectRepository(), context->GetObjectManager()); importer->LoadFromStream(stream, false); importer->Import(); diff --git a/src/openrct2/object/ObjectManager.cpp b/src/openrct2/object/ObjectManager.cpp index 44dbdc75c2..7da4964ef1 100644 --- a/src/openrct2/object/ObjectManager.cpp +++ b/src/openrct2/object/ObjectManager.cpp @@ -36,15 +36,15 @@ class ObjectManager final : public IObjectManager { private: - IObjectRepository * _objectRepository; - std::vector _loadedObjects; + std::shared_ptr _objectRepository; + std::vector _loadedObjects; public: - explicit ObjectManager(IObjectRepository * objectRepository) + explicit ObjectManager(std::shared_ptr objectRepository) + : _objectRepository(objectRepository) { Guard::ArgumentNotNull(objectRepository); - _objectRepository = objectRepository; _loadedObjects.resize(OBJECT_ENTRY_COUNT); UpdateSceneryGroupIndexes(); @@ -572,28 +572,28 @@ private: } }; -IObjectManager * CreateObjectManager(IObjectRepository * objectRepository) +std::unique_ptr CreateObjectManager(std::shared_ptr objectRepository) { - return new ObjectManager(objectRepository); + return std::make_unique(objectRepository); } void * object_manager_get_loaded_object_by_index(size_t index) { - IObjectManager * objectManager = OpenRCT2::GetContext()->GetObjectManager(); + auto objectManager = OpenRCT2::GetContext()->GetObjectManager(); Object * loadedObject = objectManager->GetLoadedObject(index); return (void *)loadedObject; } void * object_manager_get_loaded_object(const rct_object_entry * entry) { - IObjectManager * objectManager = OpenRCT2::GetContext()->GetObjectManager(); + auto objectManager = OpenRCT2::GetContext()->GetObjectManager(); Object * loadedObject = objectManager->GetLoadedObject(entry); return (void *)loadedObject; } uint8 object_manager_get_loaded_object_entry_index(const void * loadedObject) { - IObjectManager * objectManager = OpenRCT2::GetContext()->GetObjectManager(); + auto objectManager = OpenRCT2::GetContext()->GetObjectManager(); const Object * object = static_cast(loadedObject); uint8 entryIndex = objectManager->GetLoadedObjectEntryIndex(object); return entryIndex; @@ -601,20 +601,20 @@ uint8 object_manager_get_loaded_object_entry_index(const void * loadedObject) void * object_manager_load_object(const rct_object_entry * entry) { - IObjectManager * objectManager = OpenRCT2::GetContext()->GetObjectManager(); + auto objectManager = OpenRCT2::GetContext()->GetObjectManager(); Object * loadedObject = objectManager->LoadObject(entry); return (void *)loadedObject; } void object_manager_unload_objects(const rct_object_entry * entries, size_t count) { - IObjectManager * objectManager = OpenRCT2::GetContext()->GetObjectManager(); + auto objectManager = OpenRCT2::GetContext()->GetObjectManager(); objectManager->UnloadObjects(entries, count); } void object_manager_unload_all_objects() { - IObjectManager * objectManager = OpenRCT2::GetContext()->GetObjectManager(); + auto objectManager = OpenRCT2::GetContext()->GetObjectManager(); if (objectManager != nullptr) { objectManager->UnloadAll(); diff --git a/src/openrct2/object/ObjectManager.h b/src/openrct2/object/ObjectManager.h index 3ebac48729..4dc90be046 100644 --- a/src/openrct2/object/ObjectManager.h +++ b/src/openrct2/object/ObjectManager.h @@ -44,7 +44,7 @@ interface IObjectManager virtual std::vector GetPackableObjects() abstract; }; -IObjectManager * CreateObjectManager(IObjectRepository * objectRepository); +std::unique_ptr CreateObjectManager(std::shared_ptr objectRepository); void * object_manager_get_loaded_object_by_index(size_t index); void * object_manager_get_loaded_object(const rct_object_entry * entry); diff --git a/src/openrct2/object/ObjectRepository.cpp b/src/openrct2/object/ObjectRepository.cpp index c71b860787..a5af9b9e2e 100644 --- a/src/openrct2/object/ObjectRepository.cpp +++ b/src/openrct2/object/ObjectRepository.cpp @@ -639,9 +639,9 @@ private: } }; -IObjectRepository * CreateObjectRepository(const std::shared_ptr& env) +std::unique_ptr CreateObjectRepository(const std::shared_ptr& env) { - return new ObjectRepository(env); + return std::make_unique(env); } bool IsObjectCustom(const ObjectRepositoryItem * object) @@ -671,14 +671,14 @@ void object_list_load() auto objectRepository = context->GetObjectRepository(); objectRepository->LoadOrConstruct(localisationService.GetCurrentLanguage()); - IObjectManager * objectManager = context->GetObjectManager(); + auto objectManager = context->GetObjectManager(); objectManager->UnloadAll(); } void * object_repository_load_object(const rct_object_entry * objectEntry) { Object * object = nullptr; - IObjectRepository * objRepository = GetContext()->GetObjectRepository(); + auto objRepository = GetContext()->GetObjectRepository(); const ObjectRepositoryItem * ori = objRepository->FindObject(objectEntry); if (ori != nullptr) { @@ -710,7 +710,7 @@ void scenario_translate(scenario_index_entry * scenarioEntry, const rct_object_e // Checks for a scenario string object (possibly for localisation) if ((stexObjectEntry->flags & 0xFF) != 255) { - IObjectRepository * objectRepository = GetContext()->GetObjectRepository(); + auto objectRepository = GetContext()->GetObjectRepository(); const ObjectRepositoryItem * ori = objectRepository->FindObject(stexObjectEntry); if (ori != nullptr) { @@ -733,25 +733,25 @@ void scenario_translate(scenario_index_entry * scenarioEntry, const rct_object_e size_t object_repository_get_items_count() { - IObjectRepository * objectRepository = GetContext()->GetObjectRepository(); + auto objectRepository = GetContext()->GetObjectRepository(); return objectRepository->GetNumObjects(); } const ObjectRepositoryItem * object_repository_get_items() { - IObjectRepository * objectRepository = GetContext()->GetObjectRepository(); + auto objectRepository = GetContext()->GetObjectRepository(); return objectRepository->GetObjects(); } const ObjectRepositoryItem * object_repository_find_object_by_entry(const rct_object_entry * entry) { - IObjectRepository * objectRepository = GetContext()->GetObjectRepository(); + auto objectRepository = GetContext()->GetObjectRepository(); return objectRepository->FindObject(entry); } const ObjectRepositoryItem * object_repository_find_object_by_name(const char * name) { - IObjectRepository * objectRepository = GetContext()->GetObjectRepository(); + auto objectRepository = GetContext()->GetObjectRepository(); return objectRepository->FindObject(name); } diff --git a/src/openrct2/object/ObjectRepository.h b/src/openrct2/object/ObjectRepository.h index 9798710bb4..ffd03cae6f 100644 --- a/src/openrct2/object/ObjectRepository.h +++ b/src/openrct2/object/ObjectRepository.h @@ -83,7 +83,7 @@ interface IObjectRepository virtual void WritePackedObjects(IStream * stream, std::vector &objects) abstract; }; -IObjectRepository * CreateObjectRepository(const std::shared_ptr& env); +std::unique_ptr CreateObjectRepository(const std::shared_ptr& env); bool IsObjectCustom(const ObjectRepositoryItem * object); diff --git a/src/openrct2/object/SceneryGroupObject.cpp b/src/openrct2/object/SceneryGroupObject.cpp index af5c414b42..32c42cc6af 100644 --- a/src/openrct2/object/SceneryGroupObject.cpp +++ b/src/openrct2/object/SceneryGroupObject.cpp @@ -75,8 +75,8 @@ void SceneryGroupObject::DrawPreview(rct_drawpixelinfo * dpi, sint32 width, sint void SceneryGroupObject::UpdateEntryIndexes() { auto context = GetContext(); - IObjectRepository * objectRepository = context->GetObjectRepository(); - IObjectManager * objectManager = context->GetObjectManager(); + auto objectRepository = context->GetObjectRepository(); + auto objectManager = context->GetObjectManager(); _legacyType.entry_count = 0; for (const auto &objectEntry : _items) diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index d07ab0f40f..765947133b 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -1863,7 +1863,7 @@ private: void LoadObjects(uint8 objectType, const std::vector &entries) { - IObjectManager * objectManager = OpenRCT2::GetContext()->GetObjectManager(); + auto objectManager = OpenRCT2::GetContext()->GetObjectManager(); uint32 entryIndex = 0; for (const char * objectName : entries) @@ -1912,7 +1912,7 @@ private: void GetInvalidObjects(uint8 objectType, const std::vector &entries, std::vector &missingObjects) { - IObjectRepository * objectRepository = OpenRCT2::GetContext()->GetObjectRepository(); + auto objectRepository = OpenRCT2::GetContext()->GetObjectRepository(); for (const char * objectName : entries) { rct_object_entry entry; @@ -2832,9 +2832,9 @@ private: } }; -IParkImporter * ParkImporter::CreateS4() +std::unique_ptr ParkImporter::CreateS4() { - return new S4Importer(); + return std::unique_ptr(); } ParkLoadResult * load_from_sv4(const utf8 * path) diff --git a/src/openrct2/rct2/S6Exporter.cpp b/src/openrct2/rct2/S6Exporter.cpp index fed8587bdc..bbb9b4c74a 100644 --- a/src/openrct2/rct2/S6Exporter.cpp +++ b/src/openrct2/rct2/S6Exporter.cpp @@ -107,7 +107,7 @@ void S6Exporter::Save(IStream * stream, bool isScenario) // 2: Write packed objects if (_s6.header.num_packed_objects > 0) { - IObjectRepository * objRepo = OpenRCT2::GetContext()->GetObjectRepository(); + auto objRepo = OpenRCT2::GetContext()->GetObjectRepository(); objRepo->WritePackedObjects(stream, ExportObjectsList); } @@ -783,7 +783,7 @@ sint32 scenario_save(const utf8 * path, sint32 flags) { if (flags & S6_SAVE_FLAG_EXPORT) { - IObjectManager * objManager = OpenRCT2::GetContext()->GetObjectManager(); + auto objManager = OpenRCT2::GetContext()->GetObjectManager(); s6exporter->ExportObjectsList = objManager->GetPackableObjects(); } s6exporter->RemoveTracklessRides = true; diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index 3bdf9cbf43..ea1e11e175 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -68,15 +68,15 @@ public: class S6Importer final : public IParkImporter { private: - IObjectRepository * const _objectRepository; - IObjectManager * const _objectManager; + std::shared_ptr const _objectRepository; + std::shared_ptr const _objectManager; const utf8 * _s6Path = nullptr; rct_s6_data _s6 { }; uint8 _gameVersion = 0; public: - S6Importer(IObjectRepository * objectRepository, IObjectManager * objectManager) + S6Importer(std::shared_ptr objectRepository, std::shared_ptr objectManager) : _objectRepository(objectRepository), _objectManager(objectManager) { @@ -852,9 +852,9 @@ public: } }; -IParkImporter * ParkImporter::CreateS6(IObjectRepository * objectRepository, IObjectManager * objectManager) +std::unique_ptr ParkImporter::CreateS6(std::shared_ptr objectRepository, std::shared_ptr objectManager) { - return new S6Importer(objectRepository, objectManager); + return std::make_unique(objectRepository, objectManager); } ParkLoadResult * load_from_sv6(const char * path) diff --git a/src/openrct2/ride/TrackDesignRepository.cpp b/src/openrct2/ride/TrackDesignRepository.cpp index 36d7de2202..96c56eafb4 100644 --- a/src/openrct2/ride/TrackDesignRepository.cpp +++ b/src/openrct2/ride/TrackDesignRepository.cpp @@ -166,7 +166,7 @@ public: size_t GetCountForObjectEntry(uint8 rideType, const std::string &entry) const override { size_t count = 0; - const IObjectRepository * repo = GetContext()->GetObjectRepository(); + const auto repo = GetContext()->GetObjectRepository(); for (const auto &item : _items) { @@ -195,7 +195,7 @@ public: size_t GetCountForRideGroup(uint8 rideType, const RideGroup * rideGroup) const override { size_t count = 0; - const IObjectRepository * repo = GetContext()->GetObjectRepository(); + const auto repo = GetContext()->GetObjectRepository(); for (const auto &item : _items) { @@ -227,7 +227,7 @@ public: std::vector GetItemsForObjectEntry(uint8 rideType, const std::string &entry) const override { std::vector refs; - const IObjectRepository * repo = GetContext()->GetObjectRepository(); + const auto repo = GetContext()->GetObjectRepository(); for (const auto &item : _items) { @@ -260,7 +260,7 @@ public: std::vector GetItemsForRideGroup(uint8 rideType, const RideGroup * rideGroup) const override { std::vector refs; - const IObjectRepository * repo = GetContext()->GetObjectRepository(); + const auto repo = GetContext()->GetObjectRepository(); for (const auto &item : _items) { @@ -398,9 +398,9 @@ private: } }; -ITrackDesignRepository * CreateTrackDesignRepository(const std::shared_ptr& env) +std::unique_ptr CreateTrackDesignRepository(const std::shared_ptr& env) { - return new TrackDesignRepository(env); + return std::make_unique(env); } void track_repository_scan() diff --git a/src/openrct2/ride/TrackDesignRepository.h b/src/openrct2/ride/TrackDesignRepository.h index 40b83e762a..8dd5e2c130 100644 --- a/src/openrct2/ride/TrackDesignRepository.h +++ b/src/openrct2/ride/TrackDesignRepository.h @@ -52,7 +52,7 @@ interface ITrackDesignRepository virtual std::string Install(const std::string &path) abstract; }; -ITrackDesignRepository * CreateTrackDesignRepository(const std::shared_ptr& env); +std::unique_ptr CreateTrackDesignRepository(const std::shared_ptr& env); std::string GetNameFromTrackPath(const std::string &path); void track_repository_scan(); diff --git a/src/openrct2/scenario/ScenarioRepository.cpp b/src/openrct2/scenario/ScenarioRepository.cpp index ba8d09be91..31eb0a95bf 100644 --- a/src/openrct2/scenario/ScenarioRepository.cpp +++ b/src/openrct2/scenario/ScenarioRepository.cpp @@ -17,6 +17,7 @@ #include #include #include +#include "../Context.h" #include "../core/Console.hpp" #include "../core/File.h" #include "../core/FileIndex.hpp" @@ -218,7 +219,7 @@ private: bool result = false; try { - auto s4Importer = std::unique_ptr(ParkImporter::CreateS4()); + auto s4Importer = ParkImporter::CreateS4(); s4Importer->LoadScenario(path.c_str(), true); if (s4Importer->GetDetails(entry)) { @@ -728,17 +729,14 @@ private: } }; -static ScenarioRepository * _scenarioRepository; - -IScenarioRepository * CreateScenarioRepository(const std::shared_ptr& env) +std::unique_ptr CreateScenarioRepository(const std::shared_ptr& env) { - _scenarioRepository = new ScenarioRepository(env); - return _scenarioRepository; + return std::make_unique(env); } IScenarioRepository * GetScenarioRepository() { - return _scenarioRepository; + return GetContext()->GetScenarioRepository(); } void scenario_repository_scan() diff --git a/src/openrct2/scenario/ScenarioRepository.h b/src/openrct2/scenario/ScenarioRepository.h index f1aed054e6..16ac3bd34e 100644 --- a/src/openrct2/scenario/ScenarioRepository.h +++ b/src/openrct2/scenario/ScenarioRepository.h @@ -78,7 +78,7 @@ interface IScenarioRepository virtual bool TryRecordHighscore(sint32 language, const utf8 * scenarioFileName, money32 companyValue, const utf8 * name) abstract; }; -IScenarioRepository * CreateScenarioRepository(const std::shared_ptr& env); +std::unique_ptr CreateScenarioRepository(const std::shared_ptr& env); IScenarioRepository * GetScenarioRepository(); void scenario_repository_scan(); diff --git a/src/openrct2/title/TitleSequencePlayer.cpp b/src/openrct2/title/TitleSequencePlayer.cpp index 98dc150825..95e2aaaf53 100644 --- a/src/openrct2/title/TitleSequencePlayer.cpp +++ b/src/openrct2/title/TitleSequencePlayer.cpp @@ -416,7 +416,7 @@ private: } else { - auto parkImporter = std::unique_ptr(ParkImporter::Create(path)); + auto parkImporter = ParkImporter::Create(path); parkImporter->Load(path); parkImporter->Import(); } @@ -451,7 +451,7 @@ private: { std::string extension = Path::GetExtension(hintPath); bool isScenario = ParkImporter::ExtensionIsScenario(hintPath); - auto parkImporter = std::unique_ptr(ParkImporter::Create(hintPath)); + auto parkImporter = ParkImporter::Create(hintPath); parkImporter->LoadFromStream(stream, isScenario); parkImporter->Import(); }