Files
@ r4004:948398516be1
Branch filter:
Location: cpp/openttd-patchpack/source/tile.h - annotation
r4004:948398516be1
2.7 KiB
text/x-c
(svn r5214) [languages] Re-done afrikaans change, this time proper
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | r2186:5ee653b1b5e1 r2186:5ee653b1b5e1 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1394:275bd5541bae r1209:5955f8748394 r3636:a8e0c73aca96 r1209:5955f8748394 r1944:ed1b90ae1557 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r2125:87ebf6378cb6 r1214:2ed99b1b4b97 r1214:2ed99b1b4b97 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r1211:0ff891861c37 r3636:a8e0c73aca96 r3636:a8e0c73aca96 r1335:da4955366538 r3773:96ded2ebf46a r1335:da4955366538 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r2049:7e26d55f0f4c r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r2049:7e26d55f0f4c r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1209:5955f8748394 r3900:1c2675abec23 r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1209:5955f8748394 r2900:9c35fe93f95b r2900:9c35fe93f95b r2900:9c35fe93f95b r2900:9c35fe93f95b r2900:9c35fe93f95b r2049:7e26d55f0f4c r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1209:5955f8748394 r2125:87ebf6378cb6 r1333:355c6f6f2cbf r1330:62eaa061ec97 r1333:355c6f6f2cbf r1898:6a2625c2cc60 r1898:6a2625c2cc60 r1898:6a2625c2cc60 r1898:6a2625c2cc60 r3900:1c2675abec23 r1330:62eaa061ec97 r1330:62eaa061ec97 r1902:cfc758cf1057 r1902:cfc758cf1057 r1902:cfc758cf1057 r1902:cfc758cf1057 r1902:cfc758cf1057 r1902:cfc758cf1057 r1902:cfc758cf1057 r2360:8cc52b4a45df r1902:cfc758cf1057 r1902:cfc758cf1057 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r1330:62eaa061ec97 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r2436:963efe8b84cc | /* $Id$ */
#ifndef TILE_H
#define TILE_H
#include "macros.h"
#include "map.h"
#include "slope.h"
typedef enum TileTypes {
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;
typedef enum TropicZones {
TROPICZONE_INVALID = 0,
TROPICZONE_DESERT = 1,
TROPICZONE_RAINFOREST = 2,
} TropicZone;
Slope GetTileh(uint n, uint w, uint e, uint s, uint *h);
Slope GetTileSlope(TileIndex tile, uint *h);
uint GetTileZ(TileIndex tile);
uint GetTileMaxZ(TileIndex tile);
static inline uint TileHeight(TileIndex tile)
{
assert(tile < MapSize());
return GB(_m[tile].type_height, 0, 4);
}
static inline void SetTileHeight(TileIndex tile, uint height)
{
assert(tile < MapSize());
assert(height < 16);
SB(_m[tile].type_height, 0, 4, height);
}
static inline uint TilePixelHeight(TileIndex tile)
{
return TileHeight(tile) * 8;
}
static inline TileType GetTileType(TileIndex tile)
{
assert(tile < MapSize());
return (TileType)GB(_m[tile].type_height, 4, 4);
}
static inline void SetTileType(TileIndex tile, TileType type)
{
assert(tile < MapSize());
/* Allow only MP_VOID to be set to border tiles. This code is put here since
* it seems there is a bug that violates this somewhere. (Formely know as
* the "old ship pf" bug, which presented a case in which this broke). It
* can be removed as soon as the bug is squashed. */
assert((TileX(tile) < MapMaxX() && TileY(tile) < MapMaxY()) || type == MP_VOID);
SB(_m[tile].type_height, 4, 4, type);
}
static inline bool IsTileType(TileIndex tile, TileType type)
{
return GetTileType(tile) == type;
}
static inline Owner GetTileOwner(TileIndex tile)
{
assert(tile < MapSize());
assert(!IsTileType(tile, MP_HOUSE));
assert(!IsTileType(tile, MP_VOID));
assert(!IsTileType(tile, MP_INDUSTRY));
return (Owner)_m[tile].m1;
}
static inline void SetTileOwner(TileIndex tile, Owner owner)
{
assert(tile < MapSize());
assert(!IsTileType(tile, MP_HOUSE));
assert(!IsTileType(tile, MP_VOID));
assert(!IsTileType(tile, MP_INDUSTRY));
_m[tile].m1 = owner;
}
static inline bool IsTileOwner(TileIndex tile, Owner owner)
{
return GetTileOwner(tile) == owner;
}
/**
* Set the tropic zone
* @param tile the tile to set the zone of
* @param type the new type
* @pre assert(tile < MapSize());
*/
static inline void SetTropicZone(TileIndex tile, TropicZone type)
{
assert(tile < MapSize());
SB(_m[tile].extra, 0, 2, type);
}
/**
* Get the tropic zone
* @param tile the tile to get the zone of
* @pre assert(tile < MapSize());
* @return the zone type
*/
static inline TropicZone GetTropicZone(TileIndex tile)
{
assert(tile < MapSize());
return (TropicZone)GB(_m[tile].extra, 0, 2);
}
#endif /* TILE_H */
|