author | truebrain |
Tue, 26 Feb 2008 16:02:37 +0000 | |
branch | noai |
changeset 9776 | ee9923d46fba |
parent 9773 | d2c20cd38f18 |
child 9785 | edbd185e05ed |
permissions | -rw-r--r-- |
class Regression extends AIController { stop = false; function Start(); function Stop(); } function Regression::TestInit() { print(""); print("--TestInit--"); print(" TickTest: " + this.GetTick()); this.Sleep(1); print(" TickTest: " + this.GetTick()); print(" SetCommandDelay: " + AISettings.SetCommandDelay(1)); } 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)); } function Regression::Airport() { print(""); print("--AIAirport--"); print(" IsHangarTile(): " + AIAirport.IsHangarTile(32116)); print(" IsAirportTile(): " + AIAirport.IsAirportTile(32116)); print(" GetHangarOfAirport(): " + AIAirport.GetHangarOfAirport(32116)); for (local i = -1; i < 10; 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)); print(" IsHangarTile(): " + AIAirport.IsHangarTile(32116)); print(" IsAirportTile(): " + AIAirport.IsAirportTile(32116)); print(" GetHangarOfAirport(): " + AIAirport.GetHangarOfAirport(32116)); print(" IsHangarTile(): " + AIAirport.IsHangarTile(32119)); print(" IsAirportTile(): " + AIAirport.IsAirportTile(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)); } 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(" GetCargoIncome(0, 0): " + AICargo.GetCargoIncome(0, 0, i)); print(" GetCargoIncome(10, 10): " + AICargo.GetCargoIncome(10, 10, i)); print(" GetCargoIncome(100, 10): " + AICargo.GetCargoIncome(100, 10, i)); print(" GetCargoIncome(10, 100): " + AICargo.GetCargoIncome(10, 100, i)); } } function Regression::Company() { print(""); print("--Company--"); /* Test AIXXXMode() in scopes */ { local test = AITestMode(); print(" SetCompanyName(): " + AICompany.SetCompanyName("Regression")); print(" SetCompanyName(): " + AICompany.SetCompanyName("Regression")); { local exec = AIExecMode(); print(" SetCompanyName(): " + AICompany.SetCompanyName("Regression")); print(" SetCompanyName(): " + AICompany.SetCompanyName("Regression")); } } print(" GetCompanyName(): " + AICompany.GetCompanyName(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(" GetCompanyName(): " + AICompany.GetCompanyName(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(" 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()); } 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(" 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(" GetName(): " + AIEngine.GetName(i)); print(" GetVehicleType(): " + AIEngine.GetVehicleType(i)); } print(" Valid Engines: " + j); } function Regression::EngineList() { local list = AIEngineList(AIVehicle.VEHICLE_ROAD); print(""); print("--EngineList--"); print(" Count(): " + list.Count()); list.Valuate(AIEngineList_vCargoType()); print(" CargoType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIEngineList_vCapacity()); print(" Capacity ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIEngineList_vReliability()); print(" Reliability ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIEngineList_vMaxSpeed()); print(" MaxSpeed ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIEngineList_vPrice()); print(" Price ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::Event() { print(""); print("--Event--"); AIEventController.Test(); local e = AIEventController.GetNextEvent(); print(" GetNextEvent: " + (e == null ? "null" : "instance")); print(" GetEventType: " + e.GetEventType()); local c = AIEventTest.Convert(e); print(" Convert: " + (c == null ? "null" : "instance")); print(" GetTest: " + c.GetTest()); print(" DisableEvent(1): done"); AIEventController.DisableEvent(1); AIEventController.Test(); e = AIEventController.GetNextEvent(); print(" GetNextEvent: " + (e == null ? "null" : "instance")); print(" EnableEvent(1): done"); AIEventController.EnableEvent(1); AIEventController.Test(); e = AIEventController.GetNextEvent(); print(" GetNextEvent: " + (e == null ? "null" : "instance")); { print(" DisableAllEvents():done"); AIEventController.DisableAllEvents(); AIEventController.Test(); e = AIEventController.GetNextEvent(); print(" GetNextEvent: " + (e == null ? "null" : "instance")); } print(" EnableEvent(1): done"); AIEventController.EnableEvent(1); AIEventController.Test(); e = AIEventController.GetNextEvent(); print(" GetNextEvent: " + (e == null ? "null" : "instance")); e = AIEventController.GetNextEvent(); print(" GetNextEvent: " + (e == null ? "null" : "instance")); } 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)); } print(" Valid Industries: " + j); print(" GetIndustryCount(): " + AIIndustry.GetIndustryCount()); } function Regression::IndustryList() { local list = AIIndustryList(); print(""); print("--IndustryList--"); print(" Count(): " + list.Count()); list.Valuate(AIIndustryList_vLocation()); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustryList_vDistanceManhattanToTile(30000)); print(" DistanceManhattanToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustryList_vDistanceSquareToTile(30000)); print(" DistanceSquareToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustryList_vCargoAccepted(1)); print(" CargoAccepted(1) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIIndustryList_vProduction(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(AIIndustryList_vLocation()); 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(AIIndustryList_vLocation()); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } 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(AIList_vRandomize()); 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)); } 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() - 1)); print(" DemolishTile(): " + AIMap.DemolishTile(19592)); print(" DemolishTile(): " + AIMap.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)); print(" BuildBuoy(): " + AIMarine.BuildBuoy(28481)); print(" BuildLock(): " + AIMarine.BuildLock(28487)); print(" BuildCanal(): " + AIMarine.BuildCanal(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(" 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)); } function Regression::Order() { print(""); print("--Order--"); print(" GetNumberOfOrders(): " + AIOrder.GetNumberOfOrders(11)); print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(11, 1)); print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER)); print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(11, 1)); print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(11, 1)); print(" AppendOrder(): " + AIOrder.AppendOrder(11, 33416, AIOrder.AIOF_TRANSFER)); print(" InsertOrder(): " + AIOrder.InsertOrder(11, 0, 33416, AIOrder.AIOF_TRANSFER)); print(" GetNumberOfOrders(): " + AIOrder.GetNumberOfOrders(11)); print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(11, 1)); print(" RemoveOrder(): " + AIOrder.RemoveOrder(11, 0)); print(" ChangeOrder(): " + AIOrder.ChangeOrder(11, 0, AIOrder.AIOF_FULL_LOAD)); print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(11, 0)); print(" CopyOrders(): " + AIOrder.CopyOrders(11, 1)); print(" CopyOrders(): " + AIOrder.CopyOrders(12, 11)); print(" ShareOrders(): " + AIOrder.ShareOrders(12, 1)); print(" ShareOrders(): " + AIOrder.ShareOrders(12, 11)); print(" UnshareOrders(): " + AIOrder.UnshareOrders(12)); print(" AppendOrder(): " + AIOrder.AppendOrder(11, 33421, AIOrder.AIOF_NONE)); local list = AIStationList_Vehicle(11); print(""); print("--StationList_Vehicle--"); print(" Count(): " + list.Count()); list.Valuate(AIStationList_vLocation()); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStationList_vCargoWaiting(0)); print(" CargoWaiting(0) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStationList_vCargoWaiting(1)); print(" CargoWaiting(1) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStationList_vCargoRating(1)); print(" CargoRating(1) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStationList_vDistanceManhattanToTile(30000)); print(" DistanceManhattanToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStationList_vDistanceSquareToTile(30000)); print(" DistanceSquareToTile(30000) 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(AIVehicleList_vLocation()); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::PathFinder() { local pf = AIPathFinderStupid(AIPathFinder.PATHFINDER_ROAD); local start = AITileList(); local end = AITileList(); start.AddTile(33421); end.AddTile(33480 + 256 * 10); print(""); print("--PathFinderStupid--"); local ret = pf.FindRoute(start, end); print(" FindRoute(): " + (ret ? "Route Array" : "Nil")); print(" BuildRoute(): " + pf.BuildRoute(ret)); pf.FreeRoute(ret); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33425)); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33480 + 256 * 5)); } 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(" BuildRoad(): " + AIRoad.BuildRoad(33411, 33414)); print(" AreRoadTilesConnected(): " + AIRoad.AreRoadTilesConnected(33412, 33413)); print(" IsRoadTile(): " + AIRoad.IsRoadTile(33411)); print(" GetNeighbourRoadCount(): " + AIRoad.GetNeighbourRoadCount(33412)); print(" RemoveRoad(): " + AIRoad.RemoveRoad(33411, 33411)); print(" RemoveRoad(): " + AIRoad.RemoveRoad(33411, 33412)); print(" RemoveRoad(): " + AIRoad.RemoveRoad(19590, 19590)); 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(" IsRoadTile(): " + AIRoad.IsRoadTile(33411)); print(" GetRoadDepotFrontTile(): " + AIRoad.GetRoadDepotFrontTile(33411)); print(" IsRoadDepotTile(): " + AIRoad.IsRoadDepotTile(33411)); print(" IsBuildable(): " + AITile.IsBuildable(33411)); 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)); print(" BuildRoadStation(): " + AIRoad.BuildRoadStation(33411, 33411, false, false)); print(" BuildRoadStation(): " + AIRoad.BuildRoadStation(33411, 33414, false, false)); print(" BuildRoadStation(): " + AIRoad.BuildRoadStation(33411, 33412, false, false)); 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)); print(" BuildRoadStation(truck): " + AIRoad.BuildRoadStation(33421, 33422, true, false)); print(" BuildRoadStation(truck): " + AIRoad.BuildRoadStation(33412, 33413, true, false)); print(" BuildRoadStation(bus): " + AIRoad.BuildRoadStation(33411 + 256, 33411, false, false)); print(" BuildRoadStation(truck): " + AIRoad.BuildRoadStation(33412 + 256, 33412 + 256 + 256, true, false)); print(" BuildRoadStation(bus-drive): " + AIRoad.BuildRoadStation(33413, 33412, false, true)); print(" BuildRoadStation(truck-drive): " + AIRoad.BuildRoadStation(33414, 33413, true, true)); print(" BuildRoadStation(bus-drive): " + AIRoad.BuildRoadStation(33415, 33414, false, true)); print(" BuildRoadStation(truck-drive): " + AIRoad.BuildRoadStation(33416, 33415, 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")); local AISign_id = AISign.BuildSign(33409, "Some other Sign"); print(" BuildSign(33409, 'Some other Sign'): " + AISign_id); print(" RemoveSign(" + AISign_id + "): " + AISign.RemoveSign(AISign_id)); print(""); print(" GetMaxSignID(): " + AISign.GetMaxSignID()); print(" GetSignCount(): " + AISign.GetSignCount()); for (local i = -1; i < AISign.GetMaxSignID() + 1; i++) { if (AISign.IsValidSign(i)) j++; print(" Sign " + i); print(" IsValidSign(): " + AISign.IsValidSign(i)); print(" GetText(): " + AISign.GetText(i)); print(" GetLocation(): " + AISign.GetLocation(i)); } print(" Valid Signs: " + j); print(" GetSignCount(): " + AISign.GetSignCount()); } 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(" 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(" 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)); local list = AIStationList(AIStation.STATION_BUS_STOP + AIStation.STATION_TRUCK_STOP); print(""); print("--StationList--"); print(" Count(): " + list.Count()); list.Valuate(AIStationList_vLocation()); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStationList_vCargoWaiting(0)); print(" CargoWaiting(0) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIStationList_vCargoWaiting(1)); print(" CargoWaiting(1) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::TileList() { local list = AITileList(); print(""); print("--TileList--"); print(" Count(): " + list.Count()); list.AddRectangle(41895 - 256 * 2, 256 * 2 + 41895 + 8); print(" Count(): " + list.Count()); list.Valuate(AITileList_vHeight()); 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(AITileList_vSlope()); 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(AITileList_vBuildable()); list.KeepValue(1); print(" Buildable(): done"); print(" KeepValue(1): done"); print(" Count(): " + list.Count()); list.Valuate(AITileList_vBuildableRectangle(3, 3)); print(" BuildableRectangle(3, 3) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITileList_vDistanceManhattanToTile(30000)); print(" DistanceManhattanToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITileList_vDistanceSquareToTile(30000)); print(" DistanceSquareToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITileList_vCargoAcceptance(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(AITileList_vRoadTile()); 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(AITileList_vNeighbourRoadCount()); 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(AITileList_vWater()); print(" Water(): done"); print(" Count(): " + list.Count()); print(" ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } local list = AITileList_IndustryAccepting(0, 3); print(""); print("--TileList_IndustryAccepting--"); print(" Count(): " + list.Count()); list.Valuate(AITileList_vCargoAcceptance(3, 1, 1, 3)); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } local list = AITileList_IndustryProducing(1, 3); print(""); print("--TileList_IndustryProducing--"); print(" Count(): " + list.Count()); list.Valuate(AITileList_vCargoProduction(7, 1, 1, 3)); 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(" Valid Towns: " + j); print(" GetTownCount(): " + AITown.GetTownCount()); } function Regression::TownList() { local list = AITownList(); print(""); print("--TownList--"); print(" Count(): " + list.Count()); list.Valuate(AITownList_vLocation()); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITownList_vDistanceManhattanToTile(30000)); print(" DistanceManhattanToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITownList_vDistanceSquareToTile(30000)); print(" DistanceSquareToTile(30000) ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AITownList_vPopulation()); 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)); } } function Regression::Vehicle() { local accounting = AIAccounting(); print(""); print("--Vehicle--"); print(" IsValidVehicle(-1): " + AIVehicle.IsValidVehicle(-1)); print(" IsValidVehicle(0): " + AIVehicle.IsValidVehicle(0)); print(" IsValidVehicle(11): " + AIVehicle.IsValidVehicle(11)); print(" ISValidVehicle(9999): " + AIVehicle.IsValidVehicle(9999)); local bank = AICompany.GetBankBalance(AICompany.MY_COMPANY); { local transaction = AITransactionMode(); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(33417, 153)); print(" IsValidVehicle(11): " + AIVehicle.IsValidVehicle(11)); print(" --Transaction--"); print(" GetCosts(): " + transaction.GetCosts()); print(" Execute(): " + transaction.Execute()); print(" IsValidVehicle(11): " + AIVehicle.IsValidVehicle(11)); } print(" CloneVehicle(): " + AIVehicle.CloneVehicle(33417, 11, 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(12): " + AIVehicle.SellVehicle(12)); print(" IsInDepot(): " + AIVehicle.IsInDepot(11)); print(" IsStoppedInDepot(): " + AIVehicle.IsStoppedInDepot(11)); print(" StartStopVehicle(): " + AIVehicle.StartStopVehicle(11)); print(" IsInDepot(): " + AIVehicle.IsInDepot(11)); print(" IsStoppedInDepot(): " + AIVehicle.IsStoppedInDepot(11)); print(" SendVehicleToDepot(): " + AIVehicle.SendVehicleToDepot(11)); print(" IsInDepot(): " + AIVehicle.IsInDepot(11)); print(" IsStoppedInDepot(): " + AIVehicle.IsStoppedInDepot(11)); bank_after = AICompany.GetBankBalance(AICompany.MY_COMPANY); print(" --Accounting--"); print(" GetCosts(): " + accounting.GetCosts()); print(" Should be: " + (bank - bank_after)); print(" GetName(): " + AIVehicle.GetName(11)); print(" SetName(): " + AIVehicle.SetName(11, "MyVehicleName")); print(" GetName(): " + AIVehicle.GetName(11)); print(" CloneVehicle(): " + AIVehicle.CloneVehicle(33417, 11, true)); print(" --VehicleData--"); print(" GetLocation(): " + AIVehicle.GetLocation(11)); print(" GetEngineType(): " + AIVehicle.GetEngineType(11)); print(" GetUnitNumber(): " + AIVehicle.GetUnitNumber(11)); print(" GetAge(): " + AIVehicle.GetAge(11)); print(" GetMaxAge(): " + AIVehicle.GetMaxAge(11)); print(" GetAgeLeft(): " + AIVehicle.GetAgeLeft(11)); print(" GetRunningCost(): " + AIVehicle.GetRunningCost(11)); print(" GetProfitThisYear(): " + AIVehicle.GetProfitThisYear(11)); print(" GetProfitLastYear(): " + AIVehicle.GetProfitLastYear(11)); print(" GetVehicleType(): " + AIVehicle.GetVehicleType(11)); print(" IsInDepot(): " + AIVehicle.IsInDepot(11)); print(" IsStoppedInDepot(): " + AIVehicle.IsStoppedInDepot(11)); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(32119, 219)); print(" IsValidVehicle(13): " + AIVehicle.IsValidVehicle(13)); print(" IsInDepot(13): " + AIVehicle.IsInDepot(13)); print(" IsStoppedInDepot(13): " + AIVehicle.IsStoppedInDepot(13)); print(" IsValidVehicle(14): " + AIVehicle.IsValidVehicle(14)); print(" IsInDepot(14): " + AIVehicle.IsInDepot(14)); print(" IsStoppedInDepot(14): " + AIVehicle.IsStoppedInDepot(14)); print(" BuildVehicle(): " + AIVehicle.BuildVehicle(28479, 204)); print(" IsValidVehicle(15): " + AIVehicle.IsValidVehicle(15)); print(" IsInDepot(15): " + AIVehicle.IsInDepot(15)); print(" IsStoppedInDepot(15): " + AIVehicle.IsStoppedInDepot(15)); local list = AIVehicleList(); print(""); print("--VehicleList--"); print(" Count(): " + list.Count()); list.Valuate(AIVehicleList_vLocation()); print(" Location ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicleList_vEngineType()); print(" EngineType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicleList_vUnitNumber()); print(" UnitNumber ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicleList_vAge()); print(" Age ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicleList_vMaxAge()); print(" MaxAge ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicleList_vAgeLeft()); print(" AgeLeft ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicleList_vProfitThisYear()); print(" ProfitThisYear ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicleList_vProfitLastYear()); print(" ProfitLastYear ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } list.Valuate(AIVehicleList_vVehicleType()); print(" VehicleType ListDump:"); for (local i = list.Begin(); list.HasNext(); i = list.Next()) { print(" " + i + " => " + list.GetValue(i)); } } function Regression::Start() { this.TestInit(); this.Std(); this.Base(); this.List(); this.Airport(); this.Cargo(); this.Company(); this.Engine(); this.EngineList(); this.Event(); this.Industry(); this.IndustryList(); this.Map(); this.Marine(); this.PathFinder(); this.Road(); this.Sign(); this.Station(); this.TileList(); this.Town(); this.TownList(); this.Vehicle(); /* Order has to be after Vehicle */ this.Order(); } function Regression::Stop() { this.stop = true; } class FRegression extends AIFactory { function GetAuthor() { return "OpenTTD Dev Team"; } function GetName() { return "Regression"; } function GetDescription() { return "This runs regression-tests on all commands. On the same map the result should always be the same."; } function GetVersion() { return 1; } function GetDate() { return "2007-03-18"; } function CreateInstance() { return "Regression"; } } /* Only enable this if you want to run the regression test. * The best way to do it is to disable all other AIs, so you are sure thisone * kicks in, and use a pre-made savegame of which you already know the result. * You can compare the output from this AI with the pre-made one, and it should * match. If not, something went wrong. */ iFRegression <-FRegression();