author | rubidium |
Sun, 25 May 2008 19:17:03 +0000 | |
changeset 9354 | 845e07db4549 |
parent 9342 | 6daf441eee26 |
child 9478 | d3fc1597603e |
permissions | -rw-r--r-- |
8213
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
1 |
/* $Id$ */ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
2 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
3 |
/** @file town_type.h Types related to towns. */ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
4 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
5 |
#ifndef TOWN_TYPE_H |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
6 |
#define TOWN_TYPE_H |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
7 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
8 |
#include "core/enum_type.hpp" |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
9 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
10 |
typedef uint16 TownID; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
11 |
typedef uint16 HouseID; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
12 |
typedef uint16 HouseClassID; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
13 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
14 |
struct Town; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
15 |
struct HouseSpec; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
16 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
17 |
enum TownSizeMode { |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
18 |
TSM_RANDOM, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
19 |
TSM_FIXED, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
20 |
TSM_CITY |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
21 |
}; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
22 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
23 |
enum { |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
24 |
/* These refer to the maximums, so Appalling is -1000 to -400 |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
25 |
* MAXIMUM RATINGS BOUNDARIES */ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
26 |
RATING_MINIMUM = -1000, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
27 |
RATING_APPALLING = -400, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
28 |
RATING_VERYPOOR = -200, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
29 |
RATING_POOR = 0, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
30 |
RATING_MEDIOCRE = 200, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
31 |
RATING_GOOD = 400, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
32 |
RATING_VERYGOOD = 600, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
33 |
RATING_EXCELLENT = 800, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
34 |
RATING_OUTSTANDING = 1000, ///< OUTSTANDING |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
35 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
36 |
RATING_MAXIMUM = RATING_OUTSTANDING, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
37 |
|
8814
bff94f5654b5
(svn r12560) -Cleanup: town_cmd.cpp and header files - variable scope and a bit of coding style
smatz
parents:
8796
diff
changeset
|
38 |
RATING_INITIAL = 500, ///< initial rating |
bff94f5654b5
(svn r12560) -Cleanup: town_cmd.cpp and header files - variable scope and a bit of coding style
smatz
parents:
8796
diff
changeset
|
39 |
|
8213
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
40 |
/* RATINGS AFFECTING NUMBERS */ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
41 |
RATING_TREE_DOWN_STEP = -35, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
42 |
RATING_TREE_MINIMUM = RATING_MINIMUM, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
43 |
RATING_TREE_UP_STEP = 7, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
44 |
RATING_TREE_MAXIMUM = 220, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
45 |
|
8814
bff94f5654b5
(svn r12560) -Cleanup: town_cmd.cpp and header files - variable scope and a bit of coding style
smatz
parents:
8796
diff
changeset
|
46 |
RATING_GROWTH_UP_STEP = 5, ///< when a town grows, all players have rating increased a bit ... |
bff94f5654b5
(svn r12560) -Cleanup: town_cmd.cpp and header files - variable scope and a bit of coding style
smatz
parents:
8796
diff
changeset
|
47 |
RATING_GROWTH_MAXIMUM = RATING_MEDIOCRE, ///< ... up to RATING_MEDIOCRE |
bff94f5654b5
(svn r12560) -Cleanup: town_cmd.cpp and header files - variable scope and a bit of coding style
smatz
parents:
8796
diff
changeset
|
48 |
RATING_STATION_UP_STEP = 12, ///< when a town grows, player gains reputation for all well serviced stations ... |
bff94f5654b5
(svn r12560) -Cleanup: town_cmd.cpp and header files - variable scope and a bit of coding style
smatz
parents:
8796
diff
changeset
|
49 |
RATING_STATION_DOWN_STEP = -15, ///< ... but loses for bad serviced stations |
bff94f5654b5
(svn r12560) -Cleanup: town_cmd.cpp and header files - variable scope and a bit of coding style
smatz
parents:
8796
diff
changeset
|
50 |
|
8213
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
51 |
RATING_TUNNEL_BRIDGE_DOWN_STEP = -250, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
52 |
RATING_TUNNEL_BRIDGE_MINIMUM = 0, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
53 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
54 |
RATING_INDUSTRY_DOWN_STEP = -1500, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
55 |
RATING_INDUSTRY_MINIMUM = RATING_MINIMUM, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
56 |
|
9342
6daf441eee26
(svn r13234) -Fix: Check/affect town rating when removing/bulldozing town-owned road under drivethrough stops.
frosch
parents:
8814
diff
changeset
|
57 |
RATING_ROAD_DOWN_STEP_INNER = -50, ///< removing a roadpiece in the middle |
6daf441eee26
(svn r13234) -Fix: Check/affect town rating when removing/bulldozing town-owned road under drivethrough stops.
frosch
parents:
8814
diff
changeset
|
58 |
RATING_ROAD_DOWN_STEP_EDGE = -18, ///< removing a roadpiece at the edge |
8213
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
59 |
RATING_ROAD_MINIMUM = -100, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
60 |
RATING_HOUSE_MINIMUM = RATING_MINIMUM, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
61 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
62 |
RATING_BRIBE_UP_STEP = 200, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
63 |
RATING_BRIBE_MAXIMUM = 800, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
64 |
RATING_BRIBE_DOWN_TO = -50 // XXX SHOULD BE SOMETHING LOWER? |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
65 |
}; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
66 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
67 |
/** |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
68 |
* Town Layouts |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
69 |
*/ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
70 |
enum TownLayout { |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
71 |
TL_NO_ROADS = 0, ///< Build no more roads, but still build houses |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
72 |
TL_ORIGINAL, ///< Original algorithm (min. 1 distance between roads) |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
73 |
TL_BETTER_ROADS, ///< Extended original algorithm (min. 2 distance between roads) |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
74 |
TL_2X2_GRID, ///< Geometric 2x2 grid algorithm |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
75 |
TL_3X3_GRID, ///< Geometric 3x3 grid algorithm |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
76 |
|
8796
ccf3ed611354
(svn r12534) -Feature: Add a new type of town road layouts - random for each town
skidd13
parents:
8213
diff
changeset
|
77 |
TL_RANDOM, ///< Random town layout |
ccf3ed611354
(svn r12534) -Feature: Add a new type of town road layouts - random for each town
skidd13
parents:
8213
diff
changeset
|
78 |
|
8213
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
79 |
NUM_TLS, ///< Number of town layouts |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
80 |
}; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
81 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
82 |
/* It needs to be 8bits, because we save and load it as such */ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
83 |
/** Define basic enum properties */ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
84 |
template <> struct EnumPropsT<TownLayout> : MakeEnumPropsT<TownLayout, byte, TL_NO_ROADS, NUM_TLS, NUM_TLS> {}; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
85 |
typedef TinyEnumT<TownLayout> TownLayoutByte; //typedefing-enumification of TownLayout |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
86 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
87 |
#endif /* TOWN_TYPE_H */ |