import("queue.priority_queue", "PQ", 2); import("queue.binary_heap", "BH", 1); import("queue.fibonacci_heap", "FH", 1); import("graph.aystar", "AS", 4); import("pathfinder.road", "RPF", 3); class Regression extends AIController { function Start(); }; function Regression::TestInit() { print(""); print("--TestInit--"); print(" TickTest: " + this.GetTick()); this.Sleep(1); print(" TickTest: " + this.GetTick()); print(" SetCommandDelay: " + AIController.SetCommandDelay(1)); print(" IsValid(vehicle.plane_speed): " + AIGameSettings.IsValid("vehicle.plane_speed")); print(" vehicle.plane_speed: " + AIGameSettings.GetValue("vehicle.plane_speed")); require("require.nut"); print(" min(6, 3): " + min(6, 3)); print(" min(3, 6): " + min(3, 6)); print(" max(6, 3): " + max(6, 3)); print(" max(3, 6): " + max(3, 6)); print(" AIList Consistency Tests"); print(""); print(" Value Descending"); local list = AIList(); list.AddItem( 5, 10); list.AddItem(10, 10); list.AddItem(15, 20); list.AddItem(20, 20); list.AddItem(25, 30); list.AddItem(30, 30); list.AddItem(35, 40); list.AddItem(40, 40); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { list.RemoveItem(i - 10); list.RemoveItem(i - 5); list.RemoveItem(i); print(" " + i); } list.AddItem(10, 10); list.AddItem(20, 20); list.AddItem(30, 30); list.AddItem(40, 40); print(""); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { list.SetValue(i, 2); print(" " + i); } print(""); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i); } list = AIList(); list.Sort(AIAbstractList.SORT_BY_VALUE, true); print(""); print(" Value Ascending"); list.AddItem( 5, 10); list.AddItem(10, 10); list.AddItem(15, 20); list.AddItem(20, 20); list.AddItem(25, 30); list.AddItem(30, 30); list.AddItem(35, 40); list.AddItem(40, 40); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { list.RemoveItem(i + 10); list.RemoveItem(i + 5); list.RemoveItem(i); print(" " + i); } list.AddItem(10, 10); list.AddItem(20, 20); list.AddItem(30, 30); list.AddItem(40, 40); print(""); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { list.SetValue(i, 50); print(" " + i); } print(""); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i); } list = AIList(); list.Sort(AIAbstractList.SORT_BY_ITEM, false); print(""); print(" Item Descending"); list.AddItem( 5, 10); list.AddItem(10, 10); list.AddItem(15, 20); list.AddItem(20, 20); list.AddItem(25, 30); list.AddItem(30, 30); list.AddItem(35, 40); list.AddItem(40, 40); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { list.RemoveItem(i - 10); list.RemoveItem(i - 5); list.RemoveItem(i); print(" " + i); } list.AddItem(10, 10); list.AddItem(20, 20); list.AddItem(30, 30); list.AddItem(40, 40); print(""); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { list.SetValue(i, 2); print(" " + i); } print(""); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i); } list = AIList(); list.Sort(AIAbstractList.SORT_BY_ITEM, true); print(""); print(" Item Ascending"); list.AddItem( 5, 10); list.AddItem(10, 10); list.AddItem(15, 20); list.AddItem(20, 20); list.AddItem(25, 30); list.AddItem(30, 30); list.AddItem(35, 40); list.AddItem(40, 40); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { list.RemoveItem(i + 10); list.RemoveItem(i + 5); list.RemoveItem(i); print(" " + i); } list.AddItem(10, 10); list.AddItem(20, 20); list.AddItem(30, 30); list.AddItem(40, 40); print(""); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { list.SetValue(i, 50); print(" " + i); } print(""); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i); } list.Clear(); foreach (idx, val in list) { print(" " + idx); } } function Regression::Std() { print(""); print("--Std--"); print(" abs(-21): " + abs(-21)); print(" abs( 21): " + abs(21)); } function Regression::Base() { print(""); print("--AIBase--"); print(" Rand(): " + AIBase.Rand()); print(" Rand(): " + AIBase.Rand()); print(" Rand(): " + AIBase.Rand()); print(" RandRange(0): " + AIBase.RandRange(0)); print(" RandRange(0): " + AIBase.RandRange(0)); print(" RandRange(0): " + AIBase.RandRange(0)); print(" RandRange(1): " + AIBase.RandRange(1)); print(" RandRange(1): " + AIBase.RandRange(1)); print(" RandRange(1): " + AIBase.RandRange(1)); print(" RandRange(2): " + AIBase.RandRange(2)); print(" RandRange(2): " + AIBase.RandRange(2)); print(" RandRange(2): " + AIBase.RandRange(2)); print(" RandRange(9): " + AIBase.RandRange(9)); print(" RandRange(9): " + AIBase.RandRange(9)); print(" RandRange(9): " + AIBase.RandRange(9)); print(" Chance(1, 2): " + AIBase.Chance(1, 2)); print(" Chance(1, 2): " + AIBase.Chance(1, 2)); print(" Chance(1, 2): " + AIBase.Chance(1, 2)); AIRoad.SetCurrentRoadType(AIRoad.ROADTYPE_ROAD); } function Regression::Airport() { print(""); print("--AIAirport--"); print(" IsHangarTile(): " + AIAirport.IsHangarTile(32116)); print(" IsAirportTile(): " + AIAirport.IsAirportTile(32116)); print(" GetHangarOfAirport(): " + AIAirport.GetHangarOfAirport(32116)); print(" GetAirportType(): " + AIAirport.GetAirportType(32116)); for (local i = -1; i < 10; i++) { print(" IsValidAirportType(" + i + "): " + AIAirport.IsValidAirportType(i)); print(" AirportAvailable(" + i + "): " + AIAirport.AirportAvailable(i)); print(" GetAirportWidth(" + i + "): " + AIAirport.GetAirportWidth(i)); print(" GetAirportHeight(" + i + "): " + AIAirport.GetAirportHeight(i)); print(" GetAirportCoverageRadius(" + i + "): " + AIAirport.GetAirportCoverageRadius(i)); } print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" BuildAirport(): " + AIAirport.BuildAirport(32116, 0, true)); print(" IsHangarTile(): " + AIAirport.IsHangarTile(32116)); print(" IsAirportTile(): " + AIAirport.IsAirportTile(32116)); print(" GetAirportType(): " + AIAirport.GetAirportType(32119)); print(" GetHangarOfAirport(): " + AIAirport.GetHangarOfAirport(32116)); print(" IsHangarTile(): " + AIAirport.IsHangarTile(32119)); print(" IsAirportTile(): " + AIAirport.IsAirportTile(32119)); print(" GetAirportType(): " + AIAirport.GetAirportType(32119)); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" RemoveAirport(): " + AIAirport.RemoveAirport(32118)); print(" IsHangarTile(): " + AIAirport.IsHangarTile(32119)); print(" IsAirportTile(): " + AIAirport.IsAirportTile(32119)); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" BuildAirport(): " + AIAirport.BuildAirport(32116, 0, true)); } function Regression::Bridge() { local j = 0; print(""); print("--Bridge--"); for (local i = -1; i < 14; i++) { if (AIBridge.IsValidBridge(i)) j++; print(" Bridge " + i); print(" IsValidBridge(): " + AIBridge.IsValidBridge(i)); print(" GetName(): " + AIBridge.GetName(i)); print(" GetMaxSpeed(): " + AIBridge.GetMaxSpeed(i)); print(" GetPrice(): " + AIBridge.GetPrice(i, 5)); print(" GetMaxLength(): " + AIBridge.GetMaxLength(i)); print(" GetMinLength(): " + AIBridge.GetMinLength(i)); print(" GetYearAvailable(): " + AIBridge.GetYearAvailable(i)); } print(" Valid Bridges: " + j); print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33160)); print(" RemoveBridge(): " + AIBridge.RemoveBridge(33155)); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" GetOtherBridgeEnd(): " + AIBridge.GetOtherBridgeEnd(33160)); print(" BuildBridge(): " + AIBridge.BuildBridge(AIVehicle.VEHICLE_ROAD, 5, 33160, 33155)); print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33160)); print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33155)); print(" GetOtherBridgeEnd(): " + AIBridge.GetOtherBridgeEnd(33160)); print(" BuildBridge(): " + AIBridge.BuildBridge(AIVehicle.VEHICLE_ROAD, 5, 33160, 33155)); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" RemoveBridge(): " + AIBridge.RemoveBridge(33155)); print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33160)); } function Regression::BridgeList() { local list = AIBridgeList(); print(""); print("--BridgeList--"); print(" Count(): " + list.Count()); list.Valuate(AIBridge.GetMaxSpeed); print(" MaxSpeed ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIBridge.GetPrice, 5); print(" Price ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIBridge.GetMaxLength); print(" MaxLength ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIBridge.GetMinLength); print(" MinLength ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIBridge.GetYearAvailable); print(" YearAvailable ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list = AIBridgeList_Length(14); print(""); print("--BridgeList_Length--"); print(" Count(): " + list.Count()); list.Valuate(AIBridge.GetMaxSpeed); print(" MaxSpeed ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIBridge.GetPrice, 14); print(" Price ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::Cargo() { print(""); print("--AICargo--"); for (local i = -1; i < 15; i++) { print(" Cargo " + i); print(" IsValidCargo(): " + AICargo.IsValidCargo(i)); print(" GetCargoLabel(): '" + AICargo.GetCargoLabel(i)+ "'"); print(" IsFreight(): " + AICargo.IsFreight(i)); print(" HasCargoClass(): " + AICargo.HasCargoClass(i, AICargo.CC_PASSENGERS)); print(" GetTownEffect(): " + AICargo.GetTownEffect(i)); print(" GetCargoIncome(0, 0): " + AICargo.GetCargoIncome(i, 0, 0)); print(" GetCargoIncome(10, 10): " + AICargo.GetCargoIncome(i, 10, 10)); print(" GetCargoIncome(100, 10): " + AICargo.GetCargoIncome(i, 100, 10)); print(" GetCargoIncome(10, 100): " + AICargo.GetCargoIncome(i, 10, 100)); } } function Regression::CargoList() { local list = AICargoList(); print(""); print("--CargoList--"); print(" Count(): " + list.Count()); list.Valuate(AICargo.IsFreight); print(" IsFreight ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AICargo.GetCargoIncome, 100, 100); print(" CargoIncomes(100, 100) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list = AICargoList_IndustryAccepting(8); print(""); print("--CargoList_IndustryAccepting--"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i); } list = AICargoList_IndustryProducing(4); print(""); print("--CargoList_IndustryProducing--"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i); } } function Regression::Company() { print(""); print("--Company--"); /* Test AIXXXMode() in scopes */ { local test = AITestMode(); print(" SetName(): " + AICompany.SetName("Regression")); print(" SetName(): " + AICompany.SetName("Regression")); { local exec = AIExecMode(); print(" SetName(): " + AICompany.SetName("Regression")); print(" SetName(): " + AICompany.SetName("Regression")); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); } } print(" GetName(): " + AICompany.GetName(AICompany.MY_COMPANY)); print(" GetPresidentName(): " + AICompany.GetPresidentName(AICompany.MY_COMPANY)); print(" SetPresidentName(): " + AICompany.SetPresidentName("Regression AI")); print(" GetPresidentName(): " + AICompany.GetPresidentName(AICompany.MY_COMPANY)); print(" GetCompanyValue(): " + AICompany.GetCompanyValue(AICompany.MY_COMPANY)); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" GetName(): " + AICompany.GetName(240)); print(" GetLoanAmount(): " + AICompany.GetLoanAmount()); print(" GetMaxLoanAmount(): " + AICompany.GetMaxLoanAmount()); print(" GetLoanInterval(): " + AICompany.GetLoanInterval()); print(" SetLoanAmount(1): " + AICompany.SetLoanAmount(1)); print(" SetLoanAmount(100): " + AICompany.SetLoanAmount(100)); print(" SetLoanAmount(10000): " + AICompany.SetLoanAmount(10000)); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" GetLoanAmount(): " + AICompany.GetLoanAmount()); print(" SetMinimumLoanAmount(31337): " + AICompany.SetMinimumLoanAmount(31337)); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" GetLoanAmount(): " + AICompany.GetLoanAmount()); print(" SetLoanAmount(10000): " + AICompany.SetLoanAmount(AICompany.GetMaxLoanAmount())); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" GetLoanAmount(): " + AICompany.GetLoanAmount()); print(" GetCompanyHQ(): " + AICompany.GetCompanyHQ(AICompany.MY_COMPANY)); print(" BuildCompanyHQ(): " + AICompany.BuildCompanyHQ(AIMap.GetTileIndex(127, 129))); print(" GetCompanyHQ(): " + AICompany.GetCompanyHQ(AICompany.MY_COMPANY)); print(" BuildCompanyHQ(): " + AICompany.BuildCompanyHQ(AIMap.GetTileIndex(129, 129))); print(" GetCompanyHQ(): " + AICompany.GetCompanyHQ(AICompany.MY_COMPANY)); print(" BuildCompanyHQ(): " + AICompany.BuildCompanyHQ(AIMap.GetTileIndex(129, 128))); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" GetAutoRenewStatus(); " + AICompany.GetAutoRenewStatus(AICompany.MY_COMPANY)); print(" SetAutoRenewStatus(true); " + AICompany.SetAutoRenewStatus(true)); print(" GetAutoRenewStatus(); " + AICompany.GetAutoRenewStatus(AICompany.MY_COMPANY)); print(" SetAutoRenewStatus(true); " + AICompany.SetAutoRenewStatus(true)); print(" SetAutoRenewStatus(false); " + AICompany.SetAutoRenewStatus(false)); print(" GetAutoRenewMonths(); " + AICompany.GetAutoRenewMonths(AICompany.MY_COMPANY)); print(" SetAutoRenewMonths(-12); " + AICompany.SetAutoRenewMonths(-12)); print(" GetAutoRenewMonths(); " + AICompany.GetAutoRenewMonths(AICompany.MY_COMPANY)); print(" SetAutoRenewMonths(-12); " + AICompany.SetAutoRenewMonths(-12)); print(" SetAutoRenewMonths(6); " + AICompany.SetAutoRenewMonths(6)); print(" GetAutoRenewMoney(); " + AICompany.GetAutoRenewMoney(AICompany.MY_COMPANY)); print(" SetAutoRenewMoney(200000); " + AICompany.SetAutoRenewMoney(200000)); print(" GetAutoRenewMoney(); " + AICompany.GetAutoRenewMoney(AICompany.MY_COMPANY)); print(" SetAutoRenewMoney(200000); " + AICompany.SetAutoRenewMoney(200000)); print(" SetAutoRenewMoney(100000); " + AICompany.SetAutoRenewMoney(100000)); } function Regression::Engine() { local j = 0; print(""); print("--Engine--"); for (local i = -1; i < 257; i++) { if (AIEngine.IsValidEngine(i)) j++; print(" Engine " + i); print(" IsValidEngine(): " + AIEngine.IsValidEngine(i)); print(" GetName(): " + AIEngine.GetName(i)); print(" GetCargoType(): " + AIEngine.GetCargoType(i)); print(" CanRefitCargo(): " + AIEngine.CanRefitCargo(i, 1)); print(" GetCapacity(): " + AIEngine.GetCapacity(i)); print(" GetReliability(): " + AIEngine.GetReliability(i)); print(" GetMaxSpeed(): " + AIEngine.GetMaxSpeed(i)); print(" GetPrice(): " + AIEngine.GetPrice(i)); print(" GetMaxAge(): " + AIEngine.GetMaxAge(i)); print(" GetRunningCost(): " + AIEngine.GetRunningCost(i)); print(" GetVehicleType(): " + AIEngine.GetVehicleType(i)); print(" GetRailType(): " + AIEngine.GetRailType(i)); print(" GetRoadType(): " + AIEngine.GetRoadType(i)); print(" GetPlaneType(): " + AIEngine.GetPlaneType(i)); } print(" Valid Engines: " + j); } function Regression::EngineList() { local list = AIEngineList(AIVehicle.VEHICLE_ROAD); print(""); print("--EngineList--"); print(" Count(): " + list.Count()); list.Valuate(AIEngine.GetCargoType); print(" CargoType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIEngine.GetCapacity); print(" Capacity ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIEngine.GetReliability); print(" Reliability ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIEngine.GetMaxSpeed); print(" MaxSpeed ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIEngine.GetPrice); print(" Price ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function cost_callback(old_path, new_tile, new_direction, self) { if (old_path == null) return 0; return old_path.GetCost() + 1; } function estimate_callback(tile, direction, goals, self) { return goals[0] - tile; } function neighbours_callback(path, cur_tile, self) { return [[cur_tile + 1, 1]]; } function check_direction_callback(tile, existing_direction, new_direction, self) { return false; } function Regression::Graph() { print("--AyStar--"); print(" Fastest path:"); local as = AS(cost_callback, estimate_callback, neighbours_callback, check_direction_callback); local path = false; as.InitializePath([[1, 1]], [10]); while (path == false) path = as.FindPath(5); while (path != null) { print(" Tile " + path.GetTile()); path = path.GetParent(); } } function Regression::Group() { print (""); print("--Group--"); print(" SetAutoReplace(): " + AIGroup.SetAutoReplace(AIGroup.ALL_GROUP, 116, 117)); print(" GetEngineReplacement(): " + AIGroup.GetEngineReplacement(AIGroup.ALL_GROUP, 116)); print(" GetNumEngines(): " + AIGroup.GetNumEngines(AIGroup.ALL_GROUP, 116)); print(" AIRoad.BuildRoadDepot(): " + AIRoad.BuildRoadDepot(10000, 10001)); local vehicle = AIVehicle.BuildVehicle(10000, 116); print(" AIVehicle.BuildVehicle(): " + vehicle); print(" GetNumEngines(): " + AIGroup.GetNumEngines(AIGroup.ALL_GROUP, 116)); local group = AIGroup.CreateGroup(AIVehicle.VEHICLE_ROAD); print(" CreateGroup(): " + group); print(" MoveVehicle(): " + AIGroup.MoveVehicle(group, vehicle)); print(" GetNumEngines(): " + AIGroup.GetNumEngines(group, 116)); print(" GetNumEngines(): " + AIGroup.GetNumEngines(AIGroup.ALL_GROUP, 116)); print(" GetNumEngines(): " + AIGroup.GetNumEngines(AIGroup.DEFAULT_GROUP, 116)); print(" GetName(): " + AIGroup.GetName(0)); print(" GetName(): " + AIGroup.GetName(1)); print(" AIVehicle.SellVehicle(): " + AIVehicle.SellVehicle(vehicle)); print(" AITile.DemolishTile(): " + AITile.DemolishTile(10000)); print(" HasWagonRemoval(): " + AIGroup.HasWagonRemoval()); print(" EnableWagonRemoval(): " + AIGroup.EnableWagonRemoval(true)); print(" HasWagonRemoval(): " + AIGroup.HasWagonRemoval()); print(" EnableWagonRemoval(): " + AIGroup.EnableWagonRemoval(false)); print(" EnableWagonRemoval(): " + AIGroup.EnableWagonRemoval(false)); print(" HasWagonRemoval(): " + AIGroup.HasWagonRemoval()); } function Regression::Industry() { local j = 0; print(""); print("--Industry--"); print(" GetMaxIndustryID(): " + AIIndustry.GetMaxIndustryID()); print(" GetIndustryCount(): " + AIIndustry.GetIndustryCount()); for (local i = -1; i < AIIndustry.GetMaxIndustryID() + 1; i++) { if (AIIndustry.IsValidIndustry(i)) j++; print(" Industry " + i); print(" IsValidIndustry(): " + AIIndustry.IsValidIndustry(i)); print(" GetName(): " + AIIndustry.GetName(i)); print(" GetLocation(): " + AIIndustry.GetLocation(i)); print(" GetProduction(): " + AIIndustry.GetProduction(i, 1)); print(" IsCargoAccepted(): " + AIIndustry.IsCargoAccepted(i, 1)); local cargo_list = AICargoList(); for (local j = cargo_list.Begin(); cargo_list.HasNext(); j = cargo_list.Next()) { if (AIIndustry.GetProduction(i, j) > 0) { print(" GetLastMonthProduction(): " + AIIndustry.GetLastMonthProduction(i, j)); print(" GetLastMonthTransported(): " + AIIndustry.GetLastMonthTransported(i, j)); print(" GetStockpiledCargo(): " + AIIndustry.GetStockpiledCargo(i, j)); } } } print(" Valid Industries: " + j); print(" GetIndustryCount(): " + AIIndustry.GetIndustryCount()); } function Regression::IndustryList() { local list = AIIndustryList(); print(""); print("--IndustryList--"); print(" Count(): " + list.Count()); list.Valuate(AIIndustry.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustry.GetDistanceManhattanToTile, 30000); print(" DistanceManhattanToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustry.GetDistanceSquareToTile, 30000); print(" DistanceSquareToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustry.GetAmountOfStationsAround); print(" GetAmountOfStationsAround(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustry.IsCargoAccepted, 1); print(" CargoAccepted(1) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustry.GetProduction, 1); list.KeepAboveValue(50); print(" KeepAboveValue(50): done"); print(" Count(): " + list.Count()); print(" Production ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list = AIIndustryList_CargoAccepting(1); print("--IndustryList_CargoAccepting--"); print(" Count(): " + list.Count()); list.Valuate(AIIndustry.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list = AIIndustryList_CargoProducing(1); print("--IndustryList_CargoProducing--"); print(" Count(): " + list.Count()); list.Valuate(AIIndustry.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::IndustryTypeList() { local list = AIIndustryTypeList(); print(""); print("--IndustryTypeList--"); print(" Count(): " + list.Count()); list.Valuate(AIIndustry.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" Id: " + i); print(" IsRawIndustry(): " + AIIndustryType.IsRawIndustry(i)); print(" ProductionCanIncrease(): " + AIIndustryType.ProductionCanIncrease(i)); print(" GetConstructionCost(): " + AIIndustryType.GetConstructionCost(i)); print(" GetName(): " + AIIndustryType.GetName(i)); print(" CanBuildIndustry(): " + AIIndustryType.CanBuildIndustry(i)); print(" CanProspectIndustry(): " + AIIndustryType.CanProspectIndustry(i)); } } function CustomValuator(list_id) { return list_id * 4343; } function Regression::List() { local list = AIList(); print(""); print("--List--"); print(" IsEmpty(): " + list.IsEmpty()); list.AddItem(1, 1); list.AddItem(2, 2); for (local i = 1000; i < 1100; i++) { list.AddItem(i, i); } list.RemoveItem(1050); list.RemoveItem(1150); list.ChangeItem(1051, 12); print(" Count(): " + list.Count()); print(" HasItem(1050): " + list.HasItem(1050)); print(" HasItem(1051): " + list.HasItem(1051)); print(" IsEmpty(): " + list.IsEmpty()); list.Sort(AIAbstractList.SORT_BY_ITEM, true); print(" List Dump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(CustomValuator); print(" Custom ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(function (a) { return a * 42; }); print(" Custom ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIBase.RandItem); print(" Randomize ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.KeepTop(10); print(" KeepTop(10):"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.KeepBottom(8); print(" KeepBottom(8):"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.RemoveBottom(2); print(" RemoveBottom(2):"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.RemoveTop(2); print(" RemoveTop(2):"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } local list2 = AIList(); list2.AddItem(1003, 0); list2.AddItem(1004, 0); list.RemoveList(list2); print(" RemoveList({1003, 1004}):"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list2.AddItem(1005, 0); list.KeepList(list2); print(" KeepList({1003, 1004, 1005}):"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list2.Clear(); for (local i = 4000; i < 4003; i++) { list2.AddItem(i, i * 2); } list2.AddItem(1005, 1005); list.AddList(list2); print(" AddList({1005, 4000, 4001, 4002}):"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list[4000] = 50; list[4006] = 12; print(" foreach():"); foreach (idx, val in list) { print(" " + idx + " => " + val); } print(" []:"); print(" 4000 => " + list[4000]); list.Clear(); print(" IsEmpty(): " + list.IsEmpty()); } function Regression::Map() { print(""); print("--Map--"); print(" GetMapSize(): " + AIMap.GetMapSize()); print(" GetMapSizeX(): " + AIMap.GetMapSizeX()); print(" GetMapSizeY(): " + AIMap.GetMapSizeY()); print(" GetTileX(123): " + AIMap.GetTileX(123)); print(" GetTileY(123): " + AIMap.GetTileY(123)); print(" GetTileIndex(): " + AIMap.GetTileIndex(123, 0)); print(" GetTileIndex(): " + AIMap.GetTileIndex(0, 123)); print(" GetTileIndex(): " + AIMap.GetTileIndex(0, 0)); print(" GetTileIndex(): " + AIMap.GetTileIndex(-1, -1)); print(" GetTileIndex(): " + AIMap.GetTileIndex(10000, 10000)); print(" IsValidTile(123): " + AIMap.IsValidTile(123)); print(" GetTileX(124): " + AIMap.GetTileX(124)); print(" GetTileY(124): " + AIMap.GetTileY(124)); print(" IsValidTile(124): " + AIMap.IsValidTile(124)); print(" IsValidTile(0): " + AIMap.IsValidTile(0)); print(" IsValidTile(-1): " + AIMap.IsValidTile(-1)); print(" IsValidTile(): " + AIMap.IsValidTile(AIMap.GetMapSize())); print(" IsValidTile(): " + AIMap.IsValidTile(AIMap.GetMapSize() - AIMap.GetMapSizeX() - 2)); print(" DemolishTile(): " + AITile.DemolishTile(19592)); print(" DemolishTile(): " + AITile.DemolishTile(19335)); print(" Distance"); print(" DistanceManhattan(): " + AIMap.DistanceManhattan(1, 10000)); print(" DistanceMax(): " + AIMap.DistanceMax(1, 10000)); print(" DistanceSquare(): " + AIMap.DistanceSquare(1, 10000)); print(" DistanceFromEdge(): " + AIMap.DistanceFromEdge(10000)); } function Regression::Marine() { print(""); print("--AIMarine--"); print(" IsWaterDepotTile(): " + AIMarine.IsWaterDepotTile(32116)); print(" IsDockTile(): " + AIMarine.IsDockTile(32116)); print(" IsBuoyTile(): " + AIMarine.IsBuoyTile(32116)); print(" IsLockTile(): " + AIMarine.IsLockTile(32116)); print(" IsCanalTile(): " + AIMarine.IsCanalTile(32116)); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" BuildWaterDepot(): " + AIMarine.BuildWaterDepot(28479, false)); print(" BuildDock(): " + AIMarine.BuildDock(29253, true)); print(" BuildBuoy(): " + AIMarine.BuildBuoy(28481)); print(" BuildLock(): " + AIMarine.BuildLock(28487)); print(" HasTransportType(): " + AITile.HasTransportType(32127, AITile.TRANSPORT_WATER)); print(" BuildCanal(): " + AIMarine.BuildCanal(32127)); print(" HasTransportType(): " + AITile.HasTransportType(32127, AITile.TRANSPORT_WATER)); print(" IsWaterDepotTile(): " + AIMarine.IsWaterDepotTile(28479)); print(" IsDockTile(): " + AIMarine.IsDockTile(29253)); print(" IsBuoyTile(): " + AIMarine.IsBuoyTile(28481)); print(" IsLockTile(): " + AIMarine.IsLockTile(28487)); print(" IsCanalTile(): " + AIMarine.IsCanalTile(32127)); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" RemoveWaterDepot(): " + AIMarine.RemoveWaterDepot(28479)); print(" RemoveDock(): " + AIMarine.RemoveDock(29253)); print(" RemoveBuoy(): " + AIMarine.RemoveBuoy(28481)); print(" RemoveLock(): " + AIMarine.RemoveLock(28487)); print(" RemoveCanal(): " + AIMarine.RemoveCanal(32127)); print(" IsWaterDepotTile(): " + AIMarine.IsWaterDepotTile(28479)); print(" IsDockTile(): " + AIMarine.IsDockTile(29253)); print(" IsBuoyTile(): " + AIMarine.IsBuoyTile(28481)); print(" IsLockTile(): " + AIMarine.IsLockTile(28487)); print(" IsCanalTile(): " + AIMarine.IsCanalTile(32127)); print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.MY_COMPANY)); print(" BuildWaterDepot(): " + AIMarine.BuildWaterDepot(28479, false)); print(" BuildDock(): " + AIMarine.BuildDock(29253, true)); } function Regression::Order() { print(""); print("--Order--"); print(" GetOrderCount(): " + AIOrder.GetOrderCount(12)); print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(12, 1)); print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER)); print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(12, 1)); print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 1)); print(" AppendOrder(): " + AIOrder.AppendOrder(12, 33416, AIOrder.AIOF_TRANSFER)); print(" InsertOrder(): " + AIOrder.InsertOrder(12, 0, 33416, AIOrder.AIOF_TRANSFER)); print(" GetOrderCount(): " + AIOrder.GetOrderCount(12)); print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(12, 1)); print(" RemoveOrder(): " + AIOrder.RemoveOrder(12, 0)); print(" ChangeOrder(): " + AIOrder.ChangeOrder(12, 0, AIOrder.AIOF_FULL_LOAD)); print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(12, 0)); print(" CopyOrders(): " + AIOrder.CopyOrders(12, 1)); print(" CopyOrders(): " + AIOrder.CopyOrders(13, 12)); print(" ShareOrders(): " + AIOrder.ShareOrders(13, 1)); print(" ShareOrders(): " + AIOrder.ShareOrders(13, 12)); print(" UnshareOrders(): " + AIOrder.UnshareOrders(13)); print(" AppendOrder(): " + AIOrder.AppendOrder(12, 33421, AIOrder.AIOF_NONE)); local list = AIStationList_Vehicle(12); print(""); print("--StationList_Vehicle--"); print(" Count(): " + list.Count()); list.Valuate(AIStation.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStation.GetCargoWaiting, 0); print(" CargoWaiting(0) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStation.GetCargoWaiting, 1); print(" CargoWaiting(1) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStation.GetCargoRating, 1); print(" CargoRating(1) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStation.GetDistanceManhattanToTile, 30000); print(" DistanceManhattanToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStation.GetDistanceSquareToTile, 30000); print(" DistanceSquareToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStation.IsWithinTownInfluence, 0); print(" IsWithinTownInfluence(0) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list = AIVehicleList_Station(3); print(""); print("--VehicleList_Station--"); print(" Count(): " + list.Count()); list.Valuate(AIVehicle.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } print(" foreach():"); foreach (idx, val in list) { print(" " + idx + " => " + val); } } function Regression::Pathfinder() { print(""); print("--PathFinder--"); print(" Road Between Towns:"); local pathfinder = RPF(); local path = false; pathfinder.InitializePath([AITown.GetLocation(0)], [AITown.GetLocation(1)]); while (path == false) path = pathfinder.FindPath(1000); while (path != null) { print(" Tile " + path.GetTile()); path = path.GetParent(); } } function Regression::QueueTest(queue) { print(" Count(): " + queue.Count()); print(" Peek(): " + queue.Peek()); print(" Pop(): " + queue.Pop()); queue.Insert(6, 20); queue.Insert(7, 40); queue.Insert(2, 10); queue.Insert(5, 15); queue.Insert(8, 60); queue.Insert(1, 5); queue.Insert(3, 10); queue.Insert(9, 90); queue.Insert(4, 10); print(" Count(): " + queue.Count()); print(" Peek(): " + queue.Peek()); for (local i = 4; i > 0; i--) { print(" Pop(): " + queue.Pop()); } queue.Insert(1, 5); queue.Insert(10, 100); for (local i = queue.Count(); i > 0; i--) { print(" Pop(): " + queue.Pop()); } print(" Peek(): " + queue.Peek()); print(" Pop(): " + queue.Pop()); print(" Count(): " + queue.Count()); } function Regression::Queues() { print(""); print("--PriorityQueue--"); QueueTest(PQ()); print(""); print("--BinaryHeap--"); QueueTest(BH()); print(""); print("--FibonacciHeap--"); QueueTest(FH()); } function Regression::RailTypeList() { local list = AIRailTypeList(); print(""); print("--RailTypeList--"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" RailType: " + i); print(" IsRailTypeAvailable(): " + AIRail.IsRailTypeAvailable(i)); } } function Regression::Rail() { AIRail.SetCurrentRailType(0); print(""); print("--Rail--"); print(" IsRailTile(): " + AIRail.IsRailTile(10002)); print(" BuildRailTrack(): " + AIRail.BuildRailTrack(10002, AIRail.RAILTRACK_NW_SE)); print(" BuildSignal(): " + AIRail.BuildSignal(10002, 10258, AIRail.SIGNALTYPE_PBS)); print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(10002, AIRail.RAILTRACK_NW_NE)); print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(10002, AIRail.RAILTRACK_NW_SE)); print(" BuildRail(): " + AIRail.BuildRail(10002, 10003, 10006)); print(" HasTransportType(): " + AITile.HasTransportType(10005, AITile.TRANSPORT_RAIL)); print(" HasTransportType(): " + AITile.HasTransportType(10006, AITile.TRANSPORT_RAIL)); print(" RemoveRail(): " + AIRail.RemoveRail(10005, 10004, 10001)); print(" Depot"); print(" IsRailTile(): " + AIRail.IsRailTile(33411)); print(" BuildRailDepot(): " + AIRail.BuildRailDepot(0, 1)); print(" BuildRailDepot(): " + AIRail.BuildRailDepot(33411, 33411)); print(" BuildRailDepot(): " + AIRail.BuildRailDepot(33411, 33414)); print(" BuildRailDepot(): " + AIRail.BuildRailDepot(33411, 33412)); print(" GetRailDepotFrontTile(): " + AIRail.GetRailDepotFrontTile(33411)); print(" IsBuildable(): " + AITile.IsBuildable(33411)); local list = AIDepotList(AITile.TRANSPORT_RAIL); print(" DepotList"); print(" Count(): " + list.Count()); list.Valuate(AITile.GetDistanceManhattanToTile, 0); print(" Depot distance from (0,0) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } print(" RemoveDepot(): " + AITile.DemolishTile(33411)); print(" Station"); print(" BuildRailStation(): " + AIRail.BuildRailStation(0, AIRail.RAILTRACK_NE_SW, 1, 1, false)); print(" BuildRailStation(): " + AIRail.BuildRailStation(7958, AIRail.RAILTRACK_NE_SW, 4, 5, false)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959)); print(" RemoveRailStationTileRect(): " + AIRail.RemoveRailStationTileRect(7959, 7959)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959)); print(" DemolishTile(): " + AITile.DemolishTile(7960)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959)); } function Regression::Road() { print(""); print("--Road--"); print(" Road"); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33411)); print(" BuildRoad(): " + AIRoad.BuildRoad(0, 1)); print(" BuildRoad(): " + AIRoad.BuildRoad(33411, 33411)); print(" HasTransportType(): " + AITile.HasTransportType(33413, AITile.TRANSPORT_ROAD)); print(" BuildRoad(): " + AIRoad.BuildRoad(33411, 33414)); print(" HasTransportType(): " + AITile.HasTransportType(33413, AITile.TRANSPORT_ROAD)); print(" AreRoadTilesConnected(): " + AIRoad.AreRoadTilesConnected(33412, 33413)); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33411)); print(" HasRoadType(Road): " + AIRoad.HasRoadType(33411, AIRoad.ROADTYPE_ROAD)); print(" HasRoadType(Tram): " + AIRoad.HasRoadType(33411, AIRoad.ROADTYPE_TRAM)); print(" GetNeighbourRoadCount(): " + AIRoad.GetNeighbourRoadCount(33412)); print(" RemoveRoad(): " + AIRoad.RemoveRoad(33411, 33411)); print(" RemoveRoad(): " + AIRoad.RemoveRoad(33411, 33412)); print(" RemoveRoad(): " + AIRoad.RemoveRoad(19590, 19590)); print(" RemoveRoad(): " + AIRoad.RemoveRoad(33411, 33414)); print(" BuildOneWayRoad(): " + AIRoad.BuildOneWayRoad(33411, 33414)); print(" AreRoadTilesConnected(): " + AIRoad.AreRoadTilesConnected(33412, 33413)); print(" AreRoadTilesConnected(): " + AIRoad.AreRoadTilesConnected(33413, 33412)); print(" BuildOneWayRoad(): " + AIRoad.BuildOneWayRoad(33413, 33412)); print(" AreRoadTilesConnected(): " + AIRoad.AreRoadTilesConnected(33412, 33413)); print(" AreRoadTilesConnected(): " + AIRoad.AreRoadTilesConnected(33413, 33412)); print(" BuildOneWayRoad(): " + AIRoad.BuildOneWayRoad(33412, 33413)); print(" BuildOneWayRoad(): " + AIRoad.BuildOneWayRoad(33413, 33412)); print(" AreRoadTilesConnected(): " + AIRoad.AreRoadTilesConnected(33412, 33413)); print(" AreRoadTilesConnected(): " + AIRoad.AreRoadTilesConnected(33413, 33412)); print(" RemoveRoad(): " + AIRoad.RemoveRoad(33411, 33412)); print(" IsRoadTypeAvailable(Road): " + AIRoad.IsRoadTypeAvailable(AIRoad.ROADTYPE_ROAD)); print(" IsRoadTypeAvailable(Tram): " + AIRoad.IsRoadTypeAvailable(AIRoad.ROADTYPE_TRAM)); print(" SetCurrentRoadType(Tram): " + AIRoad.SetCurrentRoadType(AIRoad.ROADTYPE_TRAM)); print(" GetCurrentRoadType(): " + AIRoad.GetCurrentRoadType()); print(" Depot"); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33411)); print(" BuildRoadDepot(): " + AIRoad.BuildRoadDepot(0, 1)); print(" BuildRoadDepot(): " + AIRoad.BuildRoadDepot(33411, 33411)); print(" BuildRoadDepot(): " + AIRoad.BuildRoadDepot(33411, 33414)); print(" BuildRoadDepot(): " + AIRoad.BuildRoadDepot(33411, 33412)); print(" HasRoadType(Road): " + AIRoad.HasRoadType(33411, AIRoad.ROADTYPE_ROAD)); print(" HasRoadType(Tram): " + AIRoad.HasRoadType(33411, AIRoad.ROADTYPE_TRAM)); print(" GetLastError(): " + AIError.GetLastError()); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" GetErrorCategory(): " + AIError.GetErrorCategory()); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33411)); print(" GetRoadDepotFrontTile(): " + AIRoad.GetRoadDepotFrontTile(33411)); print(" IsRoadDepotTile(): " + AIRoad.IsRoadDepotTile(33411)); print(" IsBuildable(): " + AITile.IsBuildable(33411)); local list = AIDepotList(AITile.TRANSPORT_ROAD); print(" DepotList"); print(" Count(): " + list.Count()); list.Valuate(AITile.GetDistanceManhattanToTile, 0); print(" Depot distance from (0,0) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } print(" RemoveRoadDepot(): " + AIRoad.RemoveRoadDepot(33411)); print(" RemoveRoadDepot(): " + AIRoad.RemoveRoadDepot(33411)); print(" Station"); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33411)); print(" BuildRoadStation(): " + AIRoad.BuildRoadStation(0, 1, false, false, true)); print(" BuildRoadStation(): " + AIRoad.BuildRoadStation(33411, 33411, false, false, true)); print(" BuildRoadStation(): " + AIRoad.BuildRoadStation(33411, 33414, false, false, true)); print(" BuildRoadStation(): " + AIRoad.BuildRoadStation(33411, 33412, false, false, true)); print(" IsStationTile(): " + AITile.IsStationTile(33411)); print(" IsStationTile(): " + AITile.IsStationTile(33412)); print(" HasRoadType(Road): " + AIRoad.HasRoadType(33411, AIRoad.ROADTYPE_ROAD)); print(" HasRoadType(Tram): " + AIRoad.HasRoadType(33411, AIRoad.ROADTYPE_TRAM)); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33411)); print(" GetDriveThroughBackTile(): " + AIRoad.GetDriveThroughBackTile(33411)); print(" GetRoadStationFrontTile(): " + AIRoad.GetRoadStationFrontTile(33411)); print(" IsRoadStationTile(): " + AIRoad.IsRoadStationTile(33411)); print(" IsDriveThroughRoadStationTile: " + AIRoad.IsDriveThroughRoadStationTile(33411)); print(" RemoveRoadStation(): " + AIRoad.RemoveRoadStation(33411)); print(" RemoveRoadStation(): " + AIRoad.RemoveRoadStation(33411)); print(" Station Types"); print(" BuildRoadStation(bus): " + AIRoad.BuildRoadStation(33411, 33410, false, false, true)); print(" BuildRoadStation(truck): " + AIRoad.BuildRoadStation(33421, 33422, true, false, true)); print(" BuildRoadStation(truck): " + AIRoad.BuildRoadStation(33412, 33413, true, false, true)); print(" BuildRoadStation(bus): " + AIRoad.BuildRoadStation(33411 + 256, 33411, false, false, true)); print(" BuildRoadStation(truck): " + AIRoad.BuildRoadStation(33412 + 256, 33412 + 256 + 256, true, false, true)); print(" BuildRoadStation(bus-drive): " + AIRoad.BuildRoadStation(33413, 33412, false, true, true)); print(" BuildRoadStation(truck-drive): " + AIRoad.BuildRoadStation(33414, 33413, true, true, true)); print(" BuildRoadStation(bus-drive): " + AIRoad.BuildRoadStation(33415, 33414, false, true, true)); print(" BuildRoadStation(truck-drive): " + AIRoad.BuildRoadStation(33416, 33415, true, true, true)); print(" BuildRoadDepot(): " + AIRoad.BuildRoadDepot(33417, 33418)); print(" GetRoadStationFrontTile(): " + AIRoad.GetRoadStationFrontTile(33411 + 256)); print(" GetRoadStationFrontTile(): " + AIRoad.GetRoadStationFrontTile(33412 + 256)); print(" IsDriveThroughRoadStationTile: " + AIRoad.IsDriveThroughRoadStationTile(33415)); print(" IsBuildable(): " + AITile.IsBuildable(33415)); print(" GetDriveThroughBackTile(): " + AIRoad.GetDriveThroughBackTile(33415)); print(" GetRoadStationFrontTile(): " + AIRoad.GetRoadStationFrontTile(33415)); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33415)); } function Regression::Sign() { local j = 0; print(""); print("--Sign--"); print(" BuildSign(33410, 'Some Sign'): " + AISign.BuildSign(33410, "Some Sign")); print(" BuildSign(33411, 'Test'): " + AISign.BuildSign(33411, "Test")); print(" SetName(1, 'Test2'): " + AISign.SetName(1, "Test2")); local sign_id = AISign.BuildSign(33409, "Some other Sign"); print(" BuildSign(33409, 'Some other Sign'): " + sign_id); print(" RemoveSign(" + sign_id + "): " + AISign.RemoveSign(sign_id)); print(""); print(" GetMaxSignID(): " + AISign.GetMaxSignID()); for (local i = -1; i < AISign.GetMaxSignID() + 1; i++) { if (AISign.IsValidSign(i)) j++; print(" Sign " + i); print(" IsValidSign(): " + AISign.IsValidSign(i)); print(" GetName(): " + AISign.GetName(i)); print(" GetLocation(): " + AISign.GetLocation(i)); } print(" Valid Signs: " + j); } function Regression::Station() { print(""); print("--Station--"); print(" IsValidStation(0): " + AIStation.IsValidStation(0)); print(" IsValidStation(1000): " + AIStation.IsValidStation(1000)); print(" GetName(0): " + AIStation.GetName(0)); print(" SetName(0): " + AIStation.SetName(0, "Look, a station")); print(" GetName(0): " + AIStation.GetName(0)); print(" GetLocation(1): " + AIStation.GetLocation(1)); print(" GetLocation(1000): " + AIStation.GetLocation(1000)); print(" GetStationID(33411): " + AIStation.GetStationID(33411)); print(" GetStationID(34411): " + AIStation.GetStationID(34411)); print(" GetCargoWaiting(0, 0): " + AIStation.GetCargoWaiting(0, 0)); print(" GetCargoWaiting(1000, 0): " + AIStation.GetCargoWaiting(1000, 0)); print(" GetCargoWaiting(0, 1000): " + AIStation.GetCargoWaiting(0, 1000)); print(" GetStationID(33411): " + AIStation.GetStationID(33411)); print(" HasRoadType(3, TRAM): " + AIStation.HasRoadType(3, AIRoad.ROADTYPE_TRAM)); print(" HasRoadType(3, ROAD): " + AIStation.HasRoadType(3, AIRoad.ROADTYPE_ROAD)); print(" HasRoadType(33411, TRAM): " + AIRoad.HasRoadType(33411, AIRoad.ROADTYPE_TRAM)); print(" HasRoadType(33411, ROAD): " + AIRoad.HasRoadType(33411, AIRoad.ROADTYPE_ROAD)); print(" HasStationType(3, BUS): " + AIStation.HasStationType(3, AIStation.STATION_BUS_STOP)); print(" HasStationType(3, TRAIN): " + AIStation.HasStationType(3, AIStation.STATION_TRAIN)); print(" GetCoverageRadius(BUS): " + AIStation.GetCoverageRadius(AIStation.STATION_BUS_STOP)); print(" GetCoverageRadius(TRUCK): " + AIStation.GetCoverageRadius(AIStation.STATION_TRUCK_STOP)); print(" GetCoverageRadius(TRAIN): " + AIStation.GetCoverageRadius(AIStation.STATION_TRAIN)); print(" GetNearestTown(): " + AIStation.GetNearestTown(0)); print(" GetNearestTown(): " + AIStation.GetNearestTown(10000)); print(" GetNearestTown(): " + AIStation.GetNearestTown(3)); local list = AIStationList(AIStation.STATION_BUS_STOP + AIStation.STATION_TRUCK_STOP); print(""); print("--StationList--"); print(" Count(): " + list.Count()); list.Valuate(AIStation.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStation.GetCargoWaiting, 0); print(" CargoWaiting(0) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStation.GetCargoWaiting, 1); print(" CargoWaiting(1) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::Tile() { print(""); print("--Tile--"); print(" HasTreeOnTile(): " + AITile.HasTreeOnTile(33148)); print(" IsFarmTile(): " + AITile.IsFarmTile(32892)); print(" IsRockTile(): " + AITile.IsRockTile(31606)); print(" IsRoughTile(): " + AITile.IsRoughTile(33674)); print(" HasTreeOnTile(): " + AITile.HasTreeOnTile(33404)); print(" IsFarmTile(): " + AITile.IsFarmTile(33404)); print(" IsRockTile(): " + AITile.IsRockTile(33404)); print(" IsRoughTile(): " + AITile.IsRoughTile(33404)); print(" IsSnowTile(): " + AITile.IsSnowTile(33404)); print(" IsDesertTile(): " + AITile.IsDesertTile(33404)); print(" PlantTree(): " + AITile.PlantTree(33404)); print(" HasTreeOnTile(): " + AITile.HasTreeOnTile(33404)); print(" PlantTree(): " + AITile.PlantTree(33404)); print(" HasTreeOnTile(): " + AITile.HasTreeOnTile(33661)); print(" PlantTreeRectangle(): " + AITile.PlantTreeRectangle(33404, 2, 2)); print(" HasTreeOnTile(): " + AITile.HasTreeOnTile(33661)); } function Regression::TileList() { local list = AITileList(); print(""); print("--TileList--"); print(" Count(): " + list.Count()); list.AddRectangle(27631 - 256 * 1, 256 * 1 + 27631 + 2); print(" Count(): " + list.Count()); list.Valuate(AITile.GetSlope); print(" Slope(): done"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); print(" " + i + " => " + AITile.GetComplementSlope(list.GetValue(i))); print(" " + i + " => " + AITile.IsSteepSlope(list.GetValue(i))); print(" " + i + " => " + AITile.IsHalftileSlope(list.GetValue(i))); } list.Clear(); print(""); print("--TileList--"); print(" Count(): " + list.Count()); list.AddRectangle(41895 - 256 * 2, 256 * 2 + 41895 + 8); print(" Count(): " + list.Count()); list.Valuate(AITile.GetHeight); print(" Height(): done"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITile.GetSlope); list.KeepValue(0); print(" Slope(): done"); print(" KeepValue(0): done"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITile.IsBuildable); list.KeepValue(1); print(" Buildable(): done"); print(" KeepValue(1): done"); print(" Count(): " + list.Count()); list.Valuate(AITile.IsBuildableRectangle, 3, 3); print(" BuildableRectangle(3, 3) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITile.GetDistanceManhattanToTile, 30000); print(" DistanceManhattanToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITile.GetDistanceSquareToTile, 30000); print(" DistanceSquareToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITile.GetOwner); print(" GetOwner() ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITile.GetClosestTown); print(" GetClosestTown() ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITile.GetCargoAcceptance, 0, 1, 1, 3); list.KeepAboveValue(10); print(" CargoAcceptance(): done"); print(" KeepAboveValue(10): done"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIRoad.IsRoadTile); list.KeepValue(1); print(" RoadTile(): done"); print(" KeepValue(1): done"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIRoad.GetNeighbourRoadCount); list.KeepValue(1); print(" NeighbourRoadCount():done"); print(" KeepValue(1): done"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.AddRectangle(54421 - 256 * 2, 256 * 2 + 54421 + 8); list.Valuate(AITile.IsWaterTile); print(" Water(): done"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list = AITileList_IndustryAccepting(0, 3); print(""); print("--TileList_IndustryAccepting--"); print(" Count(): " + list.Count()); list.Valuate(AITile.GetCargoAcceptance, 3, 1, 1, 3); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list = AITileList_IndustryProducing(1, 3); print(""); print("--TileList_IndustryProducing--"); print(" Count(): " + list.Count()); list.Valuate(AITile.GetCargoProduction, 7, 1, 1, 3); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list = AITileList_StationType(4, AIStation.STATION_BUS_STOP); print(""); print("--TileList_StationType--"); print(" Count(): " + list.Count()); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::Town() { local j = 0; print(""); print("--Town--"); print(" GetMaxTownID(): " + AITown.GetMaxTownID()); print(" GetTownCount(): " + AITown.GetTownCount()); for (local i = -1; i < AITown.GetMaxTownID() + 1; i++) { if (AITown.IsValidTown(i)) j++; print(" Town " + i); print(" IsValidTown(): " + AITown.IsValidTown(i)); print(" GetName(): " + AITown.GetName(i)); print(" GetPopulation(): " + AITown.GetPopulation(i)); print(" GetLocation(): " + AITown.GetLocation(i)); print(" GetHouseCount(): " + AITown.GetHouseCount(i)); print(" GetRating(): " + AITown.GetRating(i, AICompany.MY_COMPANY)); } print(" Valid Towns: " + j); print(" GetTownCount(): " + AITown.GetTownCount()); } function Regression::TownList() { local list = AITownList(); print(""); print("--TownList--"); print(" Count(): " + list.Count()); list.Valuate(AITown.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITown.GetDistanceManhattanToTile, 30000); print(" DistanceManhattanToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITown.GetDistanceSquareToTile, 30000); print(" DistanceSquareToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITown.IsWithinTownInfluence, AITown.GetLocation(0)); print(" IsWithinTownInfluence(" + AITown.GetLocation(0) + ") ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITown.GetAllowedNoise); print(" GetAllowedNoise() ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITown.GetPopulation); list.KeepAboveValue(500); print(" KeepAboveValue(500): done"); print(" Count(): " + list.Count()); print(" Population ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } print(" HasStatue(): " + AITown.HasStatue(list.Begin())); print(" GetRoadReworkDuration(): " + AITown.GetRoadReworkDuration(list.Begin())); print(" GetExclusiveRightsCompany(): " + AITown.GetExclusiveRightsCompany(list.Begin())); print(" GetExclusiveRightsDuration(): " + AITown.GetExclusiveRightsDuration(list.Begin())); print(" IsActionAvailable(BUILD_STATUE): " + AITown.IsActionAvailable(list.Begin(), AITown.TOWN_ACTION_BUILD_STATUE)); print(" PerformTownAction(BUILD_STATUE): " + AITown.PerformTownAction(list.Begin(), AITown.TOWN_ACTION_BUILD_STATUE)); print(" IsActionAvailable(BUILD_STATUE): " + AITown.IsActionAvailable(list.Begin(), AITown.TOWN_ACTION_BUILD_STATUE)); print(" HasStatue(): " + AITown.HasStatue(list.Begin())); } function Regression::Tunnel() { print(""); print("--Tunnel--"); print(" IsTunnelTile(): " + AITunnel.IsTunnelTile(29050)); print(" RemoveTunnel(): " + AITunnel.RemoveTunnel(29050)); print(" GetOtherTunnelEnd(): " + AITunnel.GetOtherTunnelEnd(29050)); print(" BuildTunnel(): " + AITunnel.BuildTunnel(AIVehicle.VEHICLE_ROAD, 29050)); print(" GetOtherTunnelEnd(): " + AITunnel.GetOtherTunnelEnd(29050)); print(" IsTunnelTile(): " + AITunnel.IsTunnelTile(29050)); print(" IsTunnelTile(): " + AITunnel.IsTunnelTile(28026)); print(" RemoveTunnel(): " + AITunnel.RemoveTunnel(29050)); print(" IsTunnelTile(): " + AITunnel.IsTunnelTile(29050)); print(" --Errors--"); print(" BuildTunnel(): " + AITunnel.BuildTunnel(AIVehicle.VEHICLE_ROAD, 7529)); print(" BuildTunnel(): " + AITunnel.BuildTunnel(AIVehicle.VEHICLE_ROAD, 8043)); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" RemoveTunnel(): " + AITunnel.RemoveTunnel(7529)); } function Regression::Vehicle() { local accounting = AIAccounting(); print(""); print("--Vehicle--"); print(" IsValidVehicle(-1): " + AIVehicle.IsValidVehicle(-1)); print(" IsValidVehicle(0): " + AIVehicle.IsValidVehicle(0)); print(" IsValidVehicle(12): " + AIVehicle.IsValidVehicle(12)); print(" ISValidVehicle(9999): " + AIVehicle.IsValidVehicle(9999)); local bank = AICompany.GetBankBalance(AICompany.MY_COMPANY); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(33417, 153)); print(" IsValidVehicle(12): " + AIVehicle.IsValidVehicle(12)); print(" CloneVehicle(): " + AIVehicle.CloneVehicle(33417, 12, true)); local bank_after = AICompany.GetBankBalance(AICompany.MY_COMPANY); print(" --Accounting--"); print(" GetCosts(): " + accounting.GetCosts()); print(" Should be: " + (bank - bank_after)); print(" ResetCosts(): " + accounting.ResetCosts()); bank = AICompany.GetBankBalance(AICompany.MY_COMPANY); print(" SellVehicle(13): " + AIVehicle.SellVehicle(13)); print(" IsInDepot(): " + AIVehicle.IsInDepot(12)); print(" IsStoppedInDepot(): " + AIVehicle.IsStoppedInDepot(12)); print(" StartStopVehicle(): " + AIVehicle.StartStopVehicle(12)); print(" IsInDepot(): " + AIVehicle.IsInDepot(12)); print(" IsStoppedInDepot(): " + AIVehicle.IsStoppedInDepot(12)); print(" SendVehicleToDepot(): " + AIVehicle.SendVehicleToDepot(12)); print(" IsInDepot(): " + AIVehicle.IsInDepot(12)); print(" IsStoppedInDepot(): " + AIVehicle.IsStoppedInDepot(12)); bank_after = AICompany.GetBankBalance(AICompany.MY_COMPANY); print(" --Accounting--"); print(" GetCosts(): " + accounting.GetCosts()); print(" Should be: " + (bank - bank_after)); print(" GetName(): " + AIVehicle.GetName(12)); print(" SetName(): " + AIVehicle.SetName(12, "MyVehicleName")); print(" GetName(): " + AIVehicle.GetName(12)); print(" CloneVehicle(): " + AIVehicle.CloneVehicle(33417, 12, true)); print(" --VehicleData--"); print(" GetLocation(): " + AIVehicle.GetLocation(12)); print(" GetEngineType(): " + AIVehicle.GetEngineType(12)); print(" GetUnitNumber(): " + AIVehicle.GetUnitNumber(12)); print(" GetAge(): " + AIVehicle.GetAge(12)); print(" GetMaxAge(): " + AIVehicle.GetMaxAge(12)); print(" GetAgeLeft(): " + AIVehicle.GetAgeLeft(12)); print(" GetCurrentSpeed(): " + AIVehicle.GetCurrentSpeed(12)); print(" GetRunningCost(): " + AIVehicle.GetRunningCost(12)); print(" GetProfitThisYear(): " + AIVehicle.GetProfitThisYear(12)); print(" GetProfitLastYear(): " + AIVehicle.GetProfitLastYear(12)); print(" GetCurrentValue(): " + AIVehicle.GetCurrentValue(12)); print(" GetVehicleType(): " + AIVehicle.GetVehicleType(12)); print(" GetRoadType(): " + AIVehicle.GetRoadType(12)); print(" GetCapacity(): " + AIVehicle.GetCapacity(12, 10)); print(" GetCargoLoad(): " + AIVehicle.GetCargoLoad(12, 10)); print(" IsInDepot(): " + AIVehicle.IsInDepot(12)); print(" GetNumWagons(): " + AIVehicle.GetNumWagons(12)); print(" GetWagonEngineType(): " + AIVehicle.GetWagonEngineType(12, 0)); print(" GetWagonAge(): " + AIVehicle.GetWagonAge(12, 0)); print(" GetLength(): " + AIVehicle.GetLength(12)); print(" GetOwner(): " + AITile.GetOwner(32119)); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(32119, 219)); print(" IsValidVehicle(14): " + AIVehicle.IsValidVehicle(14)); print(" IsInDepot(14): " + AIVehicle.IsInDepot(14)); print(" IsStoppedInDepot(14): " + AIVehicle.IsStoppedInDepot(14)); print(" IsValidVehicle(15): " + AIVehicle.IsValidVehicle(15)); print(" IsInDepot(15): " + AIVehicle.IsInDepot(15)); print(" IsStoppedInDepot(15): " + AIVehicle.IsStoppedInDepot(15)); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(28479, 204)); print(" IsValidVehicle(16): " + AIVehicle.IsValidVehicle(16)); print(" IsInDepot(16): " + AIVehicle.IsInDepot(16)); print(" IsStoppedInDepot(16): " + AIVehicle.IsStoppedInDepot(16)); print(" BuildRailDepot(): " + AIRail.BuildRailDepot(10008, 10000)); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(10008, 9)); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(10008, 27)); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(10008, 27)); print(" MoveWagon(): " + AIVehicle.MoveWagon(18, 0, true, 17, 0)); print(" GetNumWagons(): " + AIVehicle.GetNumWagons(17)); print(" GetLength(): " + AIVehicle.GetLength(17)); print(" GetWagonEngineType(): " + AIVehicle.GetWagonEngineType(17, 0)); print(" GetWagonAge(): " + AIVehicle.GetWagonAge(17, 0)); print(" GetWagonEngineType(): " + AIVehicle.GetWagonEngineType(17, 1)); print(" GetWagonAge(): " + AIVehicle.GetWagonAge(17, 1)); print(" GetWagonEngineType(): " + AIVehicle.GetWagonEngineType(17 2)); print(" GetWagonAge(): " + AIVehicle.GetWagonAge(17, 2)); print(" GetWagonEngineType(): " + AIVehicle.GetWagonEngineType(17 3)); print(" GetWagonAge(): " + AIVehicle.GetWagonAge(17, 3)); print(" --Errors--"); print(" RefitVehicle(): " + AIVehicle.RefitVehicle(12, 0)); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" SellVehicle(): " + AIVehicle.SellVehicle(12)); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" SendVehicleToDepot(): " + AIVehicle.SendVehicleToDepot(13)); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); local list = AIVehicleList(); print(""); print("--VehicleList--"); print(" Count(): " + list.Count()); list.Valuate(AIVehicle.GetLocation); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetEngineType); print(" EngineType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetUnitNumber); print(" UnitNumber ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetAge); print(" Age ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetMaxAge); print(" MaxAge ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetAgeLeft); print(" AgeLeft ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetCurrentSpeed); print(" CurrentSpeed ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetRunningCost); print(" RunningCost ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetProfitThisYear); print(" ProfitThisYear ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetProfitLastYear); print(" ProfitLastYear ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetCurrentValue); print(" CurrentValue ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetVehicleType); print(" VehicleType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetRoadType); print(" RoadType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetCapacity, 10); print(" VehicleType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicle.GetCargoLoad, 10); print(" VehicleType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::PrintSubsidy(subsidy_id) { print(" --Subsidy (" + subsidy_id + ") --"); print(" IsValidSubsidy(): " + AISubsidy.IsValidSubsidy(subsidy_id)); print(" IsAwarded(): " + AISubsidy.IsAwarded(subsidy_id)); print(" GetAwardedTo(): " + AISubsidy.GetAwardedTo(subsidy_id)); print(" GetExpireDate(): " + AISubsidy.GetExpireDate(subsidy_id)); print(" SourceIsTown(): " + AISubsidy.SourceIsTown(subsidy_id)); print(" GetSource(): " + AISubsidy.GetSource(subsidy_id)); print(" DestionationIsTown(): " + AISubsidy.DestinationIsTown(subsidy_id)); print(" GetDestionation(): " + AISubsidy.GetDestination(subsidy_id)); print(" GetCargoType(): " + AISubsidy.GetCargoType(subsidy_id)); } function Regression::Start() { this.TestInit(); this.Std(); this.Base(); this.List(); this.Airport(); this.Bridge(); this.BridgeList(); this.Cargo(); this.CargoList(); this.Company(); this.Engine(); this.EngineList(); this.Graph(); this.Group(); this.Industry(); this.IndustryList(); this.IndustryTypeList(); this.Map(); this.Marine(); this.Pathfinder(); this.Queues(); this.Rail(); this.RailTypeList(); this.Road(); this.Sign(); this.Station(); this.Tile(); this.TileList(); this.Town(); this.TownList(); this.Tunnel(); this.Vehicle(); /* Order has to be after Vehicle */ this.Order(); print(""); print(" First Subsidy Test"); PrintSubsidy(0); while (AIEventController.IsEventWaiting()) { local e = AIEventController.GetNextEvent(); print(" GetNextEvent: " + (e == null ? "null" : "instance")); print(" GetEventType: " + e.GetEventType()); switch (e.GetEventType()) { case AIEvent.AI_ET_SUBSIDY_OFFER: { local c = AIEventSubsidyOffer.Convert(e); print(" EventName: SubsidyOffer"); PrintSubsidy(c.GetSubsidyID()); } break; case AIEvent.AI_ET_VEHICLE_WAITING_IN_DEPOT: { local c = AIEventVehicleWaitingInDepot.Convert(e); print(" EventName: VehicleWaitingInDepot"); print(" VehicleID: " + c.GetVehicleID()); } break; default: print(" Unknown Event"); break; } } print(" IsEventWaiting: false"); }