diff --git a/graph_gui.c b/graph_gui.c index fde5f50bca..eedeb949d9 100644 --- a/graph_gui.c +++ b/graph_gui.c @@ -224,9 +224,9 @@ static void GraphLegendWndProc(Window *w, WindowEvent *e) switch (e->event) { case WE_CREATE: { - int i; - for (i = 0; w->widget[i + 3].type != WWT_LAST; i++) { - if (!HASBIT(_legend_excludebits, i)) LowerWindowWidget(w, i + 3); + uint i; + for (i = 3; i < w->widget_count; i++) { + if (!HASBIT(_legend_excludebits, i - 3)) LowerWindowWidget(w, i); } break; } @@ -705,9 +705,9 @@ static void CargoPaymentRatesWndProc(Window *w, WindowEvent *e) { switch (e->event) { case WE_CREATE: { - int i; - for (i = 0; w->widget[i + 3].type != WWT_LAST; i++) { - if (!HASBIT(_legend_cargobits, i)) LowerWindowWidget(w, i + 3); + uint i; + for (i = 3; i < w->widget_count; i++) { + if (!HASBIT(_legend_cargobits, i - 3)) LowerWindowWidget(w, i); } break; } diff --git a/main_gui.c b/main_gui.c index 8ecd7c988a..9f6a6042ce 100644 --- a/main_gui.c +++ b/main_gui.c @@ -1303,8 +1303,8 @@ static void ScenEditLandGenWndProc(Window *w, WindowEvent *e) break; case WE_TIMEOUT: { - int i; - for (i = 0; w->widget[i].type != WWT_LAST; i++) { + uint i; + for (i = 0; i < w->widget_count; i++) { if (IsWindowWidgetLowered(w, i)) { RaiseWindowWidget(w, i); InvalidateWidget(w, i); @@ -1848,8 +1848,8 @@ static void MainToolbarWndProc(Window *w, WindowEvent *e) break; case WE_TIMEOUT: { - int i; - for (i = 2; w->widget[i].type != WWT_LAST; i++) { + uint i; + for (i = 2; i < w->widget_count; i++) { if (IsWindowWidgetLowered(w, i)) { RaiseWindowWidget(w, i); InvalidateWidget(w, i); diff --git a/order_gui.c b/order_gui.c index 52061507e0..0232fc49cd 100644 --- a/order_gui.c +++ b/order_gui.c @@ -552,8 +552,8 @@ static void OrdersWndProc(Window *w, WindowEvent *e) case WE_TIMEOUT: { // handle button unclick ourselves... // unclick all buttons except for the 'goto' button (7), which is 'persistent' - int i; - for (i = 0; w->widget[i].type != WWT_LAST; i++) { + uint i; + for (i = 0; i < w->widget_count; i++) { if (IsWindowWidgetLowered(w, i) && i != 7) { RaiseWindowWidget(w, i); InvalidateWidget(w, i); diff --git a/window.c b/window.c index 2b9d10910a..e9ef7f7b73 100644 --- a/window.c +++ b/window.c @@ -66,10 +66,9 @@ void CDECL SetWindowWidgetsLoweredState(Window *w, bool lowered_stat, int widget void RaiseWindowButtons(Window *w) { - const Widget *wi = w->widget; - uint i = 0; + uint i; - for (i = 0; wi->type != WWT_LAST; i++, wi++) { + for (i = 0; i < w->widget_count; i++) { if (IsWindowWidgetLowered(w, i)) { RaiseWindowWidget(w, i); InvalidateWidget(w, i);