Avoid window iterations when no windows of desired class present

This commit is contained in:
Jonathan G Rennison
2023-09-18 19:05:55 +01:00
parent 52e4688851
commit b93503bb21
5 changed files with 19 additions and 1 deletions

View File

@@ -1256,6 +1256,12 @@ void ShowTimetableWindow(const Vehicle *v)
void SetTimetableWindowsDirty(const Vehicle *v, SetTimetableWindowsDirtyFlags flags)
{
if (!(HaveWindowByClass(WC_VEHICLE_TIMETABLE) ||
((flags & STWDF_SCHEDULED_DISPATCH) && HaveWindowByClass(WC_SCHDISPATCH_SLOTS)) ||
((flags & STWDF_ORDERS) && HaveWindowByClass(WC_VEHICLE_ORDERS)))) {
return;
}
v = v->FirstShared();
for (Window *w : Window::Iterate()) {
if (w->window_class == WC_VEHICLE_TIMETABLE ||