(svn r14369) -Fix: Enforce non-front engines to be stopped.
authorfrosch
Sun, 21 Sep 2008 14:03:47 +0000
changeset 10175 26b53a17bcbd
parent 10174 b3116362cc09
child 10176 bd20cc54b41f
(svn r14369) -Fix: Enforce non-front engines to be stopped.
This could be caused by old savegames resp. their conversion, and causes
trouble for e.g. autoreplace.
src/vehicle.cpp
--- a/src/vehicle.cpp	Sun Sep 21 11:26:50 2008 +0000
+++ b/src/vehicle.cpp	Sun Sep 21 14:03:47 2008 +0000
@@ -264,6 +264,11 @@
 		}
 	}
 
+	/* Stop non-front engines */
+	FOR_ALL_VEHICLES(v) {
+		if (v->type == VEH_TRAIN && IsTrainEngine(v) && !IsFrontEngine(v)) v->vehstatus |= VS_STOPPED;
+	}
+
 	FOR_ALL_VEHICLES(v) {
 		switch (v->type) {
 			case VEH_ROAD:
@@ -1110,6 +1115,7 @@
 	Vehicle *v = GetVehicle(p1);
 
 	if (!CheckOwnership(v->owner)) return CMD_ERROR;
+	if (!v->IsPrimaryVehicle()) return CMD_ERROR;
 
 	switch (v->type) {
 		case VEH_TRAIN: