Mercurial > hg > openttd
diff src/order_cmd.cpp @ 8903:d15e125c0b6a draft
(svn r12670) -Add: unconditional/always order 'jump/skip' variable.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sat, 12 Apr 2008 13:07:25 +0000 (2008-04-12) |
parents | f30afabf2b45 |
children | 325d130fab50 |
line wrap: on
line diff
--- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -896,6 +896,8 @@ case MOF_COND_COMPARATOR: if (data >= OCC_END) return CMD_ERROR; switch (order->GetConditionVariable()) { + case OCV_UNCONDITIONALLY: return CMD_ERROR; + case OCV_REQUIRES_SERVICE: if (data != OCC_IS_TRUE && data != OCC_IS_FALSE) return CMD_ERROR; break; @@ -908,6 +910,8 @@ case MOF_COND_VALUE: switch (order->GetConditionVariable()) { + case OCV_UNCONDITIONALLY: return CMD_ERROR; + case OCV_LOAD_PERCENTAGE: case OCV_RELIABILITY: if (data > 100) return CMD_ERROR; @@ -950,6 +954,11 @@ OrderConditionComparator occ = order->GetConditionComparator(); switch (order->GetConditionVariable()) { + case OCV_UNCONDITIONALLY: + order->SetConditionComparator(OCC_EQUALS); + order->SetConditionValue(0); + break; + case OCV_REQUIRES_SERVICE: if (occ != OCC_IS_TRUE && occ != OCC_IS_FALSE) order->SetConditionComparator(OCC_IS_TRUE); break; @@ -1706,6 +1715,7 @@ case OCV_MAX_SPEED: skip_order = OrderConditionCompare(occ, v->GetDisplayMaxSpeed(), value); break; case OCV_AGE: skip_order = OrderConditionCompare(occ, v->age / 366, value); break; case OCV_REQUIRES_SERVICE: skip_order = OrderConditionCompare(occ, v->NeedsServicing(), value); break; + case OCV_UNCONDITIONALLY: skip_order = true; break; default: NOT_REACHED(); } UpdateVehicleTimetable(v, true);