diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index 3a6f59f20a..4f97c782bd 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1389,6 +1389,10 @@ CommandCost CmdCloneOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 } } + if (src->orders.list == NULL && !OrderList::CanAllocateItem()) { + return_cmd_error(STR_ERROR_NO_MORE_SPACE_FOR_ORDERS); + } + if (flags & DC_EXEC) { /* If the destination vehicle had a OrderList, destroy it */ DeleteVehicleOrders(dst); diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 61cd3ca5ee..9746fd4031 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1332,6 +1332,10 @@ CommandCost CmdSellRailWagon(DoCommandFlag flags, Vehicle *t, uint16 data, uint3 CommandCost cost(EXPENSES_NEW_VEHICLES); for (Train *t = sell_head; t != NULL; t = t->Next()) cost.AddCost(-t->value); + if (first->orders.list == NULL && !OrderList::CanAllocateItem()) { + return_cmd_error(STR_ERROR_NO_MORE_SPACE_FOR_ORDERS); + } + /* do it? */ if (flags & DC_EXEC) { /* First normalise the sub types of the chain. */