1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-16 11:33:03 +01:00

Fix highscores for savegames

When loading a savegame, its filename gets stored as gScenarioFileName.
However, that isn't necessarily the same name as the filename of the
corresponding scenario (or any, for that matter, due to the different
file extension). This broke highscores, so for savegames we have to
take the scenario filename stored in the file.
This commit is contained in:
Martin Müller
2017-11-04 22:18:37 +01:00
committed by Michael Steenbeek
parent 4a66e98bb5
commit 7089ec80fc

View File

@@ -358,8 +358,16 @@ public:
gParkEntrances[i].z = _s6.park_entrance_z[i];
gParkEntrances[i].direction = _s6.park_entrance_direction[i];
}
// _s6.scenario_filename is wrong for some RCT2 expansion scenarios, so we use the real filename
String::Set(gScenarioFileName, sizeof(gScenarioFileName), Path::GetFileName(_s6Path));
if (_s6.header.type == S6_TYPE_SCENARIO)
{
// _s6.scenario_filename is wrong for some RCT2 expansion scenarios, so we use the real filename
String::Set(gScenarioFileName, sizeof(gScenarioFileName), Path::GetFileName(_s6Path));
}
else
{
// For savegames the filename can be arbitrary, so we have no choice but to rely on the name provided
String::Set(gScenarioFileName, sizeof(gScenarioFileName), _s6.scenario_filename);
}
memcpy(gScenarioExpansionPacks, _s6.saved_expansion_pack_names, sizeof(_s6.saved_expansion_pack_names));
memcpy(gBanners, _s6.banners, sizeof(_s6.banners));
memcpy(gUserStrings, _s6.custom_strings, sizeof(_s6.custom_strings));