(svn r9444) [NoAI] -Codechange: allow all API-class-instances to be used as parameters in Squirrel. noai
authorrubidium
Sun, 25 Mar 2007 13:50:19 +0000
branchnoai
changeset 9524 283d23931bb4
parent 9523 cacf2f05f79b
child 9525 1d6c509b56ee
(svn r9444) [NoAI] -Codechange: allow all API-class-instances to be used as parameters in Squirrel.
src/ai/api/ai_accounting.hpp
src/ai/api/ai_base.hpp
src/ai/api/ai_cargo.hpp
src/ai/api/ai_company.hpp
src/ai/api/ai_execmode.hpp
src/ai/api/ai_industry.hpp
src/ai/api/ai_map.hpp
src/ai/api/ai_order.hpp
src/ai/api/ai_road.hpp
src/ai/api/ai_settings.hpp
src/ai/api/ai_sign.hpp
src/ai/api/ai_testmode.hpp
src/ai/api/ai_town.hpp
src/ai/api/ai_transactionmode.hpp
src/ai/api/ai_vehicle.hpp
--- a/src/ai/api/ai_accounting.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_accounting.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -47,6 +47,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AIAccounting to be used as Squirrel parameter */
+	template <> AIAccounting *GetParam(ForceType<AIAccounting *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIAccounting *)instance; }
+}; // namespace SQConvert
+
 void SQAIAccountingRegister(Squirrel *engine) {
 	DefSQClass <AIAccounting> SQAIAccounting("AIAccounting");
 	SQAIAccounting.PreRegister(engine);
--- a/src/ai/api/ai_base.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_base.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -42,6 +42,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AIBase to be used as Squirrel parameter */
+	template <> AIBase *GetParam(ForceType<AIBase *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIBase *)instance; }
+}; // namespace SQConvert
+
 void SQAIBaseRegister(Squirrel *engine) {
 	DefSQClass <AIBase> SQAIBase("AIBase");
 	SQAIBase.PreRegister(engine);
--- a/src/ai/api/ai_cargo.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_cargo.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -46,6 +46,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AICargo to be used as Squirrel parameter */
+	template <> AICargo *GetParam(ForceType<AICargo *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AICargo *)instance; }
+}; // namespace SQConvert
+
 void SQAICargoRegister(Squirrel *engine) {
 	DefSQClass <AICargo> SQAICargo("AICargo");
 	SQAICargo.PreRegister(engine);
--- a/src/ai/api/ai_company.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_company.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -75,6 +75,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+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; }
+}; // namespace SQConvert
+
 void SQAICompanyRegister(Squirrel *engine) {
 	DefSQClass <AICompany> SQAICompany("AICompany");
 	SQAICompany.PreRegister(engine);
--- a/src/ai/api/ai_execmode.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_execmode.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -41,6 +41,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AIExecMode to be used as Squirrel parameter */
+	template <> AIExecMode *GetParam(ForceType<AIExecMode *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIExecMode *)instance; }
+}; // namespace SQConvert
+
 void SQAIExecModeRegister(Squirrel *engine) {
 	DefSQClass <AIExecMode> SQAIExecMode("AIExecMode");
 	SQAIExecMode.PreRegister(engine);
--- a/src/ai/api/ai_industry.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_industry.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -55,6 +55,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AIIndustry to be used as Squirrel parameter */
+	template <> AIIndustry *GetParam(ForceType<AIIndustry *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIIndustry *)instance; }
+}; // namespace SQConvert
+
 void SQAIIndustryRegister(Squirrel *engine) {
 	DefSQClass <AIIndustry> SQAIIndustry("AIIndustry");
 	SQAIIndustry.PreRegister(engine);
--- a/src/ai/api/ai_map.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_map.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -121,6 +121,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AIMap to be used as Squirrel parameter */
+	template <> AIMap *GetParam(ForceType<AIMap *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIMap *)instance; }
+}; // namespace SQConvert
+
 void SQAIMapRegister(Squirrel *engine) {
 	DefSQClass <AIMap> SQAIMap("AIMap");
 	SQAIMap.PreRegister(engine);
--- a/src/ai/api/ai_order.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_order.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -156,10 +156,13 @@
 DECLARE_ENUM_AS_BIT_SET(AIOrder::AIOrderFlags);
 
 #ifdef DEFINE_SQUIRREL_CLASS
-/* Custom template to allow enums as Squirrel parameters */
 namespace SQConvert {
+	/* Allow enums to be used as Squirrel parameters */
 	template <> AIOrder::AIOrderFlags GetParam(ForceType<AIOrder::AIOrderFlags>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIOrder::AIOrderFlags)tmp; }
 	template <> int Return<AIOrder::AIOrderFlags>(HSQUIRRELVM vm, AIOrder::AIOrderFlags res) { sq_pushinteger(vm, (int32)res); return 1; }
+
+	/* Allow AIOrder to be used as Squirrel parameter */
+	template <> AIOrder *GetParam(ForceType<AIOrder *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIOrder *)instance; }
 }; // namespace SQConvert
 
 void SQAIOrderRegister(Squirrel *engine) {
--- a/src/ai/api/ai_road.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_road.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -104,6 +104,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AIRoad to be used as Squirrel parameter */
+	template <> AIRoad *GetParam(ForceType<AIRoad *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIRoad *)instance; }
+}; // namespace SQConvert
+
 void SQAIRoadRegister(Squirrel *engine) {
 	DefSQClass <AIRoad> SQAIRoad("AIRoad");
 	SQAIRoad.PreRegister(engine);
--- a/src/ai/api/ai_settings.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_settings.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -26,6 +26,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AISettings to be used as Squirrel parameter */
+	template <> AISettings *GetParam(ForceType<AISettings *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AISettings *)instance; }
+}; // namespace SQConvert
+
 void SQAISettingsRegister(Squirrel *engine) {
 	DefSQClass <AISettings> SQAISettings("AISettings");
 	SQAISettings.PreRegister(engine);
--- a/src/ai/api/ai_sign.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_sign.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -72,6 +72,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AISign to be used as Squirrel parameter */
+	template <> AISign *GetParam(ForceType<AISign *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AISign *)instance; }
+}; // namespace SQConvert
+
 void SQAISignRegister(Squirrel *engine) {
 	DefSQClass <AISign> SQAISign("AISign");
 	SQAISign.PreRegister(engine);
--- a/src/ai/api/ai_testmode.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_testmode.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -43,6 +43,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AITestMode to be used as Squirrel parameter */
+	template <> AITestMode *GetParam(ForceType<AITestMode *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITestMode *)instance; }
+}; // namespace SQConvert
+
 void SQAITestModeRegister(Squirrel *engine) {
 	DefSQClass <AITestMode> SQAITestMode("AITestMode");
 	SQAITestMode.PreRegister(engine);
--- a/src/ai/api/ai_town.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_town.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -63,6 +63,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AITown to be used as Squirrel parameter */
+	template <> AITown *GetParam(ForceType<AITown *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITown *)instance; }
+}; // namespace SQConvert
+
 void SQAITownRegister(Squirrel *engine) {
 	DefSQClass <AITown> SQAITown("AITown");
 	SQAITown.PreRegister(engine);
--- a/src/ai/api/ai_transactionmode.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_transactionmode.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -102,8 +102,8 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
-/* Custom template to allow AITransactionMode-instance as param */
 namespace SQConvert {
+	/* Allow AITransactionMode to be used as Squirrel parameter */
 	template <> AITransactionMode *GetParam(ForceType<AITransactionMode *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITransactionMode *)instance; }
 }; // namespace SQConvert
 
