annotate src/unmovable_map.h @ 7272:dc7fb38ec443 draft

(svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs.
author rubidium <rubidium@openttd.org>
date Mon, 16 Jul 2007 23:55:22 +0000
parents 5459e8d2dc0d
children 38bb7c45688f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
1 /* $Id$ */
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
2
6423
72ac8bfaa32f (svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents: 6257
diff changeset
3 /** @file unmovable_map.h */
72ac8bfaa32f (svn r9559) -Documentation: doxygen and comment changes: 'U' and 'V' now. Almost done. Yeah. I know, I've already said that...
belugas <belugas@openttd.org>
parents: 6257
diff changeset
4
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
5 #ifndef UNMOVABLE_MAP_H
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
6 #define UNMOVABLE_MAP_H
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
7
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
8 enum {
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
9 HQ_NUM_TILE = 4, ///< Number of HQ tiles
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
10 HQ_NUM_SIZE = 5 ///< Number of stages of an HQ
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
11 };
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
12
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
13 /** Types of unmovable structure */
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 5587
diff changeset
14 enum UnmovableType {
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
15 UNMOVABLE_TRANSMITTER = 0, ///< The large antenna
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
16 UNMOVABLE_LIGHTHOUSE = 1, ///< The nice lighthouse
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
17 UNMOVABLE_STATUE = 2, ///< Statue in towns
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
18 UNMOVABLE_OWNED_LAND = 3, ///< Owned land 'flag'
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
19 UNMOVABLE_HQ_NORTH = 0x80, ///< Offset for the northern HQ tile
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
20 UNMOVABLE_HQ_WEST = 0x81, ///< Offset for the western HQ tile
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
21 UNMOVABLE_HQ_EAST = 0x82, ///< Offset for the eastern HQ tile
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
22 UNMOVABLE_HQ_SOUTH = 0x83, ///< Offset for the southern HQ tile
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
23
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
24 /** End of the HQ (rather end + 1 for IS_INT_INSIDE) */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
25 UNMOVABLE_HQ_END = UNMOVABLE_HQ_NORTH + HQ_NUM_SIZE * HQ_NUM_TILE
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 5587
diff changeset
26 };
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
27
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
28
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
29
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
30 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
31 * Gets the UnmovableType of the given unmovable tile
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
32 * @param t the tile to get the type from.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
33 * @pre IsTileType(t, MP_UNMOVABLE)
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
34 * @return the type.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
35 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
36 static inline UnmovableType GetUnmovableType(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
37 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
38 assert(IsTileType(t, MP_UNMOVABLE));
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5475
diff changeset
39 return (UnmovableType)_m[t].m5;
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
40 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
41
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
42 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
43 * Does the given tile have a transmitter?
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
44 * @param t the tile to inspect.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
45 * @return true if and only if the tile has a transmitter.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
46 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
47 static inline bool IsTransmitterTile(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
48 {
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
49 return IsTileType(t, MP_UNMOVABLE) && GetUnmovableType(t) == UNMOVABLE_TRANSMITTER;
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
50 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
51
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
52 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
53 * Is this unmovable tile an 'owned land' tile?
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
54 * @param t the tile to inspect.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
55 * @pre IsTileType(t, MP_UNMOVABLE)
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
56 * @return true if and only if the tile is an 'owned land' tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
57 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
58 static inline bool IsOwnedLand(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
59 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
60 assert(IsTileType(t, MP_UNMOVABLE));
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
61 return GetUnmovableType(t) == UNMOVABLE_OWNED_LAND;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
62 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
63
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
64 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
65 * Is the given tile (pre-)owned by someone (the little flags)?
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
66 * @param t the tile to inspect.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
67 * @return true if and only if the tile is an 'owned land' tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
68 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
69 static inline bool IsOwnedLandTile(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
70 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
71 return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
72 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
73
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
74 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
75 * Is this unmovable tile a HQ tile?
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
76 * @param t the tile to inspect.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
77 * @pre IsTileType(t, MP_UNMOVABLE)
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
78 * @return true if and only if the tile is a HQ tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
79 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
80 static inline bool IsCompanyHQ(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
81 {
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
82 assert(IsTileType(t, MP_UNMOVABLE));
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
83 return IS_INT_INSIDE(GetUnmovableType(t), UNMOVABLE_HQ_NORTH, UNMOVABLE_HQ_END);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
84 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
85
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
86 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
87 * Is this unmovable tile a statue?
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
88 * @param t the tile to inspect.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
89 * @pre IsTileType(t, MP_UNMOVABLE)
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
90 * @return true if and only if the tile is a statue.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
91 */
6257
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
92 static inline bool IsStatue(TileIndex t)
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
93 {
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
94 assert(IsTileType(t, MP_UNMOVABLE));
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
95 return GetUnmovableType(t) == UNMOVABLE_STATUE;
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
96 }
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
97
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
98 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
99 * Is the given tile a statue?
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
100 * @param t the tile to inspect.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
101 * @return true if and only if the tile is a statue.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
102 */
6257
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
103 static inline bool IsStatueTile(TileIndex t)
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
104 {
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
105 return IsTileType(t, MP_UNMOVABLE) && IsStatue(t);
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
106 }
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
107
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
108 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
109 * Get the town of the given statue tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
110 * @param t the tile of the statue.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
111 * @pre IsStatueTile(t)
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
112 * @return the town the given statue is in.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
113 */
6257
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
114 static inline TownID GetStatueTownID(TileIndex t)
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
115 {
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
116 assert(IsStatueTile(t));
6257
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
117 return _m[t].m2;
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
118 }
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
119
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
120 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
121 * Get the 'stage' of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
122 * @param t a tile of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
123 * @pre IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t)
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
124 * @return the 'stage' of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
125 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
126 static inline byte GetCompanyHQSize(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
127 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
128 assert(IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t));
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
129 return GB(_m[t].m5, 2, 3);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
130 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
131
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
132 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
133 * Get the 'section' (including stage) of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
134 * @param t a tile of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
135 * @pre IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t)
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
136 * @return the 'section' of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
137 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
138 static inline byte GetCompanyHQSection(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
139 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
140 assert(IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t));
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
141 return GB(_m[t].m5, 0, 5);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
142 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
143
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
144 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
145 * Enlarge the given HQ to the given size. If the new size
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
146 * is larger than the current size, nothing happens.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
147 * @param t the tile of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
148 * @param size the new size of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
149 * @pre t is the northern tile of the HQ
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
150 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
151 static inline void EnlargeCompanyHQ(TileIndex t, byte size)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
152 {
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
153 assert(GB(GetCompanyHQSection(t), 0, 2) == 0);
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
154
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
155 size *= 4;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
156 if (size <= _m[t].m5 - UNMOVABLE_HQ_NORTH) return;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
157
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
158 _m[t + TileDiffXY(0, 0)].m5 = UNMOVABLE_HQ_NORTH + size;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
159 _m[t + TileDiffXY(0, 1)].m5 = UNMOVABLE_HQ_WEST + size;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
160 _m[t + TileDiffXY(1, 0)].m5 = UNMOVABLE_HQ_EAST + size;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
161 _m[t + TileDiffXY(1, 1)].m5 = UNMOVABLE_HQ_SOUTH + size;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
162 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
163
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
164
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
165 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
166 * Make an Unmovable tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
167 * @note do not use this function directly. Use one of the other Make* functions.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
168 * @param t the tile to make unmovable.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
169 * @param u the unmovable type of the tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
170 * @param o the new owner of the tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
171 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
172 static inline void MakeUnmovable(TileIndex t, UnmovableType u, Owner o)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
173 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
174 SetTileType(t, MP_UNMOVABLE);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
175 SetTileOwner(t, o);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
176 _m[t].m2 = 0;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
177 _m[t].m3 = 0;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
178 _m[t].m4 = 0;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
179 _m[t].m5 = u;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
180 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
181
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
182
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
183 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
184 * Make a transmitter tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
185 * @param t the tile to make a transmitter.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
186 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
187 static inline void MakeTransmitter(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
188 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
189 MakeUnmovable(t, UNMOVABLE_TRANSMITTER, OWNER_NONE);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
190 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
191
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
192 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
193 * Make a lighthouse tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
194 * @param t the tile to make a transmitter.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
195 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
196 static inline void MakeLighthouse(TileIndex t)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
197 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
198 MakeUnmovable(t, UNMOVABLE_LIGHTHOUSE, OWNER_NONE);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
199 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
200
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
201 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
202 * Make a statue tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
203 * @param t the tile to make a statue.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
204 * @param o the owner of the statue.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
205 * @param town_id the town the statue was built in.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
206 */
6257
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
207 static inline void MakeStatue(TileIndex t, Owner o, TownID town_id)
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
208 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
209 MakeUnmovable(t, UNMOVABLE_STATUE, o);
6257
d7d39048e2ee (svn r9066) -Fix [FS#638]: store the owner of a statue, so when it gets removed, the town is notified of it
truelight <truelight@openttd.org>
parents: 6248
diff changeset
210 _m[t].m2 = town_id;
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
211 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
212
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
213 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
214 * Make an 'owned land' tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
215 * @param t the tile to make an 'owned land' tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
216 * @param o the owner of the land.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
217 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
218 static inline void MakeOwnedLand(TileIndex t, Owner o)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
219 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
220 MakeUnmovable(t, UNMOVABLE_OWNED_LAND, o);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
221 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
222
6489
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
223 /**
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
224 * Make an HQ with the give tile as it's northern tile.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
225 * @param t the tile to make the northern tile of a HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
226 * @param o the owner of the HQ.
5459e8d2dc0d (svn r9670) -Documentation: add documentation to some the _map files.
rubidium <rubidium@openttd.org>
parents: 6423
diff changeset
227 */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
228 static inline void MakeCompanyHQ(TileIndex t, Owner o)
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
229 {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
230 MakeUnmovable(t + TileDiffXY(0, 0), UNMOVABLE_HQ_NORTH, o);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
231 MakeUnmovable(t + TileDiffXY(0, 1), UNMOVABLE_HQ_WEST, o);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
232 MakeUnmovable(t + TileDiffXY(1, 0), UNMOVABLE_HQ_EAST, o);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
233 MakeUnmovable(t + TileDiffXY(1, 1), UNMOVABLE_HQ_SOUTH, o);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
234 }
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
235
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
236 #endif /* UNMOVABLE_MAP_H */