author | maedhros |
Sat, 28 Apr 2007 15:06:32 +0000 | |
changeset 7039 | a20ddaf4dc97 |
parent 6987 | b0f13039bda2 |
child 7067 | ea55b6046015 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
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
|
3 |
/** @file variables.h */ |
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 |
|
0 | 5 |
#ifndef VARIABLES_H |
6 |
#define VARIABLES_H |
|
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" |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3890
diff
changeset
|
9 |
|
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
|
10 |
/* ********* START OF SAVE REGION */ |
0 | 11 |
#if !defined(MAX_PATH) |
12 |
# define MAX_PATH 260 |
|
13 |
#endif |
|
14 |
||
5936
d6a7cd0c9b08
(svn r8146) -Fix (FS#552, r8038): a C/C++ linkage problem on some very few incarnations of gcc
celestar
parents:
5838
diff
changeset
|
15 |
#include "gfx.h" |
d6a7cd0c9b08
(svn r8146) -Fix (FS#552, r8038): a C/C++ linkage problem on some very few incarnations of gcc
celestar
parents:
5838
diff
changeset
|
16 |
|
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
|
17 |
/* Prices and also the fractional part. */ |
0 | 18 |
VARDEF Prices _price; |
19 |
VARDEF uint16 _price_frac[NUM_PRICES]; |
|
20 |
||
21 |
VARDEF uint32 _cargo_payment_rates[NUM_CARGO]; |
|
22 |
VARDEF uint16 _cargo_payment_rates_frac[NUM_CARGO]; |
|
23 |
||
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
24 |
struct GameOptions { |
0 | 25 |
GameDifficulty diff; |
26 |
byte diff_level; |
|
27 |
byte currency; |
|
3342
0de5e6997611
(svn r4126) - Feature: A new multi-lingual multi-measuring-unit system:
peter1138
parents:
3182
diff
changeset
|
28 |
byte units; |
0 | 29 |
byte town_name; |
30 |
byte landscape; |
|
31 |
byte snow_line; |
|
32 |
byte autosave; |
|
33 |
byte road_side; |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
34 |
}; |
0 | 35 |
|
1500
228f77e88adf
(svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents:
1460
diff
changeset
|
36 |
/* These are the options for the current game |
228f77e88adf
(svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents:
1460
diff
changeset
|
37 |
* either ingame, or loaded. Also used for networking games */ |
0 | 38 |
VARDEF GameOptions _opt; |
39 |
||
1500
228f77e88adf
(svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents:
1460
diff
changeset
|
40 |
/* These are the default options for a new game */ |
228f77e88adf
(svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents:
1460
diff
changeset
|
41 |
VARDEF GameOptions _opt_newgame; |
228f77e88adf
(svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents:
1460
diff
changeset
|
42 |
|
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
|
43 |
/* Pointer to one of the two _opt OR _opt_newgame structs */ |
1500
228f77e88adf
(svn r2004) - Fix: [ 1149487 ] Autosave ignoring settings
Darkvater
parents:
1460
diff
changeset
|
44 |
VARDEF GameOptions *_opt_ptr; |
0 | 45 |
|
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
|
46 |
/* Amount of game ticks */ |
0 | 47 |
VARDEF uint16 _tick_counter; |
48 |
||
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
|
49 |
/* This one is not used anymore. */ |
0 | 50 |
VARDEF VehicleID _vehicle_id_ctr_day; |
51 |
||
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
|
52 |
/* Skip aging of cargo? */ |
0 | 53 |
VARDEF byte _age_cargo_skip_counter; |
54 |
||
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
|
55 |
/* Position in tile loop */ |
0 | 56 |
VARDEF TileIndex _cur_tileloop_tile; |
57 |
||
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
|
58 |
/* Also save scrollpos_x, scrollpos_y and zoom */ |
0 | 59 |
VARDEF uint16 _disaster_delay; |
60 |
||
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
|
61 |
/* Determines what station to operate on in the |
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
|
62 |
* tick handler. */ |
0 | 63 |
VARDEF uint16 _station_tick_ctr; |
64 |
||
206 | 65 |
VARDEF uint32 _random_seeds[2][2]; |
2073 | 66 |
|
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
|
67 |
/* Iterator through all towns in OnTick_Town */ |
1517
b77361b13ae4
(svn r2021) Fix: Enlarge _cur_town_ctr from byte to uint32 so that all the towns are considered when growing them even for big maps, where much more than 256 towns are around; reported by Tomasz Dubi?ski <uboottd@hydra.polsl.gliwice.pl>. The savegame still saves just the lowest 8 bits but that doesn't hurt so much.
pasky
parents:
1500
diff
changeset
|
68 |
VARDEF uint32 _cur_town_ctr; |
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
|
69 |
/* Frequency iterator at the same place */ |
1529
be4a2259d2ff
(svn r2033) - Fix: Fix some more desync by saving the town growth frequency iterator _cur_town_iter. Needed to bump a svg revision for that thanks to the braindead SlGlob thing, or at least I don't know how to do it without bumping it.
pasky
parents:
1517
diff
changeset
|
70 |
VARDEF uint32 _cur_town_iter; |
0 | 71 |
|
72 |
VARDEF uint _cur_player_tick_index; |
|
73 |
VARDEF uint _next_competitor_start; |
|
74 |
||
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
|
75 |
/* Determines how often to run the tree loop */ |
0 | 76 |
VARDEF byte _trees_tick_ctr; |
77 |
||
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
|
78 |
/* Keep track of current game position */ |
0 | 79 |
VARDEF int _saved_scrollpos_x; |
80 |
VARDEF int _saved_scrollpos_y; |
|
81 |
VARDEF byte _saved_scrollpos_zoom; |
|
82 |
||
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
|
83 |
/* ********* END OF SAVE REGION */ |
0 | 84 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
85 |
struct Patches { |
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
|
86 |
bool modified_catchment; // different-size catchment areas |
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
|
87 |
bool vehicle_speed; // show vehicle speed |
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
|
88 |
bool build_on_slopes; // allow building on slopes |
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
|
89 |
bool mammoth_trains; // allow very long trains |
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
|
90 |
bool join_stations; // allow joining of train stations |
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
|
91 |
bool full_load_any; // new full load calculation, any cargo must be full |
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
|
92 |
bool improved_load; // improved loading algorithm |
5211
651c9272ad22
(svn r7326) -Feature: Add support for gradual (un)loading of vehicles (Maedhros)
peter1138
parents:
5163
diff
changeset
|
93 |
bool gradual_loading; // load vehicles gradually |
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
|
94 |
byte station_spread; // amount a station may spread |
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
|
95 |
bool inflation; // disable inflation |
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
|
96 |
bool selectgoods; // only send the goods to station if a train has been there |
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
|
97 |
bool longbridges; // allow 100 tile long bridges |
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
|
98 |
bool gotodepot; // allow goto depot in orders |
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
|
99 |
bool build_rawmaterial_ind; // allow building raw material industries |
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
|
100 |
bool multiple_industry_per_town; // allow many industries of the same type per town |
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
|
101 |
bool same_industry_close; // allow same type industries to be built close to each other |
4870
0ee22ed51ada
(svn r6800) -Feature change: [train is lost] message is now generated immediately when pathfinder can't find the path. (thanks MeusH, peter1138 and Brianetta for ideas and help).
KUDr
parents:
4834
diff
changeset
|
102 |
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
|
103 |
uint8 order_review_system; |
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
|
104 |
bool train_income_warn; // if train is generating little income, show a warning |
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
|
105 |
bool status_long_date; // always show long date in status bar |
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
|
106 |
bool signal_side; // show signals on right side |
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
|
107 |
bool show_finances; // show finances at end of year |
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
|
108 |
bool new_nonstop; // ttdpatch compatible nonstop handling |
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
|
109 |
bool roadveh_queue; // buggy road vehicle queueing |
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
|
110 |
bool autoscroll; // scroll when moving mouse to the edge. |
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
|
111 |
byte errmsg_duration; // duration of error message |
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
|
112 |
byte land_generator; // the landscape generator |
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
|
113 |
byte oil_refinery_limit; // distance oil refineries allowed from map edge |
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
|
114 |
byte snow_line_height; // a number 0-15 that configured snow line height |
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
|
115 |
byte tgen_smoothness; // how rough is the terrain from 0-3 |
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
|
116 |
uint32 generation_seed; // noise seed for world generation |
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
|
117 |
byte tree_placer; // the tree placer algorithm |
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
|
118 |
byte heightmap_rotation; // rotation director for the heightmap |
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
|
119 |
byte se_flat_world_height; // land height a flat world gets in SE |
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
|
120 |
bool bribe; // enable bribing the local authority |
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 |
bool nonuniform_stations; // allow nonuniform train stations |
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
|
122 |
bool always_small_airport; // always allow small airports |
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
|
123 |
bool realistic_acceleration; // realistic acceleration for trains |
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
|
124 |
bool wagon_speed_limits; // enable wagon speed limits |
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
|
125 |
bool forbid_90_deg; // forbid trains to make 90 deg turns |
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
|
126 |
bool invisible_trees; // don't show trees when buildings are transparent |
1037
60bb8079eeea
(svn r1538) -Feature: [988816] Disable servicing when breakdowns set to none (jaguar7)
darkvater
parents:
998
diff
changeset
|
127 |
bool no_servicing_if_no_breakdowns; // dont send vehicles to depot when breakdowns are disabled |
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
|
128 |
bool link_terraform_toolbar; // display terraform toolbar when displaying rail, road, water and airport toolbars |
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
|
129 |
bool reverse_scroll; // Right-Click-Scrolling scrolls in the opposite direction |
5116
2a33a74925c5
(svn r7195) -Feature: [FS#297, optional elrails] New patches/vehicles option 'disable electrified railways'.
KUDr
parents:
5108
diff
changeset
|
130 |
bool disable_elrails; // when true, the elrails are disabled |
4834
ddcf440d0ffd
(svn r6758) -Feature: Add a measurement tool that will show dimensions and height
Darkvater
parents:
4616
diff
changeset
|
131 |
bool measure_tooltip; // Show a permanent tooltip when dragging tools |
4616
baa9d4436b9e
(svn r6474) - Add a patch option to control display of liveries, allowing none, your
peter1138
parents:
4549
diff
changeset
|
132 |
byte liveries; // Options for displaying company liveries, 0=none, 1=self, 2=all |
5107
8791beb0ae51
(svn r7179) -Codechange (r7173): Actually "prefer" team chat through the patch setting instead of
Darkvater
parents:
5102
diff
changeset
|
133 |
bool prefer_teamchat; // Choose the chat message target with <ENTER>, true=all players, false=your team |
0 | 134 |
|
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
|
135 |
uint8 toolbar_pos; // position of toolbars, 0=left, 1=center, 2=right |
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
|
136 |
uint8 window_snap_radius; // Windows snap at each other if closer than this |
0 | 137 |
|
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
|
138 |
UnitID max_trains; // max trains in game per player (these are 16bit because the unitnumber field can't hold more) |
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
|
139 |
UnitID max_roadveh; // max trucks in game per player |
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
|
140 |
UnitID max_aircraft; // max planes in game per player |
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
|
141 |
UnitID max_ships; // max ships in game per player |
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
|
142 |
|
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
|
143 |
bool servint_ispercent; // service intervals are in percents |
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
|
144 |
uint16 servint_trains; // service interval for trains |
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
|
145 |
uint16 servint_roadveh; // service interval for road vehicles |
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
|
146 |
uint16 servint_aircraft; // service interval for aircraft |
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
|
147 |
uint16 servint_ships; // service interval for ships |
0 | 148 |
|
149 |
bool autorenew; |
|
26 | 150 |
int16 autorenew_months; |
151 |
int32 autorenew_money; |
|
0 | 152 |
|
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
|
153 |
byte pf_maxdepth; // maximum recursion depth when searching for a train route for new pathfinder |
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
|
154 |
uint16 pf_maxlength; // maximum length when searching for a train route for new pathfinder |
0 | 155 |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
156 |
|
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
|
157 |
bool bridge_pillars; // show bridge pillars for high bridges |
0 | 158 |
|
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
|
159 |
bool ai_disable_veh_train; // disable types for AI |
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
|
160 |
bool ai_disable_veh_roadveh; // disable types for AI |
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
|
161 |
bool ai_disable_veh_aircraft; // disable types for AI |
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
|
162 |
bool ai_disable_veh_ship; // disable types for AI |
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
|
163 |
Year starting_year; // starting date |
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
|
164 |
Year ending_year; // end of the game (just show highscore) |
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
|
165 |
Year colored_news_year; // when does newspaper become colored? |
0 | 166 |
|
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
|
167 |
bool keep_all_autosave; // name the autosave in a different way. |
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
|
168 |
bool autosave_on_exit; // save an autosave when you quit the game, but do not ask "Do you really want to quit?" |
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
|
169 |
byte max_num_autosaves; // controls how many autosavegames are made before the game starts to overwrite (names them 0 to max_num_autosaves - 1) |
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
|
170 |
bool extra_dynamite; // extra dynamite |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6222
diff
changeset
|
171 |
bool road_stop_on_town_road; // allow building of drive-through road stops on town owned roads |
0 | 172 |
|
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
|
173 |
bool never_expire_vehicles; // never expire vehicles |
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
|
174 |
byte extend_vehicle_life; // extend vehicle life by this many years |
0 | 175 |
|
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
|
176 |
bool auto_euro; // automatically switch to euro in 2002 |
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
|
177 |
bool serviceathelipad; // service helicopters at helipads automatically (no need to send to depot) |
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
|
178 |
bool smooth_economy; // smooth economy |
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
|
179 |
bool allow_shares; // allow the buying/selling of shares |
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
|
180 |
byte dist_local_authority; // distance for town local authority, default 20 |
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
|
181 |
|
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
|
182 |
byte wait_oneway_signal; // waitingtime in days before a oneway signal |
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
|
183 |
byte wait_twoway_signal; // waitingtime in days before a twoway signal |
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
|
184 |
|
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
|
185 |
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
|
186 |
uint8 map_y; |
1218 | 187 |
|
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
|
188 |
byte drag_signals_density; // many signals density |
5939
77530457a36b
(svn r8151) -Feature: Automatically build semaphores before a configurable date, which can be set by each network player seperately.
maedhros
parents:
5936
diff
changeset
|
189 |
Year semaphore_build_before; // Build semaphore signals automatically before this year |
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
|
190 |
bool ainew_active; // Is the new AI active? |
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
|
191 |
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
|
192 |
|
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
|
193 |
/* |
4549
60410aa1aa88
(svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents:
4387
diff
changeset
|
194 |
* New Path Finding |
60410aa1aa88
(svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents:
4387
diff
changeset
|
195 |
*/ |
1247 | 196 |
bool new_pathfinding_all; /* Use the newest pathfinding algorithm for all */ |
197 |
||
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
|
198 |
/** |
4549
60410aa1aa88
(svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents:
4387
diff
changeset
|
199 |
* 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
|
200 |
* 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
|
201 |
* 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
|
202 |
* sophisticated way sometime soon |
60410aa1aa88
(svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents:
4387
diff
changeset
|
203 |
*/ |
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
|
204 |
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
|
205 |
|
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
|
206 |
uint32 npf_rail_firstred_penalty; // The penalty for when the first signal is red (and it is not an exit or combo signal) |
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
|
207 |
uint32 npf_rail_firstred_exit_penalty; // The penalty for when the first signal is red (and it is an exit or combo signal) |
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
|
208 |
uint32 npf_rail_lastred_penalty; // The penalty for when the last signal is red |
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
|
209 |
uint32 npf_rail_station_penalty; // The penalty for station tiles |
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
|
210 |
uint32 npf_rail_slope_penalty; // The penalty for sloping upwards |
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
|
211 |
uint32 npf_rail_curve_penalty; // The penalty for curves |
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
|
212 |
uint32 npf_rail_depot_reverse_penalty; // The penalty for reversing in depots |
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
|
213 |
uint32 npf_buoy_penalty; // The penalty for going over (through) a buoy |
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
|
214 |
uint32 npf_water_curve_penalty; // The penalty for curves |
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
|
215 |
uint32 npf_road_curve_penalty; // The penalty for curves |
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
|
216 |
uint32 npf_crossing_penalty; // The penalty for level crossings |
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
|
217 |
uint32 npf_road_drive_through_penalty; // The penalty for going through a drive-through road stop |
1247 | 218 |
|
835
a22d6bc16a51
(svn r1312) -Add: Patch which is on by default: population in label of the town
truelight
parents:
788
diff
changeset
|
219 |
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
|
220 |
|
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
|
221 |
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
|
222 |
|
3900
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3890
diff
changeset
|
223 |
/** 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
|
224 |
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
|
225 |
|
6615
96d30d65ed35
(svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
bjarni
parents:
6574
diff
changeset
|
226 |
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
|
227 |
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
|
228 |
|
6982
c414fad6c440
(svn r9667) -Feature: Add the concept of cities. A (configurable) proportion of towns can
maedhros
parents:
6950
diff
changeset
|
229 |
uint8 town_growth_rate; ///< Town growth rate |
c414fad6c440
(svn r9667) -Feature: Add the concept of cities. A (configurable) proportion of towns can
maedhros
parents:
6950
diff
changeset
|
230 |
uint8 larger_towns; ///< The number of cities to build. These start off larger and grow twice as fast |
c414fad6c440
(svn r9667) -Feature: Add the concept of cities. A (configurable) proportion of towns can
maedhros
parents:
6950
diff
changeset
|
231 |
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
|
232 |
|
a20ddaf4dc97
(svn r9734) -Feature: Add an option to automatically pause when starting a new game.
maedhros
parents:
6987
diff
changeset
|
233 |
bool pause_on_newgame; ///< Whether to start new games paused or not. |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
234 |
}; |
0 | 235 |
|
236 |
VARDEF Patches _patches; |
|
237 |
||
238 |
||
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
239 |
struct Cheat { |
4237
d10d168c4d48
(svn r5805) -Fix: FS#189 Boolean cheats do not work
bjarni
parents:
4184
diff
changeset
|
240 |
bool been_used; // has this cheat been used before? |
d10d168c4d48
(svn r5805) -Fix: FS#189 Boolean cheats do not work
bjarni
parents:
4184
diff
changeset
|
241 |
bool value; // tells if the bool cheat is active or not |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
242 |
}; |
0 | 243 |
|
244 |
||
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
|
245 |
/* WARNING! Do _not_ remove entries in Cheats struct or change the order |
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
|
246 |
* of the existing ones! Would break downward compatibility. |
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
|
247 |
* Only add new entries at the end of the struct! */ |
0 | 248 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
249 |
struct Cheats { |
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
|
250 |
Cheat magic_bulldozer; // dynamite industries, unmovables |
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
|
251 |
Cheat switch_player; // change to another player |
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
|
252 |
Cheat money; // get rich |
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
|
253 |
Cheat crossing_tunnels; // allow tunnels that cross each other |
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
|
254 |
Cheat build_in_pause; // build while in pause mode |
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
|
255 |
Cheat no_jetcrash; // no jet will crash on small airports anymore |
100 | 256 |
Cheat switch_climate; |
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
|
257 |
Cheat change_date; // changes date ingame |
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
|
258 |
Cheat setup_prod; // setup raw-material production in game |
5116
2a33a74925c5
(svn r7195) -Feature: [FS#297, optional elrails] New patches/vehicles option 'disable electrified railways'.
KUDr
parents:
5108
diff
changeset
|
259 |
Cheat dummy; // empty cheat (enable running el-engines on normal rail) |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
260 |
}; |
0 | 261 |
|
262 |
VARDEF Cheats _cheats; |
|
263 |
||
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
264 |
struct Paths { |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
265 |
char *personal_dir; // includes cfg file and save folder |
0 | 266 |
char *game_data_dir; // includes data, gm, lang |
267 |
char *data_dir; |
|
268 |
char *gm_dir; |
|
269 |
char *lang_dir; |
|
270 |
char *save_dir; |
|
271 |
char *autosave_dir; |
|
272 |
char *scenario_dir; |
|
4300
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4293
diff
changeset
|
273 |
char *heightmap_dir; |
561
e3b9689745ab
(svn r970) Added 2nd data path for all non-windows OSes
bjarni
parents:
543
diff
changeset
|
274 |
char *second_data_dir; |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
275 |
}; |
0 | 276 |
|
5296
6a4aaa66eed3
(svn r7449) -Codechange: Rename _path to _paths as it is technically more correct, but mainly because
Darkvater
parents:
5211
diff
changeset
|
277 |
VARDEF Paths _paths; |
0 | 278 |
|
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
|
279 |
/* NOSAVE: Used in palette animations only, not really important. */ |
0 | 280 |
VARDEF int _timer_counter; |
281 |
||
282 |
||
206 | 283 |
VARDEF uint32 _frame_counter; |
0 | 284 |
|
2422
914a12dee832
(svn r2948) -Fix: the old AI needs a special flag that triggers all kind of special
truelight
parents:
2304
diff
changeset
|
285 |
VARDEF bool _is_old_ai_player; // current player is an oldAI player? (enables a lot of cheats..) |
0 | 286 |
|
287 |
VARDEF bool _do_autosave; |
|
288 |
VARDEF int _autosave_ctr; |
|
289 |
||
290 |
VARDEF byte _display_opt; |
|
6923
6913c8a82cc0
(svn r9563) -Feature: Add more finer control to transparency options, including a new toolbar, accessible from the map menu or Ctrl X. Patch by Wolf01.
peter1138
parents:
6919
diff
changeset
|
291 |
VARDEF byte _transparent_opt; |
0 | 292 |
VARDEF int _caret_timer; |
1688
787400219027
(svn r2192) - Add greater control to the 'message options' window. Now you can turn off the telegraphc ticker sound for summarized messages, or turn off news-messages altogether (you get a red blot to notify you though). The [<][>] set the settings in one way, while clicking on the option itself, cycles it. This commit also 'fixes' bugs [1166973], [1121484] and patch [1169930].
Darkvater
parents:
1643
diff
changeset
|
293 |
VARDEF uint32 _news_display_opt; |
787400219027
(svn r2192) - Add greater control to the 'message options' window. Now you can turn off the telegraphc ticker sound for summarized messages, or turn off news-messages altogether (you get a red blot to notify you though). The [<][>] set the settings in one way, while clicking on the option itself, cycles it. This commit also 'fixes' bugs [1166973], [1121484] and patch [1169930].
Darkvater
parents:
1643
diff
changeset
|
294 |
VARDEF bool _news_ticker_sound; |
0 | 295 |
|
296 |
VARDEF StringID _error_message; |
|
297 |
VARDEF int32 _additional_cash_required; |
|
298 |
||
472
4b15c9f4f969
(svn r723) Increase size of dparam so more parameters can be passed to string output
tron
parents:
350
diff
changeset
|
299 |
VARDEF uint32 _decode_parameters[20]; |
0 | 300 |
|
301 |
VARDEF bool _rightclick_emulate; |
|
302 |
||
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
|
303 |
/* IN/OUT parameters to commands */ |
0 | 304 |
VARDEF byte _yearly_expenses_type; |
305 |
VARDEF TileIndex _terraform_err_tile; |
|
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1958
diff
changeset
|
306 |
VARDEF TileIndex _build_tunnel_endtile; |
0 | 307 |
VARDEF bool _generating_world; |
308 |
||
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
|
309 |
/* Deals with the type of the savegame, independent of extension */ |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
310 |
struct SmallFiosItem { |
2099
22f535ad9eea
(svn r2609) - Feature: remove extension from savegames/scenarios when browsing the folders.
Darkvater
parents:
2090
diff
changeset
|
311 |
int mode; // savegame/scenario type (old, new) |
22f535ad9eea
(svn r2609) - Feature: remove extension from savegames/scenarios when browsing the folders.
Darkvater
parents:
2090
diff
changeset
|
312 |
char name[MAX_PATH]; // name |
22f535ad9eea
(svn r2609) - Feature: remove extension from savegames/scenarios when browsing the folders.
Darkvater
parents:
2090
diff
changeset
|
313 |
char title[255]; // internal name of the game |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
314 |
}; |
0 | 315 |
|
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
|
316 |
/* Used when switching from the intro menu. */ |
0 | 317 |
VARDEF byte _switch_mode; |
172
8d8b3383470d
(svn r173) -Network: [1023231] Debug Code + ErrorBoxes + Load Game/Scenario. Added some more desync debug code and replaced some of the error() calls with some better error boxes. Hopefully find desyncs easier (sign_de)
darkvater
parents:
156
diff
changeset
|
318 |
VARDEF StringID _switch_mode_errorstr; |
0 | 319 |
VARDEF SmallFiosItem _file_to_saveload; |
320 |
||
321 |
||
322 |
||
323 |
VARDEF Vehicle *_place_clicked_vehicle; |
|
324 |
||
6136
1262d3c24277
(svn r8497) -Codechange: Increase the size of the sound/video/music-drivers to 32 bytes (instead of 16) so their actual parameters can be passed. Sound has for example 'bufsize' and 'hz'. Also use the recently introduced StrEmpty().
Darkvater
parents:
5939
diff
changeset
|
325 |
VARDEF char _ini_videodriver[32], _ini_musicdriver[32], _ini_sounddriver[32]; |
0 | 326 |
|
6646
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
327 |
/** Information about a language */ |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
328 |
struct Language { |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
329 |
char *name; ///< The internal name of the language |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
330 |
char *file; ///< The name of the language as it appears on disk |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6417
diff
changeset
|
331 |
}; |
0 | 332 |
|
6646
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
333 |
/** Used for dynamic language support */ |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
334 |
struct DynamicLanguages { |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
335 |
int num; ///< Number of languages |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
336 |
int curr; ///< Currently selected language index |
6670
86c087999542
(svn r9373) -Fix (r9271): the chosen language was not stored nor read properly in/from the cfg.
rubidium
parents:
6646
diff
changeset
|
337 |
char curr_file[MAX_PATH]; ///< Currently selected language file name without path (needed for saving the filename of the loaded language). |
6646
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
338 |
StringID dropdown[MAX_LANG + 1]; ///< List of languages in the settings gui |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
339 |
Language ent[MAX_LANG]; ///< Information about the languages |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
340 |
}; |
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
341 |
|
0e3b3d315288
(svn r9271) -Codechange: make the language pack initialisation a little more clear and extendable (more language paths).
rubidium
parents:
6615
diff
changeset
|
342 |
extern DynamicLanguages _dynlang; // defined in strings.cpp |
0 | 343 |
|
344 |
VARDEF int _num_resolutions; |
|
345 |
VARDEF uint16 _resolutions[32][2]; |
|
346 |
VARDEF uint16 _cur_resolution[2]; |
|
347 |
||
348 |
VARDEF char _savegame_format[8]; |
|
349 |
||
350 |
VARDEF char *_config_file; |
|
983
1be852dcdd4c
(svn r1479) -Added highscore chart (accessible from the difficulty window) with top5 companies for a given difficulty (select the difficulty in the menu)
darkvater
parents:
930
diff
changeset
|
351 |
VARDEF char *_highscore_file; |
704
a526dc96fbfc
(svn r1154) -Add: [Network] Forked dedicated server (start openttd with -Df) (GeniusDex)
truelight
parents:
679
diff
changeset
|
352 |
VARDEF char *_log_file; |
0 | 353 |
|
354 |
||
534
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
355 |
static inline void SetDParamX(uint32 *s, uint n, uint32 v) |
0 | 356 |
{ |
534
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
357 |
s[n] = v; |
0 | 358 |
} |
359 |
||
534
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
360 |
static inline uint32 GetDParamX(const uint32 *s, uint n) |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
361 |
{ |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
362 |
return s[n]; |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
363 |
} |
0 | 364 |
|
534
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
365 |
static inline void SetDParam(uint n, uint32 v) |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
366 |
{ |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
367 |
assert(n < lengthof(_decode_parameters)); |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
368 |
_decode_parameters[n] = v; |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
369 |
} |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
370 |
|
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
371 |
static inline void SetDParam64(uint n, uint64 v) |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
372 |
{ |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
373 |
assert(n + 1 < lengthof(_decode_parameters)); |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
374 |
_decode_parameters[n + 0] = v & 0xffffffff; |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
375 |
_decode_parameters[n + 1] = v >> 32; |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
376 |
} |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
377 |
|
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
378 |
static inline uint32 GetDParam(uint n) |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
379 |
{ |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
380 |
assert(n < lengthof(_decode_parameters)); |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
381 |
return _decode_parameters[n]; |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
382 |
} |
17ab2f22ff74
(svn r901) Small step in the process to clean up the DPARAM mess:
tron
parents:
523
diff
changeset
|
383 |
|
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
|
384 |
/* Used to bind a C string name to a dparam number. |
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
|
385 |
* NOTE: This has a short lifetime. You can't |
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
|
386 |
* use this string much later or it will be gone. */ |
2055
9361b56db8ba
(svn r2564) Fix: Fixed conceptual issue in network_gui.c. AllocateName is not meant to be used by GUI-code, because it modifies the "game-state".
ludde
parents:
2044
diff
changeset
|
387 |
void SetDParamStr(uint n, const char *str); |
9361b56db8ba
(svn r2564) Fix: Fixed conceptual issue in network_gui.c. AllocateName is not meant to be used by GUI-code, because it modifies the "game-state".
ludde
parents:
2044
diff
changeset
|
388 |
|
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
|
389 |
/** This function takes a C-string and allocates a temporary string ID. |
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
|
390 |
* The duration of the bound string is valid only until the next acll to GetString, |
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
|
391 |
* so be careful. */ |
2055
9361b56db8ba
(svn r2564) Fix: Fixed conceptual issue in network_gui.c. AllocateName is not meant to be used by GUI-code, because it modifies the "game-state".
ludde
parents:
2044
diff
changeset
|
392 |
StringID BindCString(const char *str); |
9361b56db8ba
(svn r2564) Fix: Fixed conceptual issue in network_gui.c. AllocateName is not meant to be used by GUI-code, because it modifies the "game-state".
ludde
parents:
2044
diff
changeset
|
393 |
|
0 | 394 |
|
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6982
diff
changeset
|
395 |
#define COPY_IN_DPARAM(offs, src, num) memcpy(_decode_parameters + offs, src, sizeof(uint32) * (num)) |
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6982
diff
changeset
|
396 |
#define COPY_OUT_DPARAM(dst, offs, num) memcpy(dst, _decode_parameters + offs, sizeof(uint32) * (num)) |
0 | 397 |
|
398 |
||
889
7f8630bfea41
(svn r1375) -Fix: [1050990] Buying trains sometimes accounted for incorrectly. Was the result of the cost getting reset in a recursive call of docommand. That is fixed. In addition all cost-commands are typed explicitely. Please do not forget to do so or your costs will be credited to construction if you are unlucky.
darkvater
parents:
842
diff
changeset
|
399 |
#define SET_EXPENSES_TYPE(x) _yearly_expenses_type = x; |
0 | 400 |
|
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
|
401 |
/* landscape.cpp */ |
0 | 402 |
extern const byte _tileh_to_sprite[32]; |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
403 |
extern const Slope _inclined_tileh[16]; |
0 | 404 |
|
405 |
extern const TileTypeProcs * const _tile_type_procs[16]; |
|
406 |
||
407 |
/* misc */ |
|
408 |
VARDEF char _screenshot_name[128]; |
|
409 |
VARDEF byte _vehicle_design_names; |
|
410 |
||
704
a526dc96fbfc
(svn r1154) -Add: [Network] Forked dedicated server (start openttd with -Df) (GeniusDex)
truelight
parents:
679
diff
changeset
|
411 |
/* Forking stuff */ |
a526dc96fbfc
(svn r1154) -Add: [Network] Forked dedicated server (start openttd with -Df) (GeniusDex)
truelight
parents:
679
diff
changeset
|
412 |
VARDEF bool _dedicated_forks; |
a526dc96fbfc
(svn r1154) -Add: [Network] Forked dedicated server (start openttd with -Df) (GeniusDex)
truelight
parents:
679
diff
changeset
|
413 |
|
0 | 414 |
#endif /* VARIABLES_H */ |