1 /* $Id$ */ |
1 /* $Id$ */ |
|
2 |
|
3 enum { |
|
4 HQ_NUM_TILE = 4, |
|
5 HQ_NUM_SIZE = 5 |
|
6 }; |
2 |
7 |
3 typedef enum UnmovableType { |
8 typedef enum UnmovableType { |
4 UNMOVABLE_TRANSMITTER = 0, |
9 UNMOVABLE_TRANSMITTER = 0, |
5 UNMOVABLE_LIGHTHOUSE = 1, |
10 UNMOVABLE_LIGHTHOUSE = 1, |
6 UNMOVABLE_STATUE = 2, |
11 UNMOVABLE_STATUE = 2, |
7 UNMOVABLE_OWNED_LAND = 3, |
12 UNMOVABLE_OWNED_LAND = 3, |
8 UNMOVABLE_HQ_NORTH = 0x80, |
13 UNMOVABLE_HQ_NORTH = 0x80, |
9 UNMOVABLE_HQ_WEST = 0x81, |
14 UNMOVABLE_HQ_WEST = 0x81, |
10 UNMOVABLE_HQ_EAST = 0x82, |
15 UNMOVABLE_HQ_EAST = 0x82, |
11 UNMOVABLE_HQ_SOUTH = 0x83, |
16 UNMOVABLE_HQ_SOUTH = 0x83, |
|
17 |
|
18 UNMOVABLE_HQ_END = UNMOVABLE_HQ_NORTH + HQ_NUM_SIZE * HQ_NUM_TILE |
12 } UnmovableType; |
19 } UnmovableType; |
|
20 |
13 |
21 |
14 |
22 |
15 static inline UnmovableType GetUnmovableType(TileIndex t) |
23 static inline UnmovableType GetUnmovableType(TileIndex t) |
16 { |
24 { |
17 assert(IsTileType(t, MP_UNMOVABLE)); |
25 assert(IsTileType(t, MP_UNMOVABLE)); |
34 } |
42 } |
35 |
43 |
36 static inline bool IsOwnedLandTile(TileIndex t) |
44 static inline bool IsOwnedLandTile(TileIndex t) |
37 { |
45 { |
38 return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t); |
46 return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t); |
|
47 } |
|
48 |
|
49 static inline bool IsCompanyHQ(TileIndex t) |
|
50 { |
|
51 return IS_INT_INSIDE(GetUnmovableType(t), UNMOVABLE_HQ_NORTH, UNMOVABLE_HQ_END); |
|
52 } |
|
53 |
|
54 static inline byte GetCompanyHQSize(TileIndex t) |
|
55 { |
|
56 assert(IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t)); |
|
57 return GB(_m[t].m5, 2, 3); |
|
58 } |
|
59 |
|
60 static inline byte GetCompanyHQSection(TileIndex t) |
|
61 { |
|
62 assert(IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t)); |
|
63 return GB(_m[t].m5, 0, 5); |
39 } |
64 } |
40 |
65 |
41 |
66 |
42 static inline void EnlargeCompanyHQ(TileIndex t, byte size) |
67 static inline void EnlargeCompanyHQ(TileIndex t, byte size) |
43 { |
68 { |