src/ai/api/ai_order.hpp.sq
branchnoai
changeset 10093 b3849a19d137
parent 9741 53c1c5850e01
child 10146 ddbb8d2ae3ea
equal deleted inserted replaced
10091:e4feb2f9fedf 10093:b3849a19d137
     1 #include "ai_order.hpp"
     1 #include "ai_order.hpp"
     2 
     2 
     3 namespace SQConvert {
     3 namespace SQConvert {
     4 	/* Allow enums to be used as Squirrel parameters */
     4 	/* Allow enums to be used as Squirrel parameters */
       
     5 	template <> AIOrder::ErrorMessages GetParam(ForceType<AIOrder::ErrorMessages>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIOrder::ErrorMessages)tmp; }
       
     6 	template <> int Return<AIOrder::ErrorMessages>(HSQUIRRELVM vm, AIOrder::ErrorMessages res) { sq_pushinteger(vm, (int32)res); return 1; }
     5 	template <> AIOrder::AIOrderFlags GetParam(ForceType<AIOrder::AIOrderFlags>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIOrder::AIOrderFlags)tmp; }
     7 	template <> AIOrder::AIOrderFlags GetParam(ForceType<AIOrder::AIOrderFlags>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIOrder::AIOrderFlags)tmp; }
     6 	template <> int Return<AIOrder::AIOrderFlags>(HSQUIRRELVM vm, AIOrder::AIOrderFlags res) { sq_pushinteger(vm, (int32)res); return 1; }
     8 	template <> int Return<AIOrder::AIOrderFlags>(HSQUIRRELVM vm, AIOrder::AIOrderFlags res) { sq_pushinteger(vm, (int32)res); return 1; }
     7 
     9 
     8 	/* Allow AIOrder to be used as Squirrel parameter */
    10 	/* Allow AIOrder to be used as Squirrel parameter */
     9 	template <> AIOrder *GetParam(ForceType<AIOrder *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AIOrder *)instance; }
    11 	template <> AIOrder *GetParam(ForceType<AIOrder *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AIOrder *)instance; }
    16 void SQAIOrder_Register(Squirrel *engine) {
    18 void SQAIOrder_Register(Squirrel *engine) {
    17 	DefSQClass <AIOrder> SQAIOrder("AIOrder");
    19 	DefSQClass <AIOrder> SQAIOrder("AIOrder");
    18 	SQAIOrder.PreRegister(engine);
    20 	SQAIOrder.PreRegister(engine);
    19 	SQAIOrder.AddConstructor<void (AIOrder::*)(), 1>(engine, "x");
    21 	SQAIOrder.AddConstructor<void (AIOrder::*)(), 1>(engine, "x");
    20 
    22 
    21 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_NONE,              "AIOF_NONE");
    23 	SQAIOrder.DefSQConst(engine, AIOrder::ERR_ORDER_BASE,                                   "ERR_ORDER_BASE");
    22 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_TRANSFER,          "AIOF_TRANSFER");
    24 	SQAIOrder.DefSQConst(engine, AIOrder::ERR_ORDER_TOO_MANY,                               "ERR_ORDER_TOO_MANY");
    23 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_UNLOAD,            "AIOF_UNLOAD");
    25 	SQAIOrder.DefSQConst(engine, AIOrder::ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION, "ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION");
    24 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_FULL_LOAD,         "AIOF_FULL_LOAD");
    26 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_NONE,                                        "AIOF_NONE");
    25 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_SERVICE_IF_NEEDED, "AIOF_SERVICE_IF_NEEDED");
    27 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_TRANSFER,                                    "AIOF_TRANSFER");
    26 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_NON_STOP,          "AIOF_NON_STOP");
    28 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_UNLOAD,                                      "AIOF_UNLOAD");
    27 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_INVALID,           "AIOF_INVALID");
    29 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_FULL_LOAD,                                   "AIOF_FULL_LOAD");
       
    30 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_SERVICE_IF_NEEDED,                           "AIOF_SERVICE_IF_NEEDED");
       
    31 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_NON_STOP,                                    "AIOF_NON_STOP");
       
    32 	SQAIOrder.DefSQConst(engine, AIOrder::AIOF_INVALID,                                     "AIOF_INVALID");
       
    33 
       
    34 	AIError::RegisterErrorMap(STR_8831_NO_MORE_SPACE_FOR_ORDERS,         AIOrder::ERR_ORDER_TOO_MANY);
       
    35 	AIError::RegisterErrorMap(STR_0210_TOO_FAR_FROM_PREVIOUS_DESTINATIO, AIOrder::ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION);
       
    36 
       
    37 	AIError::RegisterErrorMapString(AIOrder::ERR_ORDER_TOO_MANY,                               "ERR_ORDER_TOO_MANY");
       
    38 	AIError::RegisterErrorMapString(AIOrder::ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION, "ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION");
    28 
    39 
    29 	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetClassName,        "GetClassName",        1, "x");
    40 	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetClassName,        "GetClassName",        1, "x");
    30 	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder, "IsValidVehicleOrder", 3, "xii");
    41 	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder, "IsValidVehicleOrder", 3, "xii");
    31 	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid,  "AreOrderFlagsValid",  3, "xii");
    42 	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid,  "AreOrderFlagsValid",  3, "xii");
    32 	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetNumberOfOrders,   "GetNumberOfOrders",   2, "xi");
    43 	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetNumberOfOrders,   "GetNumberOfOrders",   2, "xi");