9723
|
1 |
/* $Id$ */
|
|
2 |
|
|
3 |
/** @file economy_type.h Types related to the economy. */
|
|
4 |
|
|
5 |
#ifndef ECONOMY_TYPE_H
|
|
6 |
#define ECONOMY_TYPE_H
|
|
7 |
|
|
8 |
#include "core/overflowsafe_type.hpp"
|
|
9 |
#include "core/enum_type.hpp"
|
|
10 |
#include "cargo_type.h"
|
|
11 |
|
|
12 |
typedef OverflowSafeInt64 Money;
|
|
13 |
|
|
14 |
struct Economy {
|
|
15 |
Money max_loan; ///< Maximum possible loan
|
|
16 |
Money max_loan_unround; ///< Economy fluctuation status
|
|
17 |
uint16 max_loan_unround_fract; ///< Fraction of the unrounded max loan
|
|
18 |
int fluct;
|
|
19 |
byte interest_rate; ///< Interest
|
|
20 |
byte infl_amount; ///< inflation amount
|
|
21 |
byte infl_amount_pr; ///< "floating" portion of inflation
|
|
22 |
};
|
|
23 |
|
|
24 |
struct Subsidy {
|
|
25 |
CargoID cargo_type;
|
|
26 |
byte age;
|
|
27 |
/* from and to can either be TownID, StationID or IndustryID */
|
|
28 |
uint16 from;
|
|
29 |
uint16 to;
|
|
30 |
};
|
|
31 |
|
|
32 |
enum ScoreID {
|
|
33 |
SCORE_BEGIN = 0,
|
|
34 |
SCORE_VEHICLES = 0,
|
|
35 |
SCORE_STATIONS = 1,
|
|
36 |
SCORE_MIN_PROFIT = 2,
|
|
37 |
SCORE_MIN_INCOME = 3,
|
|
38 |
SCORE_MAX_INCOME = 4,
|
|
39 |
SCORE_DELIVERED = 5,
|
|
40 |
SCORE_CARGO = 6,
|
|
41 |
SCORE_MONEY = 7,
|
|
42 |
SCORE_LOAN = 8,
|
|
43 |
SCORE_TOTAL = 9, ///< This must always be the last entry
|
|
44 |
SCORE_END = 10, ///< How many scores are there..
|
|
45 |
|
|
46 |
SCORE_MAX = 1000 ///< The max score that can be in the performance history
|
|
47 |
/* the scores together of score_info is allowed to be more! */
|
|
48 |
};
|
|
49 |
DECLARE_POSTFIX_INCREMENT(ScoreID);
|
|
50 |
|
|
51 |
struct ScoreInfo {
|
|
52 |
byte id; ///< Unique ID of the score
|
|
53 |
int needed; ///< How much you need to get the perfect score
|
|
54 |
int score; ///< How much score it will give
|
|
55 |
};
|
|
56 |
|
|
57 |
struct Prices {
|
|
58 |
Money station_value;
|
|
59 |
Money build_rail;
|
|
60 |
Money build_road;
|
|
61 |
Money build_signals;
|
|
62 |
Money build_bridge;
|
|
63 |
Money build_train_depot;
|
|
64 |
Money build_road_depot;
|
|
65 |
Money build_ship_depot;
|
|
66 |
Money build_tunnel;
|
|
67 |
Money train_station_track;
|
|
68 |
Money train_station_length;
|
|
69 |
Money build_airport;
|
|
70 |
Money build_bus_station;
|
|
71 |
Money build_truck_station;
|
|
72 |
Money build_dock;
|
|
73 |
Money build_railvehicle;
|
|
74 |
Money build_railwagon;
|
|
75 |
Money aircraft_base;
|
|
76 |
Money roadveh_base;
|
|
77 |
Money ship_base;
|
|
78 |
Money build_trees;
|
|
79 |
Money terraform;
|
|
80 |
Money clear_grass;
|
|
81 |
Money clear_roughland;
|
|
82 |
Money clear_rocks;
|
|
83 |
Money clear_fields;
|
|
84 |
Money remove_trees;
|
|
85 |
Money remove_rail;
|
|
86 |
Money remove_signals;
|
|
87 |
Money clear_bridge;
|
|
88 |
Money remove_train_depot;
|
|
89 |
Money remove_road_depot;
|
|
90 |
Money remove_ship_depot;
|
|
91 |
Money clear_tunnel;
|
|
92 |
Money clear_water;
|
|
93 |
Money remove_rail_station;
|
|
94 |
Money remove_airport;
|
|
95 |
Money remove_bus_station;
|
|
96 |
Money remove_truck_station;
|
|
97 |
Money remove_dock;
|
|
98 |
Money remove_house;
|
|
99 |
Money remove_road;
|
|
100 |
Money running_rail[3];
|
|
101 |
Money aircraft_running;
|
|
102 |
Money roadveh_running;
|
|
103 |
Money ship_running;
|
|
104 |
Money build_industry;
|
|
105 |
};
|
|
106 |
|
|
107 |
enum {
|
|
108 |
NUM_PRICES = 49,
|
|
109 |
};
|
|
110 |
|
|
111 |
assert_compile(NUM_PRICES * sizeof(Money) == sizeof(Prices));
|
|
112 |
|
|
113 |
enum ExpensesType {
|
|
114 |
EXPENSES_CONSTRUCTION = 0,
|
|
115 |
EXPENSES_NEW_VEHICLES = 1,
|
|
116 |
EXPENSES_TRAIN_RUN = 2,
|
|
117 |
EXPENSES_ROADVEH_RUN = 3,
|
|
118 |
EXPENSES_AIRCRAFT_RUN = 4,
|
|
119 |
EXPENSES_SHIP_RUN = 5,
|
|
120 |
EXPENSES_PROPERTY = 6,
|
|
121 |
EXPENSES_TRAIN_INC = 7,
|
|
122 |
EXPENSES_ROADVEH_INC = 8,
|
|
123 |
EXPENSES_AIRCRAFT_INC = 9,
|
|
124 |
EXPENSES_SHIP_INC = 10,
|
|
125 |
EXPENSES_LOAN_INT = 11,
|
|
126 |
EXPENSES_OTHER = 12,
|
|
127 |
INVALID_EXPENSES = 0xFF,
|
|
128 |
};
|
|
129 |
|
|
130 |
#endif /* ECONOMY_TYPE_H */
|