Index: src/ai/api/ai_order.cpp =================================================================== --- src/ai/api/ai_order.cpp (revision 12187) +++ src/ai/api/ai_order.cpp (working copy) @@ -57,12 +57,12 @@ } } -int32 AIOrder::GetNumberOfOrders(VehicleID vehicle_id) +/* static */ int32 AIOrder::GetNumberOfOrders(VehicleID vehicle_id) { return AIVehicle::IsValidVehicle(vehicle_id) ? ::GetVehicle(vehicle_id)->num_orders : -1; } -TileIndex AIOrder::GetOrderDestination(VehicleID vehicle_id, uint32 order_id) +/* static */ TileIndex AIOrder::GetOrderDestination(VehicleID vehicle_id, uint32 order_id) { if (!AIOrder::IsValidVehicleOrder(vehicle_id, order_id)) return INVALID_TILE; @@ -77,7 +77,7 @@ } } -AIOrder::AIOrderFlags AIOrder::GetOrderFlags(VehicleID vehicle_id, uint32 order_id) +/* static */ AIOrder::AIOrderFlags AIOrder::GetOrderFlags(VehicleID vehicle_id, uint32 order_id) { if (!AIOrder::IsValidVehicleOrder(vehicle_id, order_id)) return AIOF_INVALID; @@ -87,17 +87,17 @@ return (AIOrder::AIOrderFlags)order->flags; } -bool AIOrder::AppendOrder(VehicleID vehicle_id, TileIndex destination, AIOrderFlags order_flags) +/* static */ bool AIOrder::AppendOrder(VehicleID vehicle_id, TileIndex destination, AIOrderFlags order_flags) { if (!AIVehicle::IsValidVehicle(vehicle_id)) return false; - return this->InsertOrder(vehicle_id, GetVehicle(vehicle_id)->num_orders, destination, order_flags); + return InsertOrder(vehicle_id, GetVehicle(vehicle_id)->num_orders, destination, order_flags); } -bool AIOrder::InsertOrder(VehicleID vehicle_id, uint32 order_id, TileIndex destination, AIOrder::AIOrderFlags order_flags) +/* static */ bool AIOrder::InsertOrder(VehicleID vehicle_id, uint32 order_id, TileIndex destination, AIOrder::AIOrderFlags order_flags) { /* IsValidVehicleOrder is not good enough because it does not allow appending. */ if (!AIVehicle::IsValidVehicle(vehicle_id) || order_id > ::GetVehicle(vehicle_id)->num_orders || - !this->AreOrderFlagsValid(destination, order_flags)) return false; + !AreOrderFlagsValid(destination, order_flags)) return false; Order order; order.type = ::GetOrderTypeByTile(destination); @@ -109,58 +109,58 @@ default: NOT_REACHED(); return false; } - return this->DoCommand(0, vehicle_id | (order_id << 16), PackOrder(&order), CMD_INSERT_ORDER); + return DoCommand(0, vehicle_id | (order_id << 16), PackOrder(&order), CMD_INSERT_ORDER); } -bool AIOrder::RemoveOrder(VehicleID vehicle_id, uint32 order_id) +/* static */ bool AIOrder::RemoveOrder(VehicleID vehicle_id, uint32 order_id) { if (!IsValidVehicleOrder(vehicle_id, order_id)) return false; - return this->DoCommand(0, vehicle_id, order_id, CMD_DELETE_ORDER); + return DoCommand(0, vehicle_id, order_id, CMD_DELETE_ORDER); } -bool AIOrder::ChangeOrder(VehicleID vehicle_id, uint32 order_id, AIOrder::AIOrderFlags order_flags) +/* static */ bool AIOrder::ChangeOrder(VehicleID vehicle_id, uint32 order_id, AIOrder::AIOrderFlags order_flags) { if (!IsValidVehicleOrder(vehicle_id, order_id) || - !this->AreOrderFlagsValid(GetOrderDestination(vehicle_id, order_id), order_flags)) return false; + !AreOrderFlagsValid(GetOrderDestination(vehicle_id, order_id), order_flags)) return false; for (;;) { /* Loop as long as there is a difference between the requested and * the current orders of the vehicle. */ - AIOrderFlags current = this->GetOrderFlags(vehicle_id, order_id); + AIOrderFlags current = GetOrderFlags(vehicle_id, order_id); AIOrderFlags diff = current ^ order_flags; if (diff == 0) return true; - bool res = this->DoCommand(0, vehicle_id | (order_id << 16), FIND_FIRST_BIT(diff), CMD_MODIFY_ORDER); + bool res = DoCommand(0, vehicle_id | (order_id << 16), FIND_FIRST_BIT(diff), CMD_MODIFY_ORDER); if (!res) return false; } } -bool AIOrder::MoveOrder(VehicleID vehicle_id, uint32 order_id_move, uint32 order_id_target) +/* static */ bool AIOrder::MoveOrder(VehicleID vehicle_id, uint32 order_id_move, uint32 order_id_target) { if (!IsValidVehicleOrder(vehicle_id, order_id_move) || !IsValidVehicleOrder(vehicle_id, order_id_target)) return false; - return this->DoCommand(0, vehicle_id, order_id_move | (order_id_target << 16), CMD_MOVE_ORDER); + return DoCommand(0, vehicle_id, order_id_move | (order_id_target << 16), CMD_MOVE_ORDER); } -bool AIOrder::CopyOrders(VehicleID vehicle_id, VehicleID main_vehicle_id) +/* static */ bool AIOrder::CopyOrders(VehicleID vehicle_id, VehicleID main_vehicle_id) { if (!AIVehicle::IsValidVehicle(vehicle_id) || !AIVehicle::IsValidVehicle(main_vehicle_id)) return false; - return this->DoCommand(0, vehicle_id | (main_vehicle_id << 16), CO_COPY, CMD_CLONE_ORDER); + return DoCommand(0, vehicle_id | (main_vehicle_id << 16), CO_COPY, CMD_CLONE_ORDER); } -bool AIOrder::ShareOrders(VehicleID vehicle_id, VehicleID main_vehicle_id) +/* static */ bool AIOrder::ShareOrders(VehicleID vehicle_id, VehicleID main_vehicle_id) { if (!AIVehicle::IsValidVehicle(vehicle_id) || !AIVehicle::IsValidVehicle(main_vehicle_id)) return false; - return this->DoCommand(0, vehicle_id | (main_vehicle_id << 16), CO_SHARE, CMD_CLONE_ORDER); + return DoCommand(0, vehicle_id | (main_vehicle_id << 16), CO_SHARE, CMD_CLONE_ORDER); } -bool AIOrder::UnshareOrders(VehicleID vehicle_id) +/* static */ bool AIOrder::UnshareOrders(VehicleID vehicle_id) { if (!AIVehicle::IsValidVehicle(vehicle_id)) return false; - return this->DoCommand(0, vehicle_id, CO_UNSHARE, CMD_CLONE_ORDER); + return DoCommand(0, vehicle_id, CO_UNSHARE, CMD_CLONE_ORDER); } Index: src/ai/api/ai_order.hpp =================================================================== --- src/ai/api/ai_order.hpp (revision 12187) +++ src/ai/api/ai_order.hpp (working copy) @@ -65,7 +65,7 @@ * @return the number of orders for the given vehicle or a negative * value when the vehicle does not exist. */ - int32 GetNumberOfOrders(VehicleID vehicle_id); + static int32 GetNumberOfOrders(VehicleID vehicle_id); /** * Gets the destination of the given order for the given vehicle. @@ -74,7 +74,7 @@ * @pre IsValidVehicleOrder(vehicle_id, order_id). * @return the destination tile of the order. */ - TileIndex GetOrderDestination(VehicleID vehicle_id, uint32 order_id); + static TileIndex GetOrderDestination(VehicleID vehicle_id, uint32 order_id); /** * Gets the AIOrderFlags of the given order for the given vehicle. @@ -83,7 +83,7 @@ * @pre IsValidVehicleOrder(vehicle_id, order_id). * @return the AIOrderFlags of the order. */ - AIOrderFlags GetOrderFlags(VehicleID vehicle_id, uint32 order_id); + static AIOrderFlags GetOrderFlags(VehicleID vehicle_id, uint32 order_id); /** * Appends an order to the end of the vehicle's order list. @@ -94,7 +94,7 @@ * @pre AreOrderFlagsValid(destination, order_flags). * @return true if and only if the order was appended. */ - bool AppendOrder(VehicleID vehicle_id, TileIndex destination, AIOrderFlags order_flags); + static bool AppendOrder(VehicleID vehicle_id, TileIndex destination, AIOrderFlags order_flags); /** * Inserts an order before the given order_id into the vehicle's order list. @@ -106,7 +106,7 @@ * @pre AreOrderFlagsValid(destination, order_flags). * @return true if and only if the order was inserted. */ - bool InsertOrder(VehicleID vehicle_id, uint32 order_id, TileIndex destination, AIOrderFlags order_flags); + static bool InsertOrder(VehicleID vehicle_id, uint32 order_id, TileIndex destination, AIOrderFlags order_flags); /** * Removes an order from the vehicle's order list. @@ -115,7 +115,7 @@ * @pre AIVehicle::IsValidVehicleOrder(vehicle_id, order_id). * @return true if and only if the order was removed. */ - bool RemoveOrder(VehicleID vehicle_id, uint32 order_id); + static bool RemoveOrder(VehicleID vehicle_id, uint32 order_id); /** * Changes the order flags of the given order. @@ -126,7 +126,7 @@ * @pre AreOrderFlagsValid(GetOrderDestination(vehicle_id, order_id), order_flags). * @return true if and only if the order was changed. */ - bool ChangeOrder(VehicleID vehicle_id, uint32 order_id, AIOrderFlags order_flags); + static bool ChangeOrder(VehicleID vehicle_id, uint32 order_id, AIOrderFlags order_flags); /** * Move an order inside the orderlist @@ -141,7 +141,7 @@ * to a higher place (e.g. from 7 to 9) the target will be moved * downwards (e.g. 8). */ - bool MoveOrder(VehicleID vehicle_id, uint32 order_id_move, uint32 order_id_target); + static bool MoveOrder(VehicleID vehicle_id, uint32 order_id_move, uint32 order_id_target); /** * Copies the orders from another vehicle. The orders of the main @@ -152,7 +152,7 @@ * @pre AIVehicle::IsValidVehicle(main_vehicle_id). * @return true if and only if the copying succeeded. */ - bool CopyOrders(VehicleID vehicle_id, VehicleID main_vehicle_id); + static bool CopyOrders(VehicleID vehicle_id, VehicleID main_vehicle_id); /** * Shares the orders between two vehicles. The orders of the main @@ -163,7 +163,7 @@ * @pre AIVehicle::IsValidVehicle(main_vehicle_id). * @return true if and only if the sharing succeeded. */ - bool ShareOrders(VehicleID vehicle_id, VehicleID main_vehicle_id); + static bool ShareOrders(VehicleID vehicle_id, VehicleID main_vehicle_id); /** * Removes the given vehicle from a shared orders list. @@ -171,7 +171,7 @@ * @pre AIVehicle::IsValidVehicle(vehicle_id). * @return true if and only if the unsharing succeeded. */ - bool UnshareOrders(VehicleID vehicle_id); + static bool UnshareOrders(VehicleID vehicle_id); }; DECLARE_ENUM_AS_BIT_SET(AIOrder::AIOrderFlags); Index: src/ai/api/ai_order.hpp.sq =================================================================== --- src/ai/api/ai_order.hpp.sq (revision 12187) +++ src/ai/api/ai_order.hpp.sq (working copy) @@ -29,18 +29,17 @@ SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetClassName, "GetClassName", 1, "x"); SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder, "IsValidVehicleOrder", 3, "xii"); SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid, "AreOrderFlagsValid", 3, "xii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetNumberOfOrders, "GetNumberOfOrders", 2, "xi"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderDestination, "GetOrderDestination", 3, "xii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderFlags, "GetOrderFlags", 3, "xii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendOrder, "AppendOrder", 4, "xiii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertOrder, "InsertOrder", 5, "xiiii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::RemoveOrder, "RemoveOrder", 3, "xii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ChangeOrder, "ChangeOrder", 4, "xiii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::MoveOrder, "MoveOrder", 4, "xiii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::CopyOrders, "CopyOrders", 3, "xii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ShareOrders, "ShareOrders", 3, "xii"); + SQAIOrder.DefSQStaticMethod(engine, &AIOrder::UnshareOrders, "UnshareOrders", 2, "xi"); - SQAIOrder.DefSQMethod(engine, &AIOrder::GetNumberOfOrders, "GetNumberOfOrders", 2, "xi"); - SQAIOrder.DefSQMethod(engine, &AIOrder::GetOrderDestination, "GetOrderDestination", 3, "xii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::GetOrderFlags, "GetOrderFlags", 3, "xii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::AppendOrder, "AppendOrder", 4, "xiii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::InsertOrder, "InsertOrder", 5, "xiiii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::RemoveOrder, "RemoveOrder", 3, "xii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::ChangeOrder, "ChangeOrder", 4, "xiii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::MoveOrder, "MoveOrder", 4, "xiii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::CopyOrders, "CopyOrders", 3, "xii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::ShareOrders, "ShareOrders", 3, "xii"); - SQAIOrder.DefSQMethod(engine, &AIOrder::UnshareOrders, "UnshareOrders", 2, "xi"); - SQAIOrder.PostRegister(engine); }