1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-27 08:29:11 +00:00

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.
This commit is contained in:
Patric Stout
2021-01-07 19:58:04 +01:00
committed by GitHub
parent 51e22515a8
commit 725d793be1

View File

@@ -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);