|
1 #include "ai_list.hpp" |
|
2 |
|
3 namespace SQConvert { |
|
4 /* Allow AIList to be used as Squirrel parameter */ |
|
5 template <> AIList *GetParam(ForceType<AIList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIList *)instance; } |
|
6 template <> AIList &GetParam(ForceType<AIList &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIList *)instance; } |
|
7 template <> const AIList *GetParam(ForceType<const AIList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIList *)instance; } |
|
8 template <> const AIList &GetParam(ForceType<const AIList &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIList *)instance; } |
|
9 }; // namespace SQConvert |
|
10 |
|
11 void SQAIListRegister(Squirrel *engine) { |
|
12 DefSQClass <AIList> SQAIList("AIList"); |
|
13 SQAIList.PreRegister(engine, "AIAbstractList"); |
|
14 SQAIList.AddConstructor(engine); |
|
15 |
|
16 SQAIList.DefSQStaticMethod(engine, &AIList::GetClassName, "GetClassName", 1, "x"); |
|
17 |
|
18 SQAIList.DefSQMethod(engine, &AIList::AddItem, "AddItem", 2, "xi"); |
|
19 SQAIList.DefSQMethod(engine, &AIList::RemoveItem, "RemoveItem", 2, "xi"); |
|
20 |
|
21 SQAIList.PostRegister(engine); |
|
22 } |