Fix: don't allow cloning vehicles if cloning orders is failing (#8515)

Before this fix, any failing clone order was silently ignored
and you as user would never know till you checked the order list.
Evil.
pull/217/head
Patric Stout 3 years ago committed by GitHub
parent 51e22515a8
commit 725d793be1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -978,7 +978,12 @@ CommandCost CmdCloneVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
* the vehicle refitted before doing this, otherwise the moved
* cargo types might not match (passenger vs non-passenger)
*/
DoCommand(0, w_front->index | (p2 & 1 ? CO_SHARE : CO_COPY) << 30, v_front->index, flags, CMD_CLONE_ORDER);
CommandCost result = DoCommand(0, w_front->index | (p2 & 1 ? CO_SHARE : CO_COPY) << 30, v_front->index, flags, CMD_CLONE_ORDER);
if (result.Failed()) {
/* The vehicle has already been bought, so now it must be sold again. */
DoCommand(w_front->tile, w_front->index | 1 << 20, 0, flags, GetCmdSellVeh(w_front));
return result;
}
/* Now clone the vehicle's name, if it has one. */
if (!v_front->name.empty()) CloneVehicleName(v_front, w_front);

Loading…
Cancel
Save