summaryrefslogtreecommitdiff
path: root/src/table/settings/game_settings.ini
blob: 503863c9695659f181eaf72b15689ed857810ac2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
; This file is part of OpenTTD.
; 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.
; 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.
; 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/>.
;

; Game settings as stored in the main configuration file ("openttd.cfg")
; and in the savegame PATS chunk.
; Game settings are everything related to vehicles, stations, orders, etc.

[pre-amble]
static constexpr std::initializer_list<const char*> _roadsides{"left", "right"};

static void StationSpreadChanged(int32 new_value);
static void UpdateConsists(int32 new_value);
static void TrainAccelerationModelChanged(int32 new_value);
static void RoadVehAccelerationModelChanged(int32 new_value);
static void TrainSlopeSteepnessChanged(int32 new_value);
static void RoadVehSlopeSteepnessChanged(int32 new_value);
static bool CheckRoadSide(int32 &new_value);
static bool CheckDynamicEngines(int32 &new_value);
static void StationCatchmentChanged(int32 new_value);
static void MaxVehiclesChanged(int32 new_value);

static const SettingVariant _game_settings_table[] = {
[post-amble]
};
[templates]
SDTG_BOOL  =  SDTG_BOOL($name,                     $flags, $var, $def,                        $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
SDTG_VAR   =   SDTG_VAR($name,              $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
SDTC_BOOL  =  SDTC_BOOL(              $var,        $flags, $def,                              $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
SDT_BOOL   =   SDT_BOOL(GameSettings, $var,        $flags, $def,                              $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),
SDT_OMANY  =  SDT_OMANY(GameSettings, $var, $type, $flags, $def,             $max, $full,     $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $load, $cat, $extra, $startup),
SDT_VAR    =    SDT_VAR(GameSettings, $var, $type, $flags, $def,       $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to,        $cat, $extra, $startup),

[validation]
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");

[defaults]
flags    = SF_NONE
interval = 0
str      = STR_NULL
strhelp  = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
strval   = STR_NULL
pre_cb   = nullptr
post_cb  = nullptr
load     = nullptr
from     = SL_MIN_VERSION
to       = SL_MAX_VERSION
cat      = SC_ADVANCED
extra    = 0
startup  = false


[SDT_BOOL]
var      = order.no_servicing_if_no_breakdowns
def      = true
str      = STR_CONFIG_SETTING_NOSERVICE
strhelp  = STR_CONFIG_SETTING_NOSERVICE_HELPTEXT

[SDT_BOOL]
var      = order.improved_load
flags    = SF_NO_NETWORK
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
var      = order.selectgoods
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
var      = order.serviceathelipad
def      = true
str      = STR_CONFIG_SETTING_SERVICEATHELIPAD
strhelp  = STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT
cat      = SC_EXPERT

[SDT_BOOL]
var      = order.gradual_loading
from     = SLV_40
flags    = SF_NO_NETWORK
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
var      = station.never_expire_airports
flags    = SF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS
strhelp  = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT

[SDT_VAR]
var      = station.station_spread
type     = SLE_UINT8
def      = 12
min      = 4
max      = 64
str      = STR_CONFIG_SETTING_STATION_SPREAD
strhelp  = STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT
strval   = STR_CONFIG_SETTING_TILE_LENGTH
post_cb  = StationSpreadChanged
cat      = SC_BASIC

[SDT_BOOL]
var      = station.modified_catchment
def      = true
str      = STR_CONFIG_SETTING_CATCHMENT
strhelp  = STR_CONFIG_SETTING_CATCHMENT_HELPTEXT
post_cb  = StationCatchmentChanged
cat      = SC_EXPERT

[SDT_BOOL]
var      = station.serve_neutral_industries
def      = true
from     = SLV_SERVE_NEUTRAL_INDUSTRIES
str      = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES
strhelp  = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT
post_cb  = StationCatchmentChanged

[SDT_BOOL]
var      = station.adjacent_stations
from     = SLV_62
def      = true
cat      = SC_EXPERT

[SDT_BOOL]
var      = station.distant_join_stations
from     = SLV_106
def      = true
str      = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS
strhelp  = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT
post_cb  = [](auto) { CloseWindowById(WC_SELECT_STATION, 0); }

[SDT_OMANY]
var      = vehicle.road_side
type     = SLE_UINT8
from     = SLV_97
flags    = SF_GUI_DROPDOWN | SF_NO_NETWORK
def      = 1
max      = 1
full     = _roadsides
str      = STR_CONFIG_SETTING_ROAD_SIDE
strhelp  = STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT
strval   = STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT
pre_cb   = CheckRoadSide
cat      = SC_BASIC

[SDT_VAR]
var      = vehicle.train_acceleration_model
type     = SLE_UINT8
flags    = SF_GUI_DROPDOWN
def      = 1
min      = 0
max      = 1
interval = 1
str      = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL
strhelp  = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT
strval   = STR_CONFIG_SETTING_ORIGINAL
post_cb  = TrainAccelerationModelChanged

[SDT_VAR]
var      = vehicle.roadveh_acceleration_model
type     = SLE_UINT8
from     = SLV_139
flags    = SF_GUI_DROPDOWN
def      = 1
min      = 0
max      = 1
interval = 1
str      = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL
strhelp  = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT
strval   = STR_CONFIG_SETTING_ORIGINAL
post_cb  = RoadVehAccelerationModelChanged

[SDT_VAR]
var      = vehicle.train_slope_steepness
type     = SLE_UINT8
from     = SLV_133
def      = 3
min      = 0
max      = 10
interval = 1
str      = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS
strhelp  = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT
strval   = STR_CONFIG_SETTING_PERCENTAGE
post_cb  = TrainSlopeSteepnessChanged
cat      = SC_EXPERT

[SDT_VAR]
var      = vehicle.roadveh_slope_steepness
type     = SLE_UINT8
from     = SLV_139
def      = 7
min      = 0
max      = 10
interval = 1
str      = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS
strhelp  = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT
strval   = STR_CONFIG_SETTING_PERCENTAGE
post_cb  = RoadVehSlopeSteepnessChanged
cat      = SC_EXPERT

[SDT_VAR]
var      = vehicle.max_train_length
type     = SLE_UINT8
from     = SLV_159
def      = 7
min      = 1
max      = 64
interval = 1
str      = STR_CONFIG_SETTING_TRAIN_LENGTH
strhelp  = STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT
strval   = STR_CONFIG_SETTING_TILE_LENGTH
cat      = SC_BASIC

[SDT_VAR]
var      = vehicle.smoke_amount
type     = SLE_UINT8
from     = SLV_145
flags    = SF_GUI_DROPDOWN
def      = 1
min      = 0
max      = 2
str      = STR_CONFIG_SETTING_SMOKE_AMOUNT
strhelp  = STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT
strval   = STR_CONFIG_SETTING_NONE

[SDT_BOOL]
var      = vehicle.never_expire_vehicles
flags    = SF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES
strhelp  = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT

[SDT_VAR]
var      = vehicle.max_trains
type     = SLE_UINT16
def      = 500
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_TRAINS
strhelp  = STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT
strval   = STR_JUST_COMMA
post_cb  = MaxVehiclesChanged
cat      = SC_BASIC

[SDT_VAR]
var      = vehicle.max_roadveh
type     = SLE_UINT16
def      = 500
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES
strhelp  = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT
strval   = STR_JUST_COMMA
post_cb  = MaxVehiclesChanged
cat      = SC_BASIC

[SDT_VAR]
var      = vehicle.max_aircraft
type     = SLE_UINT16
def      = 200
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_AIRCRAFT
strhelp  = STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT
strval   = STR_JUST_COMMA
post_cb  = MaxVehiclesChanged
cat      = SC_BASIC

[SDT_VAR]
var      = vehicle.max_ships
type     = SLE_UINT16
def      = 300
min      = 0
max      = 5000
str      = STR_CONFIG_SETTING_MAX_SHIPS
strhelp  = STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT
strval   = STR_JUST_COMMA
post_cb  = MaxVehiclesChanged
cat      = SC_BASIC

[SDT_BOOL]
var      = vehicle.wagon_speed_limits
flags    = SF_NO_NETWORK
def      = true
str      = STR_CONFIG_SETTING_WAGONSPEEDLIMITS
strhelp  = STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT
post_cb  = UpdateConsists

[SDT_BOOL]
var      = vehicle.disable_elrails
from     = SLV_38
flags    = SF_NO_NETWORK
def      = false
str      = STR_CONFIG_SETTING_DISABLE_ELRAILS
strhelp  = STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT
post_cb  = SettingsDisableElrail
cat      = SC_EXPERT

[SDT_VAR]
var      = vehicle.freight_trains
type     = SLE_UINT8
from     = SLV_39
flags    = SF_NO_NETWORK
def      = 1
min      = 1
max      = 255
interval = 1
str      = STR_CONFIG_SETTING_FREIGHT_TRAINS
strhelp  = STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT
strval   = STR_JUST_COMMA
post_cb  = UpdateConsists

[SDT_VAR]
var      = vehicle.plane_speed
type     = SLE_UINT8
from     = SLV_90
flags    = SF_NO_NETWORK
def      = 4
min      = 1
max      = 4
str      = STR_CONFIG_SETTING_PLANE_SPEED
strhelp  = STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT
strval   = STR_CONFIG_SETTING_PLANE_SPEED_VALUE

[SDT_BOOL]
var      = vehicle.dynamic_engines
from     = SLV_95
flags    = SF_NO_NETWORK
def      = true
pre_cb   = CheckDynamicEngines
cat      = SC_EXPERT

[SDT_VAR]
var      = vehicle.plane_crashes
type     = SLE_UINT8
from     = SLV_138
flags    = SF_GUI_DROPDOWN
def      = 2
min      = 0
max      = 2
interval = 1
str      = STR_CONFIG_SETTING_PLANE_CRASHES
strhelp  = STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT
strval   = STR_CONFIG_SETTING_PLANE_CRASHES_NONE
cat      = SC_BASIC

[SDT_VAR]
var      = vehicle.extend_vehicle_life
type     = SLE_UINT8
def      = 0
min      = 0
max      = 100
cat      = SC_EXPERT

## Old vehicle settings.

[SDTG_BOOL]
name     = ""vehicle.servint_ispercent""
flags    = SF_NO_NETWORK
var      = _old_vds.servint_ispercent
def      = false
to       = SLV_120

[SDTG_VAR]
name     = ""vehicle.servint_trains""
type     = SLE_UINT16
flags    = SF_GUI_0_IS_SPECIAL
var      = _old_vds.servint_trains
def      = 150
min      = 5
max      = 800
to       = SLV_120

[SDTG_VAR]
name     = ""vehicle.servint_roadveh""
type     = SLE_UINT16
flags    = SF_GUI_0_IS_SPECIAL
var      = _old_vds.servint_roadveh
def      = 150
min      = 5
max      = 800
to       = SLV_120

[SDTG_VAR]
name     = ""vehicle.servint_ships""
type     = SLE_UINT16
flags    = SF_GUI_0_IS_SPECIAL
var      = _old_vds.servint_ships
def      = 360
min      = 5
max      = 800
to       = SLV_120

[SDTG_VAR]
name     = ""vehicle.servint_aircraft""
type     = SLE_UINT16
flags    = SF_GUI_0_IS_SPECIAL
var      = _old_vds.servint_aircraft
def      = 150
min      = 5
max      = 800
to       = SLV_120

[SDT_VAR]
base     = GameSettings
var      = construction.simulated_wormhole_signals
type     = SLE_UINT8
flags    = SF_NONE
def      = 2
min      = 1
max      = 16
str      = STR_CONFIG_SETTING_SIMULATE_SIGNALS
strval   = STR_CONFIG_SETTING_SIMULATE_SIGNALS_VALUE
proc     = RedrawScreen
from     = SL_MIN_VERSION
cat      = SC_BASIC

## These were once in the "gui" section, but they really are related to orders.

[SDTC_BOOL]
var      = gui.sg_full_load_any
from     = SLV_22
to       = SLV_93
def      = true

[SDTC_BOOL]
var      = gui.sg_new_nonstop
from     = SLV_22
to       = SLV_93
def      = false