From 342f10a63c852f6ae947cd6871de2a1671e49ef6 Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Tue, 27 May 2025 23:17:25 +0200 Subject: [PATCH] Load scenario previews using temp objects too --- src/openrct2-ui/windows/ScenarioSelect.cpp | 30 +++++++--------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/src/openrct2-ui/windows/ScenarioSelect.cpp b/src/openrct2-ui/windows/ScenarioSelect.cpp index cf51f92c45..f30d0b7508 100644 --- a/src/openrct2-ui/windows/ScenarioSelect.cpp +++ b/src/openrct2-ui/windows/ScenarioSelect.cpp @@ -244,29 +244,17 @@ namespace OpenRCT2::Ui::Windows auto& objManager = GetContext()->GetObjectManager(); - // Unload current scenario meta object if it's not the one we need - auto* loadedObject = objManager.GetLoadedObject(ObjectType::scenarioMeta, 0); - if (loadedObject != nullptr && loadedObject->GetIdentifier() != source.textObjectId) + if (auto obj = objManager.LoadTempObject(source.textObjectId); obj != nullptr) { - objManager.UnloadObjects({ loadedObject->GetDescriptor() }); - loadedObject = nullptr; + auto& scenarioMetaObj = reinterpret_cast(*obj); + + ParkPreview preview{}; + preview.images.push_back(scenarioMetaObj.GetMiniMapImage()); + preview.images.push_back(scenarioMetaObj.GetPreviewImage()); + _preview = preview; + + scenarioMetaObj.Unload(); } - - // Load the relevant scenario meta file if it hasn't been loaded yet - if (loadedObject == nullptr) - { - loadedObject = objManager.LoadObject(source.textObjectId); - if (loadedObject == nullptr) - return; - } - - auto* scenarioMetaObj = reinterpret_cast(loadedObject); - - ParkPreview preview{}; - preview.images.push_back(scenarioMetaObj->GetMiniMapImage()); - preview.images.push_back(scenarioMetaObj->GetPreviewImage()); - - _preview = preview; } }