(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 6f5425a062
commit 6f1982d151
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;
}
}