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 |