author | smatz |
Sun, 17 Feb 2008 17:00:43 +0000 | |
changeset 8586 | cb0e7e00f1d2 |
parent 8213 | 7bdd7593eb9b |
child 8796 | ccf3ed611354 |
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 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
38 |
/* RATINGS AFFECTING NUMBERS */ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
39 |
RATING_TREE_DOWN_STEP = -35, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
40 |
RATING_TREE_MINIMUM = RATING_MINIMUM, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
41 |
RATING_TREE_UP_STEP = 7, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
42 |
RATING_TREE_MAXIMUM = 220, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
43 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
44 |
RATING_TUNNEL_BRIDGE_DOWN_STEP = -250, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
45 |
RATING_TUNNEL_BRIDGE_MINIMUM = 0, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
46 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
47 |
RATING_INDUSTRY_DOWN_STEP = -1500, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
48 |
RATING_INDUSTRY_MINIMUM = RATING_MINIMUM, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
49 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
50 |
RATING_ROAD_DOWN_STEP = -50, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
51 |
RATING_ROAD_MINIMUM = -100, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
52 |
RATING_HOUSE_MINIMUM = RATING_MINIMUM, |
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_BRIBE_UP_STEP = 200, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
55 |
RATING_BRIBE_MAXIMUM = 800, |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
56 |
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
|
57 |
}; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
58 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
59 |
/** |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
60 |
* Town Layouts |
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 |
enum TownLayout { |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
63 |
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
|
64 |
TL_ORIGINAL, ///< Original algorithm (min. 1 distance between roads) |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
65 |
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
|
66 |
TL_2X2_GRID, ///< Geometric 2x2 grid algorithm |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
67 |
TL_3X3_GRID, ///< Geometric 3x3 grid algorithm |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
68 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
69 |
NUM_TLS, ///< Number of town layouts |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
70 |
}; |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
71 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
72 |
/* 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
|
73 |
/** Define basic enum properties */ |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
74 |
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
|
75 |
typedef TinyEnumT<TownLayout> TownLayoutByte; //typedefing-enumification of TownLayout |
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
76 |
|
7bdd7593eb9b
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
diff
changeset
|
77 |
#endif /* TOWN_TYPE_H */ |