diff options
author | yexo <yexo@openttd.org> | 2009-03-04 22:37:25 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2009-03-04 22:37:25 +0000 |
commit | ffe2caf20f12f70dfc3b8b552ce2ee44ec2e477d (patch) | |
tree | 26f79c179e706f1c04db23a8c982f56990ee5339 /src/ai/api/ai_vehiclelist.hpp.sq | |
parent | 5fd7c799879d545879a7b3adc9ace70404a20ab0 (diff) | |
download | openttd-ffe2caf20f12f70dfc3b8b552ce2ee44ec2e477d.tar.xz |
(svn r15614) -Add [NoAI]: AIVehicleList_Group(group_id) and AIVehicleList_DefaultGroup(vehicle_type).
Diffstat (limited to 'src/ai/api/ai_vehiclelist.hpp.sq')
-rw-r--r-- | src/ai/api/ai_vehiclelist.hpp.sq | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/ai/api/ai_vehiclelist.hpp.sq b/src/ai/api/ai_vehiclelist.hpp.sq index b5af401a1..9f00f61d8 100644 --- a/src/ai/api/ai_vehiclelist.hpp.sq +++ b/src/ai/api/ai_vehiclelist.hpp.sq @@ -53,3 +53,37 @@ void SQAIVehicleList_SharedOrders_Register(Squirrel *engine) { SQAIVehicleList_SharedOrders.PostRegister(engine); } + +namespace SQConvert { + /* Allow AIVehicleList_Group to be used as Squirrel parameter */ + template <> AIVehicleList_Group *GetParam(ForceType<AIVehicleList_Group *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIVehicleList_Group *)instance; } + template <> AIVehicleList_Group &GetParam(ForceType<AIVehicleList_Group &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIVehicleList_Group *)instance; } + template <> const AIVehicleList_Group *GetParam(ForceType<const AIVehicleList_Group *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIVehicleList_Group *)instance; } + template <> const AIVehicleList_Group &GetParam(ForceType<const AIVehicleList_Group &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIVehicleList_Group *)instance; } + template <> int Return<AIVehicleList_Group *>(HSQUIRRELVM vm, AIVehicleList_Group *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIVehicleList_Group", res, NULL, DefSQDestructorCallback<AIVehicleList_Group>); return 1; } +}; // namespace SQConvert + +void SQAIVehicleList_Group_Register(Squirrel *engine) { + DefSQClass <AIVehicleList_Group> SQAIVehicleList_Group("AIVehicleList_Group"); + SQAIVehicleList_Group.PreRegister(engine, "AIAbstractList"); + SQAIVehicleList_Group.AddConstructor<void (AIVehicleList_Group::*)(GroupID group_id), 2>(engine, "xi"); + + SQAIVehicleList_Group.PostRegister(engine); +} + +namespace SQConvert { + /* Allow AIVehicleList_DefaultGroup to be used as Squirrel parameter */ + template <> AIVehicleList_DefaultGroup *GetParam(ForceType<AIVehicleList_DefaultGroup *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIVehicleList_DefaultGroup *)instance; } + template <> AIVehicleList_DefaultGroup &GetParam(ForceType<AIVehicleList_DefaultGroup &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIVehicleList_DefaultGroup *)instance; } + template <> const AIVehicleList_DefaultGroup *GetParam(ForceType<const AIVehicleList_DefaultGroup *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIVehicleList_DefaultGroup *)instance; } + template <> const AIVehicleList_DefaultGroup &GetParam(ForceType<const AIVehicleList_DefaultGroup &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIVehicleList_DefaultGroup *)instance; } + template <> int Return<AIVehicleList_DefaultGroup *>(HSQUIRRELVM vm, AIVehicleList_DefaultGroup *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIVehicleList_DefaultGroup", res, NULL, DefSQDestructorCallback<AIVehicleList_DefaultGroup>); return 1; } +}; // namespace SQConvert + +void SQAIVehicleList_DefaultGroup_Register(Squirrel *engine) { + DefSQClass <AIVehicleList_DefaultGroup> SQAIVehicleList_DefaultGroup("AIVehicleList_DefaultGroup"); + SQAIVehicleList_DefaultGroup.PreRegister(engine, "AIAbstractList"); + SQAIVehicleList_DefaultGroup.AddConstructor<void (AIVehicleList_DefaultGroup::*)(AIVehicle::VehicleType vehicle_type), 2>(engine, "xi"); + + SQAIVehicleList_DefaultGroup.PostRegister(engine); +} |