From 4b0fa883f14e98c24d33dfb9cc9d651478fdb7f7 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 Aug 2010 19:15:47 +0000 Subject: (svn r20595) -Fix (r20536)[FS#4068]: Autoreplace needs refitting of wagons in free wagon chains. --- src/vehicle_cmd.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/vehicle_cmd.cpp') diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index a22c825c6..0754e581c 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -314,13 +314,15 @@ CommandCost CmdRefitVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint 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); -- cgit v1.2.3-54-g00ecf