Files
@ r1891:c5c5466afa35
Branch filter:
Location: cpp/openttd-patchpack/source/tile.h - annotation
r1891:c5c5466afa35
1.9 KiB
text/x-c
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1394:275bd5541bae r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1749:454305d15787 r1211:0ff891861c37 r1211:0ff891861c37 r1211:0ff891861c37 r1335:da4955366538 r1335:da4955366538 r1335:da4955366538 r1394:275bd5541bae r1394:275bd5541bae r1394:275bd5541bae r1394:275bd5541bae r1394:275bd5541bae r1394:275bd5541bae r1394:275bd5541bae r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1852:c5d43d1bd1e7 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1852:c5d43d1bd1e7 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1209:5955f8748394 r1852:c5d43d1bd1e7 r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1209:5955f8748394 r1852:c5d43d1bd1e7 r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1209:5955f8748394 r1333:355c6f6f2cbf r1330:62eaa061ec97 r1333:355c6f6f2cbf r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1209:5955f8748394 | #ifndef TILE_H
#define TILE_H
#include "macros.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;
/* XXX: This should be moved out to a new file (rail.h) along with some other
* cleanups. I'll do that after 0.4) */
typedef enum {
RAILTYPE_RAIL = 0,
RAILTYPE_MONO = 1,
RAILTYPE_MAGLEV = 2,
RAILTYPE_END,
RAILTYPE_MASK = 0x3,
INVALID_RAILTYPE = 0xFF,
} RailType;
void SetMapExtraBits(TileIndex tile, byte flags);
uint GetMapExtraBits(TileIndex tile);
uint GetTileSlope(TileIndex tile, uint *h);
uint GetTileZ(TileIndex tile);
static inline bool CorrectZ(uint tileh)
{
/* tile height must be corrected if the north corner is not raised, but
* any other corner is. These are the cases 1 till 7 */
return IS_INT_INSIDE(tileh, 1, 8);
}
static inline uint TileHeight(TileIndex tile)
{
assert(tile < MapSize());
return GB(_map_type_and_height[tile], 0, 4);
}
static inline void SetTileHeight(TileIndex tile, uint height)
{
assert(tile < MapSize());
assert(height < 16);
SB(_map_type_and_height[tile], 0, 4, height);
}
static inline uint TilePixelHeight(TileIndex tile)
{
return TileHeight(tile) * 8;
}
static inline TileType GetTileType(TileIndex tile)
{
assert(tile < MapSize());
return GB(_map_type_and_height[tile], 4, 4);
}
static inline void SetTileType(TileIndex tile, TileType type)
{
assert(tile < MapSize());
SB(_map_type_and_height[tile], 4, 4, type);
}
static inline bool IsTileType(TileIndex tile, TileType type)
{
return GetTileType(tile) == type;
}
static inline Owner GetTileOwner(TileIndex tile)
{
assert(tile < MapSize());
return _map_owner[tile];
}
static inline bool IsTileOwner(TileIndex tile, Owner owner)
{
return GetTileOwner(tile) == owner;
}
#endif
|