src/rail.h
changeset 5598 2fadbd43709d
parent 5587 167d9a91ef02
child 5636 3c19b56dc982
equal deleted inserted replaced
5597:3bd5c56e035d 5598:2fadbd43709d
   248 static inline TrackdirBits TrackdirToTrackdirBits(Trackdir trackdir) { return (TrackdirBits)(1 << trackdir); }
   248 static inline TrackdirBits TrackdirToTrackdirBits(Trackdir trackdir) { return (TrackdirBits)(1 << trackdir); }
   249 
   249 
   250 /**
   250 /**
   251 * Removes first Track from TrackBits and returns it
   251 * Removes first Track from TrackBits and returns it
   252 */
   252 */
   253 static inline Track RemoveFirstTrack(TrackBits &tracks)
   253 static inline Track RemoveFirstTrack(TrackBits *tracks)
   254 {
   254 {
   255 	if (tracks != TRACK_BIT_NONE && tracks != INVALID_TRACK_BIT) {
   255 	if (*tracks != TRACK_BIT_NONE && *tracks != INVALID_TRACK_BIT) {
   256 		Track first = (Track)FIND_FIRST_BIT(tracks);
   256 		Track first = (Track)FIND_FIRST_BIT(*tracks);
   257 		tracks = ClrBitT(tracks, first);
   257 		*tracks = ClrBitT(*tracks, first);
   258 		return first;
   258 		return first;
   259 	}
   259 	}
   260 	return INVALID_TRACK;
   260 	return INVALID_TRACK;
   261 }
   261 }
   262 
   262 
   263 /**
   263 /**
   264 * Removes first Trackdir from TrackdirBits and returns it
   264 * Removes first Trackdir from TrackdirBits and returns it
   265 */
   265 */
   266 static inline Trackdir RemoveFirstTrackdir(TrackdirBits &trackdirs)
   266 static inline Trackdir RemoveFirstTrackdir(TrackdirBits *trackdirs)
   267 {
   267 {
   268 	if (trackdirs != TRACKDIR_BIT_NONE && trackdirs != INVALID_TRACKDIR_BIT) {
   268 	if (*trackdirs != TRACKDIR_BIT_NONE && *trackdirs != INVALID_TRACKDIR_BIT) {
   269 		Trackdir first = (Trackdir)FindFirstBit2x64(trackdirs);
   269 		Trackdir first = (Trackdir)FindFirstBit2x64(*trackdirs);
   270 		trackdirs = ClrBitT(trackdirs, first);
   270 		*trackdirs = ClrBitT(*trackdirs, first);
   271 		return first;
   271 		return first;
   272 	}
   272 	}
   273 	return INVALID_TRACKDIR;
   273 	return INVALID_TRACKDIR;
   274 }
   274 }
   275 
   275