OpenTTD Source  20241120-master-g6d3adc6169
settings_type.h
Go to the documentation of this file.
1 /*
2  * This file is part of OpenTTD.
3  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6  */
7 
10 #ifndef SETTINGS_TYPE_H
11 #define SETTINGS_TYPE_H
12 
14 #include "economy_type.h"
15 #include "town_type.h"
16 #include "transport_type.h"
17 #include "network/network_type.h"
18 #include "company_type.h"
19 #include "cargotype.h"
21 #include "zoom_type.h"
22 #include "openttd.h"
23 #include "rail_gui.h"
24 #include "signal_type.h"
25 #include "timetable.h"
26 
27 /* Used to validate sizes of "max" value in settings. */
28 const size_t MAX_SLE_UINT8 = UINT8_MAX;
29 const size_t MAX_SLE_UINT16 = UINT16_MAX;
30 const size_t MAX_SLE_UINT32 = UINT32_MAX;
31 const size_t MAX_SLE_UINT = UINT_MAX;
32 const size_t MAX_SLE_INT8 = INT8_MAX;
33 const size_t MAX_SLE_INT16 = INT16_MAX;
34 const size_t MAX_SLE_INT32 = INT32_MAX;
35 const size_t MAX_SLE_INT = INT_MAX;
36 
39  SP_BEGIN = 0,
40  SP_EASY = SP_BEGIN,
43 
45 
48 
51 };
52 
61 
63 
65 };
66 
68 enum TimekeepingUnits : uint8_t {
69  TKU_CALENDAR = 0,
70  TKU_WALLCLOCK,
71 };
72 
74 enum UseRelayService : uint8_t {
75  URS_NEVER = 0,
76  URS_ASK,
77  URS_ALLOW,
78 };
79 
81 enum ParticipateSurvey : uint8_t {
82  PS_ASK = 0,
83  PS_NO,
84  PS_YES,
85 };
86 
88 enum RightClickClose : uint8_t {
89  RCC_NO = 0,
90  RCC_YES,
91  RCC_YES_EXCEPT_STICKY,
92 };
93 
98 
101  uint8_t number_towns;
103  uint32_t max_loan;
105  uint8_t vehicle_costs;
109  uint16_t subsidy_duration;
111  uint8_t terrain_type;
113  bool economy;
115  bool disasters;
118 };
119 
127 };
128 
133  SWS_OFF = 2
134 };
135 
137 struct GUISettings {
145  bool new_nonstop;
146  uint8_t stop_location;
147  uint8_t auto_scrolling;
148  uint8_t errmsg_duration;
149  uint16_t hover_delay_ms;
153  uint8_t scroll_mode;
156  uint8_t liveries;
161  uint8_t toolbar_pos;
162  uint8_t statusbar_pos;
168  uint32_t autosave_interval;
186  TimetableMode timetable_mode;
187  bool quick_goto;
188  bool auto_euro;
200  uint32_t last_newgrf_count;
203  uint8_t osk_activation;
204  Colours starting_colour;
209  uint16_t refresh_rate;
211 
214 
221 
222  uint8_t developer;
230 
232 
238  {
239  return this->scenario_developer || this->newgrf_developer_tools;
240  }
241 };
242 
245  bool news_ticker;
246  bool news_full;
247  bool new_year;
248  bool confirm;
249  bool click_beep;
250  bool disaster;
251  bool vehicle;
252  bool ambient;
253 };
254 
257  uint8_t playlist;
258  uint8_t music_vol;
259  uint8_t effect_vol;
260  uint8_t custom_1[33];
261  uint8_t custom_2[33];
262  bool playing;
263  bool shuffle;
264 };
265 
268  uint8_t currency;
269  uint8_t units_velocity;
271  uint8_t units_power;
272  uint8_t units_weight;
273  uint8_t units_volume;
274  uint8_t units_force;
275  uint8_t units_height;
276  std::string digit_group_separator;
279 };
280 
282 struct NewsSettings {
283  uint8_t arrival_player;
284  uint8_t arrival_other;
285  uint8_t accident;
286  uint8_t accident_other;
287  uint8_t company_info;
288  uint8_t open;
289  uint8_t close;
290  uint8_t economy;
294  uint8_t advice;
295  uint8_t new_vehicles;
296  uint8_t acceptance;
297  uint8_t subsidies;
298  uint8_t general;
299 };
300 
303  uint16_t sync_freq;
304  uint8_t frame_freq;
308  uint16_t bytes_per_frame;
310  uint16_t max_init_time;
311  uint16_t max_join_time;
312  uint16_t max_download_time;
313  uint16_t max_password_time;
314  uint16_t max_lag_time;
316  uint16_t server_port;
317  uint16_t server_admin_port;
320  std::string server_invite_code;
322  std::string server_name;
323  std::string server_password;
325  std::string rcon_password;
328  std::string admin_password;
330  std::string client_name;
331  std::string client_secret_key;
332  std::string client_public_key;
333  std::string connect_to_ip;
337  uint8_t max_companies;
338  uint8_t max_clients;
340  uint16_t restart_hours;
342  bool reload_cfg;
343  std::string last_joined;
346 
347  bool AdminAuthenticationConfigured() const { return !this->admin_password.empty() || !this->admin_authorized_keys.empty(); }
348 };
349 
352  uint32_t generation_seed;
355  uint8_t map_x;
356  uint8_t map_y;
357  uint8_t land_generator;
360  uint8_t snow_coverage;
361  uint8_t desert_coverage;
363  uint8_t tgen_smoothness;
364  uint8_t tree_placer;
367  uint8_t town_name;
368  uint8_t landscape;
369  uint8_t water_borders;
372  uint8_t variety;
378 };
379 
384  bool autoslope;
385  uint16_t max_bridge_length;
387  uint16_t max_tunnel_length;
398 
402  uint16_t clear_frame_burst;
404  uint16_t tree_frame_burst;
407 };
408 
410 struct AISettings {
416 };
417 
422 };
423 
425 struct YAPFSettings {
427  uint32_t max_search_nodes;
432  uint32_t road_stop_penalty;
454 
461 };
462 
467 
471 
475 
477 };
478 
483  bool selectgoods;
487 };
488 
492  uint8_t smoke_amount;
503  uint8_t plane_speed;
504  uint8_t freight_trains;
508  uint8_t road_side;
509  uint8_t plane_crashes;
510 };
511 
514  bool inflation;
515  bool bribe;
521  bool fund_roads;
522  bool give_money;
526  uint8_t larger_towns;
533  uint16_t town_noise_population[4];
538  uint16_t town_cargo_scale;
540 };
541 
543  uint16_t recalc_time;
544  uint16_t recalc_interval;
549  uint8_t accuracy;
550  uint8_t demand_size;
551  uint8_t demand_distance;
553 
554  inline DistributionType GetDistributionType(CargoID cargo) const
555  {
556  if (IsCargoInClass(cargo, CC_PASSENGERS)) return this->distribution_pax;
557  if (IsCargoInClass(cargo, CC_MAIL)) return this->distribution_mail;
558  if (IsCargoInClass(cargo, CC_ARMOURED)) return this->distribution_armoured;
559  return this->distribution_default;
560  }
561 };
562 
569  uint8_t station_spread;
570 };
571 
575  uint16_t servint_trains;
576  uint16_t servint_roadveh;
577  uint16_t servint_aircraft;
578  uint16_t servint_ships;
579 };
580 
588 };
589 
591 struct GameSettings {
606 };
607 
616 };
617 
620 
623 
626 
629 
635 {
636  return (_game_mode == GM_MENU) ? _settings_newgame : _settings_game;
637 }
638 
639 #endif /* SETTINGS_TYPE_H */
uint8_t CargoID
Cargo slots to indicate a cargo type within a game.
Definition: cargo_type.h:22
Types/functions related to cargoes.
bool IsCargoInClass(CargoID c, CargoClass cc)
Does cargo c have cargo class cc?
Definition: cargotype.h:232
@ CC_MAIL
Mail.
Definition: cargotype.h:51
@ CC_ARMOURED
Armoured cargo (Valuables, Gold, Diamonds)
Definition: cargotype.h:53
@ CC_PASSENGERS
Passengers.
Definition: cargotype.h:50
Simple helper to (more easily) manage authorized keys.
Definition: network_type.h:148
Types related to companies.
@ MAX_COMPANIES
Maximum number of companies.
Definition: company_type.h:23
Types related to the economy.
EconomyType
Type of the game economy.
Definition: economy_type.h:19
Declaration of link graph types used for cargo distribution.
DistributionType
Types used for networking.
ServerGameType
Game type the server can be using.
Definition: network_type.h:42
Some generic types.
Functions/types etc.
SignalGUISettings
Settings for which signals are shown by the signal GUI.
Definition: rail_gui.h:23
SignalCycleSettings
Settings for which signals are cycled through by control-clicking on the signal with the signal tool.
Definition: rail_gui.h:29
ParticipateSurvey
Possible values for "participate_survey" setting.
Definition: settings_type.h:81
GameSettings & GetGameSettings()
Get the settings-object applicable for the current situation: the newgame settings when we're in the ...
ViewportScrollMode
Settings relating to viewport/smallmap scrolling.
@ VSM_VIEWPORT_RMB_FIXED
Viewport moves with mouse movement on holding right mouse button, cursor position is fixed.
@ VSM_END
Number of scroll mode settings.
@ VSM_MAP_RMB_FIXED
Map moves with mouse movement on holding right mouse button, cursor position is fixed.
@ VSM_MAP_RMB
Map moves with mouse movement on holding right mouse button, cursor moves.
@ VSM_MAP_LMB
Map moves with mouse movement on holding left mouse button, cursor moves.
RightClickClose
Right-click to close window actions.
Definition: settings_type.h:88
IndustryDensity
Available industry map generation densities.
Definition: settings_type.h:54
@ ID_CUSTOM
Custom number of industries.
Definition: settings_type.h:62
@ ID_MINIMAL
Start with just the industries that must be present.
Definition: settings_type.h:56
@ ID_NORMAL
Normal amount of industries at game start.
Definition: settings_type.h:59
@ ID_HIGH
Many industries at game start.
Definition: settings_type.h:60
@ ID_VERY_LOW
Very few industries at game start.
Definition: settings_type.h:57
@ ID_END
Number of industry density settings.
Definition: settings_type.h:64
@ ID_LOW
Few industries at game start.
Definition: settings_type.h:58
@ ID_FUND_ONLY
The game does not build industries.
Definition: settings_type.h:55
VehicleDefaultSettings _old_vds
Old vehicle settings, which were game settings before, and are company settings now.
Definition: settings.cpp:59
GameSettings _settings_game
The current settings for this game.
Definition: settings.cpp:57
TimekeepingUnits
Possible values for the "timekeeping_units" setting.
Definition: settings_type.h:68
GameSettings _settings_newgame
The settings values that are used for new games and/or modified in config file.
Definition: settings.cpp:58
SettingsProfile
Settings profiles and highscore tables.
Definition: settings_type.h:38
@ SP_CUSTOM
No profile, special "custom" highscore.
Definition: settings_type.h:46
@ SP_MULTIPLAYER
Special "multiplayer" highscore. Not saved, always specific to the current game.
Definition: settings_type.h:49
@ SP_MEDIUM
Medium difficulty.
Definition: settings_type.h:41
@ SP_END
End of setting profiles.
Definition: settings_type.h:44
@ SP_SAVED_HIGHSCORE_END
End of saved highscore tables.
Definition: settings_type.h:47
@ SP_HIGHSCORE_END
End of highscore tables.
Definition: settings_type.h:50
@ SP_EASY
Easy difficulty.
Definition: settings_type.h:40
@ SP_HARD
Hard difficulty.
Definition: settings_type.h:42
ScrollWheelScrollingSetting
Settings related to scroll wheel behavior.
@ SWS_SCROLL_MAP
Scroll wheel scrolls the map.
@ SWS_OFF
Scroll wheel has no effect.
@ SWS_ZOOM_MAP
Scroll wheel zooms the map.
UseRelayService
Possible values for "use_relay_service" setting.
Definition: settings_type.h:74
ClientSettings _settings_client
The current settings for this game.
Definition: settings.cpp:56
Types and classes related to signals.
SignalType
Type of signal, i.e.
Definition: signal_type.h:23
Settings related to the AI.
bool ai_disable_veh_roadveh
disable types for AI
bool ai_in_multiplayer
so we allow AIs in multiplayer
bool ai_disable_veh_ship
disable types for AI
bool ai_disable_veh_train
disable types for AI
bool ai_disable_veh_aircraft
disable types for AI
All settings that are only important for the local client.
CompanySettings company
default values for per-company settings
NewsSettings news_display
news display settings.
MusicSettings music
settings related to music/sound
NetworkSettings network
settings related to the network
SoundSettings sound
sound effect settings
GUISettings gui
settings related to the GUI
Settings that can be set per company.
bool renew_keep_length
sell some wagons if after autoreplace the train is longer than before
uint32_t engine_renew_money
minimum amount of money before autorenew is used
int16_t engine_renew_months
months before/after the maximum vehicle age a vehicle should be renewed
VehicleDefaultSettings vehicle
default settings for vehicles
bool engine_renew
is autorenew enabled
Settings related to construction in-game.
uint8_t max_bridge_height
maximum height of bridges
bool build_on_slopes
allow building on slopes
bool road_stop_on_town_road
allow building of drive-through road stops on town owned roads
bool extra_dynamite
extra dynamite
bool freeform_edges
allow terraforming the tiles at the map edges
bool autoslope
allow terraforming under things
uint32_t clear_per_64k_frames
how many tiles may, over a long period, be cleared per 65536 frames?
uint32_t tree_per_64k_frames
how many trees may, over a long period, be planted per 65536 frames?
uint16_t max_bridge_length
maximum length of bridges
uint16_t terraform_frame_burst
how many tile heights may, over a short period, be terraformed?
bool crossing_with_competitor
allow building of level crossings with competitor roads or rails
uint16_t max_tunnel_length
maximum length of tunnels
uint8_t raw_industry_construction
type of (raw) industry construction (none, "normal", prospecting)
uint16_t tree_frame_burst
how many trees may, over a short period, be planted?
uint8_t extra_tree_placement
(dis)allow building extra trees in-game
uint8_t map_height_limit
the maximum allowed heightlevel
uint8_t train_signal_side
show signals on left / driving / right side
uint16_t build_object_frame_burst
how many tiles may, over a short period, be purchased or have objects built on them?
uint32_t build_object_per_64k_frames
how many tiles may, over a long period, be purchased or have objects built on them per 65536 frames?
uint8_t command_pause_level
level/amount of commands that can't be executed while paused
uint32_t terraform_per_64k_frames
how many tile heights may, over a long period, be terraformed per 65536 frames?
bool road_stop_on_competitor_road
allow building of drive-through road stops on roads owned by competitors
uint8_t industry_platform
the amount of flat land around an industry
uint16_t clear_frame_burst
how many tiles may, over a short period, be cleared?
Settings related to the difficulty of the game.
Definition: settings_type.h:95
uint8_t vehicle_breakdowns
likelihood of vehicles breaking down
uint16_t subsidy_duration
duration of subsidies
uint8_t max_no_competitors
the number of competitors (AIs)
Definition: settings_type.h:99
uint8_t initial_interest
amount of interest (to pay over the loan)
uint8_t competitor_start_time
Unused value, used to load old savegames.
Definition: settings_type.h:96
uint8_t competitor_speed
the speed at which the AI builds
bool infinite_money
whether spending money despite negative balance is allowed
uint8_t number_towns
the amount of towns
uint32_t max_loan
the maximum initial loan
uint8_t construction_cost
how expensive is building
uint8_t subsidy_multiplier
payment multiplier for subsidized deliveries
uint16_t competitors_interval
the interval (in minutes) between adding competitors
uint8_t town_council_tolerance
minimum required town ratings to be allowed to demolish stuff
bool disasters
are disasters enabled
uint8_t terrain_type
the mountainousness of the landscape
uint8_t vehicle_costs
amount of money spent on vehicle running cost
uint8_t industry_density
The industry density.
bool line_reverse_mode
reversing at stations or not
bool economy
how volatile is the economy
uint8_t competitor_intelligence
Unused value, used to load old savegames.
Definition: settings_type.h:97
uint8_t quantity_sea_lakes
the amount of seas/lakes
Settings related to the economy.
bool bribe
enable bribing the local authority
bool inflation
disable inflation
TownFounding found_town
town founding.
uint16_t industry_cargo_scale
scale cargo production of industries by this percentage.
bool exclusive_rights
allow buying exclusive rights
bool mod_road_rebuild
roadworks remove unnecessary RoadBits
EconomyType type
economy type (original/smooth/frozen)
uint8_t initial_city_size
multiplier for the initial size of the cities compared to towns
TownLayout town_layout
select town layout,
uint16_t town_noise_population[4]
population to base decision on noise evaluation (
TimekeepingUnits timekeeping_units
time units to use for the game economy, either calendar or wallclock
bool allow_town_level_crossings
towns are allowed to build level crossings
uint8_t town_growth_rate
town growth rate
bool allow_town_roads
towns are allowed to build roads (always allowed when generating world / in SE)
bool station_noise_level
build new airports when the town noise level is still within accepted limits
bool fund_buildings
allow funding new buildings
bool infrastructure_maintenance
enable monthly maintenance fee for owner infrastructure
bool multiple_industry_per_town
allow many industries of the same type per town
bool fund_roads
allow funding local road reconstruction
uint16_t minutes_per_calendar_year
minutes per calendar year. Special value 0 means that calendar time is frozen.
uint8_t feeder_payment_share
percentage of leg payment to virtually pay in feeder systems
bool give_money
allow giving other companies money
uint16_t town_cargo_scale
scale cargo production of towns by this percentage.
TownCargoGenMode town_cargogen_mode
algorithm for generating cargo from houses,
uint8_t dist_local_authority
distance for town local authority, default 20
uint8_t larger_towns
the number of cities to build. These start off larger and grow twice as fast
Settings related to the GUI and other stuff that is not saved in the savegame.
uint8_t linkgraph_colours
linkgraph overlay colours
uint8_t graph_line_thickness
the thickness of the lines in the various graph guis
bool show_date_in_logs
whether to show dates in console logs
uint32_t last_newgrf_count
the numbers of NewGRFs we found during the last scan
Colours starting_colour_secondary
default secondary color scheme for the company to start a new game with
bool expenses_layout
layout of expenses window
bool newgrf_show_old_versions
whether to show old versions in the NewGRF list
bool show_newgrf_name
Show the name of the NewGRF in the build vehicle window.
uint8_t settings_restriction_mode
selected restriction mode in adv. settings GUI.
bool lost_vehicle_warn
if a vehicle can't find its destination, show a warning
uint8_t window_snap_radius
windows snap at each other if closer than this
uint16_t console_backlog_length
the minimum amount of items in the console backlog before items will be removed.
bool autosave_on_exit
save an autosave when you quit the game, but do not ask "Do you really want to quit?...
uint16_t hover_delay_ms
time required to activate a hover event, in milliseconds
bool persistent_buildingtools
keep the building tools active after usage
SignalCycleSettings cycle_signal_types
Which signal types to cycle with the build signal tool.
uint8_t max_num_autosaves
controls how many autosavegames are made before the game starts to overwrite (names them 0 to max_num...
uint8_t station_platlength
the platform length, in tiles, for rail stations
uint8_t station_gui_group_order
the order of grouping cargo entries in the station gui
bool auto_remove_signals
automatically remove signals when in the way during rail construction
uint16_t refresh_rate
How often we refresh the screen (time between draw-ticks).
bool station_dragdrop
whether drag and drop is enabled for stations
bool population_in_label
show the population of a town in its label?
bool new_nonstop
ttdpatch compatible nonstop handling
bool sg_new_nonstop
ttdpatch compatible nonstop handling read from pre v93 savegames
bool measure_tooltip
show a permanent tooltip when dragging tools
uint16_t fast_forward_speed_limit
Game speed to use when fast-forward is enabled.
bool show_finances
show finances at end of year
bool UserIsAllowedToChangeNewGRFs() const
Returns true when the user has sufficient privileges to edit newgrfs on a running game.
ZoomLevel zoom_min
minimum zoom out level
uint8_t station_gui_sort_order
the sort order of entries in the station gui - ascending or descending
bool quick_goto
Allow quick access to 'goto button' in vehicle orders window.
uint8_t auto_scrolling
scroll when moving mouse to the edge (see ViewportAutoscrolling)
uint8_t developer
print non-fatal warnings in console (>= 1), copy debug output to console (== 2)
bool keep_all_autosave
name the autosave in a different way
bool autosave_on_network_disconnect
save an autosave when you get disconnected from a network game with an error?
uint8_t network_chat_box_height
height of the chat box in lines
uint8_t stop_location
what is the default stop location of trains?
uint8_t scroll_mode
viewport scroll mode
bool pause_on_newgame
whether to start new games paused or not
uint32_t autosave_interval
how often should we do autosaves?
RightClickClose right_click_wnd_close
close window with right click
bool station_show_coverage
whether to highlight coverage area
uint8_t right_mouse_btn_emulation
should we emulate right mouse clicking?
uint8_t default_rail_type
the default rail type for the rail GUI
bool vehicle_income_warn
if a vehicle isn't generating income, show a warning
bool sg_full_load_any
new full load calculation, any cargo must be full read from pre v93 savegames
uint8_t errmsg_duration
duration of error message
ZoomLevel sprite_zoom_min
maximum zoom level at which higher-resolution alternative sprites will be used (if available) instead...
uint8_t order_review_system
perform order reviews on vehicles
uint8_t loading_indicators
show loading indicators
uint8_t missing_strings_threshold
the number of missing strings before showing the warning
bool prefer_teamchat
choose the chat message target with <ENTER>, true=all clients, false=your team
uint8_t drag_signals_density
many signals density
uint8_t window_soft_limit
soft limit of maximum number of non-stickied non-vital windows (0 = no limit)
uint8_t toolbar_pos
position of toolbars, 0=left, 1=center, 2=right
uint16_t console_backlog_timeout
the minimum amount of time items should be in the console backlog before they will be removed in ~3 s...
uint8_t scrollwheel_multiplier
how much 'wheel' per incoming event from the OS?
bool scale_bevels
bevels are scaled with GUI scale.
bool scenario_developer
activate scenario developer: allow modifying NewGRFs in an existing game
uint8_t station_numtracks
the number of platforms to default on for rail stations
bool timetable_arrival_departure
show arrivals and departures in vehicle timetables
TimetableMode timetable_mode
Time units for timetables: days, seconds, or ticks.
uint8_t statusbar_pos
position of statusbar, 0=left, 1=center, 2=right
uint16_t network_chat_box_width_pct
width of the chat box in percent
uint8_t newgrf_default_palette
default palette to use for NewGRFs without action 14 palette information
bool smooth_scroll
smooth scroll viewports
bool newgrf_developer_tools
activate NewGRF developer tools and allow modifying NewGRFs in an existing game
TimerGameCalendar::Year semaphore_build_before
build semaphore signals automatically before this year
uint8_t osk_activation
Mouse gesture to trigger the OSK.
ZoomLevel zoom_max
maximum zoom out level
bool show_cargo_in_vehicle_lists
Show the cargoes the vehicles can carry in the list windows.
bool show_track_reservation
highlight reserved tracks.
SignalGUISettings signal_gui_mode
select which signal types are shown in the signal GUI
uint8_t station_gui_sort_by
sort cargo entries in the station gui by station name or amount
uint8_t scrollwheel_scrolling
scrolling using the scroll wheel?
uint8_t date_format_in_default_names
should the default savegame/screenshot name use long dates (31th Dec 2008), short dates (31-12-2008) ...
uint8_t news_message_timeout
how much longer than the news message "age" should we keep the message in the history
uint8_t liveries
options for displaying company liveries, 0=none, 1=self, 2=all
bool drag_signals_fixed_distance
keep fixed distance between signals when dragging
bool old_vehicle_warn
if a vehicle is getting old, show a warning
uint8_t advanced_vehicle_list
use the "advanced" vehicle list
TimerGameCalendar::Year coloured_news_year
when does newspaper become coloured?
uint16_t network_chat_timeout
timeout of chat messages in seconds
bool threaded_saves
should we do threaded saves?
bool ai_developer_tools
activate AI/GS developer tools
uint8_t smallmap_land_colour
colour used for land and heightmap at the smallmap
Colours starting_colour
default color scheme for the company to start a new game with
SignalType default_signal_type
The default signal type, which is set automatically by the last signal used. Not available in Setting...
bool auto_euro
automatically switch to euro in 2002
bool link_terraform_toolbar
display terraform toolbar when displaying rail, road, water and airport toolbars
Settings related to the creation of games.
uint8_t tree_placer
the tree placer algorithm
TimerGameCalendar::Year ending_year
scoring end date
uint8_t custom_sea_level
manually entered percentage of water in the map
uint8_t amount_of_rivers
the amount of rivers
uint16_t custom_town_number
manually entered number of towns
uint16_t custom_industry_number
manually entered number of industries
uint8_t variety
variety level applied to TGP
uint8_t min_river_length
the minimum river length
uint8_t snow_coverage
the amount of snow coverage on the map
uint8_t desert_coverage
the amount of desert coverage on the map
uint8_t custom_terrain_type
manually entered height for TGP to aim for
uint8_t map_x
X size of map.
uint8_t oil_refinery_limit
distance oil refineries allowed from map edge
uint8_t snow_line_height
the configured snow line height (deduced from "snow_coverage")
uint8_t land_generator
the landscape generator
uint8_t landscape
the landscape we're currently in
uint8_t tgen_smoothness
how rough is the terrain from 0-3
uint8_t se_flat_world_height
land height a flat world gets in SE
uint8_t town_name
the town name generator used for town names
uint8_t river_route_random
the amount of randomicity for the route finding
uint8_t map_y
Y size of map.
TimerGameCalendar::Year starting_year
starting date
uint8_t heightmap_rotation
rotation director for the heightmap
uint32_t generation_seed
noise seed for world generation
uint8_t heightmap_height
highest mountain for heightmap (towards what it scales)
uint8_t water_borders
bitset of the borders that are water
All settings together for the game.
LocaleSettings locale
settings related to used currency/unit system in the current game
PathfinderSettings pf
settings for all pathfinders
class AIConfig * ai_config[MAX_COMPANIES]
settings per company
EconomySettings economy
settings to change the economy
class GameConfig * game_config
settings for gamescript
AISettings ai
what may the AI do?
ConstructionSettings construction
construction of things in-game
DifficultySettings difficulty
settings related to the difficulty
GameCreationSettings game_creation
settings used during the creation of a game (map)
StationSettings station
settings related to station management
VehicleSettings vehicle
options for vehicles
LinkGraphSettings linkgraph
settings for link graph calculations
ScriptSettings script
settings for scripts
OrderSettings order
settings related to orders
uint16_t recalc_time
time (in days) for recalculating each link graph component.
uint8_t short_path_saturation
percentage up to which short paths are saturated before saturating most capacious paths
DistributionType distribution_mail
distribution type for mail
DistributionType distribution_default
distribution type for all other goods
DistributionType distribution_pax
distribution type for passengers
DistributionType distribution_armoured
distribution type for armoured cargo class
uint8_t demand_size
influence of supply ("station size") on the demand function
uint8_t accuracy
accuracy when calculating things on the link graph. low accuracy => low running time
uint16_t recalc_interval
time (in days) between subsequent checks for link graphs to be calculated.
uint8_t demand_distance
influence of distance between stations on the demand function
Settings related to currency/unit systems.
uint8_t units_velocity_nautical
unit system for velocity of ships and aircraft
uint8_t currency
currency we currently use
uint8_t units_velocity
unit system for velocity of trains and road vehicles
std::string digit_decimal_separator
decimal separator
std::string digit_group_separator_currency
thousand separator for currencies
uint8_t units_power
unit system for power
uint8_t units_height
unit system for height
uint8_t units_force
unit system for force
uint8_t units_volume
unit system for volume
uint8_t units_weight
unit system for weight
std::string digit_group_separator
thousand separator for non-currencies
Settings related to music.
uint8_t effect_vol
The requested effects volume.
bool playing
Whether music is playing.
uint8_t music_vol
The requested music volume.
uint8_t custom_1[33]
The order of the first custom playlist.
uint8_t custom_2[33]
The order of the second custom playlist.
uint8_t playlist
The playlist (number) to play.
bool shuffle
Whether to shuffle the music.
All settings related to the network.
bool allow_insecure_admin_login
Whether to allow logging in as admin using the insecure old JOIN packet.
uint8_t max_clients
maximum amount of clients
uint16_t bytes_per_frame_burst
how many bytes may, over a short period, be received?
std::string server_invite_code_secret
Secret to proof we got this invite code from the Game Coordinator.
bool autoclean_companies
automatically remove companies that are not in use
bool server_admin_chat
allow private chat for the server to be distributed to the admin network
TimerGameCalendar::Year restart_game_year
year the server restarts
uint16_t commands_per_frame
how many commands may be sent each frame_freq frames?
std::string client_secret_key
The secret key of the client for authorized key logins.
uint8_t max_companies
maximum amount of companies
uint8_t autoclean_protected
Remove companies after this many months.
std::string client_name
name of the player (as client)
NetworkAuthorizedKeys admin_authorized_keys
Public keys of clients that are authorized to use the admin network.
uint16_t commands_per_frame_server
how many commands may be sent each frame_freq frames? (server-originating commands)
ServerGameType server_game_type
Server type: local / public / invite-only.
std::string client_public_key
The public key of the client for authorized key logins.
uint8_t frame_freq
how often do we send commands to the clients
uint8_t min_active_clients
minimum amount of active clients to unpause the game
NetworkAuthorizedKeys rcon_authorized_keys
Public keys of clients that are authorized to use the rconsole (server side).
bool reload_cfg
reload the config file before restarting
UseRelayService use_relay_service
Use relay service?
std::string admin_password
password for the admin network
uint16_t max_password_time
maximum amount of time, in game ticks, a client may take to enter the password
uint16_t max_join_time
maximum amount of time, in game ticks, a client may take to sync up during joining
uint16_t server_port
port the server listens on
uint16_t bytes_per_frame
how many bytes may, over a long period, be received per frame?
std::string connect_to_ip
default for the "Add server" query
uint16_t max_init_time
maximum amount of time, in game ticks, a client may take to initiate joining
uint16_t max_lag_time
maximum amount of time, in game ticks, a client may be lagging behind the server
uint8_t autoclean_novehicles
remove companies with no vehicles after this many months
uint16_t max_commands_in_queue
how many commands may there be in the incoming queue before dropping the connection?
std::string last_joined
Last joined server.
std::string server_name
name of the server
std::string server_invite_code
Invite code to use when registering as server.
std::string server_password
password for joining this server
uint16_t restart_hours
number of hours to run the server before automatic restart
uint16_t server_admin_port
port the server listens on for the admin network
uint16_t max_download_time
maximum amount of time, in game ticks, a client may take to download the map
uint16_t sync_freq
how often do we check whether we are still in-sync
NetworkAuthorizedKeys server_authorized_keys
Public keys of clients that are authorized to connect to the game.
std::string rcon_password
password for rconsole (server side)
bool pause_on_join
pause the game when people join
ParticipateSurvey participate_survey
Participate in the automated survey.
Settings related to news.
uint8_t accident
NewsDisplay of accidents that occur.
uint8_t economy
NewsDisplay on economical changes.
uint8_t advice
NewsDisplay on advice affecting the player's vehicles.
uint8_t production_other
NewsDisplay of production changes of industries affecting competitors.
uint8_t new_vehicles
NewsDisplay of new vehicles becoming available.
uint8_t accident_other
NewsDisplay if a vehicle from another company is involved in an accident.
uint8_t arrival_player
NewsDisplay of vehicles arriving at new stations of current player.
uint8_t acceptance
NewsDisplay on changes affecting the acceptance of cargo at stations.
uint8_t arrival_other
NewsDisplay of vehicles arriving at new stations of other players.
uint8_t open
NewsDisplay on new industry constructions.
uint8_t general
NewsDisplay of other topics.
uint8_t close
NewsDisplay about closing industries.
uint8_t production_player
NewsDisplay of production changes of industries affecting current player.
uint8_t subsidies
NewsDisplay of changes on subsidies.
uint8_t production_nobody
NewsDisplay of production changes of industries affecting no one.
uint8_t company_info
NewsDisplay of general company information.
Settings related to orders.
bool station_length_loading_penalty
make trains longer than the station load more slowly
bool improved_load
improved loading algorithm
bool gradual_loading
load vehicles gradually
bool selectgoods
only send the goods to station if a train has been there
bool serviceathelipad
service helicopters at helipads automatically (no need to send to depot)
bool no_servicing_if_no_breakdowns
don't send vehicles to depot when breakdowns are disabled
Settings related to all pathfinders.
uint8_t path_backoff_interval
ticks between checks for a free path.
uint8_t wait_for_pbs_path
how long to wait for a path reservation.
uint8_t wait_oneway_signal
waitingtime in days before a oneway signal
bool reserve_paths
always reserve paths regardless of signal type.
YAPFSettings yapf
pathfinder settings for the yet another pathfinder
bool reverse_at_signals
whether to reverse at signals at all
bool forbid_90_deg
forbid trains to make 90 deg turns
bool roadveh_queue
buggy road vehicle queueing
uint8_t wait_twoway_signal
waitingtime in days before a twoway signal
Settings related to scripts.
uint32_t script_max_memory_megabytes
limit on memory a single script instance may have allocated
uint32_t script_max_opcode_till_suspend
max opcode calls till scripts will suspend
Settings related to sound effects.
bool click_beep
Beep on a random selection of buttons.
bool news_ticker
Play a ticker sound when a news item is published.
bool ambient
Play ambient, industry and town sounds.
bool new_year
Play sound on new year, summarising the performance during the last year.
bool news_full
Play sound effects associated to certain news types.
bool vehicle
Play vehicle sound effects.
bool disaster
Play disaster and accident sounds.
bool confirm
Play sound effect on successful constructions or other actions.
Settings related to stations.
bool never_expire_airports
never expire airports
uint8_t station_spread
amount a station may spread
bool modified_catchment
different-size catchment areas
bool serve_neutral_industries
company stations can serve industries with attached neutral stations
bool distant_join_stations
allow to join non-adjacent stations
Templated helper to make a type-safe 'typedef' representing a single POD value.
Default settings for vehicles.
uint16_t servint_aircraft
service interval for aircraft
uint16_t servint_roadveh
service interval for road vehicles
uint16_t servint_ships
service interval for ships
bool servint_ispercent
service intervals are in percents
uint16_t servint_trains
service interval for trains
Settings related to vehicles.
uint8_t plane_crashes
number of plane crashes, 0 = none, 1 = reduced, 2 = normal
uint8_t roadveh_acceleration_model
realistic acceleration for road vehicles
UnitID max_ships
max ships in game per company
UnitID max_trains
max trains in game per company
uint8_t roadveh_slope_steepness
Steepness of hills for road vehicles when using realistic acceleration.
uint8_t train_acceleration_model
realistic acceleration for trains
uint8_t extend_vehicle_life
extend vehicle life by this many years
uint8_t train_slope_steepness
Steepness of hills for trains when using realistic acceleration.
uint8_t smoke_amount
amount of smoke/sparks locomotives produce
uint8_t road_side
the side of the road vehicles drive on
UnitID max_aircraft
max planes in game per company
UnitID max_roadveh
max trucks in game per company
bool wagon_speed_limits
enable wagon speed limits
bool dynamic_engines
enable dynamic allocation of engine data
uint8_t freight_trains
value to multiply the weight of cargo by
uint8_t max_train_length
maximum length for trains
uint8_t plane_speed
divisor for speed of aircraft
bool never_expire_vehicles
never expire vehicles
bool disable_elrails
when true, the elrails are disabled
Settings related to the yet another pathfinder.
uint32_t rail_firstred_exit_penalty
penalty for first red exit signal
uint32_t rail_shorter_platform_per_tile_penalty
penalty for shorter station platform than train (per tile)
uint32_t rail_curve90_penalty
penalty for 90-deg curve
int32_t rail_look_ahead_signal_p2
constant in polynomial penalty function
uint32_t rail_doubleslip_penalty
penalty for passing a double slip switch
uint32_t rail_longer_platform_penalty
penalty for longer station platform than train
uint32_t road_crossing_penalty
penalty for level crossing
uint32_t ship_curve90_penalty
penalty for 90-deg curve for ships
uint32_t rail_pbs_cross_penalty
penalty for crossing a reserved tile
uint32_t ship_curve45_penalty
penalty for 45-deg curve for ships
uint32_t road_stop_bay_occupied_penalty
penalty multiplied by the fill percentage of a road bay
uint32_t road_stop_occupied_penalty
penalty multiplied by the fill percentage of a drive-through road stop
uint32_t road_slope_penalty
penalty for up-hill slope
uint32_t rail_curve45_penalty
penalty for curve
uint32_t rail_longer_platform_per_tile_penalty
penalty for longer station platform than train (per tile)
uint32_t rail_lastred_penalty
penalty for last red signal
uint32_t rail_look_ahead_max_signals
max. number of signals taken into consideration in look-ahead load balancer
uint32_t road_stop_penalty
penalty for going through a drive-through road stop
uint32_t rail_shorter_platform_penalty
penalty for shorter station platform than train
uint32_t max_search_nodes
stop path-finding when this number of nodes visited
uint32_t rail_pbs_signal_back_penalty
penalty for passing a pbs signal from the backside
int32_t rail_look_ahead_signal_p0
constant in polynomial penalty function
uint32_t rail_slope_penalty
penalty for up-hill slope
uint32_t maximum_go_to_depot_penalty
What is the maximum penalty that may be endured for going to a depot.
uint32_t rail_lastred_exit_penalty
penalty for last red exit signal
uint32_t rail_station_penalty
penalty for non-target station tile
uint32_t road_curve_penalty
penalty for curves
uint32_t rail_pbs_station_penalty
penalty for crossing a reserved station tile
uint32_t rail_firstred_penalty
penalty for first red signal
bool disable_node_optimization
whether to use exit-dir instead of trackdir in node key
bool rail_firstred_twoway_eol
treat first red two-way signal as dead end
uint32_t rail_crossing_penalty
penalty for level crossing
uint32_t rail_depot_reverse_penalty
penalty for reversing in the depot
int32_t rail_look_ahead_signal_p1
constant in polynomial penalty function
Definition of the game-calendar-timer.
Functions related to time tabling.
Types related to towns.
TownCargoGenMode
Town cargo generation modes.
Definition: town_type.h:102
TownLayout
Town Layouts.
Definition: town_type.h:79
TownFounding
Town founding setting values.
Definition: town_type.h:93
Base types related to transport.
uint16_t UnitID
Type for the company global vehicle unit number.
Types related to zooming in and out.
ZoomLevel
All zoom levels we know.
Definition: zoom_type.h:16