(svn r9463) [NoAI] -Codechange: update squirrel export script to generate the correct amount and type of parameters, so that can be checked. noai
authorrubidium
Sun, 25 Mar 2007 22:21:12 +0000
branchnoai
changeset 9541 4bb34cea7fad
parent 9540 505fcc067ade
child 9542 fccf685f68ea
(svn r9463) [NoAI] -Codechange: update squirrel export script to generate the correct amount and type of parameters, so that can be checked.
bin/ai/regression/regression.nut
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
src/ai/api/squirrel_export.awk
--- a/bin/ai/regression/regression.nut	Sun Mar 25 21:53:57 2007 +0000
+++ b/bin/ai/regression/regression.nut	Sun Mar 25 22:21:12 2007 +0000
@@ -177,7 +177,7 @@
 	print("  Station");
 	print("    GetBankBalance():    " + company.GetBankBalance());
 	print("    IsRoadTile():        " + road.IsRoadTile(33411));
-	print("    BuildRoadStation():  " + road.BuildRoadStation(0, 1));
+	print("    BuildRoadStation():  " + road.BuildRoadStation(0, 1, false, false));
 	print("    BuildRoadStation():  " + road.BuildRoadStation(33411, 33411, false, false));
 	print("    BuildRoadStation():  " + road.BuildRoadStation(33411, 33414, false, false));
 	print("    BuildRoadStation():  " + road.BuildRoadStation(33411, 33412, false, false));
--- a/src/ai/api/ai_accounting.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_accounting.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -62,9 +62,9 @@
 	SQAIAccounting.PreRegister(engine);
 	SQAIAccounting.AddConstructor(engine);
 
-	SQAIAccounting.DefSQStaticMethod(engine, &AIAccounting::GetClassName, "GetClassName");
+	SQAIAccounting.DefSQStaticMethod(engine, &AIAccounting::GetClassName, "GetClassName", 1, "x");
 
-	SQAIAccounting.DefSQMethod(engine, &AIAccounting::GetCosts,   "GetCosts", 1, "x");
+	SQAIAccounting.DefSQMethod(engine, &AIAccounting::GetCosts,   "GetCosts",   1, "x");
 	SQAIAccounting.DefSQMethod(engine, &AIAccounting::ResetCosts, "ResetCosts", 1, "x");
 
 	SQAIAccounting.PostRegister(engine);
--- a/src/ai/api/ai_base.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_base.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -57,11 +57,11 @@
 	SQAIBase.PreRegister(engine);
 	SQAIBase.AddConstructor(engine);
 
-	SQAIBase.DefSQStaticMethod(engine, &AIBase::GetClassName, "GetClassName");
+	SQAIBase.DefSQStaticMethod(engine, &AIBase::GetClassName, "GetClassName", 1, "x");
 
-	SQAIBase.DefSQMethod(engine, &AIBase::Rand,      "Rand");
-	SQAIBase.DefSQMethod(engine, &AIBase::RandRange, "RandRange");
-	SQAIBase.DefSQMethod(engine, &AIBase::Chance,    "Chance");
+	SQAIBase.DefSQMethod(engine, &AIBase::Rand,      "Rand",      1, "x");
+	SQAIBase.DefSQMethod(engine, &AIBase::RandRange, "RandRange", 2, "xi");
+	SQAIBase.DefSQMethod(engine, &AIBase::Chance,    "Chance",    3, "xii");
 
 	SQAIBase.PostRegister(engine);
 }
--- a/src/ai/api/ai_cargo.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_cargo.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -61,12 +61,12 @@
 	SQAICargo.PreRegister(engine);
 	SQAICargo.AddConstructor(engine);
 
-	SQAICargo.DefSQStaticMethod(engine, &AICargo::GetClassName, "GetClassName");
-	SQAICargo.DefSQStaticMethod(engine, &AICargo::IsValidCargo, "IsValidCargo");
+	SQAICargo.DefSQStaticMethod(engine, &AICargo::GetClassName, "GetClassName", 1, "x");
+	SQAICargo.DefSQStaticMethod(engine, &AICargo::IsValidCargo, "IsValidCargo", 2, "xi");
 
