(svn r9444) [NoAI] -Codechange: allow all API-class-instances to be used as parameters in Squirrel.
--- 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);