OpenTTD Source: src/settings_table.cpp File Reference

OpenTTD Source 15.0-beta1

Macros | Functions | Variables
settings_table.cpp File Reference

The tables of all the settings as well as the implementation of most of their callbacks. More...

`#include "stdafx.h"`
`#include "settings_table.h"`
`#include "currency.h"`
`#include "screenshot.h"`
`#include "network/network.h"`
`#include "network/network_func.h"`
`#include "network/core/config.h"`
`#include "pathfinder/pathfinder_type.h"`
`#include "pathfinder/aystar.h"`
`#include "linkgraph/linkgraphschedule.h"`
`#include "genworld.h"`
`#include "train.h"`
`#include "news_func.h"`
`#include "window_func.h"`
`#include "company_func.h"`
`#include "timer/timer_game_calendar.h"`
`#include "fontcache.h"`
`#include "textbuf_gui.h"`
`#include "rail_gui.h"`
`#include "elrail_func.h"`
`#include "error.h"`
`#include "town.h"`
`#include "video/video_driver.hpp"`
`#include "sound/sound_driver.hpp"`
`#include "music/music_driver.hpp"`
`#include "blitter/factory.hpp"`
`#include "base_media_base.h"`
`#include "ai/ai_config.hpp"`
`#include "ai/ai.hpp"`
`#include "game/game_config.hpp"`
`#include "ship.h"`
`#include "smallmap_gui.h"`
`#include "roadveh.h"`
`#include "roadveh_cmd.h"`
`#include "vehicle_func.h"`
`#include "viewport_func.h"`
`#include "void_map.h"`
`#include "station_func.h"`
`#include "station_base.h"`
`#include "table/strings.h"`
`#include "table/settings.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Functions
static StringID | SettingTitleWallclock (const IntSettingDesc &sd)
| Switch setting title depending on wallclock setting.
static StringID | SettingHelpWallclock (const IntSettingDesc &sd)
| Switch setting help depending on wallclock setting.
static void | SettingsValueVelocityUnit (const IntSettingDesc &, uint first_param, int32_t value)
| Setting values for velocity unit localisation.
static void | SettingsValueAbsolute (const IntSettingDesc &sd, uint first_param, int32_t value)
| A negative value has another string (the one after "strval").
static void | ServiceIntervalSettingsValueText (const IntSettingDesc &sd, uint first_param, int32_t value)
| Service Interval Settings Default Value displays the correct units or as a percentage.
static void | v_PositionMainToolbar (int32_t)
| Reposition the main toolbar as the setting changed.
static void | v_PositionStatusbar (int32_t)
| Reposition the statusbar as the setting changed.
static void | RedrawSmallmap (int32_t)
| Redraw the smallmap after a colour scheme change.
static void | UpdateLinkgraphColours (int32_t)
| Redraw linkgraph links after a colour scheme change.
static void | StationSpreadChanged (int32_t)
static void | UpdateConsists (int32_t)
static void | UpdateAllServiceInterval (int32_t new_value)
| Check and update if needed all vehicle service intervals.
static bool | CanUpdateServiceInterval (VehicleType, int32_t &new_value)
static void | UpdateServiceInterval (VehicleType type, int32_t new_value)
static int32_t | GetDefaultServiceInterval (VehicleType type)
| Checks if the service intervals in the settings are specified as percentages and corrects the default value accordingly.
static void | TrainAccelerationModelChanged (int32_t)
static void | TrainSlopeSteepnessChanged (int32_t)
| This function updates the train acceleration cache after a steepness change.
static void | RoadVehAccelerationModelChanged (int32_t)
| This function updates realistic acceleration caches when the setting "Road vehicle acceleration model" is set.
static void | RoadVehSlopeSteepnessChanged (int32_t)
| This function updates the road vehicle acceleration cache after a steepness change.
static void | TownFoundingChanged (int32_t)
static void | ZoomMinMaxChanged (int32_t)
static void | SpriteZoomMinChanged (int32_t)
static void | InvalidateNewGRFChangeWindows (int32_t)
| Update any possible saveload window and delete any newgrf dialogue as its widget parts might change.
static void | InvalidateCompanyLiveryWindow (int32_t)
static void | DifficultyNoiseChange (int32_t)
static void | MaxNoAIsChange (int32_t)
static bool | CheckRoadSide (int32_t &)
| Check whether the road side may be changed.
static size_t | ConvertLandscape (const char *value)
| Conversion callback for _gameopt_settings_game.landscape It converts (or try) between old values and the new ones, without losing initial setting of the user.
static bool | CheckFreeformEdges (int32_t &new_value)
static void | UpdateFreeformEdges (int32_t new_value)
static bool | CheckDynamicEngines (int32_t &)
| Changing the setting "allow multiple NewGRF sets" is not allowed if there are vehicles.
static bool | CheckMaxHeightLevel (int32_t &new_value)
static void | StationCatchmentChanged (int32_t)
static void | MaxVehiclesChanged (int32_t)
static bool | ReplaceAsteriskWithEmptyPassword (std::string &newval)
| Replace a passwords that are a literal asterisk with an empty string.
static void | UpdateClientConfigValues ()
| Update the game info, and send it to the clients when we are running as a server.
static void | ChangeTimekeepingUnits (int32_t)
| Callback for when the player changes the timekeeping units.
static void | ChangeMinutesPerYear (int32_t new_value)
| Callback after the player changes the minutes per year.
static bool | CanChangeTimetableMode (int32_t &)
| Pre-callback check when trying to change the timetable mode.

## Variables
SettingTable | _company_settings { _company_settings_table }
SettingTable | _currency_settings { _currency_settings_table }
SettingTable | _difficulty_settings { _difficulty_settings_table }
SettingTable | _multimedia_settings { _multimedia_settings_table }
SettingTable | _economy_settings { _economy_settings_table }
SettingTable | _game_settings { _game_settings_table }
SettingTable | _gui_settings { _gui_settings_table }
SettingTable | _linkgraph_settings { _linkgraph_settings_table }
SettingTable | _locale_settings { _locale_settings_table }
SettingTable | _misc_settings { _misc_settings_table }
SettingTable | _network_private_settings { _network_private_settings_table }
SettingTable | _network_secrets_settings { _network_secrets_settings_table }
SettingTable | _network_settings { _network_settings_table }
SettingTable | _news_display_settings { _news_display_settings_table }
SettingTable | _old_gameopt_settings { _old_gameopt_settings_table }
SettingTable | _pathfinding_settings { _pathfinding_settings_table }
SettingTable | _script_settings { _script_settings_table }
SettingTable | _window_settings { _window_settings_table }
SettingTable | _world_settings { _world_settings_table }

## Detailed Description

The tables of all the settings as well as the implementation of most of their callbacks.

Definition in file settings_table.cpp.

## Macro Definition Documentation

## ◆ HAS_TRUETYPE_FONT

#define HAS_TRUETYPE_FONT

Definition at line 29 of file settings_table.cpp.

## Function Documentation

## ◆ CanChangeTimetableMode()

static bool CanChangeTimetableMode | ( | int32_t & |  | ) |
| static

Pre-callback check when trying to change the timetable mode.

This is locked to Seconds when using wallclock units.

Parameters

  Unused. |

Returns
  True if we allow changing the timetable mode.

Definition at line 663 of file settings_table.cpp.

References TimerGameEconomy::UsingWallclockUnits().

## ◆ CanUpdateServiceInterval()

static bool CanUpdateServiceInterval | ( | VehicleType | ,
|  | int32_t & | new_value
| ) |  |
| static

Definition at line 239 of file settings_table.cpp.

## ◆ ChangeMinutesPerYear()

static void ChangeMinutesPerYear | ( | int32_t | new_value | ) |
| static

Callback after the player changes the minutes per year.

Parameters

  new_value | The intended new value of the setting, used for clamping.

Definition at line 628 of file settings_table.cpp.

References _settings_game, _settings_newgame, GameSettings::economy, InvalidateWindowClassesData(), EconomySettings::minutes_per_calendar_year, EconomySettings::timekeeping_units, and WC_GAME_OPTIONS.

## ◆ ChangeTimekeepingUnits()

static void ChangeTimekeepingUnits | ( | int32_t |  | ) |
| static

Callback for when the player changes the timekeeping units.

Parameters

  Unused. |

Definition at line 586 of file settings_table.cpp.

References _settings_client, _settings_newgame, ClientSettings::company, TimerGameEconomy::ConvertYMDToDate(), TimerGameCalendar::date, TimerGameEconomy::date, TimerGameCalendar::date_fract, GameSettings::economy, LinkGraphSchedule::instance, InvalidateWindowClassesData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Iterate(), EconomySettings::minutes_per_calendar_year, VehicleDefaultSettings::servint_ispercent, TimerGameEconomy::SetDate(), LinkGraphSchedule::ShiftDates(), UpdateAllServiceInterval(), TimerGameEconomy::UsingWallclockUnits(), CompanySettings::vehicle, and WC_GAME_OPTIONS.

## ◆ CheckDynamicEngines()

static bool CheckDynamicEngines | ( | int32_t & |  | ) |
| static

Changing the setting "allow multiple NewGRF sets" is not allowed if there are vehicles.

Definition at line 517 of file settings_table.cpp.

References INVALID_STRING_ID, EngineOverrideManager::ResetToCurrentNewGRFConfig(), ShowErrorMessage(), and WL_ERROR.

## ◆ CheckFreeformEdges()

static bool CheckFreeformEdges | ( | int32_t & | new_value | ) |
| static

Definition at line 445 of file settings_table.cpp.

## ◆ CheckMaxHeightLevel()

static bool CheckMaxHeightLevel | ( | int32_t & | new_value | ) |
| static

Definition at line 529 of file settings_table.cpp.

## ◆ CheckRoadSide()

static bool CheckRoadSide | ( | int32_t & |  | ) |
| static

Check whether the road side may be changed.

Returns
  true if the road side may be changed.

Definition at line 426 of file settings_table.cpp.

References RoadVehiclesAreBuilt().

## ◆ ConvertLandscape()

static size_t ConvertLandscape | ( | const char * | value | ) |
| static

Conversion callback for _gameopt_settings_game.landscape It converts (or try) between old values and the new ones, without losing initial setting of the user.

Parameters

  value | that was read from config file

Returns
  the "hopefully" converted value

Definition at line 438 of file settings_table.cpp.

References OneOfManySettingDesc::ParseSingleValue().

## ◆ DifficultyNoiseChange()

static void DifficultyNoiseChange | ( | int32_t |  | ) |
| static

Definition at line 401 of file settings_table.cpp.

## ◆ GetDefaultServiceInterval()

static int32_t GetDefaultServiceInterval | ( | VehicleType | type | ) |
| static

Checks if the service intervals in the settings are specified as percentages and corrects the default value accordingly.

Parameters

  new_value | Contains the service interval's default value in days, or 50 (default in percentage).

Definition at line 270 of file settings_table.cpp.

References _current_company, _settings_client, ClientSettings::company, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), VehicleDefaultSettings::servint_ispercent, TimerGameEconomy::UsingWallclockUnits(), VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, VEH_TRAIN, and CompanySettings::vehicle.

## ◆ InvalidateCompanyLiveryWindow()

static void InvalidateCompanyLiveryWindow | ( | int32_t |  | ) |
| static

Definition at line 395 of file settings_table.cpp.

## ◆ InvalidateNewGRFChangeWindows()

static void InvalidateNewGRFChangeWindows | ( | int32_t |  | ) |
| static

Update any possible saveload window and delete any newgrf dialogue as its widget parts might change.

Reinit all windows as it allows access to the newgrf debug button.

Definition at line 388 of file settings_table.cpp.

References CloseWindowByClass(), InvalidateWindowClassesData(), ReInitAllWindows(), WC_GAME_OPTIONS, and WC_SAVELOAD.

## ◆ MaxNoAIsChange()

static void MaxNoAIsChange | ( | int32_t |  | ) |
| static

Definition at line 411 of file settings_table.cpp.

## ◆ MaxVehiclesChanged()

static void MaxVehiclesChanged | ( | int32_t |  | ) |
| static

Definition at line 553 of file settings_table.cpp.

## ◆ RedrawSmallmap()

static void RedrawSmallmap | ( | int32_t |  | ) |
| static

Redraw the smallmap after a colour scheme change.

Definition at line 161 of file settings_table.cpp.

References BuildLandLegend(), BuildOwnerLegend(), SetWindowClassesDirty(), and WC_SMALLMAP.

## ◆ ReplaceAsteriskWithEmptyPassword()

static bool ReplaceAsteriskWithEmptyPassword | ( | std::string & | newval | ) |
| static

Replace a passwords that are a literal asterisk with an empty string.

Parameters

  newval | The new string value for this password field.

Returns
  Always true.

Definition at line 564 of file settings_table.cpp.

## ◆ RoadVehAccelerationModelChanged()

static void RoadVehAccelerationModelChanged | ( | int32_t |  | ) |
| static

This function updates realistic acceleration caches when the setting "Road vehicle acceleration model" is set.

Definition at line 331 of file settings_table.cpp.

References _settings_game, InvalidateWindowClassesData(), SpecializedVehicle< T, Type >::Iterate(), VehicleSettings::roadveh_acceleration_model, SetWindowClassesDirty(), GameSettings::vehicle, WC_BUILD_VEHICLE, WC_ENGINE_PREVIEW, and WC_VEHICLE_DETAILS.

## ◆ RoadVehSlopeSteepnessChanged()

static void RoadVehSlopeSteepnessChanged | ( | int32_t |  | ) |
| static

This function updates the road vehicle acceleration cache after a steepness change.

Definition at line 350 of file settings_table.cpp.

References SpecializedVehicle< T, Type >::Iterate().

## ◆ ServiceIntervalSettingsValueText()

static void ServiceIntervalSettingsValueText | ( | const IntSettingDesc & | sd,
|  | uint | first_param,
|  | int32_t | value
| ) |  |
| static

Service Interval Settings Default Value displays the correct units or as a percentage.

Definition at line 121 of file settings_table.cpp.

References _current_company, _settings_client, ClientSettings::company, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), VehicleDefaultSettings::servint_ispercent, SetDParam(), IntSettingDesc::str_val, TimerGameEconomy::UsingWallclockUnits(), and CompanySettings::vehicle.

## ◆ SettingHelpWallclock()

static StringID SettingHelpWallclock | ( | const IntSettingDesc & | sd | ) |
| static

Switch setting help depending on wallclock setting.

Definition at line 93 of file settings_table.cpp.

References IntSettingDesc::str_help, and TimerGameEconomy::UsingWallclockUnits().

## ◆ SettingsValueAbsolute()

static void SettingsValueAbsolute | ( | const IntSettingDesc & | sd,
|  | uint | first_param,
|  | int32_t | value
| ) |  |
| static

A negative value has another string (the one after "strval").

Definition at line 114 of file settings_table.cpp.

References abs(), SetDParam(), and IntSettingDesc::str_val.

## ◆ SettingsValueVelocityUnit()

static void SettingsValueVelocityUnit | ( | const IntSettingDesc & | ,
|  | uint | first_param,
|  | int32_t | value
| ) |  |
| static

Setting values for velocity unit localisation.

Definition at line 99 of file settings_table.cpp.

References SetDParam(), and TimerGameEconomy::UsingWallclockUnits().

## ◆ SettingTitleWallclock()

static StringID SettingTitleWallclock | ( | const IntSettingDesc & | sd | ) |
| static

Switch setting title depending on wallclock setting.

Definition at line 87 of file settings_table.cpp.

References IntSettingDesc::str, and TimerGameEconomy::UsingWallclockUnits().

## ◆ SpriteZoomMinChanged()

static void SpriteZoomMinChanged | ( | int32_t |  | ) |
| static

Definition at line 376 of file settings_table.cpp.

## ◆ StationCatchmentChanged()

static void StationCatchmentChanged | ( | int32_t |  | ) |
| static

Definition at line 547 of file settings_table.cpp.

## ◆ StationSpreadChanged()

static void StationSpreadChanged | ( | int32_t |  | ) |
| static

Definition at line 175 of file settings_table.cpp.

## ◆ TownFoundingChanged()

static void TownFoundingChanged | ( | int32_t |  | ) |
| static

Definition at line 357 of file settings_table.cpp.

## ◆ TrainAccelerationModelChanged()

static void TrainAccelerationModelChanged | ( | int32_t |  | ) |
| static

Definition at line 303 of file settings_table.cpp.

## ◆ TrainSlopeSteepnessChanged()

static void TrainSlopeSteepnessChanged | ( | int32_t |  | ) |
| static

This function updates the train acceleration cache after a steepness change.

Definition at line 321 of file settings_table.cpp.

References SpecializedVehicle< T, Type >::Iterate().

## ◆ UpdateAllServiceInterval()

static void UpdateAllServiceInterval | ( | int32_t | new_value | ) |
| static

Check and update if needed all vehicle service intervals.

Parameters

  new_value | Contains 0 if service intervals are in time (days or real-world minutes), otherwise intervals use percents.

Definition at line 194 of file settings_table.cpp.

References _current_company, _settings_client, ClientSettings::company, CompanyServiceInterval(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Iterate(), VehicleDefaultSettings::servint_aircraft, VehicleDefaultSettings::servint_roadveh, VehicleDefaultSettings::servint_ships, VehicleDefaultSettings::servint_trains, SetWindowClassesDirty(), TimerGameEconomy::UsingWallclockUnits(), CompanySettings::vehicle, and WC_VEHICLE_DETAILS.

Referenced by ChangeTimekeepingUnits().

## ◆ UpdateClientConfigValues()

static void UpdateClientConfigValues | ( |  | ) |
| static

Update the game info, and send it to the clients when we are running as a server.

Definition at line 571 of file settings_table.cpp.

References _network_server, InvalidateWindowData(), NetworkServerSendConfigUpdate(), NetworkServerUpdateGameInfo(), and WC_CLIENT_LIST.

## ◆ UpdateConsists()

static void UpdateConsists | ( | int32_t |  | ) |
| static

Definition at line 181 of file settings_table.cpp.

## ◆ UpdateFreeformEdges()

static void UpdateFreeformEdges | ( | int32_t | new_value | ) |
| static

Definition at line 492 of file settings_table.cpp.

## ◆ UpdateLinkgraphColours()

static void UpdateLinkgraphColours | ( | int32_t |  | ) |
| static

Redraw linkgraph links after a colour scheme change.

Definition at line 169 of file settings_table.cpp.

References BuildLinkStatsLegend(), and MarkWholeScreenDirty().

## ◆ UpdateServiceInterval()

static void UpdateServiceInterval | ( | VehicleType | type,
|  | int32_t | new_value
| ) |  |
| static

Definition at line 253 of file settings_table.cpp.

## ◆ v_PositionMainToolbar()

static void v_PositionMainToolbar | ( | int32_t |  | ) |
| static

Reposition the main toolbar as the setting changed.

Definition at line 143 of file settings_table.cpp.

References PositionMainToolbar().

## ◆ v_PositionStatusbar()

static void v_PositionStatusbar | ( | int32_t |  | ) |
| static

Reposition the statusbar as the setting changed.

Definition at line 149 of file settings_table.cpp.

References PositionNetworkChatWindow(), PositionNewsMessage(), and PositionStatusbar().

## ◆ ZoomMinMaxChanged()

static void ZoomMinMaxChanged | ( | int32_t |  | ) |
| static

Definition at line 366 of file settings_table.cpp.

## Variable Documentation

## ◆ _company_settings

SettingTable _company_settings { _company_settings_table }

Definition at line 60 of file settings_table.cpp.

## ◆ _currency_settings

SettingTable _currency_settings { _currency_settings_table }

Definition at line 61 of file settings_table.cpp.

## ◆ _difficulty_settings

SettingTable _difficulty_settings { _difficulty_settings_table }

Definition at line 62 of file settings_table.cpp.

## ◆ _economy_settings

SettingTable _economy_settings { _economy_settings_table }

Definition at line 64 of file settings_table.cpp.

## ◆ _game_settings

SettingTable _game_settings { _game_settings_table }

Definition at line 65 of file settings_table.cpp.

## ◆ _gui_settings

SettingTable _gui_settings { _gui_settings_table }

Definition at line 66 of file settings_table.cpp.

## ◆ _linkgraph_settings

SettingTable _linkgraph_settings { _linkgraph_settings_table }

Definition at line 67 of file settings_table.cpp.

## ◆ _locale_settings

SettingTable _locale_settings { _locale_settings_table }

Definition at line 68 of file settings_table.cpp.

## ◆ _misc_settings

SettingTable _misc_settings { _misc_settings_table }

Definition at line 69 of file settings_table.cpp.

## ◆ _multimedia_settings

SettingTable _multimedia_settings { _multimedia_settings_table }

Definition at line 63 of file settings_table.cpp.

## ◆ _network_private_settings

SettingTable _network_private_settings { _network_private_settings_table }

Definition at line 70 of file settings_table.cpp.

## ◆ _network_secrets_settings

SettingTable _network_secrets_settings { _network_secrets_settings_table }

Definition at line 71 of file settings_table.cpp.

## ◆ _network_settings

SettingTable _network_settings { _network_settings_table }

Definition at line 72 of file settings_table.cpp.

## ◆ _news_display_settings

SettingTable _news_display_settings { _news_display_settings_table }

Definition at line 73 of file settings_table.cpp.

## ◆ _old_gameopt_settings

SettingTable _old_gameopt_settings { _old_gameopt_settings_table }

Definition at line 74 of file settings_table.cpp.

## ◆ _pathfinding_settings

SettingTable _pathfinding_settings { _pathfinding_settings_table }

Definition at line 75 of file settings_table.cpp.

## ◆ _script_settings

SettingTable _script_settings { _script_settings_table }

Definition at line 76 of file settings_table.cpp.

## ◆ _window_settings

SettingTable _window_settings { _window_settings_table }

Definition at line 77 of file settings_table.cpp.

## ◆ _world_settings

SettingTable _world_settings { _world_settings_table }

Definition at line 78 of file settings_table.cpp.