-	SQAICargo.DefSQMethod(engine, &AICargo::GetCargoLabel,  "GetCargoLabel");
-	SQAICargo.DefSQMethod(engine, &AICargo::IsFreight,      "IsFreight");
-	SQAICargo.DefSQMethod(engine, &AICargo::GetCargoIncome, "GetCargoIncome");
+	SQAICargo.DefSQMethod(engine, &AICargo::GetCargoLabel,  "GetCargoLabel",  2, "xi");
+	SQAICargo.DefSQMethod(engine, &AICargo::IsFreight,      "IsFreight",      2, "xi");
+	SQAICargo.DefSQMethod(engine, &AICargo::GetCargoIncome, "GetCargoIncome", 4, "xiii");
 
 	SQAICargo.PostRegister(engine);
 }
--- a/src/ai/api/ai_company.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_company.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -90,16 +90,16 @@
 	SQAICompany.PreRegister(engine);
 	SQAICompany.AddConstructor(engine);
 
-	SQAICompany.DefSQStaticMethod(engine, &AICompany::GetClassName, "GetClassName");
+	SQAICompany.DefSQStaticMethod(engine, &AICompany::GetClassName, "GetClassName", 1, "x");
 
-	SQAICompany.DefSQMethod(engine, &AICompany::SetCompanyName,   "SetCompanyName");
-	SQAICompany.DefSQMethod(engine, &AICompany::GetCompanyName,   "GetCompanyName");
-	SQAICompany.DefSQMethod(engine, &AICompany::GetCompanyValue,  "GetCompanyValue");
-	SQAICompany.DefSQMethod(engine, &AICompany::GetBankBalance,   "GetBankBalance");
-	SQAICompany.DefSQMethod(engine, &AICompany::GetLoanAmount,    "GetLoanAmount");
-	SQAICompany.DefSQMethod(engine, &AICompany::GetMaxLoanAmount, "GetMaxLoanAmount");
-	SQAICompany.DefSQMethod(engine, &AICompany::GetLoanInterval,  "GetLoanInterval");
-	SQAICompany.DefSQMethod(engine, &AICompany::SetLoanAmount,    "SetLoanAmount");
+	SQAICompany.DefSQMethod(engine, &AICompany::SetCompanyName,   "SetCompanyName",   2, "xs");
+	SQAICompany.DefSQMethod(engine, &AICompany::GetCompanyName,   "GetCompanyName",   1, "x");
+	SQAICompany.DefSQMethod(engine, &AICompany::GetCompanyValue,  "GetCompanyValue",  1, "x");
+	SQAICompany.DefSQMethod(engine, &AICompany::GetBankBalance,   "GetBankBalance",   1, "x");
+	SQAICompany.DefSQMethod(engine, &AICompany::GetLoanAmount,    "GetLoanAmount",    1, "x");
+	SQAICompany.DefSQMethod(engine, &AICompany::GetMaxLoanAmount, "GetMaxLoanAmount", 1, "x");
+	SQAICompany.DefSQMethod(engine, &AICompany::GetLoanInterval,  "GetLoanInterval",  1, "x");
+	SQAICompany.DefSQMethod(engine, &AICompany::SetLoanAmount,    "SetLoanAmount",    2, "xi");
 
 	SQAICompany.PostRegister(engine);
 }
--- a/src/ai/api/ai_execmode.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_execmode.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -56,7 +56,7 @@
 	SQAIExecMode.PreRegister(engine);
 	SQAIExecMode.AddConstructor(engine);
 
-	SQAIExecMode.DefSQStaticMethod(engine, &AIExecMode::GetClassName, "GetClassName");
+	SQAIExecMode.DefSQStaticMethod(engine, &AIExecMode::GetClassName, "GetClassName", 1, "x");
 
 	SQAIExecMode.PostRegister(engine);
 }
--- a/src/ai/api/ai_industry.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_industry.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -70,13 +70,13 @@
 	SQAIIndustry.PreRegister(engine);
 	SQAIIndustry.AddConstructor(engine);
 
-	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetClassName,    "GetClassName");
-	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::IsValidIndustry, "IsValidIndustry");
+	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::GetClassName,    "GetClassName",    1, "x");
+	SQAIIndustry.DefSQStaticMethod(engine, &AIIndustry::IsValidIndustry, "IsValidIndustry", 2, "xi");
 
