From c632539bb7861c8487ce5aeef5dee36fed69a5d3 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Nov 2018 04:01:41 +0000 Subject: [PATCH] Prevent adding train slot state conditional orders to non-train vehicles --- src/order_cmd.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index 546065734b..516fd276a2 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1005,6 +1005,7 @@ CommandCost CmdInsertOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 if (occ >= OCC_END) return CMD_ERROR; switch (new_order.GetConditionVariable()) { case OCV_SLOT_OCCUPANCY: { + if (v->type != VEH_TRAIN) return CMD_ERROR; TraceRestrictSlotID slot = new_order.GetXData(); if (slot != INVALID_TRACE_RESTRICT_SLOT_ID && !TraceRestrictSlot::IsValidID(slot)) return CMD_ERROR; if (occ != OCC_IS_TRUE && occ != OCC_IS_FALSE) return CMD_ERROR; @@ -1579,6 +1580,7 @@ CommandCost CmdModifyOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 case MOF_COND_VARIABLE: if (data == OCV_FREE_PLATFORMS && v->type != VEH_TRAIN) return CMD_ERROR; + if (data == OCV_SLOT_OCCUPANCY && v->type != VEH_TRAIN) return CMD_ERROR; if (data >= OCV_END) return CMD_ERROR; break;