summaryrefslogtreecommitdiff
path: root/src/train_cmd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2011-12-28 19:48:04 +0000
committerrubidium <rubidium@openttd.org>2011-12-28 19:48:04 +0000
commit8d125a60ce2d97be1ce05c713cb3cdcc248a36dd (patch)
tree3087cbbefc1cbaca5c2f350f3780d6a639a32423 /src/train_cmd.cpp
parent660e5b286fe98d4cb4b80f4d5e834ac76df6f8a8 (diff)
downloadopenttd-8d125a60ce2d97be1ce05c713cb3cdcc248a36dd.tar.xz
(svn r23683) -Fix [FS#4912]-ish: when fitting another engine the cargo capacity of wagons could become lower, causing them to contain more than they should. This caused the cargo transfer from the replaced parts to put even more stuff in the already full wagon. Prevent this from happening by reducing the amount of cargo in the vehicle to the capacity when moving vehicles/wagons around, or when autoreplacing
Diffstat (limited to 'src/train_cmd.cpp')
-rw-r--r--src/train_cmd.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp
index 5bdef09a7..c3eb8c1fa 100644
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -1281,6 +1281,11 @@ CommandCost CmdMoveRailVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, u
NormaliseTrainHead(src_head);
NormaliseTrainHead(dst_head);
+ if ((flags & DC_NO_CARGO_CAP_CHECK) == 0) {
+ CheckCargoCapacity(src_head);
+ CheckCargoCapacity(dst_head);
+ }
+
/* We are undoubtedly changing something in the depot and train list. */
InvalidateWindowData(WC_VEHICLE_DEPOT, src->tile);
InvalidateWindowClassesData(WC_TRAINS_LIST, 0);