-	SQAIIndustry.DefSQMethod(engine, &AIIndustry::GetMaxIndustryID, "GetMaxIndustryID");
-	SQAIIndustry.DefSQMethod(engine, &AIIndustry::GetIndustryCount, "GetIndustryCount");
-	SQAIIndustry.DefSQMethod(engine, &AIIndustry::GetName,          "GetName");
-	SQAIIndustry.DefSQMethod(engine, &AIIndustry::GetLocation,      "GetLocation");
+	SQAIIndustry.DefSQMethod(engine, &AIIndustry::GetMaxIndustryID, "GetMaxIndustryID", 1, "x");
+	SQAIIndustry.DefSQMethod(engine, &AIIndustry::GetIndustryCount, "GetIndustryCount", 1, "x");
+	SQAIIndustry.DefSQMethod(engine, &AIIndustry::GetName,          "GetName",          2, "xi");
+	SQAIIndustry.DefSQMethod(engine, &AIIndustry::GetLocation,      "GetLocation",      2, "xi");
 
 	SQAIIndustry.PostRegister(engine);
 }
--- a/src/ai/api/ai_map.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_map.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -136,20 +136,20 @@
 	SQAIMap.PreRegister(engine);
 	SQAIMap.AddConstructor(engine);
 
-	SQAIMap.DefSQStaticMethod(engine, &AIMap::GetClassName, "GetClassName");
+	SQAIMap.DefSQStaticMethod(engine, &AIMap::GetClassName, "GetClassName", 1, "x");
 
-	SQAIMap.DefSQMethod(engine, &AIMap::IsValidTile,       "IsValidTile");
-	SQAIMap.DefSQMethod(engine, &AIMap::GetMapSize,        "GetMapSize");
-	SQAIMap.DefSQMethod(engine, &AIMap::GetMapSizeX,       "GetMapSizeX");
-	SQAIMap.DefSQMethod(engine, &AIMap::GetMapSizeY,       "GetMapSizeY");
-	SQAIMap.DefSQMethod(engine, &AIMap::GetTileX,          "GetTileX");
-	SQAIMap.DefSQMethod(engine, &AIMap::GetTileY,          "GetTileY");
-	SQAIMap.DefSQMethod(engine, &AIMap::GetTileIndex,      "GetTileIndex");
-	SQAIMap.DefSQMethod(engine, &AIMap::DistanceManhattan, "DistanceManhattan");
-	SQAIMap.DefSQMethod(engine, &AIMap::DistanceMax,       "DistanceMax");
-	SQAIMap.DefSQMethod(engine, &AIMap::DistanceSquare,    "DistanceSquare");
-	SQAIMap.DefSQMethod(engine, &AIMap::DistanceFromEdge,  "DistanceFromEdge");
-	SQAIMap.DefSQMethod(engine, &AIMap::DemolishTile,      "DemolishTile");
+	SQAIMap.DefSQMethod(engine, &AIMap::IsValidTile,       "IsValidTile",       2, "xi");
+	SQAIMap.DefSQMethod(engine, &AIMap::GetMapSize,        "GetMapSize",        1, "x");
+	SQAIMap.DefSQMethod(engine, &AIMap::GetMapSizeX,       "GetMapSizeX",       1, "x");
+	SQAIMap.DefSQMethod(engine, &AIMap::GetMapSizeY,       "GetMapSizeY",       1, "x");
+	SQAIMap.DefSQMethod(engine, &AIMap::GetTileX,          "GetTileX",          2, "xi");
+	SQAIMap.DefSQMethod(engine, &AIMap::GetTileY,          "GetTileY",          2, "xi");
+	SQAIMap.DefSQMethod(engine, &AIMap::GetTileIndex,      "GetTileIndex",      3, "xii");
+	SQAIMap.DefSQMethod(engine, &AIMap::DistanceManhattan, "DistanceManhattan", 3, "xii");
+	SQAIMap.DefSQMethod(engine, &AIMap::DistanceMax,       "DistanceMax",       3, "xii");
+	SQAIMap.DefSQMethod(engine, &AIMap::DistanceSquare,    "DistanceSquare",    3, "xii");
+	SQAIMap.DefSQMethod(engine, &AIMap::DistanceFromEdge,  "DistanceFromEdge",  2, "xi");
+	SQAIMap.DefSQMethod(engine, &AIMap::DemolishTile,      "DemolishTile",      2, "xi");
 
 	SQAIMap.PostRegister(engine);
 }
