(svn r8726) -Codechange: bools are 1 or 0 according to the C++ standard and refactor RoadStop::AllocateBay to remove a loop condition. Suggestions by Tron.
authorrubidium
Wed, 14 Feb 2007 09:34:12 +0000
changeset 6331 9bc486e6cd0d
parent 6330 9b6379040529
child 6332 f80b510381ee
(svn r8726) -Codechange: bools are 1 or 0 according to the C++ standard and refactor RoadStop::AllocateBay to remove a loop condition. Suggestions by Tron.
src/roadveh_cmd.cpp
src/station.cpp
--- a/src/roadveh_cmd.cpp	Wed Feb 14 09:23:52 2007 +0000
+++ b/src/roadveh_cmd.cpp	Wed Feb 14 09:34:12 2007 +0000
@@ -519,7 +519,7 @@
 	rs->SetEntranceBusy(false);
 
 	/* Free the parking bay */
-	rs->FreeBay(HASBIT(v->u.road.state, RVS_USING_SECOND_BAY) ? 1 : 0);
+	rs->FreeBay(HASBIT(v->u.road.state, RVS_USING_SECOND_BAY));
 }
 
 static void RoadVehDelete(Vehicle *v)
@@ -1437,7 +1437,7 @@
 				RoadStop *rs = GetRoadStopByTile(v->tile, GetRoadStopType(v->tile));
 
 				/* Vehicle is leaving a road stop tile, mark bay as free and clear the usage bit */
-				rs->FreeBay(HASBIT(v->u.road.state, RVS_USING_SECOND_BAY) ? 1 : 0);
+				rs->FreeBay(HASBIT(v->u.road.state, RVS_USING_SECOND_BAY));
 				rs->SetEntranceBusy(false);
 			}
 		}
--- a/src/station.cpp	Wed Feb 14 09:23:52 2007 +0000
+++ b/src/station.cpp	Wed Feb 14 09:34:12 2007 +0000
@@ -509,17 +509,14 @@
  */
 uint RoadStop::AllocateBay()
 {
+	assert(HasFreeBay());
+
 	/* Find the first free bay. If the bit is set, the bay is free. */
-	for (uint bay_nr = 0; bay_nr < MAX_BAY_COUNT; bay_nr++) {
-		if (HASBIT(status, bay_nr)) {
-			CLRBIT(status, bay_nr);
-			return bay_nr;
-		}
-	}
+	uint bay_nr = 0;
+	while (!HASBIT(status, bay_nr)) bay_nr++;
 
-	/* There has to be a free bay (precondition) */
-	NOT_REACHED();
-	return 0;
+	CLRBIT(status, bay_nr);
+	return bay_nr;
 }
 
 /**
@@ -542,5 +539,5 @@
 /** Makes an entrance occupied or free */
 void RoadStop::SetEntranceBusy(bool busy)
 {
-	SB(status, 7, 1, !!busy);
+	SB(status, 7, 1, busy);
 }