mirror of https://github.com/OpenTTD/OpenTTD
(svn r20595) -Fix (r20536)[FS#4068]: Autoreplace needs refitting of wagons in free wagon chains.
parent
cdadc58b66
commit
4b0fa883f1
|
@ -314,13 +314,15 @@ CommandCost CmdRefitVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
|
||||||
Vehicle *v = Vehicle::GetIfValid(p1);
|
Vehicle *v = Vehicle::GetIfValid(p1);
|
||||||
if (v == NULL) return CMD_ERROR;
|
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();
|
Vehicle *front = v->First();
|
||||||
|
|
||||||
CommandCost ret = CheckOwnership(front->owner);
|
CommandCost ret = CheckOwnership(front->owner);
|
||||||
if (ret.Failed()) return ret;
|
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. */
|
/* Don't allow shadows and such to be refitted. */
|
||||||
if (v != front && (v->type == VEH_SHIP || v->type == VEH_AIRCRAFT)) return CMD_ERROR;
|
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);
|
if (!front->IsStoppedInDepot()) return_cmd_error(STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT + front->type);
|
||||||
|
|
Loading…
Reference in New Issue