diff a/src/order_cmd.cpp b/src/order_cmd.cpp --- src/order_cmd.cpp +++ src/order_cmd.cpp @@ -1310,7 +1310,7 @@ Order *order = v->GetOrder(sel_ord); switch (order->GetType()) { case OT_GOTO_STATION: - if (mof == MOF_COND_VARIABLE || mof == MOF_COND_COMPARATOR || mof == MOF_DEPOT_ACTION || mof == MOF_COND_VALUE) return CMD_ERROR; + if (mof == MOF_COND_VARIABLE || mof == MOF_COND_COMPARATOR || mof == MOF_DEPOT_ACTION || mof == MOF_COND_VALUE || mof == MOF_COND_DESTINATION) return CMD_ERROR; break; case OT_GOTO_DEPOT: @@ -1381,6 +1381,7 @@ case MOF_COND_VALUE: switch (order->GetConditionVariable()) { case OCV_UNCONDITIONALLY: return CMD_ERROR; + case OCV_REQUIRES_SERVICE: return CMD_ERROR; case OCV_LOAD_PERCENTAGE: case OCV_RELIABILITY: @@ -1455,6 +1456,7 @@ case OCV_REQUIRES_SERVICE: if (occ != OCC_IS_TRUE && occ != OCC_IS_FALSE) order->SetConditionComparator(OCC_IS_TRUE); + order->SetConditionValue(0); break; case OCV_LOAD_PERCENTAGE: