(svn r24380) -Fix [FS#5188]: RoadVehicle::IsInDepot did not check all articulated parts.

pull/155/head
frosch 12 years ago
parent 00d0649f62
commit 00a84fc4ce

@ -112,7 +112,7 @@ struct RoadVehicle FINAL : public GroundVehicle<RoadVehicle, VEH_ROAD> {
int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed / 2; }
Money GetRunningCost() const;
int GetDisplayImageWidth(Point *offset = NULL) const;
bool IsInDepot() const { return this->state == RVSB_IN_DEPOT; }
bool IsInDepot() const;
bool IsStoppedInDepot() const;
bool Tick();
void OnNewDay();

@ -308,10 +308,15 @@ CommandCost CmdBuildRoadVehicle(TileIndex tile, DoCommandFlag flags, const Engin
bool RoadVehicle::IsStoppedInDepot() const
{
TileIndex tile = this->tile;
if (this->IsFrontEngine() && !(this->vehstatus & VS_STOPPED)) return false;
return this->IsInDepot();
}
bool RoadVehicle::IsInDepot() const
{
TileIndex tile = this->tile;
if (!IsRoadDepotTile(tile)) return false;
if (this->IsFrontEngine() && !(this->vehstatus & VS_STOPPED)) return false;
for (const RoadVehicle *v = this; v != NULL; v = v->Next()) {
if (v->state != RVSB_IN_DEPOT || v->tile != tile) return false;

Loading…
Cancel
Save