author | rubidium |
Sun, 06 Apr 2008 23:07:42 +0000 | |
branch | noai |
changeset 9869 | 6404afe43575 |
parent 9723 | eee46cb39750 |
child 10715 | 6bdf79ffb022 |
permissions | -rw-r--r-- |
9723 | 1 |
/* $Id$ */ |
2 |
||
3 |
/** @file town_type.h Types related to towns. */ |
|
4 |
||
5 |
#ifndef TOWN_TYPE_H |
|
6 |
#define TOWN_TYPE_H |
|
7 |
||
8 |
#include "core/enum_type.hpp" |
|
9 |
||
10 |
typedef uint16 TownID; |
|
11 |
typedef uint16 HouseID; |
|
12 |
typedef uint16 HouseClassID; |
|
13 |
||
14 |
struct Town; |
|
15 |
struct HouseSpec; |
|
16 |
||
17 |
enum TownSizeMode { |
|
18 |
TSM_RANDOM, |
|
19 |
TSM_FIXED, |
|
20 |
TSM_CITY |
|
21 |
}; |
|
22 |
||
23 |
enum { |
|
24 |
/* These refer to the maximums, so Appalling is -1000 to -400 |
|
25 |
* MAXIMUM RATINGS BOUNDARIES */ |
|
26 |
RATING_MINIMUM = -1000, |
|
27 |
RATING_APPALLING = -400, |
|
28 |
RATING_VERYPOOR = -200, |
|
29 |
RATING_POOR = 0, |
|
30 |
RATING_MEDIOCRE = 200, |
|
31 |
RATING_GOOD = 400, |
|
32 |
RATING_VERYGOOD = 600, |
|
33 |
RATING_EXCELLENT = 800, |
|
34 |
RATING_OUTSTANDING = 1000, ///< OUTSTANDING |
|
35 |
||
36 |
RATING_MAXIMUM = RATING_OUTSTANDING, |
|
37 |
||
9869
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
38 |
RATING_INITIAL = 500, ///< initial rating |
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
39 |
|
9723 | 40 |
/* RATINGS AFFECTING NUMBERS */ |
41 |
RATING_TREE_DOWN_STEP = -35, |
|
42 |
RATING_TREE_MINIMUM = RATING_MINIMUM, |
|
43 |
RATING_TREE_UP_STEP = 7, |
|
44 |
RATING_TREE_MAXIMUM = 220, |
|
45 |
||
9869
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
46 |
RATING_GROWTH_UP_STEP = 5, ///< when a town grows, all players have rating increased a bit ... |
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
47 |
RATING_GROWTH_MAXIMUM = RATING_MEDIOCRE, ///< ... up to RATING_MEDIOCRE |
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
48 |
RATING_STATION_UP_STEP = 12, ///< when a town grows, player gains reputation for all well serviced stations ... |
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
49 |
RATING_STATION_DOWN_STEP = -15, ///< ... but loses for bad serviced stations |
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
50 |
|
9723 | 51 |
RATING_TUNNEL_BRIDGE_DOWN_STEP = -250, |
52 |
RATING_TUNNEL_BRIDGE_MINIMUM = 0, |
|
53 |
||
54 |
RATING_INDUSTRY_DOWN_STEP = -1500, |
|
55 |
RATING_INDUSTRY_MINIMUM = RATING_MINIMUM, |
|
56 |
||
57 |
RATING_ROAD_DOWN_STEP = -50, |
|
58 |
RATING_ROAD_MINIMUM = -100, |
|
59 |
RATING_HOUSE_MINIMUM = RATING_MINIMUM, |
|
60 |
||
61 |
RATING_BRIBE_UP_STEP = 200, |
|
62 |
RATING_BRIBE_MAXIMUM = 800, |
|
63 |
RATING_BRIBE_DOWN_TO = -50 // XXX SHOULD BE SOMETHING LOWER? |
|
64 |
}; |
|
65 |
||
66 |
/** |
|
67 |
* Town Layouts |
|
68 |
*/ |
|
69 |
enum TownLayout { |
|
70 |
TL_NO_ROADS = 0, ///< Build no more roads, but still build houses |
|
71 |
TL_ORIGINAL, ///< Original algorithm (min. 1 distance between roads) |
|
72 |
TL_BETTER_ROADS, ///< Extended original algorithm (min. 2 distance between roads) |
|
73 |
TL_2X2_GRID, ///< Geometric 2x2 grid algorithm |
|
74 |
TL_3X3_GRID, ///< Geometric 3x3 grid algorithm |
|
75 |
||
9869
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
76 |
TL_RANDOM, ///< Random town layout |
6404afe43575
(svn r12597) [NoAI] -Sync: with trunk r12501:12596.
rubidium
parents:
9723
diff
changeset
|
77 |
|
9723 | 78 |
NUM_TLS, ///< Number of town layouts |
79 |
}; |
|
80 |
||
81 |
/* It needs to be 8bits, because we save and load it as such */ |
|
82 |
/** Define basic enum properties */ |
|
83 |
template <> struct EnumPropsT<TownLayout> : MakeEnumPropsT<TownLayout, byte, TL_NO_ROADS, NUM_TLS, NUM_TLS> {}; |
|
84 |
typedef TinyEnumT<TownLayout> TownLayoutByte; //typedefing-enumification of TownLayout |
|
85 |
||
86 |
#endif /* TOWN_TYPE_H */ |