src/settings_type.h
author convert-repo
Mon, 07 Apr 2008 16:21:55 +0000
changeset 10076 dfd70e42c4ae
parent 9302 4aa3c4a44b16
child 10117 6a796f06bff4
permissions -rw-r--r--
update tags
2186
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2154
diff changeset
     1
/* $Id$ */
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2154
diff changeset
     2
8704
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
     3
/** @file settings_type.h Types related to global configuration settings. */
6919
339210ecccd3 (svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents: 6670
diff changeset
     4
8704
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
     5
#ifndef SETTINGS_TYPE_H
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
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
4984308f9125 (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"
8636
2b158acb649c (svn r11702) -Codechange: move all date related stuff to date*.
rubidium
parents: 8634
diff changeset
     9
#include "date_type.h"
8709
4187ad809fe7 (svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents: 8704
diff changeset
    10
#include "town_type.h"
3900
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
    11
8764
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    12
#define GAME_DIFFICULTY_NUM 18
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    13
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    14
/** Specific type for Game Difficulty to ease changing the type */
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    15
typedef uint16 GDType;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    16
struct GameDifficulty {
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    17
	GDType max_no_competitors;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    18
	GDType competitor_start_time;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    19
	GDType number_towns;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    20
	GDType number_industries;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    21
	GDType max_loan;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    22
	GDType initial_interest;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    23
	GDType vehicle_costs;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    24
	GDType competitor_speed;
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    25
	GDType competitor_intelligence; ///< no longer in use
8764
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    26
	GDType vehicle_breakdowns;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    27
	GDType subsidy_multiplier;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    28
	GDType construction_cost;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    29
	GDType terrain_type;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    30
	GDType quantity_sea_lakes;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    31
	GDType economy;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    32
	GDType line_reverse_mode;
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    33
	GDType disasters;
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    34
	GDType town_council_tolerance; ///< minimum required town ratings to be allowed to demolish stuff
8764
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    35
};
65746a5248ec (svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents: 8709
diff changeset
    36
6574
e1d1a12faaf7 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6417
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
0de5e6997611 (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;
6574
e1d1a12faaf7 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6417
diff changeset
    47
};
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    48
1500
228f77e88adf (svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents: 1460
diff changeset
    49
/* These are the options for the current game
228f77e88adf (svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents: 1460
diff changeset
    50
 * either ingame, or loaded. Also used for networking games */
8704
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
    51
extern GameOptions _opt;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    52
1500
228f77e88adf (svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents: 1460
diff changeset
    53
/* These are the default options for a new game */
8704
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
    54
extern GameOptions _opt_newgame;
1500
228f77e88adf (svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents: 1460
diff changeset
    55
6919
339210ecccd3 (svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas
parents: 6670
diff changeset
    56
/* Pointer to one of the two _opt OR _opt_newgame structs */
8704
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
    57
extern GameOptions *_opt_ptr;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    58
6574
e1d1a12faaf7 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6417
diff changeset
    59
struct Patches {
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    60
	bool modified_catchment;            ///< different-size catchment areas
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    61
	bool vehicle_speed;                 ///< show vehicle speed
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    62
	bool build_on_slopes;               ///< allow building on slopes
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    63
	bool mammoth_trains;                ///< allow very long trains
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    64
	bool join_stations;                 ///< allow joining of train stations
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    65
	bool full_load_any;                 ///< new full load calculation, any cargo must be full
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    66
	bool improved_load;                 ///< improved loading algorithm
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    67
	bool gradual_loading;               ///< load vehicles gradually
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    68
	byte station_spread;                ///< amount a station may spread
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    69
	bool inflation;                     ///< disable inflation
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    70
	bool selectgoods;                   ///< only send the goods to station if a train has been there
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    71
	bool longbridges;                   ///< allow 100 tile long bridges
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    72
	bool gotodepot;                     ///< allow goto depot in orders
7673
3ab9344bd532 (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: 7582
diff changeset
    73
	uint8 raw_industry_construction;    ///< Type of (raw) industry construction (none, "normal", prospecting)
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    74
	bool multiple_industry_per_town;    ///< allow many industries of the same type per town
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    75
	bool same_industry_close;           ///< allow same type industries to be built close to each other
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
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;
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    78
	bool train_income_warn;             ///< if train is generating little income, show a warning
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    79
	bool status_long_date;              ///< always show long date in status bar
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    80
	bool signal_side;                   ///< show signals on right side
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    81
	bool show_finances;                 ///< show finances at end of year
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    82
	bool new_nonstop;                   ///< ttdpatch compatible nonstop handling
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    83
	bool roadveh_queue;                 ///< buggy road vehicle queueing
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    84
	bool autoscroll;                    ///< scroll when moving mouse to the edge.
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    85
	byte errmsg_duration;               ///< duration of error message
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    86
	byte land_generator;                ///< the landscape generator
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    87
	byte oil_refinery_limit;            ///< distance oil refineries allowed from map edge
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    88
	byte snow_line_height;              ///< a number 0-15 that configured snow line height
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    89
	byte tgen_smoothness;               ///< how rough is the terrain from 0-3
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    90
	uint32 generation_seed;             ///< noise seed for world generation
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    91
	byte tree_placer;                   ///< the tree placer algorithm
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    92
	byte heightmap_rotation;            ///< rotation director for the heightmap
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    93
	byte se_flat_world_height;          ///< land height a flat world gets in SE
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    94
	bool bribe;                         ///< enable bribing the local authority
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    95
	bool nonuniform_stations;           ///< allow nonuniform train stations
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    96
	bool adjacent_stations;             ///< allow stations to be built directly adjacent to other stations
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    97
	bool always_small_airport;          ///< always allow small airports
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    98
	bool realistic_acceleration;        ///< realistic acceleration for trains
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
    99
	bool wagon_speed_limits;            ///< enable wagon speed limits
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   100
	bool forbid_90_deg;                 ///< forbid trains to make 90 deg turns
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   101
	bool no_servicing_if_no_breakdowns; ///< dont send vehicles to depot when breakdowns are disabled
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   102
	bool link_terraform_toolbar;        ///< display terraform toolbar when displaying rail, road, water and airport toolbars
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   103
	bool reverse_scroll;                ///< Right-Click-Scrolling scrolls in the opposite direction
7226
a8650d6ecb53 (svn r9962) -Feature: Add smooth viewport scrolling. This must be enabled with patch setting 'smooth_scroll'
peter1138
parents: 7170
diff changeset
   104
	bool smooth_scroll;                 ///< Smooth scroll viewports
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   105
	bool disable_elrails;               ///< when true, the elrails are disabled
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   106
	bool measure_tooltip;               ///< Show a permanent tooltip when dragging tools
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   107
	byte liveries;                      ///< Options for displaying company liveries, 0=none, 1=self, 2=all
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   108
	bool prefer_teamchat;               ///< Choose the chat message target with <ENTER>, true=all players, false=your team
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   109
	uint8 advanced_vehicle_list;        ///< Use the "advanced" vehicle list
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   110
	uint8 loading_indicators;           ///< Show loading indicators
7560
f7b5ab184882 (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: 7514
diff changeset
   111
	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
   112
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   113
	uint8 toolbar_pos;                  ///< position of toolbars, 0=left, 1=center, 2=right
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   114
	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
   115
7582
9f23c01ae23d (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: 7560
diff changeset
   116
	bool always_build_infrastructure;   ///< Always allow building of infrastructure, even when you do not have the vehicles for it
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   117
	UnitID max_trains;                  ///< max trains in game per player (these are 16bit because the unitnumber field can't hold more)
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   118
	UnitID max_roadveh;                 ///< max trucks in game per player
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   119
	UnitID max_aircraft;                ///< max planes in game per player
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   120
	UnitID max_ships;                   ///< max ships in game per player
4344
5d0e40cd67b9 (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
   121
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   122
	bool servint_ispercent;             ///< service intervals are in percents
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   123
	uint16 servint_trains;              ///< service interval for trains
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   124
	uint16 servint_roadveh;             ///< service interval for road vehicles
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   125
	uint16 servint_aircraft;            ///< service interval for aircraft
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   126
	uint16 servint_ships;               ///< service interval for ships
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   127
9047
4dce11366b62 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents: 8960
diff changeset
   128
	uint8 pathfinder_for_trains;        ///< the pathfinder to use for trains
4dce11366b62 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents: 8960
diff changeset
   129
	uint8 pathfinder_for_roadvehs;      ///< the pathfinder to use for roadvehicles
4dce11366b62 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents: 8960
diff changeset
   130
	uint8 pathfinder_for_ships;         ///< the pathfinder to use for ships
4dce11366b62 (svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents: 8960
diff changeset
   131
9144
3e82211b57c5 (svn r12293) -Feature: Ability to change aircraft speed factor, from so
peter1138
parents: 9047
diff changeset
   132
	uint8 plane_speed;                  ///< divisor for speed of aircraft
3e82211b57c5 (svn r12293) -Feature: Ability to change aircraft speed factor, from so
peter1138
parents: 9047
diff changeset
   133
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   134
	bool autorenew;
26
4c08274a29dc (svn r27) -Fix: [1006715] Autorenew issues
truelight
parents: 20
diff changeset
   135
	int16 autorenew_months;
4c08274a29dc (svn r27) -Fix: [1006715] Autorenew issues
truelight
parents: 20
diff changeset
   136
	int32 autorenew_money;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   137
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   138
	byte pf_maxdepth;                      ///< maximum recursion depth when searching for a train route for new pathfinder
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   139
	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
   140
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   141
	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
   142
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   143
	bool ai_disable_veh_train;             ///< disable types for AI
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   144
	bool ai_disable_veh_roadveh;           ///< disable types for AI
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   145
	bool ai_disable_veh_aircraft;          ///< disable types for AI
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   146
	bool ai_disable_veh_ship;              ///< disable types for AI
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   147
	Year starting_year;                    ///< starting date
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   148
	Year ending_year;                      ///< end of the game (just show highscore)
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   149
	Year colored_news_year;                ///< when does newspaper become colored?
4344
5d0e40cd67b9 (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
   150
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   151
	bool keep_all_autosave;                ///< name the autosave in a different way.
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   152
	bool autosave_on_exit;                 ///< save an autosave when you quit the game, but do not ask "Do you really want to quit?"
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   153
	byte max_num_autosaves;                ///< controls how many autosavegames are made before the game starts to overwrite (names them 0 to max_num_autosaves - 1)
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   154
	bool extra_dynamite;                   ///< extra dynamite
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   155
	bool road_stop_on_town_road;           ///< allow building of drive-through road stops on town owned roads
4344
5d0e40cd67b9 (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
   156
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   157
	bool never_expire_vehicles;            ///< never expire vehicles
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   158
	byte extend_vehicle_life;              ///< extend vehicle life by this many years
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   159
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   160
	bool auto_euro;                        ///< automatically switch to euro in 2002
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   161
	bool serviceathelipad;                 ///< service helicopters at helipads automatically (no need to send to depot)
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   162
	bool smooth_economy;                   ///< smooth economy
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   163
	bool allow_shares;                     ///< allow the buying/selling of shares
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   164
	byte dist_local_authority;             ///< distance for town local authority, default 20
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   165
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   166
	byte wait_oneway_signal;               ///< waitingtime in days before a oneway signal
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   167
	byte wait_twoway_signal;               ///< waitingtime in days before a twoway signal
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   168
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   169
	uint8 map_x;                           ///< Size of map
3126
b609a98e32a5 (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
   170
	uint8 map_y;
1218
353a7773bc3c (svn r1722) -Feature: Bigger maps - anyone?
tron
parents: 1178
diff changeset
   171
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   172
	byte drag_signals_density;             ///< many signals density
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   173
	Year semaphore_build_before;           ///< Build semaphore signals automatically before this year
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   174
	bool ainew_active;                     ///< Is the new AI active?
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   175
	bool ai_in_multiplayer;                ///< Do we allow AIs in multiplayer
835
a22d6bc16a51 (svn r1312) -Add: Patch which is on by default: population in label of the town
truelight
parents: 788
diff changeset
   176
1700
b8ecf0494fdd (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
   177
	/*
4549
60410aa1aa88 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   178
	 * New Path Finding
60410aa1aa88 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   179
	 */
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   180
	bool new_pathfinding_all;              ///< Use the newest pathfinding algorithm for all
1247
01711347f9ac (svn r1751) - Feature: New PathFinder (NPF).
matthijs
parents: 1233
diff changeset
   181
1700
b8ecf0494fdd (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
   182
	/**
4549
60410aa1aa88 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   183
	 * The maximum amount of search nodes a single NPF run should take. This
60410aa1aa88 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   184
	 * limit should make sure performance stays at acceptable levels at the cost
60410aa1aa88 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   185
	 * of not being perfect anymore. This will probably be fixed in a more
60410aa1aa88 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   186
	 * sophisticated way sometime soon
60410aa1aa88 (svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents: 4387
diff changeset
   187
	 */
1700
b8ecf0494fdd (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
   188
	uint32 npf_max_search_nodes;
b8ecf0494fdd (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
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   190
	uint32 npf_rail_firstred_penalty;      ///< The penalty for when the first signal is red (and it is not an exit or combo signal)
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   191
	uint32 npf_rail_firstred_exit_penalty; ///< The penalty for when the first signal is red (and it is an exit or combo signal)
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   192
	uint32 npf_rail_lastred_penalty;       ///< The penalty for when the last signal is red
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   193
	uint32 npf_rail_station_penalty;       ///< The penalty for station tiles
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   194
	uint32 npf_rail_slope_penalty;         ///< The penalty for sloping upwards
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   195
	uint32 npf_rail_curve_penalty;         ///< The penalty for curves
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   196
	uint32 npf_rail_depot_reverse_penalty; ///< The penalty for reversing in depots
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   197
	uint32 npf_buoy_penalty;               ///< The penalty for going over (through) a buoy
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   198
	uint32 npf_water_curve_penalty;        ///< The penalty for curves
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   199
	uint32 npf_road_curve_penalty;         ///< The penalty for curves
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   200
	uint32 npf_crossing_penalty;           ///< The penalty for level crossings
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   201
	uint32 npf_road_drive_through_penalty; ///< The penalty for going through a drive-through road stop
1247
01711347f9ac (svn r1751) - Feature: New PathFinder (NPF).
matthijs
parents: 1233
diff changeset
   202
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   203
	bool population_in_label;              ///< Show the population of a town in his label?
3900
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
   204
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   205
	uint8 freight_trains;                  ///< Value to multiply the weight of cargo by
5163
83acad83bbdd (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
   206
3900
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
   207
	/** YAPF settings */
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
   208
	YapfSettings  yapf;
4984308f9125 (svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents: 3890
diff changeset
   209
7981
506461241c0e (svn r10996) -Feature: [OSX] added more options for right click emulation (controlled from the interface tab in the patch window)
bjarni
parents: 7831
diff changeset
   210
	uint8 right_mouse_btn_emulation;
506461241c0e (svn r10996) -Feature: [OSX] added more options for right click emulation (controlled from the interface tab in the patch window)
bjarni
parents: 7831
diff changeset
   211
6615
96d30d65ed35 (svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
bjarni
parents: 6574
diff changeset
   212
	uint8 scrollwheel_scrolling;
96d30d65ed35 (svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
bjarni
parents: 6574
diff changeset
   213
	uint8 scrollwheel_multiplier;
6950
c572b218bf2f (svn r9613) -Feature: Make it possible to have some control over the town growth. The
maedhros
parents: 6923
diff changeset
   214
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   215
	uint8 town_growth_rate;      ///< Town growth rate
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   216
	uint8 larger_towns;          ///< The number of cities to build. These start off larger and grow twice as fast
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   217
	uint8 initial_city_size;     ///< Multiplier for the initial size of the cities compared to towns
7039
a20ddaf4dc97 (svn r9734) -Feature: Add an option to automatically pause when starting a new game.
maedhros
parents: 6987
diff changeset
   218
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   219
	bool pause_on_newgame;       ///< Whether to start new games paused or not.
7067
ea55b6046015 (svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents: 7039
diff changeset
   220
7073
72dc5a55e16b (svn r9791) -Fix (r9779, FS#766): add TownLayoutByte to correctly save town layout value
glx
parents: 7067
diff changeset
   221
	TownLayoutByte town_layout;  ///< Select town layout
7476
7f086e4b2a76 (svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros
parents: 7450
diff changeset
   222
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   223
	bool timetabling;            ///< Whether to allow timetabling.
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   224
	bool timetable_in_ticks;     ///< Whether to show the timetable in ticks rather than days.
8137
67a9579abd74 (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: 8078
diff changeset
   225
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   226
	bool autoslope;              ///< Allow terraforming under things.
8153
32f871f7e7f7 (svn r11188) -Codechange: rewrite of the town action related code (remove some of the magic).
rubidium
parents: 8139
diff changeset
   227
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   228
	bool mod_road_rebuild;       ///< Roadworks remove unneccesary RoadBits
8487
bab0d066128b (svn r11547) -Add: signal selection GUI for the ones that really like to use that over CTRL. Patch by BigBB.
rubidium
parents: 8345
diff changeset
   229
8960
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   230
	bool exclusive_rights;       ///< allow buying exclusive rights
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   231
	bool give_money;             ///< allow giving other players money
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   232
135129062641 (svn r12034) -Codechange: A bit of code style cleaning, regarding comments.
belugas
parents: 8764
diff changeset
   233
	bool enable_signal_gui;      ///< Show the signal GUI when the signal button is pressed
6574
e1d1a12faaf7 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6417
diff changeset
   234
};
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   235
8704
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
   236
extern Patches _patches;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   237
8704
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
   238
/** The patch values that are used for new games and/or modified in config file */
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
   239
extern Patches _patches_newgame;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   240
8704
2857ec554839 (svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents: 8647
diff changeset
   241
#endif /* SETTINGS_TYPE_H */