(svn r9375) [NoAI] -Fix r9374: make AIOrder() work for SQ (enums not yet) noai
authortruelight
Tue, 20 Mar 2007 14:30:42 +0000
branchnoai
changeset 9501 15689f09d1f5
parent 9500 d67653613da4
child 9502 5eb285182114
(svn r9375) [NoAI] -Fix r9374: make AIOrder() work for SQ (enums not yet)
src/ai/ai_squirrel.cpp
src/ai/api/ai_order.hpp
--- a/src/ai/ai_squirrel.cpp	Tue Mar 20 14:27:54 2007 +0000
+++ b/src/ai/ai_squirrel.cpp	Tue Mar 20 14:30:42 2007 +0000
@@ -28,8 +28,9 @@
 #include "api/ai_execmode.hpp"
 #include "api/ai_industry.hpp"
 #include "api/ai_map.hpp"
+#include "api/ai_order.hpp"
+#include "api/ai_road.hpp"
 #include "api/ai_settings.hpp"
-#include "api/ai_road.hpp"
 #include "api/ai_testmode.hpp"
 #include "api/ai_town.hpp"
 #include "api/ai_transactionmode.hpp"
@@ -193,6 +194,7 @@
 	SQAIExecModeRegister(this->engine);
 	SQAIIndustryRegister(this->engine);
 	SQAIMapRegister(this->engine);
+	SQAIOrderRegister(this->engine);
 	SQAIRoadRegister(this->engine);
 	SQAISettingsRegister(this->engine);
 	SQAITestModeRegister(this->engine);
--- a/src/ai/api/ai_order.hpp	Tue Mar 20 14:27:54 2007 +0000
+++ b/src/ai/api/ai_order.hpp	Tue Mar 20 14:30:42 2007 +0000
@@ -156,6 +156,10 @@
 DECLARE_ENUM_AS_BIT_SET(AIOrder::AIOrderFlags);
 
 #ifdef DEFINE_SQUIRREL_CLASS
+/* Custom template to allow AIOrderFlags as param */
+template <> AIOrder::AIOrderFlags SQConvert::GetParam(ForceType<AIOrder::AIOrderFlags>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIOrder::AIOrderFlags)tmp; }
+template <> int SQConvert::Return<AIOrder::AIOrderFlags>(HSQUIRRELVM vm, AIOrder::AIOrderFlags res) { sq_pushinteger(vm, (int32)res); return 1; }
+
 void SQAIOrderRegister(Squirrel *engine) {
 	DefSQClass <AIOrder> SQAIOrder("AIOrder");
 	SQAIOrder.PreRegister(engine);