src/ai/api/ai_list.hpp
branchnoai
changeset 9594 5009a30f320a
parent 9593 012f29f59906
child 9596 8af5a1399842
equal deleted inserted replaced
9593:012f29f59906 9594:5009a30f320a
    32 };
    32 };
    33 
    33 
    34 #ifdef DEFINE_SQUIRREL_CLASS
    34 #ifdef DEFINE_SQUIRREL_CLASS
    35 namespace SQConvert {
    35 namespace SQConvert {
    36 	/* Allow AIList to be used as Squirrel parameter */
    36 	/* Allow AIList to be used as Squirrel parameter */
    37 	template <> AIList *GetParam(ForceType<AIList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIList *)instance; }
    37 	template <> AIList *GetParam(ForceType<AIList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AIList *)instance; }
       
    38 	template <> AIList &GetParam(ForceType<AIList &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIList *)instance; }
       
    39 	template <> const AIList *GetParam(ForceType<const AIList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AIList *)instance; }
       
    40 	template <> const AIList &GetParam(ForceType<const AIList &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIList *)instance; }
    38 }; // namespace SQConvert
    41 }; // namespace SQConvert
    39 
    42 
    40 void SQAIListRegister(Squirrel *engine) {
    43 void SQAIListRegister(Squirrel *engine) {
    41 	DefSQClass <AIList> SQAIList("AIList");
    44 	DefSQClass <AIList> SQAIList("AIList");
    42 	SQAIList.PreRegister(engine, "AIAbstractList");
    45 	SQAIList.PreRegister(engine, "AIAbstractList");
    43 	SQAIList.AddConstructor(engine);
    46 	SQAIList.AddConstructor(engine);
    44 
    47 
    45 	SQAIList.DefSQStaticMethod(engine, &AIList::GetClassName, "GetClassName", 1, "x");
    48 	SQAIList.DefSQStaticMethod(engine, &AIList::GetClassName, "GetClassName", 1, "x");
    46 
    49 
    47 	SQAIList.DefSQMethod(engine, &AIList::AddItem,         "AddItem",         2, "xi");
    50 	SQAIList.DefSQMethod(engine, &AIList::AddItem,    "AddItem",    2, "xi");
    48 	SQAIList.DefSQMethod(engine, &AIList::RemoveItem,      "RemoveItem",      2, "xi");
    51 	SQAIList.DefSQMethod(engine, &AIList::RemoveItem, "RemoveItem", 2, "xi");
    49 
    52 
    50 	SQAIList.PostRegister(engine);
    53 	SQAIList.PostRegister(engine);
    51 }
    54 }
    52 #endif /* DEFINE_SQUIRREL_CLASS */
    55 #endif /* DEFINE_SQUIRREL_CLASS */
    53 
    56