src/ai/api/ai_station.hpp.sq
author truelight
Sun, 15 Jul 2007 12:56:41 +0000
branchnoai
changeset 9666 5765eb70736d
parent 9648 760b7b504e37
child 9670 820b77e19bb3
permissions -rw-r--r--
(svn r10580) [NoAI] -Add: added GetStationID to get the StationID based on a tile
#include "ai_station.hpp"

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

void SQAIStationRegister(Squirrel *engine) {
	DefSQClass <AIStation> SQAIStation("AIStation");
	SQAIStation.PreRegister(engine);
	SQAIStation.AddConstructor<void (AIStation::*)(), 1>(engine, "x");

	SQAIStation.DefSQStaticMethod(engine, &AIStation::GetClassName,    "GetClassName",    1, "x");
	SQAIStation.DefSQStaticMethod(engine, &AIStation::IsValidStation,  "IsValidStation",  2, "xi");
	SQAIStation.DefSQStaticMethod(engine, &AIStation::GetStationID,    "GetStationID",    2, "xi");
	SQAIStation.DefSQStaticMethod(engine, &AIStation::GetLocation,     "GetLocation",     2, "xi");
	SQAIStation.DefSQStaticMethod(engine, &AIStation::GetCargoWaiting, "GetCargoWaiting", 3, "xii");
	SQAIStation.DefSQStaticMethod(engine, &AIStation::GetCargoRating,  "GetCargoRating",  3, "xii");

	SQAIStation.PostRegister(engine);
}