1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-04 13:42:55 +01:00

add pointer variables for scenario name and details

This commit is contained in:
Ted John
2016-04-23 17:53:25 +01:00
parent 6453bcbc46
commit ef7dd83735
5 changed files with 16 additions and 14 deletions

View File

@@ -92,7 +92,7 @@ void editor_load()
gfx_invalidate_screen();
gScreenAge = 0;
safe_strcpy((char*)RCT2_ADDRESS_SCENARIO_NAME, language_get_string(2749), 0x40);
safe_strcpy(gScenarioName, language_get_string(2749), 64);
}
/**
@@ -120,8 +120,8 @@ void editor_convert_save_to_scenario_callback(int result)
gParkFlags &= ~PARK_FLAGS_NO_MONEY_SCENARIO;
gParkFlags |= PARK_FLAGS_NO_MONEY;
safe_strcpy(s6Info->name, (const char*)RCT2_ADDRESS_SCENARIO_NAME, 64);
safe_strcpy(s6Info->details, (const char*)RCT2_ADDRESS_SCENARIO_DETAILS, 256);
safe_strcpy(s6Info->name, gScenarioName, 64);
safe_strcpy(s6Info->details, gScenarioDetails, 256);
s6Info->objective_type = gScenarioObjectiveType;
s6Info->objective_arg_1 = gScenarioObjectiveYear;
s6Info->objective_arg_2 = gScenarioObjectiveCurrency;

View File

@@ -680,8 +680,8 @@ void game_convert_strings_to_utf8()
{
// Scenario details
rct2_to_utf8_self(RCT2_ADDRESS(RCT2_ADDRESS_SCENARIO_COMPLETED_BY, char), 32);
rct2_to_utf8_self(RCT2_ADDRESS(RCT2_ADDRESS_SCENARIO_NAME, char), 64);
rct2_to_utf8_self(RCT2_ADDRESS(RCT2_ADDRESS_SCENARIO_DETAILS, char), 256);
rct2_to_utf8_self(gScenarioName, 64);
rct2_to_utf8_self(gScenarioDetails, 256);
// User strings
for (int i = 0; i < MAX_USER_STRINGS; i++) {

View File

@@ -61,6 +61,8 @@ const rct_string_id ScenarioCategoryStringIds[SCENARIO_CATEGORY_COUNT] = {
static char _scenarioPath[MAX_PATH];
static const char *_scenarioFileName = "";
char *gScenarioName = RCT2_ADDRESS(RCT2_ADDRESS_SCENARIO_NAME, char);
char *gScenarioDetails = RCT2_ADDRESS(RCT2_ADDRESS_SCENARIO_DETAILS, char);
char gScenarioSavePath[MAX_PATH];
int gFirstTimeSave = 1;
uint32 gLastAutoSaveTick = 0;
@@ -285,8 +287,8 @@ void scenario_begin()
finance_update_loan_hash();
safe_strcpy((char*)RCT2_ADDRESS_SCENARIO_DETAILS, s6Info->details, 256);
safe_strcpy((char*)RCT2_ADDRESS_SCENARIO_NAME, s6Info->name, 64);
safe_strcpy(gScenarioDetails, s6Info->details, 256);
safe_strcpy(gScenarioName, s6Info->name, 64);
{
utf8 normalisedName[64];
@@ -296,13 +298,13 @@ void scenario_begin()
rct_string_id localisedStringIds[3];
if (language_get_localised_scenario_strings(normalisedName, localisedStringIds)) {
if (localisedStringIds[0] != STR_NONE) {
safe_strcpy((char*)RCT2_ADDRESS_SCENARIO_NAME, language_get_string(localisedStringIds[0]), 32);
safe_strcpy(gScenarioName, language_get_string(localisedStringIds[0]), 32);
}
if (localisedStringIds[1] != STR_NONE) {
park_set_name(language_get_string(localisedStringIds[1]));
}
if (localisedStringIds[2] != STR_NONE) {
safe_strcpy((char*)RCT2_ADDRESS_SCENARIO_DETAILS, language_get_string(localisedStringIds[2]), 256);
safe_strcpy(gScenarioDetails, language_get_string(localisedStringIds[2]), 256);
}
} else {
rct_stex_entry* stex = g_stexEntries[0];
@@ -315,13 +317,11 @@ void scenario_begin()
// Set localised scenario name
format_string(buffer, stex->scenario_name, 0);
safe_strcpy((char*)RCT2_ADDRESS_SCENARIO_NAME, buffer, 31);
((char*)RCT2_ADDRESS_SCENARIO_NAME)[31] = '\0';
safe_strcpy(gScenarioName, buffer, 64);
// Set localised scenario details
format_string(buffer, stex->details, 0);
safe_strcpy((char*)RCT2_ADDRESS_SCENARIO_DETAILS, buffer, 255);
((char*)RCT2_ADDRESS_SCENARIO_DETAILS)[255] = '\0';
safe_strcpy(gScenarioDetails, buffer, 256);
}
}
}

View File

@@ -471,6 +471,8 @@ extern int gScenarioListCount;
extern int gScenarioListCapacity;
extern scenario_index_entry *gScenarioList;
extern char *gScenarioName;
extern char *gScenarioDetails;
extern char gScenarioSavePath[MAX_PATH];
extern int gFirstTimeSave;
extern uint32 gLastAutoSaveTick;

View File

@@ -1747,7 +1747,7 @@ static void window_park_objective_paint(rct_window *w, rct_drawpixelinfo *dpi)
// Scenario description
x = w->x + window_park_objective_widgets[WIDX_PAGE_BACKGROUND].left + 4;
y = w->y + window_park_objective_widgets[WIDX_PAGE_BACKGROUND].top + 7;
safe_strcpy((char*)0x009BC677, RCT2_ADDRESS(RCT2_ADDRESS_SCENARIO_DETAILS, char), 256);
safe_strcpy((char*)0x009BC677, gScenarioDetails, 256);
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, short) = 3165;
y += gfx_draw_string_left_wrapped(dpi, (void*)RCT2_ADDRESS_COMMON_FORMAT_ARGS, x, y, 222, 1191, 0);
y += 5;