Merge branch 'master' into jgrpp

# Conflicts:
#	src/core/strong_typedef_type.hpp
#	src/gfx.cpp
#	src/group_cmd.cpp
#	src/industry_cmd.cpp
#	src/map_func.h
#	src/newgrf_debug_gui.cpp
#	src/order_cmd.cpp
#	src/pathfinder/follow_track.hpp
#	src/rail_cmd.cpp
#	src/road_cmd.cpp
#	src/road_gui.cpp
#	src/saveload/saveload.cpp
#	src/screenshot.cpp
#	src/smallmap_gui.cpp
#	src/station_cmd.cpp
#	src/strings.cpp
#	src/tile_type.h
#	src/timetable_gui.cpp
#	src/town_cmd.cpp
#	src/train_cmd.cpp
#	src/viewport.cpp
This commit is contained in:
Jonathan G Rennison
2023-02-10 17:18:39 +00:00
55 changed files with 345 additions and 294 deletions

View File

@@ -1296,19 +1296,19 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
case SCC_RAW_STRING_POINTER: { // {RAW_STRING}
if (game_script) break;
const char *str = (const char *)(size_t)args->GetInt64(SCC_RAW_STRING_POINTER);
buff = FormatString(buff, str, args, last);
const char *raw_string = (const char *)(size_t)args->GetInt64(SCC_RAW_STRING_POINTER);
buff = FormatString(buff, raw_string, args, last);
break;
}
case SCC_STRING: {// {STRING}
StringID str = args->GetInt32(SCC_STRING);
if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT_START) break;
StringID string_id = args->GetInt32(SCC_STRING);
if (game_script && GetStringTab(string_id) != TEXT_TAB_GAMESCRIPT_START) break;
/* WARNING. It's prohibited for the included string to consume any arguments.
* For included strings that consume argument, you should use STRING1, STRING2 etc.
* To debug stuff you can set argv to nullptr and it will tell you */
StringParameters tmp_params(args->GetDataPointer(), args->GetDataLeft(), nullptr);
buff = GetStringWithArgs(buff, str, &tmp_params, last, next_substr_case_index, game_script);
buff = GetStringWithArgs(buff, string_id, &tmp_params, last, next_substr_case_index, game_script);
next_substr_case_index = 0;
break;
}
@@ -1322,14 +1322,14 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
case SCC_STRING7:
case SCC_STRING8: { // {STRING1..8}
/* Strings that consume arguments */
StringID str = args->GetInt32(b);
if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT_START) break;
StringID string_id = args->GetInt32(b);
if (game_script && GetStringTab(string_id) != TEXT_TAB_GAMESCRIPT_START) break;
uint size = b - SCC_STRING1 + 1;
if (game_script && size > args->GetDataLeft()) {
buff = strecat(buff, "(too many parameters)", last);
} else {
StringParameters sub_args(*args, size);
buff = GetStringWithArgs(buff, str, &sub_args, last, next_substr_case_index, game_script);
buff = GetStringWithArgs(buff, string_id, &sub_args, last, next_substr_case_index, game_script);
}
next_substr_case_index = 0;
break;
@@ -1835,7 +1835,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
StringParameters tmp_params(args_array);
buff = GetStringWithArgs(buff, STR_JUST_RAW_STRING, &tmp_params, last);
} else {
StringID str = st->string_id;
StringID string_id = st->string_id;
if (st->indtype != IT_INVALID) {
/* Special case where the industry provides the name for the station */
const IndustrySpec *indsp = GetIndustrySpec(st->indtype);
@@ -1844,17 +1844,17 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
* thus cause very strange things. Here we check for that before we
* actually set the station name. */
if (indsp->station_name != STR_NULL && indsp->station_name != STR_UNDEFINED) {
str = indsp->station_name;
string_id = indsp->station_name;
}
}
if (st->extra_name_index != UINT16_MAX && st->extra_name_index < _extra_station_names_used) {
str = _extra_station_names[st->extra_name_index].str;
string_id = _extra_station_names[st->extra_name_index].str;
}
uint64 args_array[] = {STR_TOWN_NAME, st->town->index, st->index};
WChar types_array[] = {0, SCC_TOWN_NAME, SCC_NUM};
StringParameters tmp_params(args_array, 3, types_array);
buff = GetStringWithArgs(buff, str, &tmp_params, last);
buff = GetStringWithArgs(buff, string_id, &tmp_params, last);
}
break;
}
@@ -1884,9 +1884,9 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
} else {
int64 args_array[] = {wp->town->index, wp->town_cn + 1};
StringParameters tmp_params(args_array);
StringID str = ((wp->string_id == STR_SV_STNAME_BUOY) ? STR_FORMAT_BUOY_NAME : STR_FORMAT_WAYPOINT_NAME);
if (wp->town_cn != 0) str++;
buff = GetStringWithArgs(buff, str, &tmp_params, last);
StringID string_id = ((wp->string_id == STR_SV_STNAME_BUOY) ? STR_FORMAT_BUOY_NAME : STR_FORMAT_WAYPOINT_NAME);
if (wp->town_cn != 0) string_id++;
buff = GetStringWithArgs(buff, string_id, &tmp_params, last);
}
break;
}
@@ -1916,14 +1916,14 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
int64 args_array[] = {v->unitnumber};
StringParameters tmp_params(args_array);
StringID str;
StringID string_id;
if (v->type < VEH_COMPANY_END) {
str = ((_settings_client.gui.vehicle_names == 1) ? STR_SV_TRAIN_NAME : STR_TRADITIONAL_TRAIN_NAME) + v->type;
string_id = ((_settings_client.gui.vehicle_names == 1) ? STR_SV_TRAIN_NAME : STR_TRADITIONAL_TRAIN_NAME) + v->type;
} else {
str = STR_INVALID_VEHICLE;
string_id = STR_INVALID_VEHICLE;
}
buff = GetStringWithArgs(buff, str, &tmp_params, last);
buff = GetStringWithArgs(buff, string_id, &tmp_params, last);
}
break;
}