--- a/src/ai/api/ai_order.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_order.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -183,20 +183,20 @@
 	SQAIOrder.DefSQConst   (engine, AIOrder::AIOF_NON_STOP,          "AIOF_NON_STOP");
 	SQAIOrder.DefSQConst   (engine, AIOrder::AIOF_INVALID,           "AIOF_INVALID");
 
-	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetClassName,        "GetClassName");
-	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder, "IsValidVehicleOrder");
-	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid,  "AreOrderFlagsValid");
+	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetClassName,        "GetClassName",        1, "x");
+	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder, "IsValidVehicleOrder", 3, "xii");
+	SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid,  "AreOrderFlagsValid",  3, "xii");
 
-	SQAIOrder.DefSQMethod(engine, &AIOrder::GetNumberOfOrders,   "GetNumberOfOrders");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::GetOrderDestination, "GetOrderDestination");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::GetOrderFlags,       "GetOrderFlags");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::AppendOrder,         "AppendOrder");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::InsertOrder,         "InsertOrder");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::RemoveOrder,         "RemoveOrder");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::ChangeOrder,         "ChangeOrder");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::CopyOrders,          "CopyOrders");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::ShareOrders,         "ShareOrders");
-	SQAIOrder.DefSQMethod(engine, &AIOrder::UnshareOrders,       "UnshareOrders");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::GetNumberOfOrders,   "GetNumberOfOrders",   2, "xi");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::GetOrderDestination, "GetOrderDestination", 3, "xii");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::GetOrderFlags,       "GetOrderFlags",       3, "xii");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::AppendOrder,         "AppendOrder",         4, "xiii");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::InsertOrder,         "InsertOrder",         5, "xiiii");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::RemoveOrder,         "RemoveOrder",         3, "xii");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::ChangeOrder,         "ChangeOrder",         4, "xiii");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::CopyOrders,          "CopyOrders",          3, "xii");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::ShareOrders,         "ShareOrders",         3, "xii");
+	SQAIOrder.DefSQMethod(engine, &AIOrder::UnshareOrders,       "UnshareOrders",       2, "xi");
 
 	SQAIOrder.PostRegister(engine);
 }
--- a/src/ai/api/ai_road.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_road.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -119,15 +119,15 @@
 	SQAIRoad.PreRegister(engine);
 	SQAIRoad.AddConstructor(engine);
 
-	SQAIRoad.DefSQStaticMethod(engine, &AIRoad::GetClassName, "GetClassName");
+	SQAIRoad.DefSQStaticMethod(engine, &AIRoad::GetClassName, "GetClassName", 1, "x");
 
-	SQAIRoad.DefSQMethod(engine, &AIRoad::IsRoadTile,        "IsRoadTile");
-	SQAIRoad.DefSQMethod(engine, &AIRoad::BuildRoad,         "BuildRoad");
-	SQAIRoad.DefSQMethod(engine, &AIRoad::BuildRoadDepot,    "BuildRoadDepot");
-	SQAIRoad.DefSQMethod(engine, &AIRoad::BuildRoadStation,  "BuildRoadStation");
-	SQAIRoad.DefSQMethod(engine, &AIRoad::RemoveRoad,        "RemoveRoad");
-	SQAIRoad.DefSQMethod(engine, &AIRoad::RemoveRoadDepot,   "RemoveRoadDepot");
-	SQAIRoad.DefSQMethod(engine, &AIRoad::RemoveRoadStation, "RemoveRoadStation");
+	SQAIRoad.DefSQMethod(engine, &AIRoad::IsRoadTile,        "IsRoadTile",        2, "xi");
+	SQAIRoad.DefSQMethod(engine, &AIRoad::BuildRoad,         "BuildRoad",         3, "xii");
+	SQAIRoad.DefSQMethod(engine, &AIRoad::BuildRoadDepot,    "BuildRoadDepot",    3, "xii");
+	SQAIRoad.DefSQMethod(engine, &AIRoad::BuildRoadStation,  "BuildRoadStation",  5, "xiibb");
+	SQAIRoad.DefSQMethod(engine, &AIRoad::RemoveRoad,        "RemoveRoad",        3, "xii");
+	SQAIRoad.DefSQMethod(engine, &AIRoad::RemoveRoadDepot,   "RemoveRoadDepot",   2, "xi");
+	SQAIRoad.DefSQMethod(engine, &AIRoad::RemoveRoadStation, "RemoveRoadStation", 2, "xi");
 
 	SQAIRoad.PostRegister(engine);
 }
