# HG changeset patch # User truelight # Date 1192664722 0 # Node ID 196a08fbfeb65f75ae337b8c2612a6cc0d07b1f1 # Parent a63a756fd08007d3ff89e70392729db84cdb3ecc (svn r11289) [NoAI] -Add [FS#1346]: added AIVehicle::Is(Stopped)InDepot() (dihedral) diff -r a63a756fd080 -r 196a08fbfeb6 bin/ai/regression/regression.nut --- 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(); diff -r a63a756fd080 -r 196a08fbfeb6 bin/ai/regression/regression.txt --- 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 diff -r a63a756fd080 -r 196a08fbfeb6 src/ai/api/ai_vehicle.cpp --- 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; diff -r a63a756fd080 -r 196a08fbfeb6 src/ai/api/ai_vehicle.hpp --- 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). diff -r a63a756fd080 -r 196a08fbfeb6 src/ai/api/ai_vehicle.hpp.sq --- 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");