summaryrefslogtreecommitdiff
path: root/tile.h
diff options
context:
space:
mode:
authortron <tron@openttd.org>2005-01-29 12:19:05 +0000
committertron <tron@openttd.org>2005-01-29 12:19:05 +0000
commit39858e696bffa2cb69edc9f968eafabce4c0304a (patch)
tree5a259a26ab08aa8888231856fb02ed934a69fb6f /tile.h
parentf85348342401c301b51be142c11a35982bdeb9b2 (diff)
downloadopenttd-39858e696bffa2cb69edc9f968eafabce4c0304a.tar.xz
(svn r1713) Split off several functions which query/set information about a single tile from map.h and put them into a seperate file tile.h
Diffstat (limited to 'tile.h')
-rw-r--r--tile.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/tile.h b/tile.h
new file mode 100644
index 000000000..0019397dd
--- /dev/null
+++ b/tile.h
@@ -0,0 +1,43 @@
+#ifndef TILE_H
+#define TILE_H
+
+#include "map.h"
+
+static inline uint TileHeight(TileIndex tile)
+{
+ assert(tile < MapSize());
+ return _map_type_and_height[tile] & 0xf;
+}
+
+static inline void SetTileHeight(TileIndex tile, uint height)
+{
+ assert(tile < MapSize());
+ assert(height < 16);
+ _map_type_and_height[tile] &= ~0x0F;
+ _map_type_and_height[tile] |= height;
+}
+
+static inline uint TilePixelHeight(TileIndex tile)
+{
+ return TileHeight(tile) * 8;
+}
+
+static inline int TileType(TileIndex tile)
+{
+ assert(tile < MapSize());
+ return _map_type_and_height[tile] >> 4;
+}
+
+static inline void SetTileType(TileIndex tile, uint type)
+{
+ assert(tile < MapSize());
+ _map_type_and_height[tile] &= ~0xF0;
+ _map_type_and_height[tile] |= type << 4;
+}
+
+static inline bool IsTileType(TileIndex tile, int type)
+{
+ return TileType(tile) == type;
+}
+
+#endif