OpenTTD Source  20241108-master-g80f628063a
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static void ChangeMinutesPerYear (int32_t new_value)
 Callback after the player changes the minutes per year. More...
 
static bool CanChangeTimetableMode (int32_t &)
 Pre-callback check when trying to change the timetable mode. More...
 

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.

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().

◆ ChangeMinutesPerYear()

static void ChangeMinutesPerYear ( int32_t  new_value)
static

Callback after the player changes the minutes per year.

Parameters
new_valueThe intended new value of the setting, used for clamping.

Definition at line 628 of file settings_table.cpp.

◆ ChangeTimekeepingUnits()

◆ 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.

◆ 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
valuethat was read from config file
Returns
the "hopefully" converted value

Definition at line 438 of file settings_table.cpp.

References OneOfManySettingDesc::ParseSingleValue().

◆ 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_valueContains the service interval's default value in days, or 50 (default in percentage).

Definition at line 270 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.

◆ ReplaceAsteriskWithEmptyPassword()

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

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

Parameters
newvalThe new string value for this password field.
Returns
Always true.

Definition at line 564 of file settings_table.cpp.

◆ UpdateAllServiceInterval()

static void UpdateAllServiceInterval ( int32_t  new_value)
static

Check and update if needed all vehicle service intervals.

Parameters
new_valueContains 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.

Referenced by ChangeTimekeepingUnits().