--- a/src/ai/api/ai_settings.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_settings.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -41,9 +41,9 @@
 	SQAISettings.PreRegister(engine);
 	SQAISettings.AddConstructor(engine);
 
-	SQAISettings.DefSQStaticMethod(engine, &AISettings::GetClassName, "GetClassName");
+	SQAISettings.DefSQStaticMethod(engine, &AISettings::GetClassName, "GetClassName", 1, "x");
 
-	SQAISettings.DefSQMethod(engine, &AISettings::SetCommandDelay, "SetCommandDelay");
+	SQAISettings.DefSQMethod(engine, &AISettings::SetCommandDelay, "SetCommandDelay", 2, "xi");
 
 	SQAISettings.PostRegister(engine);
 }
--- a/src/ai/api/ai_sign.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_sign.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -87,15 +87,15 @@
 	SQAISign.PreRegister(engine);
 	SQAISign.AddConstructor(engine);
 
-	SQAISign.DefSQStaticMethod(engine, &AISign::GetClassName, "GetClassName");
-	SQAISign.DefSQStaticMethod(engine, &AISign::IsValidSign,  "IsValidSign");
+	SQAISign.DefSQStaticMethod(engine, &AISign::GetClassName, "GetClassName", 1, "x");
+	SQAISign.DefSQStaticMethod(engine, &AISign::IsValidSign,  "IsValidSign",  2, "xi");
 
-	SQAISign.DefSQMethod(engine, &AISign::GetMaxSignID, "GetMaxSignID");
-	SQAISign.DefSQMethod(engine, &AISign::GetSignCount, "GetSignCount");
-	SQAISign.DefSQMethod(engine, &AISign::GetText,      "GetText");
-	SQAISign.DefSQMethod(engine, &AISign::GetLocation,  "GetLocation");
-	SQAISign.DefSQMethod(engine, &AISign::RemoveSign,   "RemoveSign");
-	SQAISign.DefSQMethod(engine, &AISign::BuildSign,    "BuildSign");
+	SQAISign.DefSQMethod(engine, &AISign::GetMaxSignID, "GetMaxSignID", 1, "x");
+	SQAISign.DefSQMethod(engine, &AISign::GetSignCount, "GetSignCount", 1, "x");
+	SQAISign.DefSQMethod(engine, &AISign::GetText,      "GetText",      2, "xi");
+	SQAISign.DefSQMethod(engine, &AISign::GetLocation,  "GetLocation",  2, "xi");
+	SQAISign.DefSQMethod(engine, &AISign::RemoveSign,   "RemoveSign",   2, "xi");
+	SQAISign.DefSQMethod(engine, &AISign::BuildSign,    "BuildSign",    3, "xis");
 
 	SQAISign.PostRegister(engine);
 }
--- a/src/ai/api/ai_testmode.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_testmode.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -58,7 +58,7 @@
 	SQAITestMode.PreRegister(engine);
 	SQAITestMode.AddConstructor(engine);
 
-	SQAITestMode.DefSQStaticMethod(engine, &AITestMode::GetClassName, "GetClassName");
+	SQAITestMode.DefSQStaticMethod(engine, &AITestMode::GetClassName, "GetClassName", 1, "x");
 
 	SQAITestMode.PostRegister(engine);
 }
--- a/src/ai/api/ai_town.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_town.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -78,14 +78,14 @@
 	SQAITown.PreRegister(engine);
 	SQAITown.AddConstructor(engine);
 
-	SQAITown.DefSQStaticMethod(engine, &AITown::GetClassName, "GetClassName");
-	SQAITown.DefSQStaticMethod(engine, &AITown::IsValidTown,  "IsValidTown");
+	SQAITown.DefSQStaticMethod(engine, &AITown::GetClassName, "GetClassName", 1, "x");
+	SQAITown.DefSQStaticMethod(engine, &AITown::IsValidTown,  "IsValidTown",  2, "xi");
 
