src/ai/api/ai_company.hpp.sq
author truelight
Sat, 14 Jul 2007 21:15:49 +0000
branchnoai
changeset 9657 f2c6e332d8bc
parent 9635 9ee82e091af7
child 9668 6fe3d2cb9655
permissions -rw-r--r--
(svn r10564) [NoAI] -Add: added a AITileList valuator that checks for a NxM buildable spot with the entry from the AITileList as top-left tile
#include "ai_company.hpp"

namespace SQConvert {
	/* Allow AICompany to be used as Squirrel parameter */
	template <> AICompany *GetParam(ForceType<AICompany *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AICompany *)instance; }
	template <> AICompany &GetParam(ForceType<AICompany &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AICompany *)instance; }
	template <> const AICompany *GetParam(ForceType<const AICompany *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AICompany *)instance; }
	template <> const AICompany &GetParam(ForceType<const AICompany &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AICompany *)instance; }
}; // namespace SQConvert

void SQAICompanyRegister(Squirrel *engine) {
	DefSQClass <AICompany> SQAICompany("AICompany");
	SQAICompany.PreRegister(engine);
	SQAICompany.AddConstructor<void (AICompany::*)(), 1>(engine, "x");

	SQAICompany.DefSQStaticMethod(engine, &AICompany::GetClassName, "GetClassName", 1, "x");

	SQAICompany.DefSQMethod(engine, &AICompany::SetCompanyName,   "SetCompanyName",   2, "xs");
	SQAICompany.DefSQMethod(engine, &AICompany::GetCompanyName,   "GetCompanyName",   1, "x");
	SQAICompany.DefSQMethod(engine, &AICompany::SetPresidentName, "SetPresidentName", 2, "xs");
	SQAICompany.DefSQMethod(engine, &AICompany::GetPresidentName, "GetPresidentName", 1, "x");
	SQAICompany.DefSQMethod(engine, &AICompany::GetCompanyValue,  "GetCompanyValue",  1, "x");
	SQAICompany.DefSQMethod(engine, &AICompany::GetBankBalance,   "GetBankBalance",   1, "x");
	SQAICompany.DefSQMethod(engine, &AICompany::GetLoanAmount,    "GetLoanAmount",    1, "x");
	SQAICompany.DefSQMethod(engine, &AICompany::GetMaxLoanAmount, "GetMaxLoanAmount", 1, "x");
	SQAICompany.DefSQMethod(engine, &AICompany::GetLoanInterval,  "GetLoanInterval",  1, "x");
	SQAICompany.DefSQMethod(engine, &AICompany::SetLoanAmount,    "SetLoanAmount",    2, "xi");

	SQAICompany.PostRegister(engine);
}