(svn r16165) -Add [FS#2801] [NoAI]: several functions to AIOrder to check the what kind of order an order is.
-Fix: AIOrder::GetOrderDestination and AIOrder::GetOrderFlags didn't work on ORDER_CURRENT when the vehicle was loading/leaving in a station.
This commit is contained in:
		@@ -46,6 +46,47 @@ static OrderType GetOrderTypeByTile(TileIndex t)
 | 
			
		||||
	return AIVehicle::IsValidVehicle(vehicle_id) && order_position >= 0 && (order_position < ::GetVehicle(vehicle_id)->GetNumOrders() || order_position == ORDER_CURRENT);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get the current order the vehicle is executing. If the current order is in
 | 
			
		||||
 *  the order list, return the order from the orderlist. If the current order
 | 
			
		||||
 *  was a manual order, return the current order.
 | 
			
		||||
 */
 | 
			
		||||
static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition order_position)
 | 
			
		||||
{
 | 
			
		||||
	const Vehicle *v = ::GetVehicle(vehicle_id);
 | 
			
		||||
	if (order_position == AIOrder::ORDER_CURRENT) {
 | 
			
		||||
		const Order *order = &v->current_order;
 | 
			
		||||
		if (order->GetType() == OT_GOTO_DEPOT && !(order->GetDepotOrderType() & ODTFB_PART_OF_ORDERS)) return order;
 | 
			
		||||
		order_position = AIOrder::ResolveOrderPosition(vehicle_id, order_position);
 | 
			
		||||
		if (order_position == AIOrder::ORDER_INVALID) return NULL;
 | 
			
		||||
	}
 | 
			
		||||
	return ::GetVehicleOrder(v, order_position);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* static */ bool AIOrder::IsGotoStationOrder(VehicleID vehicle_id, OrderPosition order_position)
 | 
			
		||||
{
 | 
			
		||||
	if (!IsValidVehicleOrder(vehicle_id, order_position)) return false;
 | 
			
		||||
 | 
			
		||||
	const Order *order = ::ResolveOrder(vehicle_id, order_position);
 | 
			
		||||
	return order != NULL && order->GetType() == OT_GOTO_STATION;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* static */ bool AIOrder::IsGotoDepotOrder(VehicleID vehicle_id, OrderPosition order_position)
 | 
			
		||||
{
 | 
			
		||||
	if (!IsValidVehicleOrder(vehicle_id, order_position)) return false;
 | 
			
		||||
 | 
			
		||||
	const Order *order = ::ResolveOrder(vehicle_id, order_position);
 | 
			
		||||
	return order != NULL && order->GetType() == OT_GOTO_DEPOT;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* static */ bool AIOrder::IsGotoWaypointOrder(VehicleID vehicle_id, OrderPosition order_position)
 | 
			
		||||
{
 | 
			
		||||
	if (!IsValidVehicleOrder(vehicle_id, order_position)) return false;
 | 
			
		||||
 | 
			
		||||
	const Order *order = ::ResolveOrder(vehicle_id, order_position);
 | 
			
		||||
	return order != NULL && order->GetType() == OT_GOTO_WAYPOINT;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* static */ bool AIOrder::IsConditionalOrder(VehicleID vehicle_id, OrderPosition order_position)
 | 
			
		||||
{
 | 
			
		||||
	if (order_position == ORDER_CURRENT) return false;
 | 
			
		||||
@@ -55,6 +96,16 @@ static OrderType GetOrderTypeByTile(TileIndex t)
 | 
			
		||||
	return order->GetType() == OT_CONDITIONAL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* static */ bool AIOrder::IsCurrentOrderPartOfOrderList(VehicleID vehicle_id)
 | 
			
		||||
{
 | 
			
		||||
	if (AIVehicle::IsValidVehicle(vehicle_id)) return false;
 | 
			
		||||
	if (GetOrderCount(vehicle_id) == 0) return false;
 | 
			
		||||
 | 
			
		||||
	const Order *order = &::GetVehicle(vehicle_id)->current_order;
 | 
			
		||||
	if (order->GetType() != OT_GOTO_DEPOT) return true;
 | 
			
		||||
	return (order->GetDepotOrderType() & ODTFB_PART_OF_ORDERS) != 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* static */ AIOrder::OrderPosition AIOrder::ResolveOrderPosition(VehicleID vehicle_id, OrderPosition order_position)
 | 
			
		||||
{
 | 
			
		||||
	if (!AIVehicle::IsValidVehicle(vehicle_id)) return ORDER_INVALID;
 | 
			
		||||
@@ -114,14 +165,9 @@ static OrderType GetOrderTypeByTile(TileIndex t)
 | 
			
		||||
{
 | 
			
		||||
	if (!IsValidVehicleOrder(vehicle_id, order_position)) return INVALID_TILE;
 | 
			
		||||
 | 
			
		||||
	const Order *order;
 | 
			
		||||
	const Order *order = ::ResolveOrder(vehicle_id, order_position);
 | 
			
		||||
	if (order == NULL || order->GetType() == OT_CONDITIONAL) return INVALID_TILE;
 | 
			
		||||
	const Vehicle *v = ::GetVehicle(vehicle_id);
 | 
			
		||||
	if (order_position == ORDER_CURRENT) {
 | 
			
		||||
		order = &v->current_order;
 | 
			
		||||
	} else {
 | 
			
		||||
		order = ::GetVehicleOrder(GetVehicle(vehicle_id), order_position);
 | 
			
		||||
		if (order->GetType() == OT_CONDITIONAL) return INVALID_TILE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch (order->GetType()) {
 | 
			
		||||
		case OT_GOTO_DEPOT: {
 | 
			
		||||
@@ -163,13 +209,8 @@ static OrderType GetOrderTypeByTile(TileIndex t)
 | 
			
		||||
{
 | 
			
		||||
	if (!IsValidVehicleOrder(vehicle_id, order_position)) return AIOF_INVALID;
 | 
			
		||||
 | 
			
		||||
	const Order *order;
 | 
			
		||||
	if (order_position == ORDER_CURRENT) {
 | 
			
		||||
		order = &::GetVehicle(vehicle_id)->current_order;
 | 
			
		||||
	} else {
 | 
			
		||||
		order = ::GetVehicleOrder(GetVehicle(vehicle_id), order_position);
 | 
			
		||||
		if (order->GetType() == OT_CONDITIONAL) return AIOF_INVALID;
 | 
			
		||||
	}
 | 
			
		||||
	const Order *order = ::ResolveOrder(vehicle_id, order_position);
 | 
			
		||||
	if (order == NULL || order->GetType() == OT_CONDITIONAL) return AIOF_INVALID;
 | 
			
		||||
 | 
			
		||||
	AIOrderFlags order_flags = AIOF_NONE;
 | 
			
		||||
	order_flags |= (AIOrderFlags)order->GetNonStopType();
 | 
			
		||||
 
 | 
			
		||||
@@ -118,6 +118,33 @@ public:
 | 
			
		||||
	 */
 | 
			
		||||
	static bool IsValidVehicleOrder(VehicleID vehicle_id, OrderPosition order_position);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Checks whether the given order is a goto-station order.
 | 
			
		||||
	 * @param vehicle_id The vehicle to check.
 | 
			
		||||
	 * @param order_position The order index to check.
 | 
			
		||||
	 * @pre IsValidVehicleOrder(vehicle_id, order_position).
 | 
			
		||||
	 * @return True if and only if the order is a goto-station order.
 | 
			
		||||
	 */
 | 
			
		||||
	static bool IsGotoStationOrder(VehicleID vehicle_id, OrderPosition order_position);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Checks whether the given order is a goto-depot order.
 | 
			
		||||
	 * @param vehicle_id The vehicle to check.
 | 
			
		||||
	 * @param order_position The order index to check.
 | 
			
		||||
	 * @pre IsValidVehicleOrder(vehicle_id, order_position).
 | 
			
		||||
	 * @return True if and only if the order is a goto-depot order.
 | 
			
		||||
	 */
 | 
			
		||||
	static bool IsGotoDepotOrder(VehicleID vehicle_id, OrderPosition order_position);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Checks whether the given order is a goto-waypoint order.
 | 
			
		||||
	 * @param vehicle_id The vehicle to check.
 | 
			
		||||
	 * @param order_position The order index to check.
 | 
			
		||||
	 * @pre IsValidVehicleOrder(vehicle_id, order_position).
 | 
			
		||||
	 * @return True if and only if the order is a goto-waypoint order.
 | 
			
		||||
	 */
 | 
			
		||||
	static bool IsGotoWaypointOrder(VehicleID vehicle_id, OrderPosition order_position);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Checks whether the given order is a conditional order.
 | 
			
		||||
	 * @param vehicle_id The vehicle to check.
 | 
			
		||||
@@ -127,6 +154,17 @@ public:
 | 
			
		||||
	 */
 | 
			
		||||
	static bool IsConditionalOrder(VehicleID vehicle_id, OrderPosition order_position);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Checks whether the current order is part of the orderlist.
 | 
			
		||||
	 * @param vehicle_id The vehicle to check.
 | 
			
		||||
	 * @pre AIVehicle::IsValidVehicle(vehicle_id).
 | 
			
		||||
	 * @return True if and only if the current order is part of the order list.
 | 
			
		||||
	 * @note If the order is a non-'non-stop' order, and the vehicle is currently
 | 
			
		||||
	 * (un)loading at a station that is not the final destination, this function
 | 
			
		||||
	 * will still return true.
 | 
			
		||||
	 */
 | 
			
		||||
	static bool IsCurrentOrderPartOfOrderList(VehicleID vehicle_id);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Resolves the given order index to the correct index for the given vehicle.
 | 
			
		||||
	 *  If the order index was ORDER_CURRENT it will be resolved to the index of
 | 
			
		||||
 
 | 
			
		||||
@@ -73,34 +73,38 @@ void SQAIOrder_Register(Squirrel *engine) {
 | 
			
		||||
	AIError::RegisterErrorMapString(AIOrder::ERR_ORDER_TOO_MANY,                               "ERR_ORDER_TOO_MANY");
 | 
			
		||||
	AIError::RegisterErrorMapString(AIOrder::ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION, "ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION");
 | 
			
		||||
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder,     "IsValidVehicleOrder",     3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsConditionalOrder,      "IsConditionalOrder",      3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ResolveOrderPosition,    "ResolveOrderPosition",    3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid,      "AreOrderFlagsValid",      3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidConditionalOrder, "IsValidConditionalOrder", 3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCount,           "GetOrderCount",           2, ".i");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderDestination,     "GetOrderDestination",     3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderFlags,           "GetOrderFlags",           3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderJumpTo,          "GetOrderJumpTo",          3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCondition,       "GetOrderCondition",       3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCompareFunction, "GetOrderCompareFunction", 3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCompareValue,    "GetOrderCompareValue",    3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderJumpTo,          "SetOrderJumpTo",          4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCondition,       "SetOrderCondition",       4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCompareFunction, "SetOrderCompareFunction", 4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCompareValue,    "SetOrderCompareValue",    4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendOrder,             "AppendOrder",             4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendConditionalOrder,  "AppendConditionalOrder",  3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertOrder,             "InsertOrder",             5, ".iiii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertConditionalOrder,  "InsertConditionalOrder",  4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::RemoveOrder,             "RemoveOrder",             3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderFlags,           "SetOrderFlags",           4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ChangeOrder,             "ChangeOrder",             4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::MoveOrder,               "MoveOrder",               4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SkipToOrder,             "SkipToOrder",             3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::CopyOrders,              "CopyOrders",              3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ShareOrders,             "ShareOrders",             3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::UnshareOrders,           "UnshareOrders",           2, ".i");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder,           "IsValidVehicleOrder",           3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsGotoStationOrder,            "IsGotoStationOrder",            3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsGotoDepotOrder,              "IsGotoDepotOrder",              3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsGotoWaypointOrder,           "IsGotoWaypointOrder",           3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsConditionalOrder,            "IsConditionalOrder",            3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsCurrentOrderPartOfOrderList, "IsCurrentOrderPartOfOrderList", 2, ".i");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ResolveOrderPosition,          "ResolveOrderPosition",          3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid,            "AreOrderFlagsValid",            3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidConditionalOrder,       "IsValidConditionalOrder",       3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCount,                 "GetOrderCount",                 2, ".i");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderDestination,           "GetOrderDestination",           3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderFlags,                 "GetOrderFlags",                 3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderJumpTo,                "GetOrderJumpTo",                3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCondition,             "GetOrderCondition",             3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCompareFunction,       "GetOrderCompareFunction",       3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCompareValue,          "GetOrderCompareValue",          3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderJumpTo,                "SetOrderJumpTo",                4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCondition,             "SetOrderCondition",             4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCompareFunction,       "SetOrderCompareFunction",       4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCompareValue,          "SetOrderCompareValue",          4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendOrder,                   "AppendOrder",                   4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendConditionalOrder,        "AppendConditionalOrder",        3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertOrder,                   "InsertOrder",                   5, ".iiii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertConditionalOrder,        "InsertConditionalOrder",        4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::RemoveOrder,                   "RemoveOrder",                   3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderFlags,                 "SetOrderFlags",                 4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ChangeOrder,                   "ChangeOrder",                   4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::MoveOrder,                     "MoveOrder",                     4, ".iii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SkipToOrder,                   "SkipToOrder",                   3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::CopyOrders,                    "CopyOrders",                    3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ShareOrders,                   "ShareOrders",                   3, ".ii");
 | 
			
		||||
	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::UnshareOrders,                 "UnshareOrders",                 2, ".i");
 | 
			
		||||
 | 
			
		||||
	SQAIOrder.PostRegister(engine);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -160,6 +160,13 @@
 | 
			
		||||
	return AIObject::DoCommand(0, vehicle_id, 0, GetCmdSendToDepot(::GetVehicle(vehicle_id)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* static */ bool AIVehicle::SendVehicleToDepotForServicing(VehicleID vehicle_id)
 | 
			
		||||
{
 | 
			
		||||
	EnforcePrecondition(false, IsValidVehicle(vehicle_id));
 | 
			
		||||
 | 
			
		||||
	return AIObject::DoCommand(0, vehicle_id, DEPOT_SERVICE, GetCmdSendToDepot(::GetVehicle(vehicle_id)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* static */ bool AIVehicle::IsInDepot(VehicleID vehicle_id)
 | 
			
		||||
{
 | 
			
		||||
	if (!IsValidVehicle(vehicle_id)) return false;
 | 
			
		||||
 
 | 
			
		||||
@@ -431,6 +431,16 @@ public:
 | 
			
		||||
	 */
 | 
			
		||||
	static bool SendVehicleToDepot(VehicleID vehicle_id);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Sends the given vehicle to a depot for servicing. If the vehicle has
 | 
			
		||||
	 * already been sent to a depot it continues with its normal orders instead.
 | 
			
		||||
	 * @param vehicle_id The vehicle to send to a depot for servicing.
 | 
			
		||||
	 * @pre IsValidVehicle(vehicle_id).
 | 
			
		||||
	 * @exception AIVehicle::ERR_VEHICLE_CANNOT_SEND_TO_DEPOT
 | 
			
		||||
	 * @return True if the current order was changed.
 | 
			
		||||
	 */
 | 
			
		||||
	static bool SendVehicleToDepotForServicing(VehicleID vehicle_id);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Starts or stops the given vehicle depending on the current state.
 | 
			
		||||
	 * @param vehicle_id The vehicle to start/stop.
 | 
			
		||||
 
 | 
			
		||||
@@ -98,47 +98,48 @@ void SQAIVehicle_Register(Squirrel *engine) {
 | 
			
		||||
	AIError::RegisterErrorMapString(AIVehicle::ERR_VEHICLE_IN_FLIGHT,            "ERR_VEHICLE_IN_FLIGHT");
 | 
			
		||||
	AIError::RegisterErrorMapString(AIVehicle::ERR_VEHCILE_NO_POWER,             "ERR_VEHCILE_NO_POWER");
 | 
			
		||||
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsValidVehicle,     "IsValidVehicle",     2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetNumWagons,       "GetNumWagons",       2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SetName,            "SetName",            3, ".is");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetName,            "GetName",            2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLocation,        "GetLocation",        2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetEngineType,      "GetEngineType",      2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetWagonEngineType, "GetWagonEngineType", 3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetUnitNumber,      "GetUnitNumber",      2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetAge,             "GetAge",             2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetWagonAge,        "GetWagonAge",        3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetMaxAge,          "GetMaxAge",          2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetAgeLeft,         "GetAgeLeft",         2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCurrentSpeed,    "GetCurrentSpeed",    2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetState,           "GetState",           2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRunningCost,     "GetRunningCost",     2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetProfitThisYear,  "GetProfitThisYear",  2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetProfitLastYear,  "GetProfitLastYear",  2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCurrentValue,    "GetCurrentValue",    2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetVehicleType,     "GetVehicleType",     2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRoadType,        "GetRoadType",        2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsInDepot,          "IsInDepot",          2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsStoppedInDepot,   "IsStoppedInDepot",   2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::BuildVehicle,       "BuildVehicle",       3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::CloneVehicle,       "CloneVehicle",       4, ".iib");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::MoveWagon,          "MoveWagon",          5, ".iiii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::MoveWagonChain,     "MoveWagonChain",     5, ".iiii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRefitCapacity,   "GetRefitCapacity",   3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::RefitVehicle,       "RefitVehicle",       3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellVehicle,        "SellVehicle",        2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellWagon,          "SellWagon",          3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellWagonChain,     "SellWagonChain",     3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SendVehicleToDepot, "SendVehicleToDepot", 2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::StartStopVehicle,   "StartStopVehicle",   2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SkipToVehicleOrder, "SkipToVehicleOrder", 3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::ReverseVehicle,     "ReverseVehicle",     2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCapacity,        "GetCapacity",        3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLength,          "GetLength",          2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCargoLoad,       "GetCargoLoad",       3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetGroupID,         "GetGroupID",         2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsArticulated,      "IsArticulated",      2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::HasSharedOrders,    "HasSharedOrders",    2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsValidVehicle,                 "IsValidVehicle",                 2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetNumWagons,                   "GetNumWagons",                   2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SetName,                        "SetName",                        3, ".is");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetName,                        "GetName",                        2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLocation,                    "GetLocation",                    2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetEngineType,                  "GetEngineType",                  2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetWagonEngineType,             "GetWagonEngineType",             3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetUnitNumber,                  "GetUnitNumber",                  2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetAge,                         "GetAge",                         2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetWagonAge,                    "GetWagonAge",                    3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetMaxAge,                      "GetMaxAge",                      2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetAgeLeft,                     "GetAgeLeft",                     2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCurrentSpeed,                "GetCurrentSpeed",                2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetState,                       "GetState",                       2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRunningCost,                 "GetRunningCost",                 2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetProfitThisYear,              "GetProfitThisYear",              2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetProfitLastYear,              "GetProfitLastYear",              2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCurrentValue,                "GetCurrentValue",                2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetVehicleType,                 "GetVehicleType",                 2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRoadType,                    "GetRoadType",                    2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsInDepot,                      "IsInDepot",                      2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsStoppedInDepot,               "IsStoppedInDepot",               2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::BuildVehicle,                   "BuildVehicle",                   3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::CloneVehicle,                   "CloneVehicle",                   4, ".iib");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::MoveWagon,                      "MoveWagon",                      5, ".iiii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::MoveWagonChain,                 "MoveWagonChain",                 5, ".iiii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRefitCapacity,               "GetRefitCapacity",               3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::RefitVehicle,                   "RefitVehicle",                   3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellVehicle,                    "SellVehicle",                    2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellWagon,                      "SellWagon",                      3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellWagonChain,                 "SellWagonChain",                 3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SendVehicleToDepot,             "SendVehicleToDepot",             2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SendVehicleToDepotForServicing, "SendVehicleToDepotForServicing", 2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::StartStopVehicle,               "StartStopVehicle",               2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SkipToVehicleOrder,             "SkipToVehicleOrder",             3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::ReverseVehicle,                 "ReverseVehicle",                 2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCapacity,                    "GetCapacity",                    3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLength,                      "GetLength",                      2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCargoLoad,                   "GetCargoLoad",                   3, ".ii");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetGroupID,                     "GetGroupID",                     2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsArticulated,                  "IsArticulated",                  2, ".i");
 | 
			
		||||
	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::HasSharedOrders,                "HasSharedOrders",                2, ".i");
 | 
			
		||||
 | 
			
		||||
	SQAIVehicle.PostRegister(engine);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user