-	SQAITown.DefSQMethod(engine, &AITown::GetMaxTownID,  "GetMaxTownID");
-	SQAITown.DefSQMethod(engine, &AITown::GetTownCount,  "GetTownCount");
-	SQAITown.DefSQMethod(engine, &AITown::GetName,       "GetName");
-	SQAITown.DefSQMethod(engine, &AITown::GetPopulation, "GetPopulation");
-	SQAITown.DefSQMethod(engine, &AITown::GetLocation,   "GetLocation");
+	SQAITown.DefSQMethod(engine, &AITown::GetMaxTownID,  "GetMaxTownID",  1, "x");
+	SQAITown.DefSQMethod(engine, &AITown::GetTownCount,  "GetTownCount",  1, "x");
+	SQAITown.DefSQMethod(engine, &AITown::GetName,       "GetName",       2, "xi");
+	SQAITown.DefSQMethod(engine, &AITown::GetPopulation, "GetPopulation", 2, "xi");
+	SQAITown.DefSQMethod(engine, &AITown::GetLocation,   "GetLocation",   2, "xi");
 
 	SQAITown.PostRegister(engine);
 }
--- a/src/ai/api/ai_transactionmode.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_transactionmode.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -117,13 +117,13 @@
 	SQAITransactionMode.PreRegister(engine);
 	SQAITransactionMode.AddConstructor(engine);
 
-	SQAITransactionMode.DefSQStaticMethod(engine, &AITransactionMode::GetClassName, "GetClassName");
+	SQAITransactionMode.DefSQStaticMethod(engine, &AITransactionMode::GetClassName, "GetClassName", 1, "x");
 
-	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::Execute,  "Execute");
-	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::Stop,     "Stop");
-	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::Rollback, "Rollback");
-	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::GetCosts, "GetCosts");
-	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::Append,   "Append");
+	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::Execute,  "Execute",  1, "x");
+	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::Stop,     "Stop",     1, "x");
+	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::Rollback, "Rollback", 1, "x");
+	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::GetCosts, "GetCosts", 1, "x");
+	SQAITransactionMode.DefSQMethod(engine, &AITransactionMode::Append,   "Append",   2, "xp");
 
 	SQAITransactionMode.PostRegister(engine);
 }
--- a/src/ai/api/ai_vehicle.hpp	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/ai_vehicle.hpp	Sun Mar 25 22:21:12 2007 +0000
@@ -130,18 +130,18 @@
 	SQAIVehicle.PreRegister(engine);
 	SQAIVehicle.AddConstructor(engine);
 
-	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetClassName,   "GetClassName");
-	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsValidEngine,  "IsValidEngine", 2, "xi");
+	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetClassName,   "GetClassName",   1, "x");
+	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsValidEngine,  "IsValidEngine",  2, "xi");
 	SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsValidVehicle, "IsValidVehicle", 2, "xi");
 
-	SQAIVehicle.DefSQMethod(engine, &AIVehicle::FindBestRoadVehicle, "FindBestRoadVehicle");
-	SQAIVehicle.DefSQMethod(engine, &AIVehicle::BuildVehicle,        "BuildVehicle");
-	SQAIVehicle.DefSQMethod(engine, &AIVehicle::CloneVehicle,        "CloneVehicle");
-	SQAIVehicle.DefSQMethod(engine, &AIVehicle::RefitVehicle,        "RefitVehicle");
-	SQAIVehicle.DefSQMethod(engine, &AIVehicle::SellVehicle,         "SellVehicle");
-	SQAIVehicle.DefSQMethod(engine, &AIVehicle::SendVehicleToDepot,  "SendVehicleToDepot");
-	SQAIVehicle.DefSQMethod(engine, &AIVehicle::StartStopVehicle,    "StartStopVehicle");
-	SQAIVehicle.DefSQMethod(engine, &AIVehicle::SkipVehicleOrder,    "SkipVehicleOrder");
+	SQAIVehicle.DefSQMethod(engine, &AIVehicle::FindBestRoadVehicle, "FindBestRoadVehicle", 3, "xii");
+	SQAIVehicle.DefSQMethod(engine, &AIVehicle::BuildVehicle,        "BuildVehicle",        3, "xii");
+	SQAIVehicle.DefSQMethod(engine, &AIVehicle::CloneVehicle,        "CloneVehicle",        4, "xiib");
+	SQAIVehicle.DefSQMethod(engine, &AIVehicle::RefitVehicle,        "RefitVehicle",        3, "xii");
+	SQAIVehicle.DefSQMethod(engine, &AIVehicle::SellVehicle,         "SellVehicle",         2, "xi");
+	SQAIVehicle.DefSQMethod(engine, &AIVehicle::SendVehicleToDepot,  "SendVehicleToDepot",  2, "xi");
+	SQAIVehicle.DefSQMethod(engine, &AIVehicle::StartStopVehicle,    "StartStopVehicle",    2, "xi");
+	SQAIVehicle.DefSQMethod(engine, &AIVehicle::SkipVehicleOrder,    "SkipVehicleOrder",    2, "xi");
 
 	SQAIVehicle.PostRegister(engine);
 }
