summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2012-07-07 12:48:53 +0000
committerfrosch <frosch@openttd.org>2012-07-07 12:48:53 +0000
commitc1dd0107c71270e8949ddefac41424b3dd79eca4 (patch)
tree516e2b952b401221fae31d700916c0a90ecde1ec
parent3d3ab26ee6a2748cab201b21280042420732eb08 (diff)
downloadopenttd-c1dd0107c71270e8949ddefac41424b3dd79eca4.tar.xz
(svn r24380) -Fix [FS#5188]: RoadVehicle::IsInDepot did not check all articulated parts.
-rw-r--r--src/roadveh.h2
-rw-r--r--src/roadveh_cmd.cpp9
2 files changed, 8 insertions, 3 deletions
diff --git a/src/roadveh.h b/src/roadveh.h
index 6358cef7f..6205f4b55 100644
--- a/src/roadveh.h
+++ b/src/roadveh.h
@@ -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();
diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp
index f29efb60a..2c06f7897 100644
--- a/src/roadveh_cmd.cpp
+++ b/src/roadveh_cmd.cpp
@@ -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;