src/settings_type.h
author peter1138
Tue, 29 Apr 2008 21:31:29 +0000
changeset 9070 dd0121143eba
parent 8881 ad608e8305ad
child 9126 5648d696456b
permissions -rw-r--r--
(svn r12924) -Feature: Introducing the so called 'engine pool' which primarily removes the fixed engine type limits and also happens to allow (with the patch option 'dynamic_engines') multiple NewGRF vehicle sets to coexist.
2186
db48cf29b983 (svn r2701) Insert Id tags into all source files
tron
parents: 2154
diff changeset
     1
/* $Id$ */
db48cf29b983 (svn r2701) Insert Id tags into all source files
tron
parents: 2154
diff changeset
     2
8208
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
     3
/** @file settings_type.h Types related to global configuration settings. */
6423
8e10e79e0fd1 (svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents: 6344
diff changeset
     4
8208
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
     5
#ifndef SETTINGS_TYPE_H
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
     6
#define SETTINGS_TYPE_H
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     7
3900
2c84ed52709d (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
     8
#include "yapf/yapf_settings.h"
8140
0d0d8c94f84b (svn r11702) -Codechange: move all date related stuff to date*.
rubidium
parents: 8138
diff changeset
     9
#include "date_type.h"
8213
7bdd7593eb9b (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 8208
diff changeset
    10
#include "town_type.h"
3900
2c84ed52709d (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
    11
8268
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    12
#define GAME_DIFFICULTY_NUM 18
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    13
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    14
/** Specific type for Game Difficulty to ease changing the type */
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    15
typedef uint16 GDType;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    16
struct GameDifficulty {
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    17
	GDType max_no_competitors;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    18
	GDType competitor_start_time;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    19
	GDType number_towns;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    20
	GDType number_industries;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    21
	GDType max_loan;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    22
	GDType initial_interest;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    23
	GDType vehicle_costs;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    24
	GDType competitor_speed;
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    25
	GDType competitor_intelligence; ///< no longer in use
8268
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    26
	GDType vehicle_breakdowns;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    27
	GDType subsidy_multiplier;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    28
	GDType construction_cost;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    29
	GDType terrain_type;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    30
	GDType quantity_sea_lakes;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    31
	GDType economy;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    32
	GDType line_reverse_mode;
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    33
	GDType disasters;
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    34
	GDType town_council_tolerance; ///< minimum required town ratings to be allowed to demolish stuff
8268
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    35
};
5027ad5e70a0 (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8213
diff changeset
    36
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6091
diff changeset
    37
struct GameOptions {
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    38
	GameDifficulty diff;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    39
	byte diff_level;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    40
	byte currency;
3342
cb9b5c6dd74c (svn r4126) - Feature: A new multi-lingual multi-measuring-unit system:
peter1138
parents: 3182
diff changeset
    41
	byte units;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    42
	byte town_name;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    43
	byte landscape;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    44
	byte snow_line;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    45
	byte autosave;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    46
	byte road_side;
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6091
diff changeset
    47
};
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    48
1500
a66721629bc0 (svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents: 1460
diff changeset
    49
/* These are the options for the current game
a66721629bc0 (svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents: 1460
diff changeset
    50
 * either ingame, or loaded. Also used for networking games */
8208
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
    51
extern GameOptions _opt;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    52
1500
a66721629bc0 (svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents: 1460
diff changeset
    53
/* These are the default options for a new game */
8208
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
    54
extern GameOptions _opt_newgame;
1500
a66721629bc0 (svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents: 1460
diff changeset
    55
6423
8e10e79e0fd1 (svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents: 6344
diff changeset
    56
/* Pointer to one of the two _opt OR _opt_newgame structs */
8208
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
    57
extern GameOptions *_opt_ptr;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    58
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6091
diff changeset
    59
struct Patches {
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    60
	bool modified_catchment;            ///< different-size catchment areas
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    61
	bool vehicle_speed;                 ///< show vehicle speed
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    62
	bool build_on_slopes;               ///< allow building on slopes
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    63
	bool mammoth_trains;                ///< allow very long trains
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    64
	bool join_stations;                 ///< allow joining of train stations
8881
ad608e8305ad (svn r12648) -Feature: allow four different non-stop types in a single game instead of two. The "TTDP compatible order" setting now only sets the default behaviour of new trains.
rubidium
parents: 8806
diff changeset
    65
	bool sg_full_load_any;              ///< new full load calculation, any cargo must be full read from pre v93 savegames
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    66
	bool improved_load;                 ///< improved loading algorithm
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    67
	bool gradual_loading;               ///< load vehicles gradually
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    68
	byte station_spread;                ///< amount a station may spread
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    69
	bool inflation;                     ///< disable inflation
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    70
	bool selectgoods;                   ///< only send the goods to station if a train has been there
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    71
	bool longbridges;                   ///< allow 100 tile long bridges
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    72
	bool gotodepot;                     ///< allow goto depot in orders
7177
f9796d5be926 (svn r10451) -Add: support for "prospecting" raw industries, i.e. you pay an amount of money and then it might (with a given chance) build a raw industry somewhere on the map.
rubidium
parents: 7086
diff changeset
    73
	uint8 raw_industry_construction;    ///< Type of (raw) industry construction (none, "normal", prospecting)
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    74
	bool multiple_industry_per_town;    ///< allow many industries of the same type per town
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    75
	bool same_industry_close;           ///< allow same type industries to be built close to each other
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    76
	bool lost_train_warn;               ///< if a train can't find its destination, show a warning
55
73fae6c6568e (svn r56) Improved order checker + patch setting for it (celestar)
dominik
parents: 26
diff changeset
    77
	uint8 order_review_system;
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    78
	bool train_income_warn;             ///< if train is generating little income, show a warning
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    79
	bool status_long_date;              ///< always show long date in status bar
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    80
	bool signal_side;                   ///< show signals on right side
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    81
	bool show_finances;                 ///< show finances at end of year
8881
ad608e8305ad (svn r12648) -Feature: allow four different non-stop types in a single game instead of two. The "TTDP compatible order" setting now only sets the default behaviour of new trains.
rubidium
parents: 8806
diff changeset
    82
	bool sg_new_nonstop;                ///< ttdpatch compatible nonstop handling read from pre v93 savegames
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    83
	bool new_nonstop;                   ///< ttdpatch compatible nonstop handling
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    84
	bool roadveh_queue;                 ///< buggy road vehicle queueing
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    85
	bool autoscroll;                    ///< scroll when moving mouse to the edge.
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    86
	byte errmsg_duration;               ///< duration of error message
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    87
	byte land_generator;                ///< the landscape generator
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    88
	byte oil_refinery_limit;            ///< distance oil refineries allowed from map edge
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    89
	byte snow_line_height;              ///< a number 0-15 that configured snow line height
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    90
	byte tgen_smoothness;               ///< how rough is the terrain from 0-3
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    91
	uint32 generation_seed;             ///< noise seed for world generation
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    92
	byte tree_placer;                   ///< the tree placer algorithm
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    93
	byte heightmap_rotation;            ///< rotation director for the heightmap
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    94
	byte se_flat_world_height;          ///< land height a flat world gets in SE
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    95
	bool bribe;                         ///< enable bribing the local authority
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    96
	bool nonuniform_stations;           ///< allow nonuniform train stations
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    97
	bool adjacent_stations;             ///< allow stations to be built directly adjacent to other stations
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    98
	bool always_small_airport;          ///< always allow small airports
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
    99
	bool realistic_acceleration;        ///< realistic acceleration for trains
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   100
	bool wagon_speed_limits;            ///< enable wagon speed limits
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   101
	bool forbid_90_deg;                 ///< forbid trains to make 90 deg turns
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   102
	bool no_servicing_if_no_breakdowns; ///< dont send vehicles to depot when breakdowns are disabled
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   103
	bool link_terraform_toolbar;        ///< display terraform toolbar when displaying rail, road, water and airport toolbars
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   104
	bool reverse_scroll;                ///< Right-Click-Scrolling scrolls in the opposite direction
6730
9311a208f8f7 (svn r9962) -Feature: Add smooth viewport scrolling. This must be enabled with patch setting 'smooth_scroll'
peter1138
parents: 6674
diff changeset
   105
	bool smooth_scroll;                 ///< Smooth scroll viewports
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   106
	bool disable_elrails;               ///< when true, the elrails are disabled
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   107
	bool measure_tooltip;               ///< Show a permanent tooltip when dragging tools
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   108
	byte liveries;                      ///< Options for displaying company liveries, 0=none, 1=self, 2=all
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   109
	bool prefer_teamchat;               ///< Choose the chat message target with <ENTER>, true=all players, false=your team
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   110
	uint8 advanced_vehicle_list;        ///< Use the "advanced" vehicle list
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   111
	uint8 loading_indicators;           ///< Show loading indicators
7064
81d35e1f3e37 (svn r10329) -Feature [FS#812]: (patch) option to select the "default" rail type when you start a new game or load a game. This is done either static, i.e. rail, electrified rail, monorail and maglev, or dynamic which takes either the first or last available railtype or the railtype that is used most on the map.
rubidium
parents: 7018
diff changeset
   112
	uint8 default_rail_type;            ///< The default rail type for the rail GUI
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   113
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   114
	uint8 toolbar_pos;                  ///< position of toolbars, 0=left, 1=center, 2=right
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   115
	uint8 window_snap_radius;           ///< Windows snap at each other if closer than this
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   116
7086
de7e83fb1602 (svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents: 7064
diff changeset
   117
	bool always_build_infrastructure;   ///< Always allow building of infrastructure, even when you do not have the vehicles for it
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   118
	UnitID max_trains;                  ///< max trains in game per player (these are 16bit because the unitnumber field can't hold more)
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   119
	UnitID max_roadveh;                 ///< max trucks in game per player
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   120
	UnitID max_aircraft;                ///< max planes in game per player
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   121
	UnitID max_ships;                   ///< max ships in game per player
4344
7e123fec5b0b (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4300
diff changeset
   122
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   123
	bool servint_ispercent;             ///< service intervals are in percents
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   124
	uint16 servint_trains;              ///< service interval for trains
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   125
	uint16 servint_roadveh;             ///< service interval for road vehicles
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   126
	uint16 servint_aircraft;            ///< service interval for aircraft
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   127
	uint16 servint_ships;               ///< service interval for ships
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   128
8551
f0bcd6753287 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents: 8464
diff changeset
   129
	uint8 pathfinder_for_trains;        ///< the pathfinder to use for trains
f0bcd6753287 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents: 8464
diff changeset
   130
	uint8 pathfinder_for_roadvehs;      ///< the pathfinder to use for roadvehicles
f0bcd6753287 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents: 8464
diff changeset
   131
	uint8 pathfinder_for_ships;         ///< the pathfinder to use for ships
f0bcd6753287 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents: 8464
diff changeset
   132
8648
dcd755910009 (svn r12293) -Feature: Ability to change aircraft speed factor, from so
peter1138
parents: 8551
diff changeset
   133
	uint8 plane_speed;                  ///< divisor for speed of aircraft
dcd755910009 (svn r12293) -Feature: Ability to change aircraft speed factor, from so
peter1138
parents: 8551
diff changeset
   134
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   135
	bool autorenew;
26
4c08274a29dc (svn r27) -Fix: [1006715] Autorenew issues
truelight
parents: 20
diff changeset
   136
	int16 autorenew_months;
4c08274a29dc (svn r27) -Fix: [1006715] Autorenew issues
truelight
parents: 20
diff changeset
   137
	int32 autorenew_money;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   138
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   139
	byte pf_maxdepth;                      ///< maximum recursion depth when searching for a train route for new pathfinder
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   140
	uint16 pf_maxlength;                   ///< maximum length when searching for a train route for new pathfinder
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   141
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   142
	bool bridge_pillars;                   ///< show bridge pillars for high bridges
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   143
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   144
	bool ai_disable_veh_train;             ///< disable types for AI
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   145
	bool ai_disable_veh_roadveh;           ///< disable types for AI
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   146
	bool ai_disable_veh_aircraft;          ///< disable types for AI
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   147
	bool ai_disable_veh_ship;              ///< disable types for AI
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   148
	Year starting_year;                    ///< starting date
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   149
	Year ending_year;                      ///< end of the game (just show highscore)
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   150
	Year colored_news_year;                ///< when does newspaper become colored?
4344
7e123fec5b0b (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4300
diff changeset
   151
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   152
	bool keep_all_autosave;                ///< name the autosave in a different way.
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   153
	bool autosave_on_exit;                 ///< save an autosave when you quit the game, but do not ask "Do you really want to quit?"
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   154
	byte max_num_autosaves;                ///< controls how many autosavegames are made before the game starts to overwrite (names them 0 to max_num_autosaves - 1)
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   155
	bool extra_dynamite;                   ///< extra dynamite
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   156
	bool road_stop_on_town_road;           ///< allow building of drive-through road stops on town owned roads
4344
7e123fec5b0b (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4300
diff changeset
   157
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   158
	bool never_expire_vehicles;            ///< never expire vehicles
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   159
	byte extend_vehicle_life;              ///< extend vehicle life by this many years
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   160
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   161
	bool auto_euro;                        ///< automatically switch to euro in 2002
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   162
	bool serviceathelipad;                 ///< service helicopters at helipads automatically (no need to send to depot)
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   163
	bool smooth_economy;                   ///< smooth economy
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   164
	bool allow_shares;                     ///< allow the buying/selling of shares
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   165
	byte dist_local_authority;             ///< distance for town local authority, default 20
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   166
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   167
	byte wait_oneway_signal;               ///< waitingtime in days before a oneway signal
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   168
	byte wait_twoway_signal;               ///< waitingtime in days before a twoway signal
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   169
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   170
	uint8 map_x;                           ///< Size of map
3126
be062e339a73 (svn r3739) -Fix: [Big endian CPUs] fixed bug introduced in rev 3720 where BE computers would read insane map sizes and crash as a result
bjarni
parents: 3051
diff changeset
   171
	uint8 map_y;
1218
c6a624956ac6 (svn r1722) -Feature: Bigger maps - anyone?
tron
parents: 1178
diff changeset
   172
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   173
	byte drag_signals_density;             ///< many signals density
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   174
	Year semaphore_build_before;           ///< Build semaphore signals automatically before this year
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   175
	bool ainew_active;                     ///< Is the new AI active?
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   176
	bool ai_in_multiplayer;                ///< Do we allow AIs in multiplayer
835
f6a341f541d7 (svn r1312) -Add: Patch which is on by default: population in label of the town
truelight
parents: 788
diff changeset
   177
1700
e1fe3446d013 (svn r2204) - Add: [NPF] NPF now has a maximum number of nodes it will search. The default value is 5000 for now, which is an educated guess. Probably needs some finetuning. Hopefully this "feature" can be removed later on, when more sophisticated means of limiting the pathfinder have been implemented. This should make ships and larger networks playable for now, though.
matthijs
parents: 1688
diff changeset
   178
	/*
4549
106ed18a7675 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   179
	 * New Path Finding
106ed18a7675 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   180
	 */
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   181
	bool new_pathfinding_all;              ///< Use the newest pathfinding algorithm for all
1247
3851739bfd09 (svn r1751) - Feature: New PathFinder (NPF).
matthijs
parents: 1233
diff changeset
   182
1700
e1fe3446d013 (svn r2204) - Add: [NPF] NPF now has a maximum number of nodes it will search. The default value is 5000 for now, which is an educated guess. Probably needs some finetuning. Hopefully this "feature" can be removed later on, when more sophisticated means of limiting the pathfinder have been implemented. This should make ships and larger networks playable for now, though.
matthijs
parents: 1688
diff changeset
   183
	/**
4549
106ed18a7675 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   184
	 * The maximum amount of search nodes a single NPF run should take. This
106ed18a7675 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   185
	 * limit should make sure performance stays at acceptable levels at the cost
106ed18a7675 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   186
	 * of not being perfect anymore. This will probably be fixed in a more
106ed18a7675 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   187
	 * sophisticated way sometime soon
106ed18a7675 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   188
	 */
1700
e1fe3446d013 (svn r2204) - Add: [NPF] NPF now has a maximum number of nodes it will search. The default value is 5000 for now, which is an educated guess. Probably needs some finetuning. Hopefully this "feature" can be removed later on, when more sophisticated means of limiting the pathfinder have been implemented. This should make ships and larger networks playable for now, though.
matthijs
parents: 1688
diff changeset
   189
	uint32 npf_max_search_nodes;
e1fe3446d013 (svn r2204) - Add: [NPF] NPF now has a maximum number of nodes it will search. The default value is 5000 for now, which is an educated guess. Probably needs some finetuning. Hopefully this "feature" can be removed later on, when more sophisticated means of limiting the pathfinder have been implemented. This should make ships and larger networks playable for now, though.
matthijs
parents: 1688
diff changeset
   190
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   191
	uint32 npf_rail_firstred_penalty;      ///< The penalty for when the first signal is red (and it is not an exit or combo signal)
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   192
	uint32 npf_rail_firstred_exit_penalty; ///< The penalty for when the first signal is red (and it is an exit or combo signal)
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   193
	uint32 npf_rail_lastred_penalty;       ///< The penalty for when the last signal is red
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   194
	uint32 npf_rail_station_penalty;       ///< The penalty for station tiles
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   195
	uint32 npf_rail_slope_penalty;         ///< The penalty for sloping upwards
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   196
	uint32 npf_rail_curve_penalty;         ///< The penalty for curves
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   197
	uint32 npf_rail_depot_reverse_penalty; ///< The penalty for reversing in depots
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   198
	uint32 npf_buoy_penalty;               ///< The penalty for going over (through) a buoy
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   199
	uint32 npf_water_curve_penalty;        ///< The penalty for curves
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   200
	uint32 npf_road_curve_penalty;         ///< The penalty for curves
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   201
	uint32 npf_crossing_penalty;           ///< The penalty for level crossings
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   202
	uint32 npf_road_drive_through_penalty; ///< The penalty for going through a drive-through road stop
1247
3851739bfd09 (svn r1751) - Feature: New PathFinder (NPF).
matthijs
parents: 1233
diff changeset
   203
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   204
	bool population_in_label;              ///< Show the population of a town in his label?
3900
2c84ed52709d (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
   205
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   206
	uint8 freight_trains;                  ///< Value to multiply the weight of cargo by
5163
459b243f8413 (svn r7269) -Feature: Add freight trains patch option. This option is a multiplier for the weight of cargo on freight trains, to simulate longer heavier trains. The default value of 1 behaves as before.
peter1138
parents: 5144
diff changeset
   207
3900
2c84ed52709d (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
   208
	/** YAPF settings */
2c84ed52709d (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
   209
	YapfSettings  yapf;
2c84ed52709d (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
   210
7485
d8799216928a (svn r10996) -Feature: [OSX] added more options for right click emulation (controlled from the interface tab in the patch window)
bjarni
parents: 7335
diff changeset
   211
	uint8 right_mouse_btn_emulation;
d8799216928a (svn r10996) -Feature: [OSX] added more options for right click emulation (controlled from the interface tab in the patch window)
bjarni
parents: 7335
diff changeset
   212
6289
9f468eccc674 (svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
bjarni
parents: 6248
diff changeset
   213
	uint8 scrollwheel_scrolling;
9f468eccc674 (svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
bjarni
parents: 6248
diff changeset
   214
	uint8 scrollwheel_multiplier;
6454
ad53226c2027 (svn r9613) -Feature: Make it possible to have some control over the town growth. The
maedhros
parents: 6427
diff changeset
   215
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   216
	uint8 town_growth_rate;      ///< Town growth rate
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   217
	uint8 larger_towns;          ///< The number of cities to build. These start off larger and grow twice as fast
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   218
	uint8 initial_city_size;     ///< Multiplier for the initial size of the cities compared to towns
6543
57dfb0d16b10 (svn r9734) -Feature: Add an option to automatically pause when starting a new game.
maedhros
parents: 6491
diff changeset
   219
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   220
	bool pause_on_newgame;       ///< Whether to start new games paused or not.
6571
6a8a1d0835d9 (svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents: 6543
diff changeset
   221
6577
03c98094f41c (svn r9791) -Fix (r9779, FS#766): add TownLayoutByte to correctly save town layout value
glx
parents: 6571
diff changeset
   222
	TownLayoutByte town_layout;  ///< Select town layout
6980
c7c4f3bf5901 (svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros
parents: 6954
diff changeset
   223
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   224
	bool timetabling;            ///< Whether to allow timetabling.
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   225
	bool timetable_in_ticks;     ///< Whether to show the timetable in ticks rather than days.
7641
3a75903fd892 (svn r11172) -Codechange: rewrite of town road building and addition of the possibility to clean up unconnected road bits during the local road reconstructions. Based on a patch by skidd13.
rubidium
parents: 7582
diff changeset
   226
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   227
	bool autoslope;              ///< Allow terraforming under things.
7657
2b55af55cc51 (svn r11188) -Codechange: rewrite of the town action related code (remove some of the magic).
rubidium
parents: 7643
diff changeset
   228
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   229
	bool mod_road_rebuild;       ///< Roadworks remove unneccesary RoadBits
7991
d6a95a5593ba (svn r11547) -Add: signal selection GUI for the ones that really like to use that over CTRL. Patch by BigBB.
rubidium
parents: 7849
diff changeset
   230
8464
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   231
	bool exclusive_rights;       ///< allow buying exclusive rights
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   232
	bool give_money;             ///< allow giving other players money
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   233
84733620d05e (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8268
diff changeset
   234
	bool enable_signal_gui;      ///< Show the signal GUI when the signal button is pressed
9070
dd0121143eba (svn r12924) -Feature: Introducing the so called 'engine pool' which primarily removes the fixed engine type limits and also happens to allow (with the patch option 'dynamic_engines') multiple NewGRF vehicle sets to coexist.
peter1138
parents: 8881
diff changeset
   235
dd0121143eba (svn r12924) -Feature: Introducing the so called 'engine pool' which primarily removes the fixed engine type limits and also happens to allow (with the patch option 'dynamic_engines') multiple NewGRF vehicle sets to coexist.
peter1138
parents: 8881
diff changeset
   236
	bool dynamic_engines;    ///< Enable dynamic allocation of engine data
6248
e4a2ed7e5613 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6091
diff changeset
   237
};
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   238
8208
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
   239
extern Patches _patches;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   240
8208
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
   241
/** The patch values that are used for new games and/or modified in config file */
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
   242
extern Patches _patches_newgame;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   243
8208
3d0590aa2124 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8151
diff changeset
   244
#endif /* SETTINGS_TYPE_H */