@@ -114,6 +114,7 @@
 	SQAITransactionMode.DefSQFunction(engine, &AITransactionMode::Execute,  "Execute");
 	SQAITransactionMode.DefSQFunction(engine, &AITransactionMode::Stop,     "Stop");
 	SQAITransactionMode.DefSQFunction(engine, &AITransactionMode::Rollback, "Rollback");
+	SQAITransactionMode.DefSQFunction(engine, &AITransactionMode::GetCosts, "GetCosts");
 	SQAITransactionMode.DefSQFunction(engine, &AITransactionMode::Append,   "Append");
 	SQAITransactionMode.PostRegister(engine);
 }
--- a/src/ai/api/ai_vehicle.hpp	Sun Mar 25 13:32:14 2007 +0000
+++ b/src/ai/api/ai_vehicle.hpp	Sun Mar 25 13:50:19 2007 +0000
@@ -115,6 +115,11 @@
 };
 
 #ifdef DEFINE_SQUIRREL_CLASS
+namespace SQConvert {
+	/* Allow AIVehicle to be used as Squirrel parameter */
+	template <> AIVehicle *GetParam(ForceType<AIVehicle *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIVehicle *)instance; }
+}; // namespace SQConvert
+
 void SQAIVehicleRegister(Squirrel *engine) {
 	DefSQClass <AIVehicle> SQAIVehicle("AIVehicle");
 	SQAIVehicle.PreRegister(engine);