src/ai/api/ai_tunnel.hpp.sq
author truebrain
Thu, 28 Feb 2008 01:11:23 +0000
branchnoai
changeset 9803 c86d5834fb11
parent 9794 5d866d7cb991
child 10088 922c6e6a8d3e
permissions -rw-r--r--
(svn r12309) [NoAI] -Codechange: optimize a little bit (a very small little bit, but every bit counts :) ) (glx)
#include "ai_tunnel.hpp"

namespace SQConvert {
	/* Allow AITunnel to be used as Squirrel parameter */
	template <> AITunnel *GetParam(ForceType<AITunnel *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AITunnel *)instance; }
	template <> AITunnel &GetParam(ForceType<AITunnel &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITunnel *)instance; }
	template <> const AITunnel *GetParam(ForceType<const AITunnel *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AITunnel *)instance; }
	template <> const AITunnel &GetParam(ForceType<const AITunnel &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITunnel *)instance; }
	template <> int Return<AITunnel *>(HSQUIRRELVM vm, AITunnel *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AITunnel", res, NULL, DefSQDestructorCallback<AITunnel>); return 1; }
}; // namespace SQConvert

void SQAITunnel_Register(Squirrel *engine) {
	DefSQClass <AITunnel> SQAITunnel("AITunnel");
	SQAITunnel.PreRegister(engine);
	SQAITunnel.AddConstructor<void (AITunnel::*)(), 1>(engine, "x");

	SQAITunnel.DefSQStaticMethod(engine, &AITunnel::GetClassName,      "GetClassName",      1, "x");
	SQAITunnel.DefSQStaticMethod(engine, &AITunnel::IsTunnelTile,      "IsTunnelTile",      2, "xi");
	SQAITunnel.DefSQStaticMethod(engine, &AITunnel::GetOtherTunnelEnd, "GetOtherTunnelEnd", 2, "xi");
	SQAITunnel.DefSQStaticMethod(engine, &AITunnel::BuildTunnel,       "BuildTunnel",       3, "xii");
	SQAITunnel.DefSQStaticMethod(engine, &AITunnel::RemoveTunnel,      "RemoveTunnel",      2, "xi");

	SQAITunnel.PostRegister(engine);
}