--- a/src/ai/api/squirrel_export.awk	Sun Mar 25 21:53:57 2007 +0000
+++ b/src/ai/api/squirrel_export.awk	Sun Mar 25 22:21:12 2007 +0000
@@ -136,10 +136,10 @@
 	# Static methods
 	mlen = 0
 	for (i = 1; i <= static_method_size; i++) {
-		if (mlen <= length(static_methods[i])) mlen = length(static_methods[i])
+		if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0])
 	}
 	for (i = 1; i <= static_method_size; i++) {
-		print "	SQ" cls ".DefSQStaticMethod(engine, &" cls "::" static_methods[i] ", " substr(spaces, 1, mlen - length(static_methods[i])) "\""  static_methods[i] "\");"
+		print "	SQ" cls ".DefSQStaticMethod(engine, &" cls "::" static_methods[i, 0] ", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "\""  static_methods[i, 0] "\", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "" static_methods[i, 1] ", \"" static_methods[i, 2] "\");"
 		delete static_methods[i]
 	}
 	if (static_method_size != 0) print ""
@@ -147,10 +147,10 @@
 	# Non-static methods
 	mlen = 0
 	for (i = 1; i <= method_size; i++) {
-		if (mlen <= length(methods[i])) mlen = length(methods[i])
+		if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0])
 	}
 	for (i = 1; i <= method_size; i++) {
-		print "	SQ" cls ".DefSQMethod(engine, &" cls "::" methods[i] ", " substr(spaces, 1, mlen - length(methods[i])) "\""  methods[i] "\");"
+		print "	SQ" cls ".DefSQMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0])) "\""  methods[i, 0] "\", " substr(spaces, 1, mlen - length(methods[i, 0])) "" methods[i, 1] ", \"" methods[i, 2] "\");"
 		delete methods[i]
 	}
 	if (method_size != 0) print ""
@@ -190,15 +190,43 @@
 	gsub("virtual", "", $0)
 	gsub("static", "", $0)
 	gsub("const", "", $0)
+	param_s = $0
 	gsub("\\*", "", $0)
 	gsub("\\(.*", "", $0)
-	if ($2 == "") next
+	func = $2
+	if (func == "") next
+
+	sub(".*\\(", "", param_s)
+	sub("\\).*", "", param_s)
+
+	split(param_s, params, ",")
+	types = "x"
+	len = 1;
+	for (len = 1; params[len] != ""; len++) {
+		sub("^[ 	]*", "", params[len])
+		if (match(params[len], "\*")) {
+			if (match(params[len], "^char")) {
+				types = types "s"
+			} else {
+				types = types "p"
+			}
+		} else if (match(params[len], "^bool")) {
+			types = types "b"
+		} else {
+			types = types "i"
+		}
+	}
+
 	if (is_static) {
 		static_method_size++
-		static_methods[static_method_size] = $2
+		static_methods[static_method_size, 0] = func
+		static_methods[static_method_size, 1] = len
+		static_methods[static_method_size, 2] = types
 	} else {
 		method_size++
-		methods[method_size] = $2
+		methods[method_size, 0] = func
+		methods[method_size, 1] = len
+		methods[method_size, 2] = types
 	}
 	next
 }