Files
@ r4381:c965d1f3016a
Branch filter:
Location: cpp/openttd-patchpack/source/tile.h - annotation
r4381:c965d1f3016a
2.5 KiB
text/x-c
(svn r6131) -Codechange : Complete all missing _ttdpatch_flags entries
-Feature : both unifiedmaglevmode are now set.
Maglev and monorail are not allowed to run on each other tracks and will not be.
Setting those flags will allow grfsets as the Norvegian one to be loaded
-Codechange : link the TTDPatch's irregularstations with OTTD's nonuniform_stations
-Codechange : Reformat the whole array (thanks Rubidium, it sure looks better now)
-Feature : both unifiedmaglevmode are now set.
Maglev and monorail are not allowed to run on each other tracks and will not be.
Setting those flags will allow grfsets as the Norvegian one to be loaded
-Codechange : link the TTDPatch's irregularstations with OTTD's nonuniform_stations
-Codechange : Reformat the whole array (thanks Rubidium, it sure looks better now)
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 | 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 r4344:bff007ae1fd1 r4344:bff007ae1fd1 r3379:e72a0eb00c30 r3379:e72a0eb00c30 r1211:0ff891861c37 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 r4077:259c4c4aacad r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1209:5955f8748394 r3900:1c2675abec23 r1209:5955f8748394 r1209:5955f8748394 r1214:2ed99b1b4b97 r1209:5955f8748394 r1209:5955f8748394 r4010:b10993e1f5b3 r4077:259c4c4aacad r4010:b10993e1f5b3 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 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) * TILE_HEIGHT;
}
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());
/* VOID tiles (and no others) are exactly allowed at the lower left and right
* edges of the map */
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 */
|