src/road_map.h
changeset 9784 a9cc0dff1667
parent 9341 bd60c3b2d1e0
child 10289 801e5451f0ca
equal deleted inserted replaced
9783:4e3ca2698436 9784:a9cc0dff1667
   251 static inline TrackBits GetCrossingRailBits(TileIndex tile)
   251 static inline TrackBits GetCrossingRailBits(TileIndex tile)
   252 {
   252 {
   253 	return AxisToTrackBits(GetCrossingRailAxis(tile));
   253 	return AxisToTrackBits(GetCrossingRailAxis(tile));
   254 }
   254 }
   255 
   255 
       
   256 
       
   257 /**
       
   258  * Get the reservation state of the rail crossing
       
   259  * @pre IsLevelCrossingTile(t)
       
   260  * @param t the crossing tile
       
   261  * @return reservation state
       
   262  */
       
   263 static inline bool GetCrossingReservation(TileIndex t)
       
   264 {
       
   265 	assert(IsLevelCrossingTile(t));
       
   266 	return HasBit(_m[t].m5, 4);
       
   267 }
       
   268 
       
   269 /**
       
   270  * Set the reservation state of the rail crossing
       
   271  * @note Works for both waypoints and rail depots
       
   272  * @pre IsLevelCrossingTile(t)
       
   273  * @param t the crossing tile
       
   274  * @param b the reservation state
       
   275  */
       
   276 static inline void SetCrossingReservation(TileIndex t, bool b)
       
   277 {
       
   278 	assert(IsLevelCrossingTile(t));
       
   279 	SB(_m[t].m5, 4, 1, b ? 1 : 0);
       
   280 }
       
   281 
       
   282 /**
       
   283  * Get the reserved track bits for a rail crossing
       
   284  * @pre IsLevelCrossingTile(t)
       
   285  * @param t the tile
       
   286  * @return reserved track bits
       
   287  */
       
   288 static inline TrackBits GetRailCrossingReservation(TileIndex t)
       
   289 {
       
   290 	return GetCrossingReservation(t) ? GetCrossingRailBits(t) : TRACK_BIT_NONE;
       
   291 }
       
   292 
   256 static inline bool IsCrossingBarred(TileIndex t)
   293 static inline bool IsCrossingBarred(TileIndex t)
   257 {
   294 {
   258 	assert(IsLevelCrossing(t));
   295 	assert(IsLevelCrossing(t));
   259 	return HasBit(_m[t].m4, 5);
   296 	return HasBit(_m[t].m4, 5);
   260 }
   297 }