author | skidd13 |
Tue, 20 Nov 2007 14:11:19 +0000 | |
changeset 8428 | f8300c908bd9 |
parent 7814 | fe643468ad64 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
3 |
/** @file economy.h */ |
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
4 |
|
0 | 5 |
#ifndef ECONOMY_H |
6 |
#define ECONOMY_H |
|
7 |
||
6573 | 8 |
void ResetPriceBaseMultipliers(); |
2508
c1a1af1920ce
(svn r3034) -NewGRF: Improve error checking of setting price bases.
peter1138
parents:
2506
diff
changeset
|
9 |
void SetPriceBaseMultiplier(uint price, byte factor); |
2506
777ac2d9a98a
(svn r3032) -NewGRF, Feature: Add support for changing base prices.
peter1138
parents:
2261
diff
changeset
|
10 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
11 |
struct Economy { |
7450
4034e2193a9e
(svn r10209) -Fix/Codechange: forgot a few changes of int32 -> Money in the previous commit
rubidium
parents:
7112
diff
changeset
|
12 |
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
|
13 |
Money max_loan_unround; ///< Economy fluctuation status |
7740
31ef7e9cc0c0
(svn r10541) -Fix [FS#1028]: cargo payment rates overflow.
rubidium
parents:
7450
diff
changeset
|
14 |
uint16 max_loan_unround_fract; ///< Fraction of the unrounded max loan |
0 | 15 |
int fluct; |
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
16 |
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
|
17 |
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
|
18 |
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
|
19 |
}; |
0 | 20 |
|
21 |
VARDEF Economy _economy; |
|
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 |
|
31 |
||
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
32 |
enum ScoreID { |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
33 |
SCORE_BEGIN = 0, |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
34 |
SCORE_VEHICLES = 0, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
35 |
SCORE_STATIONS = 1, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
36 |
SCORE_MIN_PROFIT = 2, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
37 |
SCORE_MIN_INCOME = 3, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
38 |
SCORE_MAX_INCOME = 4, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
39 |
SCORE_DELIVERED = 5, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
40 |
SCORE_CARGO = 6, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
41 |
SCORE_MONEY = 7, |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
3386
diff
changeset
|
42 |
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
|
43 |
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
|
44 |
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
|
45 |
|
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
46 |
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
|
47 |
/* 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
|
48 |
}; |
ca4332a9ec1d
(svn r117) Feature: Performance details window in company league menu (TrueLight)
dominik
parents:
0
diff
changeset
|
49 |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
50 |
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
|
51 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
52 |
struct ScoreInfo { |
6451
7baba06b4b85
(svn r8862) -Cleanup: doxygen changes, again. Mostly @files missing tags and a few comments style.
belugas
parents:
5838
diff
changeset
|
53 |
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
|
54 |
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
|
55 |
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
|
56 |
}; |
116
ca4332a9ec1d
(svn r117) Feature: Performance details window in company league menu (TrueLight)
dominik
parents:
0
diff
changeset
|
57 |
|
2261
3f78323707bb
(svn r2781) Fix some of the issues with variables in .h files.
ludde
parents:
2186
diff
changeset
|
58 |
extern const ScoreInfo _score_info[]; |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5726
diff
changeset
|
59 |
extern int _score_part[MAX_PLAYERS][SCORE_END]; |
116
ca4332a9ec1d
(svn r117) Feature: Performance details window in company league menu (TrueLight)
dominik
parents:
0
diff
changeset
|
60 |
|
147
d0c8100d18cf
(svn r148) -Feature: Company HQ can now be moved somewhere else (cost 1% of company value). Water floods HQ.
darkvater
parents:
116
diff
changeset
|
61 |
int UpdateCompanyRatingAndValue(Player *p, bool update); |
116
ca4332a9ec1d
(svn r117) Feature: Performance details window in company league menu (TrueLight)
dominik
parents:
0
diff
changeset
|
62 |
|
0 | 63 |
VARDEF Subsidy _subsidies[MAX_PLAYERS]; |
7814
fe643468ad64
(svn r10673) -Cleanup: some assorted style cleanups. Primarily type* var -> type *var.
rubidium
parents:
7740
diff
changeset
|
64 |
Pair SetupSubsidyDecodeParam(const Subsidy *s, bool mode); |
5566
02b1ecccc540
(svn r7563) -Fix (FS#468): removing towns in the scenario editor could leave subsidies with that town as source/destination, resulting in an assertion when displaying the Subsidies Window.
rubidium
parents:
4077
diff
changeset
|
65 |
void DeleteSubsidyWithTown(TownID index); |
02b1ecccc540
(svn r7563) -Fix (FS#468): removing towns in the scenario editor could leave subsidies with that town as source/destination, resulting in an assertion when displaying the Subsidies Window.
rubidium
parents:
4077
diff
changeset
|
66 |
void DeleteSubsidyWithIndustry(IndustryID index); |
02b1ecccc540
(svn r7563) -Fix (FS#468): removing towns in the scenario editor could leave subsidies with that town as source/destination, resulting in an assertion when displaying the Subsidies Window.
rubidium
parents:
4077
diff
changeset
|
67 |
void DeleteSubsidyWithStation(StationID index); |
0 | 68 |
|
7450
4034e2193a9e
(svn r10209) -Fix/Codechange: forgot a few changes of int32 -> Money in the previous commit
rubidium
parents:
7112
diff
changeset
|
69 |
Money GetTransportedGoodsIncome(uint num_pieces, uint dist, byte transit_days, CargoID cargo_type); |
6676
30aea9ac89bc
(svn r9388) -Codechange: variable scope and type, and standardify all CargoID loops.
peter1138
parents:
6574
diff
changeset
|
70 |
uint MoveGoodsToStation(TileIndex tile, int w, int h, CargoID type, uint amount); |
0 | 71 |
|
7061
81d3a68972b5
(svn r9770) -Codechange: perform the payment of cargo when loading/unloading, but when arriving at the station.
rubidium
parents:
6676
diff
changeset
|
72 |
void VehiclePayment(Vehicle *front_v); |
7112
fcac9e881b43
(svn r9836) -Codechange: make non-improved loading happen FIFO-ish; generally loading/unloading will happen fifo, but there are no guarantees on the FIFO-ness. For (better) FIFO guarantees you still need to use improved loading.
rubidium
parents:
7061
diff
changeset
|
73 |
void LoadUnloadStation(Station *st); |
7061
81d3a68972b5
(svn r9770) -Codechange: perform the payment of cargo when loading/unloading, but when arriving at the station.
rubidium
parents:
6676
diff
changeset
|
74 |
|
0 | 75 |
#endif /* ECONOMY_H */ |