# HG changeset patch # User rubidium # Date 1171445652 0 # Node ID 9bc486e6cd0dbf7b9f9fb7fd94e70af38ed12eec # Parent 9b6379040529dfb08fe2a416fd3e43f3409236d5 (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. diff -r 9b6379040529 -r 9bc486e6cd0d src/roadveh_cmd.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); } } diff -r 9b6379040529 -r 9bc486e6cd0d src/station.cpp --- 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); }