OpenTTD-patches/tile.h
tron 97ae59fe1a (svn r1718) Use the enum TileType as parameter/return type for [GS]etTileType() instead of plain int.
This makes it necessary to rename TileType() to GetTileType() because a type and a function may not share the same name.
2005-01-29 15:12:40 +00:00

61 lines
1.1 KiB
C

#ifndef TILE_H
#define TILE_H
#include "map.h"
typedef enum TileType {
MP_CLEAR,
MP_RAILWAY,
MP_STREET,
MP_HOUSE,
MP_TREES,
MP_STATION,
MP_WATER,
MP_VOID, // invisible tiles at the SW and SE border
MP_INDUSTRY,
MP_TUNNELBRIDGE,
MP_UNMOVABLE
} TileType;
void SetMapExtraBits(TileIndex tile, byte flags);
uint GetMapExtraBits(TileIndex tile);
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 TileType GetTileType(TileIndex tile)
{
assert(tile < MapSize());
return _map_type_and_height[tile] >> 4;
}
static inline void SetTileType(TileIndex tile, TileType type)
{
assert(tile < MapSize());
_map_type_and_height[tile] &= ~0xF0;
_map_type_and_height[tile] |= type << 4;
}
static inline bool IsTileType(TileIndex tile, TileType type)
{
return GetTileType(tile) == type;
}
#endif