src/ai/api/ai_stationlist.hpp.sq
branchnoai
changeset 9636 1005ffccf641
child 9645 25126afa0c25
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ai/api/ai_stationlist.hpp.sq	Thu Jul 12 15:05:24 2007 +0000
@@ -0,0 +1,30 @@
+#include "ai_stationlist.hpp"
+
+namespace SQConvert {
+	/* Allow enums to be used as Squirrel parameters */
+	template <> AIStationList::StationType GetParam(ForceType<AIStationList::StationType>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIStationList::StationType)tmp; }
+	template <> int Return<AIStationList::StationType>(HSQUIRRELVM vm, AIStationList::StationType res) { sq_pushinteger(vm, (int32)res); return 1; }
+
+	/* Allow AIStationList to be used as Squirrel parameter */
+	template <> AIStationList *GetParam(ForceType<AIStationList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AIStationList *)instance; }
+	template <> AIStationList &GetParam(ForceType<AIStationList &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIStationList *)instance; }
+	template <> const AIStationList *GetParam(ForceType<const AIStationList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AIStationList *)instance; }
+	template <> const AIStationList &GetParam(ForceType<const AIStationList &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIStationList *)instance; }
+}; // namespace SQConvert
+
+void SQAIStationListRegister(Squirrel *engine) {
+	DefSQClass <AIStationList> SQAIStationList("AIStationList");
+	SQAIStationList.PreRegister(engine, "AIAbstractList");
+	SQAIStationList.AddConstructor<void (AIStationList::*)(AIStationList::StationType type), 2>(engine, "xi");
+
+	SQAIStationList.DefSQConst(engine, AIStationList::STATION_ANY,        "STATION_ANY");
+	SQAIStationList.DefSQConst(engine, AIStationList::STATION_TRAIN,      "STATION_TRAIN");
+	SQAIStationList.DefSQConst(engine, AIStationList::STATION_TRUCK_STOP, "STATION_TRUCK_STOP");
+	SQAIStationList.DefSQConst(engine, AIStationList::STATION_BUS_STOP,   "STATION_BUS_STOP");
+	SQAIStationList.DefSQConst(engine, AIStationList::STATION_AIRPORT,    "STATION_AIRPORT");
+	SQAIStationList.DefSQConst(engine, AIStationList::STATION_DOCK,       "STATION_DOCK");
+
+	SQAIStationList.DefSQStaticMethod(engine, &AIStationList::GetClassName, "GetClassName", 1, "x");
+
+	SQAIStationList.PostRegister(engine);
+}