From 445fb747bf537f9e3842a6fb27ce042c2b9bc5b7 Mon Sep 17 00:00:00 2001 From: Silent Date: Sun, 3 Oct 2021 20:57:17 +0200 Subject: [PATCH] Fix Scenario description missing when loading a park from a save file Saved games do not have a valid info chunk, so scenario names/descriptions did not load. --- src/openrct2/rct2/S6Importer.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index e26b9aa513..9795f4a7ae 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -212,15 +212,20 @@ public: gScenarioCategory = static_cast(_s6.info.category); // Some scenarios have their scenario details in UTF-8, due to earlier bugs in OpenRCT2. - if (!IsLikelyUTF8(_s6.info.name) && !IsLikelyUTF8(_s6.info.details)) + auto loadMaybeUTF8 = [](std::string_view str) -> std::string { + return !IsLikelyUTF8(str) ? rct2_to_utf8(str, RCT2LanguageId::EnglishUK) : std::string(str); + }; + + if (_s6.header.type == S6_TYPE_SCENARIO) { - gScenarioName = rct2_to_utf8(_s6.info.name, RCT2LanguageId::EnglishUK); - gScenarioDetails = rct2_to_utf8(_s6.info.details, RCT2LanguageId::EnglishUK); + gScenarioName = loadMaybeUTF8(_s6.info.name); + gScenarioDetails = loadMaybeUTF8(_s6.info.details); } else { - gScenarioName = _s6.info.name; - gScenarioDetails = _s6.info.details; + // Saved games do not have an info chunk + gScenarioName = loadMaybeUTF8(_s6.scenario_name); + gScenarioDetails = loadMaybeUTF8(_s6.scenario_description); } gDateMonthsElapsed = static_cast(_s6.elapsed_months);