(svn r18531) -Fix [FS#3384] (r18404): for articulated road vehicles only the first part was accounted for, so for extremely short fronts and lots after it the spreading did not work as it should.

This commit is contained in:
rubidium
2009-12-18 21:34:06 +00:00
parent fa5920025c
commit 06f9e26ca4
3 changed files with 9 additions and 5 deletions

View File

@@ -279,7 +279,7 @@ bool RoadStop::Enter(RoadVehicle *rv)
*/
void RoadStop::Entry::Leave(const RoadVehicle *rv)
{
this->occupied -= rv->rcache.cached_veh_length;
this->occupied -= rv->rcache.cached_total_length;
assert(this->occupied >= 0);
}
@@ -292,7 +292,7 @@ void RoadStop::Entry::Enter(const RoadVehicle *rv)
/* we cannot assert on this->occupied < this->length because of the
* remote possibility that RVs are running through eachother when
* trying to prevention an infinite jam. */
this->occupied += rv->rcache.cached_veh_length;
this->occupied += rv->rcache.cached_total_length;
}
/**
@@ -368,7 +368,7 @@ void RoadStop::Entry::Rebuild(const RoadStop *rs, int side)
this->occupied = 0;
for (RVList::iterator it = rserh.vehicles.begin(); it != rserh.vehicles.end(); it++) {
this->occupied += (*it)->rcache.cached_veh_length;
this->occupied += (*it)->rcache.cached_total_length;
}
}