@@ -614,15 +614,16 @@ CommandCost CmdAutoreplaceVehicle(TileIn
if (!CheckOwnership(v->owner)) return CMD_ERROR;
if (!v->IsInDepot()) return CMD_ERROR;
if (v->vehstatus & VS_CRASHED) return CMD_ERROR;
bool free_wagon = false;
if (v->type == VEH_TRAIN) {
if (IsArticulatedPart(v) || IsRearDualheaded(v)) return CMD_ERROR;
free_wagon = !IsFrontEngine(v);
if (free_wagon && IsFrontEngine(v->First())) return CMD_ERROR;
Train *t = Train::From(v);
if (IsArticulatedPart(t) || IsRearDualheaded(t)) return CMD_ERROR;
free_wagon = !t->IsFrontEngine();
if (free_wagon && t->First()->IsFrontEngine()) return CMD_ERROR;
} else {
if (!v->IsPrimaryVehicle()) return CMD_ERROR;
}
const Company *c = Company::Get(_current_company);
bool wagon_removal = c->settings.renew_keep_length;