src/ai/api/ai_tilelist_valuator.hpp.sq
author truelight
Fri, 04 May 2007 15:57:29 +0000
branchnoai
changeset 9611 5cf58c6571b7
parent 9610 5cebcd43a1ec
child 9617 df9cedf12aab
permissions -rw-r--r--
(svn r9776) [NoAI] -Add: added AITileListSlope as valuator to see if tiles are flat or not
#include "ai_tilelist_valuator.hpp"

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

void SQAITileListBuildableRegister(Squirrel *engine) {
	DefSQClass <AITileListBuildable> SQAITileListBuildable("AITileListBuildable");
	SQAITileListBuildable.PreRegister(engine);
	SQAITileListBuildable.AddConstructor<void (AITileListBuildable::*)()>(engine, 1, "x");

	SQAITileListBuildable.DefSQStaticMethod(engine, &AITileListBuildable::GetClassName, "GetClassName", 1, "x");

	SQAITileListBuildable.PostRegister(engine);
}

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

void SQAITileListSlopeRegister(Squirrel *engine) {
	DefSQClass <AITileListSlope> SQAITileListSlope("AITileListSlope");
	SQAITileListSlope.PreRegister(engine);
	SQAITileListSlope.AddConstructor<void (AITileListSlope::*)()>(engine, 1, "x");

	SQAITileListSlope.DefSQStaticMethod(engine, &AITileListSlope::GetClassName, "GetClassName", 1, "x");

	SQAITileListSlope.PostRegister(engine);
}

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

void SQAITileListNeighbourRoadRegister(Squirrel *engine) {
	DefSQClass <AITileListNeighbourRoad> SQAITileListNeighbourRoad("AITileListNeighbourRoad");
	SQAITileListNeighbourRoad.PreRegister(engine);
	SQAITileListNeighbourRoad.AddConstructor<void (AITileListNeighbourRoad::*)()>(engine, 1, "x");

	SQAITileListNeighbourRoad.DefSQStaticMethod(engine, &AITileListNeighbourRoad::GetClassName, "GetClassName", 1, "x");

	SQAITileListNeighbourRoad.PostRegister(engine);
}

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

void SQAITileListRoadTileRegister(Squirrel *engine) {
	DefSQClass <AITileListRoadTile> SQAITileListRoadTile("AITileListRoadTile");
	SQAITileListRoadTile.PreRegister(engine);
	SQAITileListRoadTile.AddConstructor<void (AITileListRoadTile::*)()>(engine, 1, "x");

	SQAITileListRoadTile.DefSQStaticMethod(engine, &AITileListRoadTile::GetClassName, "GetClassName", 1, "x");

	SQAITileListRoadTile.PostRegister(engine);
}

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

void SQAITileListCargoAcceptanceRegister(Squirrel *engine) {
	DefSQClass <AITileListCargoAcceptance> SQAITileListCargoAcceptance("AITileListCargoAcceptance");
	SQAITileListCargoAcceptance.PreRegister(engine);
	SQAITileListCargoAcceptance.AddConstructor<void (AITileListCargoAcceptance::*)(CargoID cargo_type)>(engine, 2, "xi");

	SQAITileListCargoAcceptance.DefSQStaticMethod(engine, &AITileListCargoAcceptance::GetClassName, "GetClassName", 1, "x");

	SQAITileListCargoAcceptance.PostRegister(engine);
}