Mercurial > hg > openttd
view src/road.h @ 6316:8ecb7b1dea16 draft
(svn r9259) -Codechange: NUM_CARGO isn't a valid cargo type...
author | peter1138 <peter1138@openttd.org> |
---|---|
date | Fri, 16 Mar 2007 21:42:11 +0000 |
parents | 0789677a15a0 |
children | ffd35446c110 |
line wrap: on
line source
/* $Id$ */ #ifndef ROAD_H #define ROAD_H #include "helpers.hpp" enum RoadBits { ROAD_NONE = 0U, ROAD_NW = 1U, ROAD_SW = 2U, ROAD_SE = 4U, ROAD_NE = 8U, ROAD_X = ROAD_SW | ROAD_NE, ROAD_Y = ROAD_NW | ROAD_SE, ROAD_ALL = ROAD_X | ROAD_Y }; DECLARE_ENUM_AS_BIT_SET(RoadBits); static inline RoadBits ComplementRoadBits(RoadBits r) { return (RoadBits)(ROAD_ALL ^ r); } static inline RoadBits DiagDirToRoadBits(DiagDirection d) { return (RoadBits)(1U << (3 ^ d)); } /** Checks whether the trackdir means that we are reversing */ static inline bool IsReversingRoadTrackdir(Trackdir dir) { return (dir & 0x07) >= 6; } /** Checks whether the given trackdir is a straight road */ static inline bool IsStraightRoadTrackdir(Trackdir dir) { return (dir & 0x06) == 0; } /** * Is it allowed to remove the given road bits from the given tile? * @param tile the tile to remove the road from * @param remove the roadbits that are going to be removed * @param owner the actual owner of the roadbits of the tile * @param edge_road are the removed bits from a town? * @return true when it is allowed to remove the road bits */ bool CheckAllowRemoveRoad(TileIndex tile, RoadBits remove, Owner owner, bool *edge_road); #endif /* ROAD_H */