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 * |