Add setting to show group hierarchy in vehicle names

See: #405
pull/428/head
Jonathan G Rennison 2 years ago
parent e335c86e77
commit 84da7ad7b6

@ -1638,6 +1638,9 @@ STR_CONFIG_SETTING_SHOW_ORDER_OCCUPANCY_BY_DEFAULT_HELPTEXT :Show detailed p
STR_CONFIG_SETTING_SHOW_GROUP_HIERARCHY_NAME :Show group hierarchy in name: {STRING2}
STR_CONFIG_SETTING_SHOW_GROUP_HIERARCHY_NAME_HELPTEXT :When enabled, group names include the full hierarchy of their parent group names
STR_CONFIG_SETTING_SHOW_VEHICLE_GROUP_HIERARCHY_NAME :Show group hierarchy in vehicle names: {STRING2}
STR_CONFIG_SETTING_SHOW_VEHICLE_GROUP_HIERARCHY_NAME_HELPTEXT :When enabled, and show group hierarchy in name is enabled, vehicle names which include a group name use the full group name with hierarchy
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES :Enable signals on bridges/tunnels advanced modes: {STRING2}
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES_HELPTEXT :Enables use of advanced modes of signal simulation on bridges and tunnels. When disabled, bridges/tunnels which are not already in an advanced mode cannot be changed to an advanced mode, however other players may choose to enable this setting and use an advanced mode.

@ -1938,6 +1938,7 @@ static SettingsContainer &GetSettingsTree()
interface->Add(new SettingEntry("gui.disable_water_animation"));
interface->Add(new SettingEntry("gui.show_order_occupancy_by_default"));
interface->Add(new SettingEntry("gui.show_group_hierarchy_name"));
interface->Add(new ConditionallyHiddenSettingEntry("gui.show_vehicle_group_hierarchy_name", []() -> bool { return !_settings_client.gui.show_group_hierarchy_name; }));
}
SettingsPage *advisors = main->Add(new SettingsPage(STR_CONFIG_SETTING_ADVISORS));

@ -250,6 +250,7 @@ struct GUISettings : public TimeSettings {
uint8 disable_water_animation; ///< Disable water animation depending on zoom level
bool show_order_occupancy_by_default; ///< Show order occupancy by default in vehicle order window
bool show_group_hierarchy_name; ///< Show the full hierarchy in group names
bool show_vehicle_group_hierarchy_name;///< Show the full group hierarchy in vehicle names
uint16 console_backlog_timeout; ///< the minimum amount of time items should be in the console backlog before they will be removed in ~3 seconds granularity.
uint16 console_backlog_length; ///< the minimum amount of items in the console backlog before items will be removed.

@ -1853,12 +1853,14 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
buff = GetStringWithArgs(buff, STR_JUST_RAW_STRING, &tmp_params, last);
} else if (v->group_id != DEFAULT_GROUP && _settings_client.gui.vehicle_names != 0 && v->type < VEH_COMPANY_END) {
/* The vehicle has no name, but is member of a group, so print group name */
uint32 group_name = v->group_id;
if (_settings_client.gui.show_vehicle_group_hierarchy_name) group_name |= GROUP_NAME_HIERARCHY;
if (_settings_client.gui.vehicle_names == 1) {
int64 args_array[] = {v->group_id, v->unitnumber};
int64 args_array[] = {group_name, v->unitnumber};
StringParameters tmp_params(args_array);
buff = GetStringWithArgs(buff, STR_FORMAT_GROUP_VEHICLE_NAME, &tmp_params, last);
} else {
int64 args_array[] = {v->group_id, STR_TRADITIONAL_TRAIN_NAME + v->type, v->unitnumber};
int64 args_array[] = {group_name, STR_TRADITIONAL_TRAIN_NAME + v->type, v->unitnumber};
StringParameters tmp_params(args_array);
buff = GetStringWithArgs(buff, STR_FORMAT_GROUP_VEHICLE_NAME_LONG, &tmp_params, last);
}

@ -5557,9 +5557,18 @@ flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
def = false
str = STR_CONFIG_SETTING_SHOW_GROUP_HIERARCHY_NAME
strhelp = STR_CONFIG_SETTING_SHOW_GROUP_HIERARCHY_NAME_HELPTEXT
post_cb = [](auto) { MarkWholeScreenDirty(); }
post_cb = [](auto) { InvalidateWindowClassesData(WC_GAME_OPTIONS); MarkWholeScreenDirty(); }
cat = SC_BASIC
[SDTC_BOOL]
var = gui.show_vehicle_group_hierarchy_name
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
def = false
str = STR_CONFIG_SETTING_SHOW_VEHICLE_GROUP_HIERARCHY_NAME
strhelp = STR_CONFIG_SETTING_SHOW_VEHICLE_GROUP_HIERARCHY_NAME_HELPTEXT
post_cb = [](auto) { MarkWholeScreenDirty(); }
cat = SC_ADVANCED
; For the dedicated build we'll enable dates in logs by default.
[SDTC_BOOL]
ifdef = DEDICATED

Loading…
Cancel
Save