(svn r11289) [NoAI] -Add [FS#1346]: added AIVehicle::Is(Stopped)InDepot() (dihedral) noai
authortruelight
Wed, 17 Oct 2007 23:45:22 +0000
branchnoai
changeset 9709 196a08fbfeb6
parent 9708 a63a756fd080
child 9710 ba44f8c1fd52
(svn r11289) [NoAI] -Add [FS#1346]: added AIVehicle::Is(Stopped)InDepot() (dihedral)
bin/ai/regression/regression.nut
bin/ai/regression/regression.txt
src/ai/api/ai_vehicle.cpp
src/ai/api/ai_vehicle.hpp
src/ai/api/ai_vehicle.hpp.sq
--- 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");