mirror of https://github.com/OpenTTD/OpenTTD
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/8520/head
parent
51e22515a8
commit
725d793be1
|
@ -978,7 +978,12 @@ CommandCost CmdCloneVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
|
||||||
* the vehicle refitted before doing this, otherwise the moved
|
* the vehicle refitted before doing this, otherwise the moved
|
||||||
* cargo types might not match (passenger vs non-passenger)
|
* 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. */
|
/* Now clone the vehicle's name, if it has one. */
|
||||||
if (!v_front->name.empty()) CloneVehicleName(v_front, w_front);
|
if (!v_front->name.empty()) CloneVehicleName(v_front, w_front);
|
||||||
|
|
Loading…
Reference in New Issue