author | rubidium |
Fri, 21 Dec 2007 21:50:46 +0000 | |
changeset 8612 | 6414fc21c2f3 |
parent 7814 | src/economy.h@fe643468ad64 |
child 8615 | 6b91ca653bad |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
3 |
/** @file economy_type.h Types related to the economy. */ |
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
4 |
|
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
5 |
#ifndef ECONOMY_TYPE_H |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
6 |
#define ECONOMY_TYPE_H |
0 | 7 |
|
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
8 |
#include "core/overflowsafe_type.hpp" |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
9 |
#include "core/enum_type.hpp" |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
10 |
|
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
11 |
typedef OverflowSafeInt64 Money; |
2506
777ac2d9a98a
(svn r3032) -NewGRF, Feature: Add support for changing base prices.
peter1138
parents:
2261
diff
changeset
|
12 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
13 |
struct Economy { |
7450
4034e2193a9e
(svn r10209) -Fix/Codechange: forgot a few changes of int32 -> Money in the previous commit
rubidium
parents:
7112
diff
changeset
|
14 |
Money max_loan; ///< Maximum possible loan |
4034e2193a9e
(svn r10209) -Fix/Codechange: forgot a few changes of int32 -> Money in the previous commit
rubidium
parents:
7112
diff
changeset
|
15 |
Money max_loan_unround; ///< Economy fluctuation status |
7740
31ef7e9cc0c0
(svn r10541) -Fix [FS#1028]: cargo payment rates overflow.
rubidium
parents:
7450
diff
changeset
|
16 |
uint16 max_loan_unround_fract; ///< Fraction of the unrounded max loan |
0 | 17 |
int fluct; |
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
18 |
byte interest_rate; ///< Interest |
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
19 |
byte infl_amount; ///< inflation amount |
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
20 |
byte infl_amount_pr; ///< "floating" portion of inflation |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
21 |
}; |
0 | 22 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
23 |
struct Subsidy { |
3344
d86c852715fa
(svn r4128) - CodeChange: Add proper semantics for CargoID for such variables instead of using the general byte-type.
Darkvater
parents:
2630
diff
changeset
|
24 |
CargoID cargo_type; |
0 | 25 |
byte age; |
3346
96c5db77aa83
(svn r4130) - CodeChange: Add proper semantics for TownID for such variables instead of using the general uint16-type. We probably need to change GetTown() and IsTownIndex() as well to use TownID.
Darkvater
parents:
3344
diff
changeset
|
26 |
/* from and to can either be TownID, StationID or IndustryID */ |
820
9d311999f866
(svn r1291) -Codechange: prepared subsidies and towns to become an uint16 (happens
truelight
parents:
240
diff
changeset
|
27 |
uint16 from; |
9d311999f866
(svn r1291) -Codechange: prepared subsidies and towns to become an uint16 (happens
truelight
parents:
240
diff
changeset
|
28 |
uint16 to; |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
29 |
}; |
0 | 30 |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
31 |
enum ScoreID { |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
32 |
SCORE_BEGIN = 0, |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
33 |
SCORE_VEHICLES = 0, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
34 |
SCORE_STATIONS = 1, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
35 |
SCORE_MIN_PROFIT = 2, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
36 |
SCORE_MIN_INCOME = 3, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
37 |
SCORE_MAX_INCOME = 4, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
38 |
SCORE_DELIVERED = 5, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
39 |
SCORE_CARGO = 6, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
40 |
SCORE_MONEY = 7, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
41 |
SCORE_LOAN = 8, |
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
42 |
SCORE_TOTAL = 9, ///< This must always be the last entry |
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
43 |
SCORE_END = 10, ///< How many scores are there.. |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
179
diff
changeset
|
44 |
|
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
45 |
SCORE_MAX = 1000 ///< The max score that can be in the performance history |
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
46 |
/* the scores together of score_info is allowed to be more! */ |
116
ca4332a9ec1d
(svn r117) Feature: Performance details window in company league menu (TrueLight)
dominik
parents:
0
diff
changeset
|
47 |
}; |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
48 |
DECLARE_POSTFIX_INCREMENT(ScoreID); |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
49 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
50 |
struct ScoreInfo { |
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
51 |
byte id; ///< Unique ID of the score |
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
52 |
int needed; ///< How much you need to get the perfect score |
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
53 |
int score; ///< How much score it will give |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
54 |
}; |
116
ca4332a9ec1d
(svn r117) Feature: Performance details window in company league menu (TrueLight)
dominik
parents:
0
diff
changeset
|
55 |
|
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
56 |
struct Prices { |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
57 |
Money station_value; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
58 |
Money build_rail; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
59 |
Money build_road; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
60 |
Money build_signals; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
61 |
Money build_bridge; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
62 |
Money build_train_depot; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
63 |
Money build_road_depot; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
64 |
Money build_ship_depot; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
65 |
Money build_tunnel; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
66 |
Money train_station_track; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
67 |
Money train_station_length; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
68 |
Money build_airport; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
69 |
Money build_bus_station; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
70 |
Money build_truck_station; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
71 |
Money build_dock; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
72 |
Money build_railvehicle; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
73 |
Money build_railwagon; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
74 |
Money aircraft_base; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
75 |
Money roadveh_base; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
76 |
Money ship_base; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
77 |
Money build_trees; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
78 |
Money terraform; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
79 |
Money clear_grass; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
80 |
Money clear_roughland; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
81 |
Money clear_rocks; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
82 |
Money clear_fields; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
83 |
Money remove_trees; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
84 |
Money remove_rail; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
85 |
Money remove_signals; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
86 |
Money clear_bridge; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
87 |
Money remove_train_depot; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
88 |
Money remove_road_depot; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
89 |
Money remove_ship_depot; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
90 |
Money clear_tunnel; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
91 |
Money clear_water; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
92 |
Money remove_rail_station; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
93 |
Money remove_airport; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
94 |
Money remove_bus_station; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
95 |
Money remove_truck_station; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
96 |
Money remove_dock; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
97 |
Money remove_house; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
98 |
Money remove_road; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
99 |
Money running_rail[3]; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
100 |
Money aircraft_running; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
101 |
Money roadveh_running; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
102 |
Money ship_running; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
103 |
Money build_industry; |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
104 |
}; |
116
ca4332a9ec1d
(svn r117) Feature: Performance details window in company league menu (TrueLight)
dominik
parents:
0
diff
changeset
|
105 |
|
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
106 |
enum { |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
107 |
NUM_PRICES = 49, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
108 |
}; |
0 | 109 |
|
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
110 |
assert_compile(NUM_PRICES * sizeof(Money) == sizeof(Prices)); |
0 | 111 |
|
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
112 |
enum ExpensesType { |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
113 |
EXPENSES_CONSTRUCTION = 0, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
114 |
EXPENSES_NEW_VEHICLES = 1, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
115 |
EXPENSES_TRAIN_RUN = 2, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
116 |
EXPENSES_ROADVEH_RUN = 3, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
117 |
EXPENSES_AIRCRAFT_RUN = 4, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
118 |
EXPENSES_SHIP_RUN = 5, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
119 |
EXPENSES_PROPERTY = 6, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
120 |
EXPENSES_TRAIN_INC = 7, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
121 |
EXPENSES_ROADVEH_INC = 8, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
122 |
EXPENSES_AIRCRAFT_INC = 9, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
123 |
EXPENSES_SHIP_INC = 10, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
124 |
EXPENSES_LOAN_INT = 11, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
125 |
EXPENSES_OTHER = 12, |
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
126 |
}; |
7061
81d3a68972b5
(svn r9770) -Codechange: perform the payment of cargo when loading/unloading, but when arriving at the station.
rubidium
parents:
6676
diff
changeset
|
127 |
|
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
7814
diff
changeset
|
128 |
#endif /* ECONOMY_TYPE_H */ |