mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-12 10:32:26 +01:00
Fix encoding of scenario index names
This commit is contained in:
committed by
Michael Steenbeek
parent
073d0f78cf
commit
60b864441a
@@ -1087,7 +1087,7 @@ static void load_landscape()
|
|||||||
context_open_intent(&intent);
|
context_open_intent(&intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void utf8_to_rct2_self(char * buffer, size_t length)
|
void utf8_to_rct2_self(char * buffer, size_t length)
|
||||||
{
|
{
|
||||||
char tempBuffer[512];
|
char tempBuffer[512];
|
||||||
utf8_to_rct2(tempBuffer, buffer);
|
utf8_to_rct2(tempBuffer, buffer);
|
||||||
@@ -1125,7 +1125,7 @@ static void utf8_to_rct2_self(char * buffer, size_t length)
|
|||||||
while (i < length);
|
while (i < length);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rct2_to_utf8_self(char * buffer, size_t length)
|
void rct2_to_utf8_self(char * buffer, size_t length)
|
||||||
{
|
{
|
||||||
if (length > 0)
|
if (length > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -185,5 +185,7 @@ void game_autosave();
|
|||||||
void game_convert_strings_to_utf8();
|
void game_convert_strings_to_utf8();
|
||||||
void game_convert_news_items_to_utf8();
|
void game_convert_news_items_to_utf8();
|
||||||
void game_convert_strings_to_rct2(rct_s6_data * s6);
|
void game_convert_strings_to_rct2(rct_s6_data * s6);
|
||||||
|
void utf8_to_rct2_self(char * buffer, size_t length);
|
||||||
|
void rct2_to_utf8_self(char * buffer, size_t length);
|
||||||
void game_fix_save_vars();
|
void game_fix_save_vars();
|
||||||
void game_init_all(sint32 mapSize);
|
void game_init_all(sint32 mapSize);
|
||||||
|
|||||||
@@ -271,7 +271,10 @@ public:
|
|||||||
dst->objective_arg_2 = _s4.scenario_objective_currency;
|
dst->objective_arg_2 = _s4.scenario_objective_currency;
|
||||||
dst->objective_arg_3 = _s4.scenario_objective_num_guests;
|
dst->objective_arg_3 = _s4.scenario_objective_num_guests;
|
||||||
|
|
||||||
std::string name = std::string(_s4.scenario_name, sizeof(_s4.scenario_name));
|
utf8 utf8name[256];
|
||||||
|
rct2_to_utf8(utf8name, _s4.scenario_name);
|
||||||
|
|
||||||
|
std::string name = std::string(utf8name, sizeof(utf8name));
|
||||||
std::string details;
|
std::string details;
|
||||||
|
|
||||||
// TryGetById won't set this property if the scenario is not recognised,
|
// TryGetById won't set this property if the scenario is not recognised,
|
||||||
|
|||||||
@@ -163,6 +163,8 @@ void S6Exporter::Export()
|
|||||||
log_error("Found %d disjoint null sprites", disjoint_sprites_count);
|
log_error("Found %d disjoint null sprites", disjoint_sprites_count);
|
||||||
}
|
}
|
||||||
_s6.info = gS6Info;
|
_s6.info = gS6Info;
|
||||||
|
utf8_to_rct2(_s6.info.name, gS6Info.name);
|
||||||
|
utf8_to_rct2(_s6.info.details, gS6Info.details);
|
||||||
uint32 researchedTrackPiecesA[128];
|
uint32 researchedTrackPiecesA[128];
|
||||||
uint32 researchedTrackPiecesB[128];
|
uint32 researchedTrackPiecesB[128];
|
||||||
|
|
||||||
|
|||||||
@@ -200,6 +200,8 @@ public:
|
|||||||
|
|
||||||
// _s6.header
|
// _s6.header
|
||||||
gS6Info = _s6.info;
|
gS6Info = _s6.info;
|
||||||
|
rct2_to_utf8(gS6Info.name, _s6.info.name);
|
||||||
|
rct2_to_utf8(gS6Info.details, _s6.info.details);
|
||||||
|
|
||||||
gDateMonthsElapsed = _s6.elapsed_months;
|
gDateMonthsElapsed = _s6.elapsed_months;
|
||||||
gDateMonthTicks = _s6.current_day;
|
gDateMonthTicks = _s6.current_day;
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
#include "../localisation/Localisation.h"
|
#include "../localisation/Localisation.h"
|
||||||
#include "../platform/platform.h"
|
#include "../platform/platform.h"
|
||||||
#include "Scenario.h"
|
#include "Scenario.h"
|
||||||
|
#include "../Game.h"
|
||||||
|
|
||||||
using namespace OpenRCT2;
|
using namespace OpenRCT2;
|
||||||
|
|
||||||
@@ -240,6 +241,8 @@ private:
|
|||||||
if (header.type == S6_TYPE_SCENARIO)
|
if (header.type == S6_TYPE_SCENARIO)
|
||||||
{
|
{
|
||||||
rct_s6_info info = chunkReader.ReadChunkAs<rct_s6_info>();
|
rct_s6_info info = chunkReader.ReadChunkAs<rct_s6_info>();
|
||||||
|
rct2_to_utf8_self(info.name, sizeof(info.name));
|
||||||
|
rct2_to_utf8_self(info.details, sizeof(info.details));
|
||||||
*entry = CreateNewScenarioEntry(path, timestamp, &info);
|
*entry = CreateNewScenarioEntry(path, timestamp, &info);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user