changeset 15911:6d73a9e19477 draft

(svn r20595) -Fix (r20536)[FS#4068]: Autoreplace needs refitting of wagons in free wagon chains.
author frosch <frosch@openttd.org>
date Sun, 22 Aug 2010 19:15:47 +0000
parents e9c3b5b33d92
children 115913c318e0
files src/vehicle_cmd.cpp
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/vehicle_cmd.cpp
+++ b/src/vehicle_cmd.cpp
@@ -314,13 +314,15 @@
 	Vehicle *v = Vehicle::GetIfValid(p1);
 	if (v == NULL) return CMD_ERROR;
 
+	/* Don't allow disasters and sparks and such to be refitted.
+	 * We cannot check for IsPrimaryVehicle as autoreplace also refits in free wagon chains. */
+	if (!IsCompanyBuildableVehicleType(v->type)) return CMD_ERROR;
+
 	Vehicle *front = v->First();
 
 	CommandCost ret = CheckOwnership(front->owner);
 	if (ret.Failed()) return ret;
 
-	/* Don't allow disasters and sparks and such to be refitted. */
-	if (!front->IsPrimaryVehicle()) return CMD_ERROR;
 	/* Don't allow shadows and such to be refitted. */
 	if (v != front && (v->type == VEH_SHIP || v->type == VEH_AIRCRAFT)) return CMD_ERROR;
 	if (!front->IsStoppedInDepot()) return_cmd_error(STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT + front->type);