1
0
Fork 0

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

release/1.3
frosch 2012-07-07 12:48:53 +00:00
parent 3d3ab26ee6
commit c1dd0107c7
2 changed files with 9 additions and 4 deletions

View File

@ -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();

View File

@ -308,11 +308,16 @@ CommandCost CmdBuildRoadVehicle(TileIndex tile, DoCommandFlag flags, const Engin
bool RoadVehicle::IsStoppedInDepot() const
{
TileIndex tile = this->tile;
if (!IsRoadDepotTile(tile)) return false;
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;
for (const RoadVehicle *v = this; v != NULL; v = v->Next()) {
if (v->state != RVSB_IN_DEPOT || v->tile != tile) return false;
}