Index: bin/ai/regression/regression.nut =================================================================== --- bin/ai/regression/regression.nut (revision 11286) +++ bin/ai/regression/regression.nut (working copy) @@ -825,7 +825,9 @@ bank = company.GetBankBalance(AICompany.MY_COMPANY); print(" SellVehicle(12): " + vehicle.SellVehicle(12)); + print(" VehicleIsInDepot(): " + vehicle.VehicleIsInDepot(11)); print(" StartStopVehicle(): " + vehicle.StartStopVehicle(11)); + print(" VehicleIsInDepot(): " + vehicle.VehicleIsInDepot(11)); print(" SendVehicleToDepot(): " + vehicle.SendVehicleToDepot(11)); bank_after = company.GetBankBalance(AICompany.MY_COMPANY); @@ -849,13 +851,17 @@ print(" GetProfitThisYear(): " + vehicle.GetProfitThisYear(11)); print(" GetProfitLastYear(): " + vehicle.GetProfitLastYear(11)); print(" GetVehicleType(): " + vehicle.GetVehicleType(11)); + print(" VehicleIsInDepot(): " + vehicle.VehicleIsInDepot(11)); print(" BuildVehicle(): " + vehicle.BuildVehicle(32119, 219)); print(" IsValidVehicle(13): " + vehicle.IsValidVehicle(13)); + print(" VehicleIsInDepot(13): " + vehicle.VehicleIsInDepot(13)); print(" IsValidVehicle(14): " + vehicle.IsValidVehicle(14)); + print(" VehicleIsInDepot(14): " + vehicle.VehicleIsInDepot(14)); print(" BuildVehicle(): " + vehicle.BuildVehicle(28479, 204)); print(" IsValidVehicle(15): " + vehicle.IsValidVehicle(15)); + print(" VehicleIsInDepot(15): " + vehicle.VehicleIsInDepot(15)); local list = AIVehicleList(); Index: bin/ai/regression/regression.txt =================================================================== --- bin/ai/regression/regression.txt (revision 11286) +++ bin/ai/regression/regression.txt (working copy) @@ -2532,7 +2532,9 @@ Should be: 11970 ResetCosts(): (null : 0x00000000) SellVehicle(12): true + VehicleIsInDepot(): true StartStopVehicle(): true + VehicleIsInDepot(): false SendVehicleToDepot(): true --Accounting-- GetCosts(): -5985 @@ -2551,11 +2553,15 @@ GetProfitThisYear(): -1 GetProfitLastYear(): 0 GetVehicleType(): 1 + VehicleIsInDepot(): false BuildVehicle(): 13 IsValidVehicle(13): true + VehicleIsInDepot(13): true IsValidVehicle(14): false + VehicleIsInDepot(14): false BuildVehicle(): 15 IsValidVehicle(15): true + VehicleIsInDepot(15): true --VehicleList-- Count(): 4 Index: src/ai/api/ai_vehicle.cpp =================================================================== --- src/ai/api/ai_vehicle.cpp (revision 11286) +++ src/ai/api/ai_vehicle.cpp (working copy) @@ -172,6 +172,12 @@ } } +bool AIVehicle::VehicleIsInDepot(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; Index: src/ai/api/ai_vehicle.hpp =================================================================== --- src/ai/api/ai_vehicle.hpp (revision 11286) +++ src/ai/api/ai_vehicle.hpp (working copy) @@ -146,6 +146,14 @@ */ bool SendVehicleToDepot(VehicleID vehicle_id); + /** + * check whether a vehicle is in a depot & stopped + * @param vehicle_id the vehicle you want to know about + * @pre isValidVehicle(vehicle_id) + * @return true if and only if the vehicle is in a depot AND stopped + **/ + bool VehicleIsInDepot(VehicleID vehicle_id); + /** * Starts or stops the given vehicle depending on the current state. * @param vehicle_id the vehicle to start/stop. Index: src/ai/api/ai_vehicle.hpp.sq =================================================================== --- src/ai/api/ai_vehicle.hpp.sq (revision 11286) +++ src/ai/api/ai_vehicle.hpp.sq (working copy) @@ -46,6 +46,7 @@ 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::VehicleIsInDepot, "VehicleIsInDepot", 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");