rail.h
changeset 3772 f2cf079d7afe
parent 3636 a36cc46e754d
child 3792 67c865c9315c
equal deleted inserted replaced
3771:9bce8ac706b2 3772:f2cf079d7afe
   176 static inline byte SignalOnTrack(Track track) {
   176 static inline byte SignalOnTrack(Track track) {
   177 	extern const byte _signal_on_track[TRACK_END];
   177 	extern const byte _signal_on_track[TRACK_END];
   178 	return _signal_on_track[track];
   178 	return _signal_on_track[track];
   179 }
   179 }
   180 
   180 
   181 /*
       
   182  * Some functions to query rail tiles
       
   183  */
       
   184 
       
   185 
       
   186 /**
       
   187  * Checks if a rail tile has signals.
       
   188  */
       
   189 static inline bool HasSignals(TileIndex tile)
       
   190 {
       
   191 	return GetRailTileType(tile) == RAIL_TYPE_SIGNALS;
       
   192 }
       
   193 
       
   194 /**
       
   195  * Returns the RailTileSubtype of a given rail tile with type
       
   196  * RAIL_TYPE_DEPOT_WAYPOINT
       
   197  */
       
   198 static inline RailTileSubtype GetRailTileSubtype(TileIndex tile)
       
   199 {
       
   200 	assert(GetRailTileType(tile) == RAIL_TYPE_DEPOT_WAYPOINT);
       
   201 	return (RailTileSubtype)(_m[tile].m5 & RAIL_SUBTYPE_MASK);
       
   202 }
       
   203 
       
   204 /**
       
   205  * Returns whether this is plain rails, with or without signals. Iow, if this
       
   206  * tiles RailTileType is RAIL_TYPE_NORMAL or RAIL_TYPE_SIGNALS.
       
   207  */
       
   208 static inline bool IsPlainRailTile(TileIndex tile)
       
   209 {
       
   210 	RailTileType rtt = GetRailTileType(tile);
       
   211 	return rtt == RAIL_TYPE_NORMAL || rtt == RAIL_TYPE_SIGNALS;
       
   212 }
       
   213 
       
   214 
       
   215 /**
       
   216  * Returns whether the given track is present on the given tile. Tile must be
       
   217  * a plain rail tile (IsPlainRailTile()).
       
   218  */
       
   219 static inline bool HasTrack(TileIndex tile, Track track)
       
   220 {
       
   221 	assert(IsValidTrack(track));
       
   222 	return HASBIT(GetTrackBits(tile), track);
       
   223 }
       
   224 
   181 
   225 /*
   182 /*
   226  * Functions describing logical relations between Tracks, TrackBits, Trackdirs
   183  * Functions describing logical relations between Tracks, TrackBits, Trackdirs
   227  * TrackdirBits, Direction and DiagDirections.
   184  * TrackdirBits, Direction and DiagDirections.
   228  *
   185  *