(svn r22861) -Add: [NoAI] support the new conditional order introduced in r22858 (Zuu)

This commit is contained in:
yexo 2011-08-31 22:41:10 +00:00
parent 9b56713a69
commit ec9a9bea3a
3 changed files with 10 additions and 7 deletions

View File

@ -176,6 +176,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
case OC_RELIABILITY:
case OC_MAX_SPEED:
case OC_AGE:
case OC_REMAINING_LIFETIME:
return compare >= CF_EQUALS && compare <= CF_MORE_EQUALS;
case OC_REQUIRES_SERVICE:

View File

@ -87,13 +87,14 @@ public:
*/
enum OrderCondition {
/* Order _is_ important, as it's based on OrderConditionVariable in order_type.h. */
OC_LOAD_PERCENTAGE, ///< Skip based on the amount of load, value is in tons.
OC_RELIABILITY, ///< Skip based on the reliability, value is percent (0..100).
OC_MAX_SPEED, ///< Skip based on the maximum speed, value is in OpenTTD's internal speed unit, see AIEngine::GetMaxSpeed.
OC_AGE, ///< Skip based on the age, value is in years.
OC_REQUIRES_SERVICE, ///< Skip when the vehicle requires service, no value.
OC_UNCONDITIONALLY, ///< Always skip, no compare function, no value.
OC_INVALID = -1, ///< An invalid condition, do not use.
OC_LOAD_PERCENTAGE, ///< Skip based on the amount of load, value is in tons.
OC_RELIABILITY, ///< Skip based on the reliability, value is percent (0..100).
OC_MAX_SPEED, ///< Skip based on the maximum speed, value is in OpenTTD's internal speed unit, see AIEngine::GetMaxSpeed.
OC_AGE, ///< Skip based on the age, value is in years.
OC_REQUIRES_SERVICE, ///< Skip when the vehicle requires service, no value.
OC_UNCONDITIONALLY, ///< Always skip, no compare function, no value.
OC_REMAINING_LIFETIME, ///< Skip based on the remaining lifetime
OC_INVALID = -1, ///< An invalid condition, do not use.
};
/**

View File

@ -66,6 +66,7 @@ void SQAIOrder_Register(Squirrel *engine)
SQAIOrder.DefSQConst(engine, AIOrder::OC_AGE, "OC_AGE");
SQAIOrder.DefSQConst(engine, AIOrder::OC_REQUIRES_SERVICE, "OC_REQUIRES_SERVICE");
SQAIOrder.DefSQConst(engine, AIOrder::OC_UNCONDITIONALLY, "OC_UNCONDITIONALLY");
SQAIOrder.DefSQConst(engine, AIOrder::OC_REMAINING_LIFETIME, "OC_REMAINING_LIFETIME");
SQAIOrder.DefSQConst(engine, AIOrder::OC_INVALID, "OC_INVALID");
SQAIOrder.DefSQConst(engine, AIOrder::CF_EQUALS, "CF_EQUALS");
SQAIOrder.DefSQConst(engine, AIOrder::CF_NOT_EQUALS, "CF_NOT_EQUALS");