OpenTTD Source 20250504-master-g7d7a6bd32c
|
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 "base_media_music.h"
#include "base_media_sounds.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 std::pair< StringParameter, StringParameter > | SettingsValueVelocityUnit (const IntSettingDesc &, int32_t value) |
Setting values for velocity unit localisation. | |
static std::pair< StringParameter, StringParameter > | SettingsValueAbsolute (const IntSettingDesc &sd, int32_t value) |
A negative value has another string (the one after "strval"). | |
static std::pair< StringParameter, StringParameter > | ServiceIntervalSettingsValueText (const IntSettingDesc &sd, 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 (const IntSettingDesc &sd, VehicleType type) |
Checks if the service intervals in the settings are specified as percentages and corrects the default value accordingly. | |
static std::tuple< int32_t, uint32_t > | GetServiceIntervalRange (const IntSettingDesc &) |
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 std::optional< uint32_t > | ConvertLandscape (std::string_view 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 } |
The tables of all the settings as well as the implementation of most of their callbacks.
Definition in file settings_table.cpp.
#define HAS_TRUETYPE_FONT |
Definition at line 29 of file settings_table.cpp.
|
static |
Pre-callback check when trying to change the timetable mode.
This is locked to Seconds when using wallclock units.
Unused. |
Definition at line 675 of file settings_table.cpp.
References TimerGameEconomy::UsingWallclockUnits().
|
static |
Definition at line 241 of file settings_table.cpp.
|
static |
Callback after the player changes the minutes per year.
new_value | The intended new value of the setting, used for clamping. |
Definition at line 638 of file settings_table.cpp.
References _settings_game, _settings_newgame, ChangeTimekeepingUnits(), GameSettings::economy, EconomySettings::minutes_per_calendar_year, and EconomySettings::timekeeping_units.
|
static |
Callback for when the player changes the timekeeping units.
Unused. |
Definition at line 596 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, Tpool_type, Tcache >::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.
Referenced by ChangeMinutesPerYear().
|
static |
Changing the setting "allow multiple NewGRF sets" is not allowed if there are vehicles.
Definition at line 527 of file settings_table.cpp.
References GetEncodedString(), EngineOverrideManager::ResetToCurrentNewGRFConfig(), ShowErrorMessage(), and WL_ERROR.
|
static |
Definition at line 455 of file settings_table.cpp.
|
static |
Definition at line 539 of file settings_table.cpp.
|
static |
Check whether the road side may be changed.
Definition at line 436 of file settings_table.cpp.
References RoadVehiclesAreBuilt().
|
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.
value | that was read from config file |
Definition at line 448 of file settings_table.cpp.
References OneOfManySettingDesc::ParseSingleValue().
|
static |
Definition at line 411 of file settings_table.cpp.
|
static |
Checks if the service intervals in the settings are specified as percentages and corrects the default value accordingly.
Definition at line 271 of file settings_table.cpp.
References _current_company, _settings_client, ClientSettings::company, IntSettingDesc::def, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::IsValidID(), VehicleDefaultSettings::servint_ispercent, TimerGameEconomy::UsingWallclockUnits(), VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, VEH_TRAIN, and CompanySettings::vehicle.
|
static |
Definition at line 295 of file settings_table.cpp.
|
static |
Definition at line 405 of file settings_table.cpp.
|
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 398 of file settings_table.cpp.
References CloseWindowByClass(), InvalidateWindowClassesData(), ReInitAllWindows(), WC_GAME_OPTIONS, and WC_SAVELOAD.
|
static |
Definition at line 421 of file settings_table.cpp.
|
static |
Definition at line 563 of file settings_table.cpp.
|
static |
Redraw the smallmap after a colour scheme change.
Definition at line 163 of file settings_table.cpp.
References BuildLandLegend(), BuildOwnerLegend(), SetWindowClassesDirty(), and WC_SMALLMAP.
|
static |
Replace a passwords that are a literal asterisk with an empty string.
newval | The new string value for this password field. |
Definition at line 574 of file settings_table.cpp.
|
static |
This function updates realistic acceleration caches when the setting "Road vehicle acceleration model" is set.
Definition at line 341 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.
|
static |
This function updates the road vehicle acceleration cache after a steepness change.
Definition at line 360 of file settings_table.cpp.
References SpecializedVehicle< T, Type >::Iterate().
|
static |
Service Interval Settings Default Value displays the correct units or as a percentage.
Definition at line 122 of file settings_table.cpp.
References _current_company, _settings_client, ClientSettings::company, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::IsValidID(), VehicleDefaultSettings::servint_ispercent, IntSettingDesc::str_val, TimerGameEconomy::UsingWallclockUnits(), and CompanySettings::vehicle.
|
static |
Switch setting help depending on wallclock setting.
Definition at line 95 of file settings_table.cpp.
References IntSettingDesc::str_help, and TimerGameEconomy::UsingWallclockUnits().
|
static |
A negative value has another string (the one after "strval").
Definition at line 116 of file settings_table.cpp.
References abs(), and IntSettingDesc::str_val.
|
static |
Setting values for velocity unit localisation.
Definition at line 101 of file settings_table.cpp.
References TimerGameEconomy::UsingWallclockUnits().
|
static |
Switch setting title depending on wallclock setting.
Definition at line 89 of file settings_table.cpp.
References IntSettingDesc::str, and TimerGameEconomy::UsingWallclockUnits().
|
static |
Definition at line 386 of file settings_table.cpp.
|
static |
Definition at line 557 of file settings_table.cpp.
|
static |
Definition at line 177 of file settings_table.cpp.
|
static |
Definition at line 367 of file settings_table.cpp.
|
static |
Definition at line 313 of file settings_table.cpp.
|
static |
This function updates the train acceleration cache after a steepness change.
Definition at line 331 of file settings_table.cpp.
References SpecializedVehicle< T, Type >::Iterate().
|
static |
Check and update if needed all vehicle service intervals.
new_value | Contains 0 if service intervals are in time (days or real-world minutes), otherwise intervals use percents. |
Definition at line 196 of file settings_table.cpp.
References _current_company, _settings_client, ClientSettings::company, CompanyServiceInterval(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::IsValidID(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::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().
|
static |
Update the game info, and send it to the clients when we are running as a server.
Definition at line 581 of file settings_table.cpp.
References _network_server, InvalidateWindowData(), NetworkServerSendConfigUpdate(), NetworkServerUpdateGameInfo(), and WC_CLIENT_LIST.
|
static |
Definition at line 183 of file settings_table.cpp.
|
static |
Definition at line 502 of file settings_table.cpp.
|
static |
Redraw linkgraph links after a colour scheme change.
Definition at line 171 of file settings_table.cpp.
References BuildLinkStatsLegend(), and MarkWholeScreenDirty().
|
static |
Definition at line 255 of file settings_table.cpp.
|
static |
Reposition the main toolbar as the setting changed.
Definition at line 145 of file settings_table.cpp.
References PositionMainToolbar().
|
static |
Reposition the statusbar as the setting changed.
Definition at line 151 of file settings_table.cpp.
References PositionNetworkChatWindow(), PositionNewsMessage(), and PositionStatusbar().
|
static |
Definition at line 376 of file settings_table.cpp.
SettingTable _company_settings { _company_settings_table } |
Definition at line 62 of file settings_table.cpp.
SettingTable _currency_settings { _currency_settings_table } |
Definition at line 63 of file settings_table.cpp.
SettingTable _difficulty_settings { _difficulty_settings_table } |
Definition at line 64 of file settings_table.cpp.
SettingTable _economy_settings { _economy_settings_table } |
Definition at line 66 of file settings_table.cpp.
SettingTable _game_settings { _game_settings_table } |
Definition at line 67 of file settings_table.cpp.
SettingTable _gui_settings { _gui_settings_table } |
Definition at line 68 of file settings_table.cpp.
SettingTable _linkgraph_settings { _linkgraph_settings_table } |
Definition at line 69 of file settings_table.cpp.
SettingTable _locale_settings { _locale_settings_table } |
Definition at line 70 of file settings_table.cpp.
SettingTable _misc_settings { _misc_settings_table } |
Definition at line 71 of file settings_table.cpp.
SettingTable _multimedia_settings { _multimedia_settings_table } |
Definition at line 65 of file settings_table.cpp.
SettingTable _network_private_settings { _network_private_settings_table } |
Definition at line 72 of file settings_table.cpp.
SettingTable _network_secrets_settings { _network_secrets_settings_table } |
Definition at line 73 of file settings_table.cpp.
SettingTable _network_settings { _network_settings_table } |
Definition at line 74 of file settings_table.cpp.
SettingTable _news_display_settings { _news_display_settings_table } |
Definition at line 75 of file settings_table.cpp.
SettingTable _old_gameopt_settings { _old_gameopt_settings_table } |
Definition at line 76 of file settings_table.cpp.
SettingTable _pathfinding_settings { _pathfinding_settings_table } |
Definition at line 77 of file settings_table.cpp.
SettingTable _script_settings { _script_settings_table } |
Definition at line 78 of file settings_table.cpp.
SettingTable _window_settings { _window_settings_table } |
Definition at line 79 of file settings_table.cpp.
SettingTable _world_settings { _world_settings_table } |
Definition at line 80 of file settings_table.cpp.