(svn r19788) -Codechange: make FOR_EACH_SET_BIT not change the value of the passed bit variable, i.e. allow expressions as parameter

This commit is contained in:
rubidium
2010-05-11 20:48:06 +00:00
parent 862321c62a
commit ee02599bbf
5 changed files with 12 additions and 14 deletions

View File

@@ -160,9 +160,8 @@ struct CFollowTrackT
/* Mask already reserved trackdirs. */
m_new_td_bits &= ~TrackBitsToTrackdirBits(reserved);
/* Mask out all trackdirs that conflict with the reservation. */
uint bits = (uint)TrackdirBitsToTrackBits(m_new_td_bits);
int i;
FOR_EACH_SET_BIT(i, bits) {
FOR_EACH_SET_BIT(i, TrackdirBitsToTrackBits(m_new_td_bits)) {
if (TracksOverlap(reserved | TrackToTrackBits((Track)i))) m_new_td_bits &= ~TrackToTrackdirBits((Track)i);
}
if (m_new_td_bits == TRACKDIR_BIT_NONE) {

View File

@@ -921,9 +921,8 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current)
TrackBits reserved = GetReservedTrackbits(dst_tile);
trackdirbits &= ~TrackBitsToTrackdirBits(reserved);
uint bits = TrackdirBitsToTrackBits(trackdirbits);
int i;
FOR_EACH_SET_BIT(i, bits) {
FOR_EACH_SET_BIT(i, TrackdirBitsToTrackBits(trackdirbits)) {
if (TracksOverlap(reserved | TrackToTrackBits((Track)i))) trackdirbits &= ~TrackToTrackdirBits((Track)i);
}
}