# HG changeset patch # User frosch # Date 1282504547 0 # Node ID 6d73a9e19477ef3685e9404c8997205b9b5736d4 # Parent e9c3b5b33d924621cf2647e374b84c9b42e84911 (svn r20595) -Fix (r20536)[FS#4068]: Autoreplace needs refitting of wagons in free wagon chains. diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp --- 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);