From 5bdff85db12f0f0ee3e351b9cfe22069cd29582a Mon Sep 17 00:00:00 2001 From: Duncan Date: Wed, 27 Aug 2014 12:34:47 +0100 Subject: [PATCH] Added window_align_tabs New cross window compatible version. For window_park and window_peep. --- src/window.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/window.c b/src/window.c index da0de66626..8599f34975 100644 --- a/src/window.c +++ b/src/window.c @@ -1495,4 +1495,18 @@ void RCT2_CALLPROC_WE_MOUSE_DOWN(int address, int widgetIndex, rct_window*w, rc " :[address] "+m" (address), [w] "+m" (w), [widget] "+m" (widget), [widgetIndex] "+m" (widgetIndex): : "eax", "esi", "edx", "edi" ); #endif -} \ No newline at end of file +} + +/* Based on rct2: 0x6987ED and another version from window_park */ +void window_align_tabs( rct_window *w, uint8 start_tab_id, uint8 end_tab_id ) + int x = w->widgets[start_tab_id].left; + int tab_width = w->widgets[start_tab_id].right - w->widgets[start_tab_id].left; + + for (int i = start_tab_id; i < end_tab_id; ++i){ + if ( !(w->disabled_widgets & (1LL << i)) ){ + w->widgets[i].left = x; + w->widgets[i].right = x + tab_width; + x += tab_width + 1; + } + } +}