int IssueEnqueueShipProductionOrder(int design_id, int location_id) { int empire_id = AIClientApp::GetApp()->EmpireID(); Empire* empire = AIClientApp::GetApp()->Empires().Lookup(empire_id); if (!empire->ProducibleItem(BT_SHIP, design_id, location_id)) { Logger().errorStream() << "AIInterface::IssueEnqueueShipProductionOrder : specified design_id and location_id that don't indicate a design that can be built at that location"; return 0; } AIClientApp::GetApp()->Orders().IssueOrder(OrderPtr( new ProductionQueueOrder(empire_id, BT_SHIP, design_id, 1, location_id))); return 1; }
int IssueEnqueueBuildingProductionOrder(const std::string& item_name, int location_id) { int empire_id = AIClientApp::GetApp()->EmpireID(); Empire* empire = AIClientApp::GetApp()->Empires().Lookup(empire_id); if (!empire->ProducibleItem(BT_BUILDING, item_name, location_id)) { Logger().errorStream() << "AIInterface::IssueEnqueueBuildingProductionOrder : specified item_name and location_id that don't indicate an item that can be built at that location"; return 0; } AIClientApp::GetApp()->Orders().IssueOrder(OrderPtr( new ProductionQueueOrder(empire_id, BT_BUILDING, item_name, 1, location_id))); return 1; }