src/ai/api/ai_industry.hpp.sq
author truebrain
Wed, 27 Feb 2008 21:07:31 +0000
branchnoai
changeset 9792 e1222f4674c2
parent 9741 53c1c5850e01
child 9810 a84fc1be9e3b
permissions -rw-r--r--
(svn r12294) [NoAI] -Add: added AIBridge(List), which lists all available bridges (no build yet)
#include "ai_industry.hpp"

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

void SQAIIndustry_Register(Squirrel *engine) {
	DefSQClass <AIIndustry> SQAIIndustry("AIIndustry");
	SQAIIndustry.PreRegister(engine);
	SQAIIndustry.AddConstructor<void (AIIndustry::*)(), 1>(engine, "x");

	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetClassName,     "GetClassName",     1, "x");
	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetMaxIndustryID, "GetMaxIndustryID", 1, "x");
	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetIndustryCount, "GetIndustryCount", 1, "x");
	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::IsValidIndustry,  "IsValidIndustry",  2, "xi");
	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetName,          "GetName",          2, "xi");
	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetProduction,    "GetProduction",    3, "xii");
	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::IsCargoAccepted,  "IsCargoAccepted",  3, "xii");
	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetLocation,      "GetLocation",      2, "xi");

	SQAIIndustry.PostRegister(engine);
}