(svn r11289) [NoAI] -Add [FS#1346]: added AIVehicle::Is(Stopped)InDepot() (dihedral)
--- a/bin/ai/regression/regression.nut Tue Oct 16 16:11:33 2007 +0000
+++ b/bin/ai/regression/regression.nut Wed Oct 17 23:45:22 2007 +0000
@@ -825,8 +825,14 @@
bank = company.GetBankBalance(AICompany.MY_COMPANY);
print(" SellVehicle(12): " + vehicle.SellVehicle(12));
+ print(" IsInDepot(): " + vehicle.IsInDepot(11));
+ print(" IsStoppedInDepot(): " + vehicle.IsStoppedInDepot(11));
print(" StartStopVehicle(): " + vehicle.StartStopVehicle(11));
+ print(" IsInDepot(): " + vehicle.IsInDepot(11));
+ print(" IsStoppedInDepot(): " + vehicle.IsStoppedInDepot(11));
print(" SendVehicleToDepot(): " + vehicle.SendVehicleToDepot(11));
+ print(" IsInDepot(): " + vehicle.IsInDepot(11));
+ print(" IsStoppedInDepot(): " + vehicle.IsStoppedInDepot(11));
bank_after = company.GetBankBalance(AICompany.MY_COMPANY);
@@ -849,13 +855,21 @@
print(" GetProfitThisYear(): " + vehicle.GetProfitThisYear(11));
print(" GetProfitLastYear(): " + vehicle.GetProfitLastYear(11));
print(" GetVehicleType(): " + vehicle.GetVehicleType(11));
+ print(" IsInDepot(): " + vehicle.IsInDepot(11));
+ print(" IsStoppedInDepot(): " + vehicle.IsStoppedInDepot(11));
print(" BuildVehicle(): " + vehicle.BuildVehicle(32119, 219));
print(" IsValidVehicle(13): " + vehicle.IsValidVehicle(13));
+ print(" IsInDepot(13): " + vehicle.IsInDepot(13));
+ print(" IsStoppedInDepot(13): " + vehicle.IsStoppedInDepot(13));
print(" IsValidVehicle(14): " + vehicle.IsValidVehicle(14));
+ print(" IsInDepot(14): " + vehicle.IsInDepot(14));
+ print(" IsStoppedInDepot(14): " + vehicle.IsStoppedInDepot(14));
print(" BuildVehicle(): " + vehicle.BuildVehicle(28479, 204));
print(" IsValidVehicle(15): " + vehicle.IsValidVehicle(15));
+ print(" IsInDepot(15): " + vehicle.IsInDepot(15));
+ print(" IsStoppedInDepot(15): " + vehicle.IsStoppedInDepot(15));
local list = AIVehicleList();
--- a/bin/ai/regression/regression.txt Tue Oct 16 16:11:33 2007 +0000
+++ b/bin/ai/regression/regression.txt Wed Oct 17 23:45:22 2007 +0000
@@ -2532,8 +2532,14 @@
Should be: 11970
ResetCosts(): (null : 0x00000000)
SellVehicle(12): true
+ IsInDepot(): true
+ IsStoppedInDepot(): true
StartStopVehicle(): true
+ IsInDepot(): false
+ IsStoppedInDepot(): false
SendVehicleToDepot(): true
+ IsInDepot(): false
+ IsStoppedInDepot(): false
--Accounting--
GetCosts(): -5985
Should be: -5985
@@ -2551,11 +2557,19 @@
GetProfitThisYear(): -1
GetProfitLastYear(): 0
GetVehicleType(): 1
+ IsInDepot(): false
+ IsStoppedInDepot(): false
BuildVehicle(): 13
IsValidVehicle(13): true
+ IsInDepot(13): true
+ IsStoppedInDepot(13): true
IsValidVehicle(14): false
+ IsInDepot(14): false
+ IsStoppedInDepot(14): false
BuildVehicle(): 15
IsValidVehicle(15): true
+ IsInDepot(15): true
+ IsStoppedInDepot(15): true
--VehicleList--
Count(): 4
--- a/src/ai/api/ai_vehicle.cpp Tue Oct 16 16:11:33 2007 +0000
+++ b/src/ai/api/ai_vehicle.cpp Wed Oct 17 23:45:22 2007 +0000
@@ -172,6 +172,18 @@
}
}
+bool AIVehicle::IsInDepot(VehicleID vehicle_id)
+{
+ if (!this->IsValidVehicle(vehicle_id)) return false;
+ return ::GetVehicle(vehicle_id)->IsInDepot();
+}
+
+bool AIVehicle::IsStoppedInDepot(VehicleID vehicle_id)
+{
+ if (!this->IsValidVehicle(vehicle_id)) return false;
+ return ::GetVehicle(vehicle_id)->IsStoppedInDepot();
+}
+
bool AIVehicle::StartStopVehicle(VehicleID vehicle_id)
{
if (!this->IsValidVehicle(vehicle_id)) return false;
--- a/src/ai/api/ai_vehicle.hpp Tue Oct 16 16:11:33 2007 +0000
+++ b/src/ai/api/ai_vehicle.hpp Wed Oct 17 23:45:22 2007 +0000
@@ -147,6 +147,22 @@
bool SendVehicleToDepot(VehicleID vehicle_id);
/**
+ * Check if a vehicle is in a depot.
+ * @param vehicle_id the vehicle to check.
+ * @pre isValidVehicle(vehicle_id).
+ * @return true if and only if the vehicle is in a depot.
+ */
+ bool IsInDepot(VehicleID vehicle_id);
+
+ /**
+ * Check if a vehicle is in a depot and stopped.
+ * @param vehicle_id the vehicle to check.
+ * @pre isValidVehicle(vehicle_id).
+ * @return true if and only if the vehicle is in a depot and stopped.
+ */
+ bool IsStoppedInDepot(VehicleID vehicle_id);
+
+ /**
* Starts or stops the given vehicle depending on the current state.
* @param vehicle_id the vehicle to start/stop.
* @pre IsValidVehicle(vehicle_id).
--- a/src/ai/api/ai_vehicle.hpp.sq Tue Oct 16 16:11:33 2007 +0000
+++ b/src/ai/api/ai_vehicle.hpp.sq Wed Oct 17 23:45:22 2007 +0000
@@ -46,6 +46,8 @@
SQAIVehicle.DefSQMethod(engine, &AIVehicle::RefitVehicle, "RefitVehicle", 3, "xii");
SQAIVehicle.DefSQMethod(engine, &AIVehicle::SellVehicle, "SellVehicle", 2, "xi");
SQAIVehicle.DefSQMethod(engine, &AIVehicle::SendVehicleToDepot, "SendVehicleToDepot", 2, "xi");
+ SQAIVehicle.DefSQMethod(engine, &AIVehicle::IsInDepot, "IsInDepot", 2, "xi");
+ SQAIVehicle.DefSQMethod(engine, &AIVehicle::IsStoppedInDepot, "IsStoppedInDepot", 2, "xi");
SQAIVehicle.DefSQMethod(engine, &AIVehicle::StartStopVehicle, "StartStopVehicle", 2, "xi");
SQAIVehicle.DefSQMethod(engine, &AIVehicle::SkipToVehicleOrder, "SkipToVehicleOrder", 3, "xii");
SQAIVehicle.DefSQMethod(engine, &AIVehicle::SetName, "SetName", 3, "xis");