Feature: Contextual actions for vehicles grouped by shared orders (#8425)
This commit is contained in:
@@ -3013,3 +3013,39 @@ uint32 Vehicle::GetDisplayMinPowerToWeight() const
|
||||
if (max_weight == 0) return 0;
|
||||
return GetGroundVehicleCache()->cached_power * 10u / max_weight;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if two vehicle chains have the same list of engines.
|
||||
* @param v1 First vehicle chain.
|
||||
* @param v1 Second vehicle chain.
|
||||
* @return True if same, false if different.
|
||||
*/
|
||||
bool VehiclesHaveSameEngineList(const Vehicle *v1, const Vehicle *v2)
|
||||
{
|
||||
while (true) {
|
||||
if (v1 == nullptr && v2 == nullptr) return true;
|
||||
if (v1 == nullptr || v2 == nullptr) return false;
|
||||
if (v1->GetEngine() != v2->GetEngine()) return false;
|
||||
v1 = v1->GetNextVehicle();
|
||||
v2 = v2->GetNextVehicle();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if two vehicles have the same list of orders.
|
||||
* @param v1 First vehicles.
|
||||
* @param v1 Second vehicles.
|
||||
* @return True if same, false if different.
|
||||
*/
|
||||
bool VehiclesHaveSameOrderList(const Vehicle *v1, const Vehicle *v2)
|
||||
{
|
||||
const Order *o1 = v1->GetFirstOrder();
|
||||
const Order *o2 = v2->GetFirstOrder();
|
||||
while (true) {
|
||||
if (o1 == nullptr && o2 == nullptr) return true;
|
||||
if (o1 == nullptr || o2 == nullptr) return false;
|
||||
if (!o1->Equals(*o2)) return false;
|
||||
o1 = o1->next;
|
||||
o2 = o2->next;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user