From f906391c9d649e7dfab713abaabda0610cbd4853 Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Fri, 10 Jul 2015 01:39:16 +0100 Subject: [PATCH] remove registers from window events and changed to typed signatures --- src/input.c | 12 +- src/interface/window.c | 218 +++--- src/interface/window.h | 182 +---- src/openrct2.c | 6 +- src/windows/about.c | 74 +- src/windows/banner.c | 117 ++- src/windows/changelog.c | 108 +-- src/windows/cheats.c | 286 ++++---- src/windows/clear_scenery.c | 88 +-- src/windows/demolish_ride_prompt.c | 100 ++- src/windows/dropdown.c | 187 +++-- src/windows/editor_bottom_toolbar.c | 100 ++- src/windows/editor_inventions_list.c | 226 +++--- src/windows/editor_main.c | 70 +- src/windows/editor_object_selection.c | 173 ++--- src/windows/editor_objective_options.c | 211 ++---- src/windows/editor_scenario_options.c | 248 +++---- src/windows/error.c | 77 +- src/windows/finances.c | 463 +++++------- src/windows/footpath.c | 119 +--- src/windows/game_bottom_toolbar.c | 105 +-- src/windows/guest.c | 695 ++++++++---------- src/windows/guest_list.c | 121 ++-- src/windows/install_track.c | 105 ++- src/windows/land.c | 92 +-- src/windows/land_rights.c | 90 +-- src/windows/loadsave.c | 207 +++--- src/windows/main.c | 68 +- src/windows/map.c | 205 ++---- src/windows/map_tooltip.c | 66 +- src/windows/mapgen.c | 253 +++---- src/windows/maze_construction.c | 137 ++-- src/windows/music_credits.c | 89 +-- src/windows/new_campaign.c | 84 +-- src/windows/new_ride.c | 108 +-- src/windows/news.c | 111 ++- src/windows/options.c | 110 +-- src/windows/park.c | 643 +++++++---------- src/windows/publisher_credits.c | 89 +-- src/windows/research.c | 163 ++--- src/windows/ride.c | 945 +++++++++---------------- src/windows/ride_construction.c | 117 ++- src/windows/ride_list.c | 122 ++-- src/windows/save_prompt.c | 82 +-- src/windows/scenery.c | 143 ++-- src/windows/shortcut_key_change.c | 83 +-- src/windows/shortcut_keys.c | 115 +-- src/windows/sign.c | 175 ++--- src/windows/staff.c | 337 ++++----- src/windows/staff_fire_prompt.c | 85 +-- src/windows/staff_list.c | 149 ++-- src/windows/text_input.c | 98 ++- src/windows/themes.c | 151 ++-- src/windows/tile_inspector.c | 137 ++-- src/windows/title_command_editor.c | 107 +-- src/windows/title_editor.c | 146 ++-- src/windows/title_exit.c | 79 +-- src/windows/title_logo.c | 68 +- src/windows/title_menu.c | 95 ++- src/windows/title_options.c | 79 +-- src/windows/title_scenarioselect.c | 109 +-- src/windows/tooltip.c | 68 +- src/windows/top_toolbar.c | 126 ++-- src/windows/track_list.c | 133 ++-- src/windows/track_manage.c | 182 ++--- src/windows/track_place.c | 140 ++-- src/windows/viewport.c | 83 +-- src/windows/water.c | 90 +-- 68 files changed, 4260 insertions(+), 6590 deletions(-) diff --git a/src/input.c b/src/input.c index d967cd4002..8ca4c6ee63 100644 --- a/src/input.c +++ b/src/input.c @@ -956,7 +956,7 @@ void process_mouse_over(int x, int y) int widgetId; int cursorId; - int eax, ebx, ecx, edx, esi, edi, ebp; + int ebx, esi, edi, ebp; cursorId = CURSOR_ARROW; RCT2_GLOBAL(0x9A9808, sint16) = -1; @@ -988,7 +988,8 @@ void process_mouse_over(int x, int y) ebx = ebx & 0xFFFFFF00; edi = cursorId; esi = (int)subWindow; - RCT2_CALLFUNC_X(subWindow->event_handlers[WE_UNKNOWN_0E], &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp); + // Not sure what this is for, no windows actually implement a handler + // RCT2_CALLFUNC_X(subWindow->event_handlers[WE_UNKNOWN_0E], &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp); cursorId = edi; if ((ebx & 0xFF) != 0) { @@ -1354,10 +1355,9 @@ void game_handle_keyboard_input() } else { w = window_find_by_class(WC_TEXTINPUT); - if (w != NULL){ - ((void(*)(int, rct_window*))w->event_handlers[WE_TEXT_INPUT])(key, w); - } - else if (!gUsingWidgetTextBox) { + if (w != NULL) { + window_text_input_key(w, key); + } else if (!gUsingWidgetTextBox) { keyboard_shortcut_handle(key); } } diff --git a/src/interface/window.c b/src/interface/window.c index 06ee517216..6f6221de8f 100644 --- a/src/interface/window.c +++ b/src/interface/window.c @@ -31,6 +31,7 @@ #include "viewport.h" #include "../localisation/string_ids.h" #include "../localisation/localisation.h" +#include "../cursors.h" #define RCT2_FIRST_WINDOW (RCT2_ADDRESS(RCT2_ADDRESS_WINDOW_LIST, rct_window)) #define RCT2_LAST_WINDOW (RCT2_GLOBAL(RCT2_ADDRESS_NEW_WINDOW_PTR, rct_window*) - 1) @@ -352,7 +353,7 @@ static void window_all_wheel_input() * @param flags (ch) * @param class (cl) */ -rct_window *window_create(int x, int y, int width, int height, uint32 *event_handlers, rct_windowclass cls, uint16 flags) +rct_window *window_create(int x, int y, int width, int height, rct_window_event_list *event_handlers, rct_windowclass cls, uint16 flags) { rct_window *w; // Check if there are any window slots left @@ -507,7 +508,7 @@ static bool sub_6EA95D(int x, int y, int width, int height) * @param flags (ch) * @param class (cl) */ -rct_window *window_create_auto_pos(int width, int height, uint32 *event_handlers, rct_windowclass cls, uint16 flags) +rct_window *window_create_auto_pos(int width, int height, rct_window_event_list *event_handlers, rct_windowclass cls, uint16 flags) { rct_window *w; int x, y; @@ -629,7 +630,7 @@ foundSpace: return window_create(x, y, width, height, event_handlers, cls, flags); } -rct_window *window_create_centred(int width, int height, uint32 *event_handlers, rct_windowclass cls, uint16 flags) +rct_window *window_create_centred(int width, int height, rct_window_event_list *event_handlers, rct_windowclass cls, uint16 flags) { int x, y; @@ -996,6 +997,8 @@ void window_init_scroll_widgets(rct_window *w) scroll = &w->scrolls[scroll_index]; scroll->flags = 0; + width = 0; + height = 0; window_get_scroll_size(w, scroll_index, &width, &height); scroll->h_left = 0; scroll->h_right = width + 1; @@ -1033,6 +1036,8 @@ void window_update_scroll_widgets(rct_window *w) continue; scroll = &w->scrolls[scrollIndex]; + width = 0; + height = 0; window_get_scroll_size(w, scrollIndex, &width, &height); if (height == 0){ scroll->v_top = 0; @@ -1813,211 +1818,180 @@ void window_guest_list_init_vars_b() RCT2_GLOBAL(0x00F1AF20, uint16) = 0; } -static void window_event_call_address(int address, rct_window *w) +void window_event_close_call(rct_window *w) { - #ifdef _MSC_VER - __asm { - push address - push w - mov esi, w - call[esp + 4] - add esp, 8 - } - #else - __asm__ ( "\ - push %[address]\n\ - mov eax, %[w] \n\ - push eax \n\ - mov esi, %[w] \n\ - call [esp+4] \n\ - add esp, 8 \n\ - " : [address] "+m" (address), [w] "+m" (w) : : "eax", "esi" ); - #endif + if (w->event_handlers->close != NULL) + w->event_handlers->close(w); } -void window_event_close_call(rct_window* w) +void window_event_mouse_up_call(rct_window *w, int widgetIndex) { - window_event_call_address(w->event_handlers[WE_CLOSE], w); + if (w->event_handlers->mouse_up != NULL) + w->event_handlers->mouse_up(w, widgetIndex); } -void window_event_mouse_up_call(rct_window* w, int widgetIndex) +void window_event_resize_call(rct_window *w) { - RCT2_CALLPROC_X(w->event_handlers[WE_MOUSE_UP], 0, 0, 0, widgetIndex, (int)w, (int)&(w->event_handlers[widgetIndex]), 0); -} - -void window_event_resize_call(rct_window* w) -{ - window_event_call_address(w->event_handlers[WE_RESIZE], w); + if (w->event_handlers->resize != NULL) + w->event_handlers->resize(w); } void window_event_mouse_down_call(rct_window *w, int widgetIndex) { - int address = w->event_handlers[WE_MOUSE_DOWN]; - rct_widget *widget = &w->widgets[widgetIndex]; - - #ifdef _MSC_VER - __asm { - push ebp - push address - push widget - push w - push widgetIndex - mov edi, widget - mov edx, widgetIndex - mov esi, w - call[esp + 12] - add esp, 16 - pop ebp - } - #else - __asm__("\ - push ebp \n\ - push %[address]\n\ - mov edi, %[widget] \n\ - mov eax, %[w] \n\ - mov edx, %[widgetIndex] \n\ - push edi \n\ - push eax \n\ - push edx \n\ - mov esi, %[w] \n\ - call [esp+12] \n\ - add esp, 16 \n\ - pop ebp \n\ - " :[address] "+m" (address), [w] "+m" (w), [widget] "+m" (widget), [widgetIndex] "+m" (widgetIndex): : "eax", "esi", "edx", "edi" - ); - #endif + if (w->event_handlers->mouse_down != NULL) + w->event_handlers->mouse_down(widgetIndex, w, &w->widgets[widgetIndex]); } -void window_event_dropdown_call(rct_window* w, int widgetIndex, int dropdownIndex) +void window_event_dropdown_call(rct_window *w, int widgetIndex, int dropdownIndex) { - RCT2_CALLPROC_X(w->event_handlers[WE_DROPDOWN], dropdownIndex, 0, 0, widgetIndex, (int)w, 0, 0); + if (w->event_handlers->dropdown != NULL) + w->event_handlers->dropdown(w, widgetIndex, dropdownIndex); } -void window_event_unknown_05_call(rct_window* w) +void window_event_unknown_05_call(rct_window *w) { - window_event_call_address(w->event_handlers[WE_UNKNOWN_05], w); + if (w->event_handlers->unknown_05 != NULL) + w->event_handlers->unknown_05(w); } void window_event_update_call(rct_window *w) { - window_event_call_address(w->event_handlers[WE_UPDATE], w); + if (w->event_handlers->update != NULL) + w->event_handlers->update(w); } -void window_event_unknown_07_call(rct_window* w) +void window_event_unknown_07_call(rct_window *w) { - window_event_call_address(w->event_handlers[WE_UNKNOWN_07], w); + if (w->event_handlers->unknown_07 != NULL) + w->event_handlers->unknown_07(w); } -void window_event_unknown_08_call(rct_window* w) +void window_event_unknown_08_call(rct_window *w) { - window_event_call_address(w->event_handlers[WE_UNKNOWN_08], w); + if (w->event_handlers->unknown_08 != NULL) + w->event_handlers->unknown_08(w); } -void window_event_tool_update_call(rct_window* w, int widgetIndex, int x, int y) +void window_event_tool_update_call(rct_window *w, int widgetIndex, int x, int y) { - RCT2_CALLPROC_X(w->event_handlers[WE_TOOL_UPDATE], x, y, 0, widgetIndex, (int)w, 0, 0); + if (w->event_handlers->tool_update != NULL) + w->event_handlers->tool_update(w, widgetIndex, x, y); } -void window_event_tool_down_call(rct_window* w, int widgetIndex, int x, int y) +void window_event_tool_down_call(rct_window *w, int widgetIndex, int x, int y) { - RCT2_CALLPROC_X(w->event_handlers[WE_TOOL_DOWN], x, y, 0, widgetIndex, (int)w, 0, 0); + if (w->event_handlers->tool_down != NULL) + w->event_handlers->tool_down(w, widgetIndex, x, y); } -void window_event_tool_drag_call(rct_window* w, int widgetIndex, int x, int y) +void window_event_tool_drag_call(rct_window *w, int widgetIndex, int x, int y) { - RCT2_CALLPROC_X(w->event_handlers[WE_TOOL_DRAG], x, y, 0, widgetIndex, (int)w, 0, 0); + if (w->event_handlers->tool_drag != NULL) + w->event_handlers->tool_drag(w, widgetIndex, x, y); } -void window_event_tool_up_call(rct_window* w, int widgetIndex, int x, int y) +void window_event_tool_up_call(rct_window *w, int widgetIndex, int x, int y) { - RCT2_CALLPROC_X(w->event_handlers[WE_TOOL_UP], x, y, 0, widgetIndex, (int)w, 0, 0); + if (w->event_handlers->tool_up != NULL) + w->event_handlers->tool_up(w, widgetIndex, x, y); } -void window_event_tool_abort_call(rct_window* w, int widgetIndex) +void window_event_tool_abort_call(rct_window *w, int widgetIndex) { - RCT2_CALLPROC_X(w->event_handlers[WE_TOOL_ABORT], 0, 0, 0, widgetIndex, (int)w, 0, 0); + if (w->event_handlers->tool_abort != NULL) + w->event_handlers->tool_abort(w, widgetIndex); } -void window_event_unknown_0E_call(rct_window* w) +void window_event_unknown_0E_call(rct_window *w) { - window_event_call_address(w->event_handlers[WE_UNKNOWN_0E], w); + if (w->event_handlers->unknown_0E != NULL) + w->event_handlers->unknown_0E(w); } -int window_get_scroll_size(rct_window *w, int scrollIndex, int *width, int *height) +void window_get_scroll_size(rct_window *w, int scrollIndex, int *width, int *height) { - rct_widget *widget = window_get_scroll_widget(w, scrollIndex); - int widgetIndex = window_get_widget_index(w, widget); + if (w->event_handlers->get_scroll_size != NULL) { + rct_widget *widget = window_get_scroll_widget(w, scrollIndex); + int widgetIndex = window_get_widget_index(w, widget); - int eax = scrollIndex, ebx = scrollIndex * sizeof(rct_scroll), ecx = 0, edx = 0, esi = (int)w, edi = widgetIndex * sizeof(rct_widget), ebp = 0; - RCT2_CALLFUNC_X(w->event_handlers[WE_SCROLL_GETSIZE], & eax, &ebx, &ecx, &edx, &esi, &edi, &ebp); - *width = ecx; - *height = edx; - return 1; + w->event_handlers->get_scroll_size(w, scrollIndex, width, height); + } } -void window_event_scroll_mousedown_call(rct_window* w, int scrollIndex, int x, int y) +void window_event_scroll_mousedown_call(rct_window *w, int scrollIndex, int x, int y) { - RCT2_CALLPROC_X(w->event_handlers[WE_SCROLL_MOUSEDOWN], scrollIndex, 0, x, y, (int)w, (int)window_get_scroll_widget(w, scrollIndex), 0); + if (w->event_handlers->scroll_mousedown != NULL) + w->event_handlers->scroll_mousedown(w, scrollIndex, x, y); } -void window_event_scroll_mousedrag_call(rct_window* w, int scrollIndex, int x, int y) +void window_event_scroll_mousedrag_call(rct_window *w, int scrollIndex, int x, int y) { - RCT2_CALLPROC_X(w->event_handlers[WE_SCROLL_MOUSEDRAG], scrollIndex, 0, x, y, (int)w, (int)window_get_scroll_widget(w, scrollIndex), 0); + if (w->event_handlers->scroll_mousedrag != NULL) + w->event_handlers->scroll_mousedrag(w, scrollIndex, x, y); } -void window_event_scroll_mouseover_call(rct_window* w, int scrollIndex, int x, int y) +void window_event_scroll_mouseover_call(rct_window *w, int scrollIndex, int x, int y) { - RCT2_CALLPROC_X(w->event_handlers[WE_SCROLL_MOUSEOVER], scrollIndex, 0, x, y, (int)w, (int)window_get_scroll_widget(w, scrollIndex), 0); + if (w->event_handlers->scroll_mouseover != NULL) + w->event_handlers->scroll_mouseover(w, scrollIndex, x, y); } void window_event_textinput_call(rct_window *w, int widgetIndex, char *text) { - RCT2_CALLPROC_X(w->event_handlers[WE_TEXT_INPUT], 0, 0, text != NULL, widgetIndex, (int)w, (int)text, 0); + if (w->event_handlers->text_input != NULL) + w->event_handlers->text_input(w, widgetIndex, text); } -void window_event_unknown_14_call(rct_window* w) +void window_event_unknown_14_call(rct_window *w) { - window_event_call_address(w->event_handlers[WE_UNKNOWN_14], w); + if (w->event_handlers->unknown_14 != NULL) + w->event_handlers->unknown_14(w); } -void window_event_unknown_15_call(rct_window* w, int scrollIndex, int scrollAreaType) +void window_event_unknown_15_call(rct_window *w, int scrollIndex, int scrollAreaType) { - rct_widget *widget = window_get_scroll_widget(w, scrollIndex); - RCT2_CALLPROC_X(w->event_handlers[WE_UNKNOWN_15], scrollIndex * sizeof(rct_scroll), 0, scrollAreaType, scrollIndex, (int)w, (int)widget, 0); + if (w->event_handlers->unknown_15 != NULL) + w->event_handlers->unknown_15(w, scrollIndex, scrollAreaType); } -rct_string_id window_event_tooltip_call(rct_window* w, int widgetIndex) +rct_string_id window_event_tooltip_call(rct_window *w, int widgetIndex) { - int eax = widgetIndex, ebx, ecx, edx, esi = (int)w, edi, ebp; - RCT2_CALLFUNC_X(w->event_handlers[WE_TOOLTIP], &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp); - return eax & 0xFFFF; + rct_string_id result = STR_NONE; + if (w->event_handlers->tooltip != NULL) + w->event_handlers->tooltip(w, widgetIndex, &result); + return result; } -int window_event_cursor_call(rct_window* w, int widgetIndex, int x, int y) +int window_event_cursor_call(rct_window *w, int widgetIndex, int x, int y) { - int eax = widgetIndex, ebx = -1, ecx = x, edx = y, esi = (int)w, edi = (int)&w->widgets[widgetIndex], ebp; - RCT2_CALLFUNC_X(w->event_handlers[WE_CURSOR], &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp); - return ebx; + int cursorId = CURSOR_ARROW; + if (w->event_handlers->cursor != NULL) + w->event_handlers->cursor(w, widgetIndex, x, y, &cursorId); + return cursorId; } -void window_event_moved_call(rct_window* w, int x, int y) +void window_event_moved_call(rct_window *w, int x, int y) { - RCT2_CALLPROC_X(w->event_handlers[WE_MOVED], 0, 0, x, y, (int)w, 0, 0); + if (w->event_handlers->moved != NULL) + w->event_handlers->moved(w, x, y); } -void window_event_invalidate_call(rct_window* w) +void window_event_invalidate_call(rct_window *w) { - RCT2_CALLPROC_X(w->event_handlers[WE_INVALIDATE], 0, 0, 0, 0, (int)w, 0, 0); + if (w->event_handlers->invalidate != NULL) + w->event_handlers->invalidate(w); } -void window_event_paint_call(rct_window* w, rct_drawpixelinfo *dpi) +void window_event_paint_call(rct_window *w, rct_drawpixelinfo *dpi) { - RCT2_CALLPROC_X(w->event_handlers[WE_PAINT], 0, 0, 0, 0, (int)w, (int)dpi, 0); + if (w->event_handlers->paint != NULL) + w->event_handlers->paint(w, dpi); } -void window_event_scroll_paint_call(rct_window* w, rct_drawpixelinfo *dpi, int scrollIndex) +void window_event_scroll_paint_call(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - RCT2_CALLPROC_X(w->event_handlers[WE_SCROLL_PAINT], scrollIndex, 0, 0, 0, (int)w, (int)dpi, 0); + if (w->event_handlers->scroll_paint != NULL) + w->event_handlers->scroll_paint(w, dpi, scrollIndex); } /** diff --git a/src/interface/window.h b/src/interface/window.h index 6de725f398..3d20200d32 100644 --- a/src/interface/window.h +++ b/src/interface/window.h @@ -134,6 +134,36 @@ enum{ }; #define VIEWPORT_FOCUS_Y_MASK 0x3FFF +typedef struct { + void (*close)(struct rct_window*); + void (*mouse_up)(struct rct_window*, int); + void (*resize)(struct rct_window*); + void (*mouse_down)(int, struct rct_window*, rct_widget*); + void (*dropdown)(struct rct_window*, int, int); + void (*unknown_05)(struct rct_window*); + void (*update)(struct rct_window*); + void (*unknown_07)(struct rct_window*); + void (*unknown_08)(struct rct_window*); + void (*tool_update)(struct rct_window*, int, int, int); + void (*tool_down)(struct rct_window*, int, int, int); + void (*tool_drag)(struct rct_window*, int, int, int); + void (*tool_up)(struct rct_window*, int, int, int); + void (*tool_abort)(struct rct_window*, int); + void (*unknown_0E)(struct rct_window*); + void (*get_scroll_size)(struct rct_window*, int, int*, int*); + void (*scroll_mousedown)(struct rct_window*, int, int, int); + void (*scroll_mousedrag)(struct rct_window*, int, int, int); + void (*scroll_mouseover)(struct rct_window*, int, int, int); + void (*text_input)(struct rct_window*, int, char*); + void (*unknown_14)(struct rct_window*); + void (*unknown_15)(struct rct_window*, int, int); + void (*tooltip)(struct rct_window*, int, rct_string_id*); + void (*cursor)(struct rct_window*, int, int, int, int*); + void (*moved)(struct rct_window*, int, int); + void (*invalidate)(struct rct_window*); + void (*paint)(struct rct_window*, rct_drawpixelinfo*); + void (*scroll_paint)(struct rct_window*, rct_drawpixelinfo*, int); +} rct_window_event_list; typedef struct{ sint16 campaign_type; @@ -192,7 +222,7 @@ typedef struct { * size: 0x4C0 */ typedef struct rct_window { - uint32* event_handlers; // 0x000 + rct_window_event_list* event_handlers; // 0x000 rct_viewport* viewport; // 0x004 uint64 enabled_widgets; // 0x008 uint64 disabled_widgets; // 0x010 @@ -461,9 +491,9 @@ extern ride_list_item _window_track_list_item; void window_dispatch_update_all(); void window_update_all_viewports(); void window_update_all(); -rct_window *window_create(int x, int y, int width, int height, uint32 *event_handlers, rct_windowclass cls, uint16 flags); -rct_window *window_create_auto_pos(int width, int height, uint32 *event_handlers, rct_windowclass cls, uint16 flags); -rct_window *window_create_centred(int width, int height, uint32 *event_handlers, rct_windowclass cls, uint16 flags); +rct_window *window_create(int x, int y, int width, int height, rct_window_event_list *event_handlers, rct_windowclass cls, uint16 flags); +rct_window *window_create_auto_pos(int width, int height, rct_window_event_list *event_handlers, rct_windowclass cls, uint16 flags); +rct_window *window_create_centred(int width, int height, rct_window_event_list *event_handlers, rct_windowclass cls, uint16 flags); void window_close(rct_window *window); void window_close_by_class(rct_windowclass cls); void window_close_by_number(rct_windowclass cls, rct_windownumber number); @@ -502,6 +532,7 @@ void window_zoom_in(rct_window *w); void window_zoom_out(rct_window *w); void window_show_textinput(rct_window *w, int widgetIndex, uint16 title, uint16 text, int value); +void window_text_input_key(rct_window* w, int key); void window_draw(rct_window *w, int left, int top, int right, int bottom); void window_draw_widgets(rct_window *w, rct_drawpixelinfo *dpi); @@ -631,7 +662,7 @@ void window_event_tool_drag_call(rct_window* w, int widgetIndex, int x, int y); void window_event_tool_up_call(rct_window* w, int widgetIndex, int x, int y); void window_event_tool_abort_call(rct_window* w, int widgetIndex); void window_event_unknown_0E_call(rct_window* w); -int window_get_scroll_size(rct_window *w, int scrollIndex, int *width, int *height); +void window_get_scroll_size(rct_window *w, int scrollIndex, int *width, int *height); void window_event_scroll_mousedown_call(rct_window* w, int scrollIndex, int x, int y); void window_event_scroll_mousedrag_call(rct_window* w, int scrollIndex, int x, int y); void window_event_scroll_mouseover_call(rct_window* w, int scrollIndex, int x, int y); @@ -661,145 +692,4 @@ bool land_tool_is_active(); //Cheat: in-game land ownership editor void toggle_ingame_land_ownership_editor(); -#ifdef _MSC_VER - #define window_get_register(w) \ - __asm mov w, esi - - #define window_widget_get_registers(w, widgetIndex) \ - __asm mov widgetIndex, dx \ - __asm mov w, esi - - #define window_dropdown_get_registers(w, widgetIndex, dropdownIndex) \ - __asm mov dropdownIndex, ax \ - __asm mov widgetIndex, dx \ - __asm mov w, esi - - #define window_text_input_get_registers(w, widgetIndex, result, text) \ - __asm mov widgetIndex, dx \ - __asm mov result, cl \ - __asm mov w, esi \ - __asm mov text, edi - - #define window_scroll_get_registers(w, i) \ - __asm mov i, ax \ - __asm mov w, esi - - #define window_scrollmouse_get_registers(w, i, x, y) \ - __asm mov i, ax \ - __asm mov x, cx \ - __asm mov y, dx \ - __asm mov w, esi - - #define window_tool_get_registers(w, widgetIndex, x, y) \ - __asm mov x, ax \ - __asm mov y, bx \ - __asm mov widgetIndex, dx \ - __asm mov w, esi - - #define window_textinput_get_registers(w, widgetIndex, result, text) \ - __asm mov result, cl \ - __asm mov widgetIndex, dx \ - __asm mov w, esi \ - __asm mov text, edi - - #define window_paint_get_registers(w, dpi) \ - __asm mov w, esi \ - __asm mov dpi, edi - - #define window_scrollpaint_get_registers(w, dpi, i) \ - __asm mov i, ax \ - __asm mov w, esi \ - __asm mov dpi, edi - - #define window_scrollsize_set_registers(width, height) \ - __asm mov ecx, width \ - __asm mov edx, height - - #define window_cursor_get_registers(w, widgetIndex, x, y) \ - __asm mov widgetIndex, ax \ - __asm mov x, cx \ - __asm mov y, dx \ - __asm mov w, esi - - #define window_cursor_set_registers(cursorId) \ - __asm mov ebx, cursorId - - #define window_tooltip_get_registers(w, widgetIndex) \ - __asm mov widgetIndex, ax \ - __asm mov w, esi - - #define window_tooltip_set_registers(value) \ - __asm mov ax, value - -#else - #define window_get_register(w) \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); - - #define window_widget_get_registers(w, widgetIndex) \ - __asm__ ( "mov %["#widgetIndex"], dx " : [widgetIndex] "+m" (widgetIndex) ); \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); - - #define window_dropdown_get_registers(w, widgetIndex, dropdownIndex) \ - __asm__ ( "mov %["#dropdownIndex"], ax " : [dropdownIndex] "+m" (dropdownIndex) ); \ - __asm__ ( "mov %["#widgetIndex"], dx " : [widgetIndex] "+m" (widgetIndex) ); \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); - - #define window_text_input_get_registers(w, widgetIndex, result, text) \ - __asm__ ( "mov %[_cl], cl " : [_cl] "+m" (result) ); \ - __asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) ); \ - __asm__ ( "mov %[w], esi " : [w] "+m" (w) ); \ - __asm__ ( "mov %[text], edi " : [text] "+m" (text) ); - - #define window_scroll_get_registers(w, i) \ - __asm__ ( "mov %["#i"], ax " : [i] "+m" (i) ); \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); - - #define window_scrollmouse_get_registers(w, i, x, y) \ - __asm__ ( "mov %["#i"], ax " : [i] "+m" (i) ); \ - __asm__ ( "mov %["#x"], cx " : [x] "+m" (x) ); \ - __asm__ ( "mov %["#y"], dx " : [y] "+m" (y) ); \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); - - #define window_tool_get_registers(w, widgetIndex, x, y) \ - __asm__ ( "mov %["#x"], ax " : [x] "+m" (x) ); \ - __asm__ ( "mov %["#y"], bx " : [y] "+m" (y) ); \ - __asm__ ( "mov %["#widgetIndex"], dx " : [widgetIndex] "+m" (widgetIndex) ); \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); - - #define window_textinput_get_registers(w, widgetIndex, result, text) \ - __asm__ ( "mov %[result], cl " : [result] "+m" (result) ); \ - __asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) ); \ - __asm__ ( "mov %[w], esi " : [w] "+m" (w) ); \ - __asm__ ( "mov %[text], edi " : [text] "+m" (text) ); - - #define window_paint_get_registers(w, dpi) \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); \ - __asm__ ( "mov %["#dpi"], edi " : [dpi] "+m" (dpi) ); - - #define window_scrollpaint_get_registers(w, dpi, i) \ - __asm__ ( "mov %["#i"], ax " : [i] "+m" (i) ); \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); \ - __asm__ ( "mov %["#dpi"], edi " : [dpi] "+m" (dpi) ); - - #define window_scrollsize_set_registers(width, height) \ - __asm__ ( "mov ecx, %[width] " : [width] "+m" (width) ); \ - __asm__ ( "mov edx, %[height] " : [height] "+m" (height) ); - - #define window_cursor_get_registers(w, widgetIndex, x, y) \ - __asm__ ( "mov %["#widgetIndex"], ax " : [widgetIndex] "+m" (widgetIndex) ); \ - __asm__ ( "mov %["#x"], cx " : [x] "+m" (x) ); \ - __asm__ ( "mov %["#y"], dx " : [y] "+m" (y) ); \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); - - #define window_cursor_set_registers(cursorId) \ - __asm__ ( "mov ebx, %[cursorId] " : [cursorId] "+m" (cursorId) ); - - #define window_tooltip_get_registers(w, widgetIndex) \ - __asm__ ( "mov %["#widgetIndex"], ax " : [widgetIndex] "+m" (widgetIndex) ); \ - __asm__ ( "mov %["#w"], esi " : [w] "+m" (w) ); - - #define window_tooltip_set_registers(value) \ - __asm__ ( "mov ax, %["#value"] " : [value] "+m" (value) ); -#endif - #endif diff --git a/src/openrct2.c b/src/openrct2.c index 76cf444a9a..9d491bfcef 100644 --- a/src/openrct2.c +++ b/src/openrct2.c @@ -186,13 +186,15 @@ bool openrct2_initialise() title_sequences_set_default(); title_sequences_load_presets(); + // Hooks to allow RCT2 to call OpenRCT2 functions instead + addhook(0x006E732D, (int)gfx_set_dirty_blocks, 0, (int[]){ EAX, EBX, EDX, EBP, END }, 0); // remove after all drawing is decompiled + addhook(0x006E7499, (int)gfx_redraw_screen_rect, 0, (int[]){ EAX, EBX, EDX, EBP, END }, 0); // remove when 0x6E7FF3 is decompiled + if (!rct2_init()) return false; openrct2_copy_original_user_files_over(); - addhook(0x006E732D, (int)gfx_set_dirty_blocks, 0, (int[]){EAX, EBX, EDX, EBP, END}, 0); // remove after all drawing is decompiled - Mixer_Init(NULL); return true; } diff --git a/src/windows/about.c b/src/windows/about.c index 9cc7045cd9..c0c18c75dc 100644 --- a/src/windows/about.c +++ b/src/windows/about.c @@ -42,39 +42,38 @@ rct_widget window_about_widgets[] = { { WIDGETS_END }, }; -static void window_about_emptysub() { } -static void window_about_mouseup(); -static void window_about_paint(); +static void window_about_mouseup(rct_window *w, int widgetIndex); +static void window_about_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_about_events[] = { - window_about_emptysub, +static rct_window_event_list window_about_events = { + NULL, window_about_mouseup, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, - window_about_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_about_paint, - window_about_emptysub + NULL }; /** @@ -93,7 +92,7 @@ void window_about_open() window = window_create_centred( 400, 330, - (uint32*)window_about_events, + &window_about_events, WC_ABOUT, 0 ); @@ -110,13 +109,8 @@ void window_about_open() * * rct2: 0x0066D4D5 */ -static void window_about_mouseup() +static void window_about_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -134,13 +128,9 @@ static void window_about_mouseup() * * rct2: 0x0066D321 */ -static void window_about_paint() +static void window_about_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); window_draw_widgets(w, dpi); diff --git a/src/windows/banner.c b/src/windows/banner.c index b33b94fcdb..6116d0ac0c 100644 --- a/src/windows/banner.c +++ b/src/windows/banner.c @@ -63,44 +63,43 @@ rct_widget window_banner_widgets[] = { { WIDGETS_END }, }; -static void window_banner_emptysub() { } -static void window_banner_mouseup(); +static void window_banner_mouseup(rct_window *w, int widgetIndex); static void window_banner_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_banner_dropdown(); -static void window_banner_textinput(); -static void window_banner_invalidate(); -static void window_banner_paint(); -static void window_banner_unknown_14(); +static void window_banner_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); +static void window_banner_textinput(rct_window *w, int widgetIndex, char *text); +static void window_banner_unknown_14(rct_window *w); +static void window_banner_invalidate(rct_window *w); +static void window_banner_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_banner_events[] = { - window_banner_emptysub, +static rct_window_event_list window_banner_events = { + NULL, window_banner_mouseup, - window_banner_emptysub, + NULL, window_banner_mousedown, window_banner_dropdown, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_banner_textinput, window_banner_unknown_14, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, - window_banner_emptysub, + NULL, + NULL, + NULL, + NULL, window_banner_invalidate, - window_banner_paint, - window_banner_emptysub + window_banner_paint, + NULL }; /** @@ -118,7 +117,7 @@ void window_banner_open(rct_windownumber number) if (w != NULL) return; - w = window_create_auto_pos(WW, WH, (uint32*)window_banner_events, WC_BANNER, WF_2); + w = window_create_auto_pos(WW, WH, &window_banner_events, WC_BANNER, WF_2); w->widgets = window_banner_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | @@ -174,13 +173,8 @@ void window_banner_open(rct_windownumber number) } /* rct2: 0x6ba4d6*/ -static void window_banner_mouseup() +static void window_banner_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - rct_banner* banner = &gBanners[w->number]; int x = banner->x << 5; int y = banner->y << 5; @@ -251,26 +245,25 @@ static void window_banner_mousedown(int widgetIndex, rct_window*w, rct_widget* w } /* rct2: 0x6ba517 */ -static void window_banner_dropdown() -{ - short widgetIndex, dropdownIndex; - rct_window* w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - +static void window_banner_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) +{ rct_banner* banner = &gBanners[w->number]; switch(widgetIndex){ case WIDX_MAIN_COLOR: - if ( dropdownIndex == 0xFFFF) return; + if (dropdownIndex == -1) + break; + banner->colour = (uint8)dropdownIndex; window_invalidate(w); break; case WIDX_TEXT_COLOR_DROPDOWN_BUTTON: - if ( dropdownIndex == 0xFFFF) return; + if (dropdownIndex == -1) + break; + banner->text_colour = dropdownIndex + 1; - //Can be replaced with a buffer 34 chars wide ( 32 character + 1 colour_format + 1 '\0') + // Can be replaced with a buffer 34 chars wide ( 32 character + 1 colour_format + 1 '\0') uint8* text_buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, uint8); format_string(text_buffer, banner->string_idx, 0); @@ -298,18 +291,9 @@ static void window_banner_dropdown() } /* rct2: 0x6ba50c */ -static void window_banner_textinput() +static void window_banner_textinput(rct_window *w, int widgetIndex, char *text) { - short widgetIndex; - rct_window *w; - uint8 result; - uint8* text; - - window_text_input_get_registers(w, widgetIndex, result, text); - - - if (widgetIndex == WIDX_BANNER_TEXT && result) { - + if (widgetIndex == WIDX_BANNER_TEXT && text != NULL) { rct_banner* banner = &gBanners[w->number]; uint8* text_buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, uint8); @@ -330,11 +314,8 @@ static void window_banner_textinput() } /* rct2: 0x006BA44D */ -static void window_banner_invalidate() +static void window_banner_invalidate(rct_window *w) { - rct_window* w; - - window_get_register(w); colour_scheme_update(w); rct_banner* banner = &gBanners[w->number]; @@ -367,13 +348,8 @@ static void window_banner_invalidate() } /* rct2:0x006BA4C5 */ -static void window_banner_paint() +static void window_banner_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); // Draw viewport @@ -383,11 +359,8 @@ static void window_banner_paint() } /* rct2: 0x6BA7B5 */ -static void window_banner_unknown_14() +static void window_banner_unknown_14(rct_window *w) { - rct_window* w; - window_get_register(w); - rct_viewport* view = w->viewport; w->viewport = 0; diff --git a/src/windows/changelog.c b/src/windows/changelog.c index 1faa85ba46..a10d57fffd 100644 --- a/src/windows/changelog.c +++ b/src/windows/changelog.c @@ -32,41 +32,40 @@ rct_widget window_changelog_widgets[] = { { WIDGETS_END }, }; -static void window_changelog_emptysub() { } -static void window_changelog_close(); -static void window_changelog_mouseup(); -static void window_changelog_resize(); -static void window_changelog_scrollgetsize(); -static void window_changelog_invalidate(); -static void window_changelog_paint(); -static void window_changelog_scrollpaint(); +static void window_changelog_close(rct_window *w); +static void window_changelog_mouseup(rct_window *w, int widgetIndex); +static void window_changelog_resize(rct_window *w); +static void window_changelog_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_changelog_invalidate(rct_window *w); +static void window_changelog_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_changelog_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_changelog_events[] = { +static rct_window_event_list window_changelog_events = { window_changelog_close, window_changelog_mouseup, window_changelog_resize, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_changelog_scrollgetsize, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, - window_changelog_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_changelog_invalidate, window_changelog_paint, window_changelog_scrollpaint @@ -98,7 +97,7 @@ rct_window *window_changelog_open() window = window_create_centred( screenWidth * 4 / 5, screenHeight * 4 / 5, - (uint32*)window_changelog_events, + &window_changelog_events, WC_CHANGELOG, WF_RESIZABLE ); @@ -116,18 +115,13 @@ rct_window *window_changelog_open() return window; } -static void window_changelog_close() +static void window_changelog_close(rct_window *w) { window_changelog_dispose_file(); } -static void window_changelog_mouseup() +static void window_changelog_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -135,12 +129,8 @@ static void window_changelog_mouseup() } } -static void window_changelog_resize() +static void window_changelog_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - int screenWidth = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16); int screenHeight = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_HEIGHT, uint16); @@ -159,24 +149,14 @@ static void window_changelog_resize() } } -static void window_changelog_scrollgetsize() +static void window_changelog_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; - int width, height; - window_get_register(w); - - width = _changelogLongestLineWidth + 4; - height = _changelogNumLines * 11; - - window_scrollsize_set_registers(width, height); + *width = _changelogLongestLineWidth + 4; + *height = _changelogNumLines * 11; } -static void window_changelog_invalidate() +static void window_changelog_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_changelog_widgets[WIDX_BACKGROUND].right = w->width - 1; window_changelog_widgets[WIDX_BACKGROUND].bottom = w->height - 1; window_changelog_widgets[WIDX_TITLE].right = w->width - 2; @@ -188,23 +168,13 @@ static void window_changelog_invalidate() window_changelog_widgets[WIDX_SCROLL].bottom = w->height - 15; } -static void window_changelog_paint() +static void window_changelog_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } -static void window_changelog_scrollpaint() +static void window_changelog_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - uint16 *currentFontFlags = RCT2_ADDRESS(RCT2_ADDRESS_CURRENT_FONT_FLAGS, uint16); sint16 *currentFontSpriteBase = RCT2_ADDRESS(RCT2_ADDRESS_CURRENT_FONT_SPRITE_BASE, sint16); *currentFontFlags = 0; diff --git a/src/windows/cheats.c b/src/windows/cheats.c index 629058a873..b9f870b85c 100644 --- a/src/windows/cheats.c +++ b/src/windows/cheats.c @@ -267,148 +267,147 @@ static rct_widget *window_cheats_page_widgets[] = { window_cheats_rides_widgets, }; -static void window_cheats_emptysub() { } -static void window_cheats_money_mouseup(); -static void window_cheats_guests_mouseup(); -static void window_cheats_misc_mouseup(); -static void window_cheats_rides_mouseup(); -static void window_cheats_misc_tool_update(); -static void window_cheats_misc_tool_down(); +static void window_cheats_money_mouseup(rct_window *w, int widgetIndex); +static void window_cheats_guests_mouseup(rct_window *w, int widgetIndex); +static void window_cheats_misc_mouseup(rct_window *w, int widgetIndex); +static void window_cheats_rides_mouseup(rct_window *w, int widgetIndex); +static void window_cheats_misc_tool_update(rct_window* w, int widgetIndex, int x, int y); +static void window_cheats_misc_tool_down(rct_window* w, int widgetIndex, int x, int y); static void window_cheats_update(rct_window *w); -static void window_cheats_invalidate(); -static void window_cheats_paint(); +static void window_cheats_invalidate(rct_window *w); +static void window_cheats_paint(rct_window *w, rct_drawpixelinfo *dpi); static void window_cheats_set_page(rct_window *w, int page); -static void* window_cheats_money_events[] = { - window_cheats_emptysub, +static rct_window_event_list window_cheats_money_events = { + NULL, window_cheats_money_mouseup, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, + NULL, + NULL, window_cheats_update, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_cheats_invalidate, window_cheats_paint, - window_cheats_emptysub + NULL }; -static void* window_cheats_guests_events[] = { - window_cheats_emptysub, +static rct_window_event_list window_cheats_guests_events = { + NULL, window_cheats_guests_mouseup, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, + NULL, + NULL, window_cheats_update, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_cheats_invalidate, window_cheats_paint, - window_cheats_emptysub + NULL }; -static void* window_cheats_misc_events[] = { - window_cheats_emptysub, +static rct_window_event_list window_cheats_misc_events = { + NULL, window_cheats_misc_mouseup, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, + NULL, + NULL, window_cheats_update, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, window_cheats_misc_tool_update, window_cheats_misc_tool_down, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_cheats_invalidate, window_cheats_paint, - window_cheats_emptysub + NULL }; -static void* window_cheats_rides_events[] = { - window_cheats_emptysub, +static rct_window_event_list window_cheats_rides_events = { + NULL, window_cheats_rides_mouseup, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, + NULL, + NULL, window_cheats_update, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, - window_cheats_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_cheats_invalidate, window_cheats_paint, - window_cheats_emptysub + NULL }; -static void* window_cheats_page_events[] = { - window_cheats_money_events, - window_cheats_guests_events, - window_cheats_misc_events, - window_cheats_rides_events, +static rct_window_event_list *window_cheats_page_events[] = { + &window_cheats_money_events, + &window_cheats_guests_events, + &window_cheats_misc_events, + &window_cheats_rides_events, }; static uint64 window_cheats_page_enabled_widgets[] = { @@ -762,7 +761,7 @@ void window_cheats_open() if (window != NULL) return; - window = window_create(32, 32, WW, WH, (uint32*)window_cheats_money_events, WC_CHEATS, 0); + window = window_create(32, 32, WW, WH, &window_cheats_money_events, WC_CHEATS, 0); window->widgets = window_cheats_money_widgets; window->enabled_widgets = window_cheats_page_enabled_widgets[0]; window_init_scroll_widgets(window); @@ -770,13 +769,8 @@ void window_cheats_open() park_rating_spinner_value = get_forced_park_rating() >= 0 ? get_forced_park_rating() : 999; } -static void window_cheats_money_mouseup() +static void window_cheats_money_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -796,13 +790,8 @@ static void window_cheats_money_mouseup() } } -static void window_cheats_guests_mouseup() +static void window_cheats_guests_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -885,13 +874,8 @@ static void window_cheats_guests_mouseup() } } -static void window_cheats_misc_mouseup() +static void window_cheats_misc_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -987,13 +971,8 @@ static void window_cheats_misc_mouseup() } } -static void window_cheats_rides_mouseup() +static void window_cheats_rides_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -1067,12 +1046,10 @@ static void window_cheats_update(rct_window *w) } } -static void window_cheats_invalidate() +static void window_cheats_invalidate(rct_window *w) { int i; - rct_window *w; - window_get_register(w); colour_scheme_update(w); rct_widget *widgets = window_cheats_page_widgets[w->page]; @@ -1114,13 +1091,8 @@ static void window_cheats_invalidate() w->widgets[WIDX_TITLE].image = window_cheats_page_titles[w->page]; } -static void window_cheats_paint() +static void window_cheats_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_cheats_draw_tab_images(dpi, w); @@ -1207,15 +1179,10 @@ static void window_cheats_set_page(rct_window *w, int page) window_invalidate(w); } -static void window_cheats_misc_tool_update() +static void window_cheats_misc_tool_update(rct_window* w, int widgetIndex, int x, int y) { - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - - if (widgetIndex != WIDX_ZERO_CLEARANCE) return; + if (widgetIndex != WIDX_ZERO_CLEARANCE) + return; map_invalidate_selection_rect(); @@ -1236,15 +1203,10 @@ static void window_cheats_misc_tool_update() RCT2_GLOBAL(RCT2_ADDRESS_PICKEDUP_PEEP_SPRITE, sint32) = -1; } -static void window_cheats_misc_tool_down() +static void window_cheats_misc_tool_down(rct_window* w, int widgetIndex, int x, int y) { - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - - if (widgetIndex != WIDX_ZERO_CLEARANCE) return; + if (widgetIndex != WIDX_ZERO_CLEARANCE) + return; int dest_x, dest_y; footpath_get_coordinates_from_pos(x, y + 16, &dest_x, &dest_y, NULL, NULL); diff --git a/src/windows/clear_scenery.c b/src/windows/clear_scenery.c index e7b5f1ffec..090ddefda7 100644 --- a/src/windows/clear_scenery.c +++ b/src/windows/clear_scenery.c @@ -55,44 +55,43 @@ rct_widget window_clear_scenery_widgets[] = { static int window_clear_scenery_should_close(); -static void window_clear_scenery_emptysub() { } -static void window_clear_scenery_close(); -static void window_clear_scenery_mouseup(); +static void window_clear_scenery_close(rct_window *w); +static void window_clear_scenery_mouseup(rct_window *w, int widgetIndex); static void window_clear_scenery_update(rct_window *w); -static void window_clear_scenery_invalidate(); -static void window_clear_scenery_paint(); -static void window_clear_scenery_textinput(); +static void window_clear_scenery_invalidate(rct_window *w); +static void window_clear_scenery_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_clear_scenery_textinput(rct_window *w, int widgetIndex, char *text); static void window_clear_scenery_inputsize(rct_window *w); -static void* window_clear_scenery_events[] = { +static rct_window_event_list window_clear_scenery_events = { window_clear_scenery_close, window_clear_scenery_mouseup, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, + NULL, + NULL, + NULL, + NULL, window_clear_scenery_update, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_clear_scenery_textinput, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, - window_clear_scenery_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_clear_scenery_invalidate, window_clear_scenery_paint, - window_clear_scenery_emptysub + NULL }; /** @@ -107,7 +106,7 @@ void window_clear_scenery_open() if (window_find_by_class(WC_CLEAR_SCENERY) != NULL) return; - window = window_create(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 98, 29, 98, 94, (uint32*)window_clear_scenery_events, WC_CLEAR_SCENERY, 0); + window = window_create(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 98, 29, 98, 94, &window_clear_scenery_events, WC_CLEAR_SCENERY, 0); window->widgets = window_clear_scenery_widgets; window->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_INCREMENT) | (1 << WIDX_DECREMENT) | (1 << WIDX_PREVIEW) | (1 << WIDX_SMALL_SCENERY) | (1 << WIDX_LARGE_SCENERY) | (1 << WIDX_FOOTPATH); @@ -125,7 +124,7 @@ void window_clear_scenery_open() * * rct2: 0x006E6B65 */ -static void window_clear_scenery_close() +static void window_clear_scenery_close(rct_window *w) { // If the tool wasn't changed, turn tool off if (!window_clear_scenery_should_close()) @@ -136,13 +135,9 @@ static void window_clear_scenery_close() * * rct2: 0x0068E185 */ -static void window_clear_scenery_mouseup() +static void window_clear_scenery_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; int limit; - short widgetIndex; - - window_widget_get_registers(w, widgetIndex); switch (widgetIndex) { case WIDX_CLOSE: @@ -191,18 +186,12 @@ static void window_clear_scenery_mouseup() } } -static void window_clear_scenery_textinput() +static void window_clear_scenery_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; int size; char* end; - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex != WIDX_PREVIEW || !result) + if (widgetIndex != WIDX_PREVIEW || text == NULL) return; size = strtol(text, &end, 10); @@ -236,11 +225,8 @@ static void window_clear_scenery_update(rct_window *w) * * rct2: 0x0068E115 */ -static void window_clear_scenery_invalidate() +static void window_clear_scenery_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); // Set the preview image button to be pressed down @@ -257,14 +243,10 @@ static void window_clear_scenery_invalidate() * * rct2: 0x0068E130 */ -static void window_clear_scenery_paint() +static void window_clear_scenery_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int x, y; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); // Draw cost amount diff --git a/src/windows/demolish_ride_prompt.c b/src/windows/demolish_ride_prompt.c index 3ad481bc28..2361ee46e1 100644 --- a/src/windows/demolish_ride_prompt.c +++ b/src/windows/demolish_ride_prompt.c @@ -42,60 +42,60 @@ enum WINDOW_RIDE_DEMOLISH_WIDGET_IDX { // 0x009AEBA0 static rct_widget window_ride_demolish_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_DEMOLISH_RIDE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, - { WWT_DROPDOWN_BUTTON, 0, 10, 94, WH - 20, WH - 9, STR_DEMOLISH, STR_NONE }, - { WWT_DROPDOWN_BUTTON, 0, WW - 95, WW - 11, WH - 20, WH - 9, STR_SAVE_PROMPT_CANCEL, STR_NONE }, - { WIDGETS_END } + { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_DEMOLISH_RIDE, STR_WINDOW_TITLE_TIP }, + { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + { WWT_DROPDOWN_BUTTON, 0, 10, 94, WH - 20, WH - 9, STR_DEMOLISH, STR_NONE }, + { WWT_DROPDOWN_BUTTON, 0, WW - 95, WW - 11, WH - 20, WH - 9, STR_SAVE_PROMPT_CANCEL, STR_NONE }, + { WIDGETS_END } }; -static void window_ride_demolish_emptysub(){} -static void window_ride_demolish_mouseup(); -static void window_ride_demolish_invalidate(); -static void window_ride_demolish_paint(); +static void window_ride_demolish_mouseup(rct_window *w, int widgetIndex); +static void window_ride_demolish_invalidate(rct_window *w); +static void window_ride_demolish_paint(rct_window *w, rct_drawpixelinfo *dpi); //0x0098E2E4 -static void* window_ride_demolish_events[] = { - window_ride_demolish_emptysub, +static rct_window_event_list window_ride_demolish_events = { + NULL, window_ride_demolish_mouseup, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, - window_ride_demolish_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_demolish_invalidate, window_ride_demolish_paint, - window_ride_demolish_emptysub + NULL }; /** Based off of rct2: 0x006B486A */ -void window_ride_demolish_prompt_open(int rideIndex){ +void window_ride_demolish_prompt_open(int rideIndex) +{ rct_window *w; w = window_bring_to_front_by_number(WC_DEMOLISH_RIDE_PROMPT, rideIndex); if (w != NULL) return; - w = window_create_centred(WW, WH, (uint32*)window_ride_demolish_events, WC_DEMOLISH_RIDE_PROMPT, WF_TRANSPARENT); + w = window_create_centred(WW, WH, &window_ride_demolish_events, WC_DEMOLISH_RIDE_PROMPT, WF_TRANSPARENT); w->widgets = window_ride_demolish_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_CANCEL) | (1 << WIDX_DEMOLISH); window_init_scroll_widgets(w); @@ -107,13 +107,9 @@ void window_ride_demolish_prompt_open(int rideIndex){ * * rct2: 0x006B4933 */ -static void window_ride_demolish_mouseup(){ - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - - switch (widgetIndex){ +static void window_ride_demolish_mouseup(rct_window *w, int widgetIndex) +{ + switch (widgetIndex) { case WIDX_DEMOLISH: RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_STRING_ID, rct_string_id) = STR_CANT_DEMOLISH_RIDE; game_do_command(0, 1, 0, w->number, GAME_COMMAND_DEMOLISH_RIDE, 0, 0); @@ -121,14 +117,12 @@ static void window_ride_demolish_mouseup(){ case WIDX_CANCEL: case WIDX_CLOSE: window_close(w); + break; } } -static void window_ride_demolish_invalidate() +static void window_ride_demolish_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } @@ -136,12 +130,8 @@ static void window_ride_demolish_invalidate() * * rct2: 0x006B48E5 */ -static void window_ride_demolish_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +static void window_ride_demolish_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); rct_ride* ride = GET_RIDE(w->number); diff --git a/src/windows/dropdown.c b/src/windows/dropdown.c index 6671284dd0..362ac10e7b 100644 --- a/src/windows/dropdown.c +++ b/src/windows/dropdown.c @@ -56,38 +56,37 @@ sint64 gDropdownItemsArgs[64]; uint32 gDropdownItemsChecked; uint32 *gDropdownItemsDisabled = RCT2_ADDRESS(0x009DED34, uint32); -static void window_dropdown_emptysub() { } -static void window_dropdown_paint(); +static void window_dropdown_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_dropdown_events[] = { - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, - window_dropdown_emptysub, +static rct_window_event_list window_dropdown_events = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_dropdown_paint, - window_dropdown_emptysub + NULL }; /** @@ -167,7 +166,7 @@ void window_dropdown_show_text_custom_width(int x, int y, int extray, uint8 colo x, y + extray, window_dropdown_widgets[WIDX_BACKGROUND].right + 1, window_dropdown_widgets[WIDX_BACKGROUND].bottom + 1, - (uint32*)window_dropdown_events, + &window_dropdown_events, WC_DROPDOWN, 0x02 ); @@ -245,7 +244,7 @@ void window_dropdown_show_image(int x, int y, int extray, uint8 colour, uint8 fl x, y + extray, window_dropdown_widgets[WIDX_BACKGROUND].right + 1, window_dropdown_widgets[WIDX_BACKGROUND].bottom + 1, - (uint32*)window_dropdown_events, + &window_dropdown_events, WC_DROPDOWN, WF_STICK_TO_FRONT ); @@ -274,85 +273,79 @@ void window_dropdown_close() window_close_by_class(WC_DROPDOWN); } -static void window_dropdown_paint() +static void window_dropdown_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); + int cell_x, cell_y, l, t, r, b, item, image, colour; window_draw_widgets(w, dpi); _dropdown_highlighted_index = RCT2_GLOBAL(0x009DEBA2, sint16); - { - int i, cell_x, cell_y, l, t, r, b, item, image, colour; - for (i = 0; i < gDropdownNumItems; i++) { - cell_x = i % _dropdown_num_columns; - cell_y = i / _dropdown_num_columns; + for (int i = 0; i < gDropdownNumItems; i++) { + cell_x = i % _dropdown_num_columns; + cell_y = i / _dropdown_num_columns; - if (gDropdownItemsFormat[i] == DROPDOWN_SEPARATOR) { + if (gDropdownItemsFormat[i] == DROPDOWN_SEPARATOR) { + l = w->x + 2 + (cell_x * _dropdown_item_width); + t = w->y + 2 + (cell_y * _dropdown_item_height); + r = l + _dropdown_item_width - 1; + t += (_dropdown_item_height / 2); + b = t; + + if (w->colours[0] & 0x80) { + gfx_fill_rect(dpi, l, t, r, b, (RCT2_ADDRESS(0x009DEDF4, uint8)[w->colours[0]] | 0x02000000) + 1); + gfx_fill_rect(dpi, l, t + 1, r, b + 1, (RCT2_ADDRESS(0x009DEDF4, uint8)[w->colours[0]] | 0x02000000) + 2); + } else { + gfx_fill_rect(dpi, l, t, r, b, + *((char*)(0x00141FC47 + (w->colours[0] * 8)))); + gfx_fill_rect(dpi, l, t + 1, r, b + 1, + *((char*)(0x00141FC4B + (w->colours[0] * 8)))); + } + } else { + // + if (i == _dropdown_highlighted_index) { l = w->x + 2 + (cell_x * _dropdown_item_width); t = w->y + 2 + (cell_y * _dropdown_item_height); r = l + _dropdown_item_width - 1; - t += (_dropdown_item_height / 2); - b = t; + b = t + _dropdown_item_height - 1; + gfx_fill_rect(dpi, l, t, r, b, 0x2000000 | 0x2F); + } - if (w->colours[0] & 0x80) { - gfx_fill_rect(dpi, l, t, r, b, (RCT2_ADDRESS(0x009DEDF4, uint8)[w->colours[0]] | 0x02000000) + 1); - gfx_fill_rect(dpi, l, t + 1, r, b + 1, (RCT2_ADDRESS(0x009DEDF4, uint8)[w->colours[0]] | 0x02000000) + 2); - } else { - gfx_fill_rect(dpi, l, t, r, b, - *((char*)(0x00141FC47 + (w->colours[0] * 8)))); - gfx_fill_rect(dpi, l, t + 1, r, b + 1, - *((char*)(0x00141FC4B + (w->colours[0] * 8)))); - } + item = gDropdownItemsFormat[i]; + if (item == (uint16)-1 || item == (uint16)-2) { + // Image item + image = *((uint32*)&gDropdownItemsArgs[i]); + if (item == (uint16)-2 && _dropdown_highlighted_index == i) + image++; + + gfx_draw_sprite( + dpi, + image, + w->x + 2 + (cell_x * _dropdown_item_width), + w->y + 2 + (cell_y * _dropdown_item_height), 0 + ); } else { - // - if (i == _dropdown_highlighted_index) { - l = w->x + 2 + (cell_x * _dropdown_item_width); - t = w->y + 2 + (cell_y * _dropdown_item_height); - r = l + _dropdown_item_width - 1; - b = t + _dropdown_item_height - 1; - gfx_fill_rect(dpi, l, t, r, b, 0x2000000 | 0x2F); - } + // Text item + if (i < 32) + if (gDropdownItemsChecked & (1 << i)) + item++; - item = gDropdownItemsFormat[i]; - if (item == (uint16)-1 || item == (uint16)-2) { - // Image item - image = *((uint32*)&gDropdownItemsArgs[i]); - if (item == (uint16)-2 && _dropdown_highlighted_index == i) - image++; - - gfx_draw_sprite( - dpi, - image, - w->x + 2 + (cell_x * _dropdown_item_width), - w->y + 2 + (cell_y * _dropdown_item_height), 0 - ); - } else { - // Text item + // Calculate colour + colour = w->colours[0] & 0x7F; + if (i == _dropdown_highlighted_index) + colour = 2; + if (RCT2_GLOBAL(0x009DED34, uint32) & (1 << i)) if (i < 32) - if (gDropdownItemsChecked & (1 << i)) - item++; + colour = (w->colours[0] & 0x7F) | 0x40; - // Calculate colour - colour = w->colours[0] & 0x7F; - if (i == _dropdown_highlighted_index) - colour = 2; - if (RCT2_GLOBAL(0x009DED34, uint32) & (1 << i)) - if (i < 32) - colour = (w->colours[0] & 0x7F) | 0x40; - - // Draw item string - gfx_draw_string_left_clipped( - dpi, - item, - (void*)(&gDropdownItemsArgs[i]), colour, - w->x + 2 + (cell_x * _dropdown_item_width), - w->y + 1 + (cell_y * _dropdown_item_height), - w->width - 5 - ); - } + // Draw item string + gfx_draw_string_left_clipped( + dpi, + item, + (void*)(&gDropdownItemsArgs[i]), colour, + w->x + 2 + (cell_x * _dropdown_item_width), + w->y + 1 + (cell_y * _dropdown_item_height), + w->width - 5 + ); } } } diff --git a/src/windows/editor_bottom_toolbar.c b/src/windows/editor_bottom_toolbar.c index ed530f3469..5a3a4dbe38 100644 --- a/src/windows/editor_bottom_toolbar.c +++ b/src/windows/editor_bottom_toolbar.c @@ -51,11 +51,9 @@ static rct_widget window_editor_bottom_toolbar_widgets[] = { { WIDGETS_END }, }; -static void window_editor_bottom_toolbar_emptysub() { } - -static void window_editor_bottom_toolbar_mouseup(); -static void window_editor_bottom_toolbar_invalidate(); -static void window_editor_bottom_toolbar_paint(); +static void window_editor_bottom_toolbar_mouseup(rct_window *w, int widgetIndex); +static void window_editor_bottom_toolbar_invalidate(rct_window *w); +static void window_editor_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi); static void window_editor_bottom_toolbar_jump_back_to_object_selection(); static void window_editor_bottom_toolbar_jump_back_to_landscape_editor(); @@ -68,57 +66,57 @@ static void window_editor_bottom_toolbar_jump_forward_to_options_selection(); static void window_editor_bottom_toolbar_jump_forward_to_objective_selection(); static void window_editor_bottom_toolbar_jump_forward_to_save_scenario(); -static void* window_editor_bottom_toolbar_events[] = { - window_editor_bottom_toolbar_emptysub, +static rct_window_event_list window_editor_bottom_toolbar_events = { + NULL, window_editor_bottom_toolbar_mouseup, //0x0066f5ae, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_bottom_toolbar_invalidate, //0x0066f1c9, window_editor_bottom_toolbar_paint, //0x0066f25c, - window_editor_bottom_toolbar_emptysub + NULL }; -static EMPTY_ARGS_VOID_POINTER* previous_button_mouseup_events[] = { - window_editor_bottom_toolbar_emptysub, +static EMPTY_ARGS_VOID_POINTER *previous_button_mouseup_events[] = { + NULL, window_editor_bottom_toolbar_jump_back_to_object_selection, window_editor_bottom_toolbar_jump_back_to_landscape_editor, window_editor_bottom_toolbar_jump_back_to_invention_list_set_up, window_editor_bottom_toolbar_jump_back_to_options_selection, - window_editor_bottom_toolbar_emptysub, + NULL, window_editor_bottom_toolbar_jump_back_to_object_selection, - window_editor_bottom_toolbar_emptysub + NULL }; -static EMPTY_ARGS_VOID_POINTER* next_button_mouseup_events[] = { +static EMPTY_ARGS_VOID_POINTER *next_button_mouseup_events[] = { window_editor_bottom_toolbar_jump_forward_from_object_selection, window_editor_bottom_toolbar_jump_forward_to_invention_list_set_up, window_editor_bottom_toolbar_jump_forward_to_options_selection, window_editor_bottom_toolbar_jump_forward_to_objective_selection, window_editor_bottom_toolbar_jump_forward_to_save_scenario, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub, - window_editor_bottom_toolbar_emptysub + NULL, + NULL, + NULL }; /** @@ -131,7 +129,7 @@ void window_editor_bottom_toolbar_open() window = window_create(0, RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_HEIGHT, uint16) - 32, RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16), 32, - (uint32*)window_editor_bottom_toolbar_events, + &window_editor_bottom_toolbar_events, WC_BOTTOM_TOOLBAR, WF_STICK_TO_FRONT | WF_TRANSPARENT | WF_5); window->widgets = window_editor_bottom_toolbar_widgets; @@ -394,13 +392,8 @@ void window_editor_bottom_toolbar_jump_forward_to_save_scenario() * * rct2: 0x0066F5AE */ -static void window_editor_bottom_toolbar_mouseup() +static void window_editor_bottom_toolbar_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_PREVIOUS_STEP_BUTTON) { if ((RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_TRACK_DESIGNER) || RCT2_GLOBAL(0x13573C8, uint16) == 0x2710 && !(RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_18)) { @@ -425,11 +418,8 @@ void hide_next_step_button() { * * rct2: 0x0066F1C9 */ -void window_editor_bottom_toolbar_invalidate() { - rct_window* w; - - window_get_register(w); - +void window_editor_bottom_toolbar_invalidate(rct_window *w) +{ colour_scheme_update_by_class(w, (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_SCENARIO_EDITOR) ? WC_EDITOR_SCENARIO_BOTTOM_TOOLBAR : WC_EDITOR_TRACK_BOTTOM_TOOLBAR); uint16 screenWidth = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16); @@ -463,12 +453,8 @@ void window_editor_bottom_toolbar_invalidate() { * * rct2: 0x0066F25C */ -void window_editor_bottom_toolbar_paint() { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_editor_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ bool drawPreviousButton = false; bool drawNextButton = false; diff --git a/src/windows/editor_inventions_list.c b/src/windows/editor_inventions_list.c index 898e42f2b6..cd5c30fb66 100644 --- a/src/windows/editor_inventions_list.c +++ b/src/windows/editor_inventions_list.c @@ -70,86 +70,84 @@ static rct_widget window_editor_inventions_list_drag_widgets[] = { #pragma region Events -static void window_editor_inventions_list_emptysub() { } - -static void window_editor_inventions_list_close(); -static void window_editor_inventions_list_mouseup(); +static void window_editor_inventions_list_close(rct_window *w); +static void window_editor_inventions_list_mouseup(rct_window *w, int widgetIndex); static void window_editor_inventions_list_update(rct_window *w); -static void window_editor_inventions_list_scrollgetheight(); -static void window_editor_inventions_list_scrollmousedown(); -static void window_editor_inventions_list_scrollmouseover(); -static void window_editor_inventions_list_tooltip(); -static void window_editor_inventions_list_cursor(); -static void window_editor_inventions_list_invalidate(); -static void window_editor_inventions_list_paint(); -static void window_editor_inventions_list_scrollpaint(); +static void window_editor_inventions_list_scrollgetheight(rct_window *w, int scrollIndex, int *width, int *height); +static void window_editor_inventions_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_editor_inventions_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_editor_inventions_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_editor_inventions_list_cursor(rct_window *w, int widgetIndex, int x, int y, int *cursorId); +static void window_editor_inventions_list_invalidate(rct_window *w); +static void window_editor_inventions_list_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_editor_inventions_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void window_editor_inventions_list_drag_cursor(); -static void window_editor_inventions_list_drag_moved(); -static void window_editor_inventions_list_drag_paint(); +static void window_editor_inventions_list_drag_cursor(rct_window *w, int widgetIndex, int x, int y, int *cursorId); +static void window_editor_inventions_list_drag_moved(rct_window* w, int x, int y); +static void window_editor_inventions_list_drag_paint(rct_window *w, rct_drawpixelinfo *dpi); // 0x0098177C -static void* window_editor_inventions_list_events[] = { +static rct_window_event_list window_editor_inventions_list_events = { window_editor_inventions_list_close, window_editor_inventions_list_mouseup, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, + NULL, + NULL, + NULL, + NULL, window_editor_inventions_list_update, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_inventions_list_scrollgetheight, window_editor_inventions_list_scrollmousedown, - window_editor_inventions_list_emptysub, + NULL, window_editor_inventions_list_scrollmouseover, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, + NULL, + NULL, + NULL, window_editor_inventions_list_tooltip, window_editor_inventions_list_cursor, - window_editor_inventions_list_emptysub, + NULL, window_editor_inventions_list_invalidate, window_editor_inventions_list_paint, window_editor_inventions_list_scrollpaint }; // 0x009817EC -static void* window_editor_inventions_list_drag_events[] = { - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, - window_editor_inventions_list_emptysub, +static rct_window_event_list window_editor_inventions_list_drag_events = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_inventions_list_drag_cursor, window_editor_inventions_list_drag_moved, - window_editor_inventions_list_emptysub, + NULL, window_editor_inventions_list_drag_paint, - window_editor_inventions_list_emptysub + NULL }; #pragma endregion @@ -532,7 +530,7 @@ void window_editor_inventions_list_open() w = window_create_centred( 600, 400, - (uint32*)window_editor_inventions_list_events, + &window_editor_inventions_list_events, WC_EDITOR_INVENTION_LIST, WF_2 ); @@ -554,7 +552,7 @@ void window_editor_inventions_list_open() * * rct2: 0x006853D2 */ -static void window_editor_inventions_list_close() +static void window_editor_inventions_list_close(rct_window *w) { sub_685A79(); } @@ -563,13 +561,8 @@ static void window_editor_inventions_list_close() * * rct2: 0x0068521B */ -static void window_editor_inventions_list_mouseup() +static void window_editor_inventions_list_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -615,45 +608,33 @@ static void window_editor_inventions_list_update(rct_window *w) * * rct2: 0x00685239 */ -static void window_editor_inventions_list_scrollgetheight() +static void window_editor_inventions_list_scrollgetheight(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; - short scrollIndex; rct_research_item *researchItem; - int width, height; - window_scroll_get_registers(w, scrollIndex); - - width = 0; - height = 0; + *height = 0; // Count / skip pre-researched items for (researchItem = gResearchItems; researchItem->entryIndex != RESEARCHED_ITEMS_SEPARATOR; researchItem++) - height += 10; + *height += 10; if (scrollIndex == 1) { researchItem++; // Count non pre-researched items - height = 0; + *height = 0; for (; researchItem->entryIndex != RESEARCHED_ITEMS_END; researchItem++) - height += 10; + *height += 10; } - - window_scrollsize_set_registers(width, height); } /** * * rct2: 0x006852D4 */ -static void window_editor_inventions_list_scrollmousedown() +static void window_editor_inventions_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { - rct_window *w; rct_research_item *researchItem; - short scrollIndex, x, y; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); researchItem = window_editor_inventions_list_get_item_from_scroll_y(scrollIndex, y); if (researchItem == NULL) @@ -670,14 +651,10 @@ static void window_editor_inventions_list_scrollmousedown() * * rct2: 0x00685275 */ -static void window_editor_inventions_list_scrollmouseover() +static void window_editor_inventions_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { - rct_window *w; - short scrollIndex, x, y; rct_research_item *researchItem; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - researchItem = window_editor_inventions_list_get_item_from_scroll_y(scrollIndex, y); if (researchItem != WindowHighlightedItem(w)) { WindowHighlightedItem(w) = researchItem; @@ -689,7 +666,7 @@ static void window_editor_inventions_list_scrollmouseover() * * rct2: 0x0068526B */ -static void window_editor_inventions_list_tooltip() +static void window_editor_inventions_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = 3159; } @@ -698,22 +675,19 @@ static void window_editor_inventions_list_tooltip() * * rct2: 0x00685291 */ -static void window_editor_inventions_list_cursor() +static void window_editor_inventions_list_cursor(rct_window *w, int widgetIndex, int x, int y, int *cursorId) { - rct_window *w; rct_research_item *researchItem; - short widgetIndex, x, y; - int scrollIndex, cursorId; + int scrollIndex; - window_cursor_get_registers(w, widgetIndex, x, y); - - if (widgetIndex == WIDX_PRE_RESEARCHED_SCROLL) { + switch (widgetIndex) { + case WIDX_PRE_RESEARCHED_SCROLL: scrollIndex = 0; - } else if (widgetIndex == WIDX_RESEARCH_ORDER_SCROLL) { + break; + case WIDX_RESEARCH_ORDER_SCROLL: scrollIndex = 1; - } else { - cursorId = -1; - window_cursor_set_registers(cursorId); + break; + default: return; } @@ -722,24 +696,18 @@ static void window_editor_inventions_list_cursor() return; if (researchItem->entryIndex < (uint32)RESEARCHED_ITEMS_END_2 && research_item_is_always_researched(researchItem)) { - cursorId = -1; - window_cursor_set_registers(cursorId); return; } - cursorId = CURSOR_HAND_OPEN; - window_cursor_set_registers(cursorId); + *cursorId = CURSOR_HAND_OPEN; } /** * * rct2: 0x00685392 */ -static void window_editor_inventions_list_invalidate() +static void window_editor_inventions_list_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); w->pressed_widgets |= 1 << WIDX_PREVIEW; @@ -753,17 +721,13 @@ static void window_editor_inventions_list_invalidate() * * rct2: 0x00684EE0 */ -static void window_editor_inventions_list_paint() +static void window_editor_inventions_list_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *widget; rct_research_item *researchItem; rct_string_id stringId; int x, y, width; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); // Tab image @@ -833,11 +797,8 @@ static void window_editor_inventions_list_paint() * * rct2: 0x006850BD */ -static void window_editor_inventions_list_scrollpaint() +static void window_editor_inventions_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; - short scrollIndex; uint32 colour; rct_research_item *researchItem; int left, top, bottom, itemY, disableItemMovement; @@ -845,8 +806,6 @@ static void window_editor_inventions_list_scrollpaint() rct_string_id stringId; char buffer[256], *ptr; - window_scrollpaint_get_registers(w, dpi, scrollIndex); - // Draw background colour = RCT2_GLOBAL(0x0141FC48 + (w->colours[1] * 8), uint8); colour = (colour << 24) | (colour << 16) | (colour << 8) | colour; @@ -944,7 +903,7 @@ static void window_editor_inventions_list_drag_open(rct_research_item *researchI RCT2_GLOBAL(RCT2_ADDRESS_TOOLTIP_CURSOR_Y, uint16) - 7, stringWidth, 14, - (uint32*)window_editor_inventions_list_drag_events, + &window_editor_inventions_list_drag_events, WC_EDITOR_INVENTION_LIST_DRAG, WF_STICK_TO_FRONT | WF_TRANSPARENT | WF_NO_SNAPPING ); @@ -959,14 +918,10 @@ static void window_editor_inventions_list_drag_open(rct_research_item *researchI * * rct2: 0x0068549C */ -static void window_editor_inventions_list_drag_cursor() +static void window_editor_inventions_list_drag_cursor(rct_window *w, int widgetIndex, int x, int y, int *cursorId) { - rct_window *w, *inventionListWindow; + rct_window *inventionListWindow; rct_research_item *researchItem; - short widgetIndex, x, y; - int cursorId; - - window_cursor_get_registers(w, widgetIndex, x, y); inventionListWindow = window_find_by_class(WC_EDITOR_INVENTION_LIST); if (inventionListWindow != NULL) { @@ -977,21 +932,16 @@ static void window_editor_inventions_list_drag_cursor() } } - cursorId = CURSOR_HAND_CLOSED; - window_cursor_set_registers(cursorId); + *cursorId = CURSOR_HAND_CLOSED; } /** * * rct2: 0x00685412 */ -static void window_editor_inventions_list_drag_moved() +static void window_editor_inventions_list_drag_moved(rct_window* w, int x, int y) { - rct_window *w; rct_research_item *researchItem; - short x, y, widgetIndex; - - window_cursor_get_registers(w, widgetIndex, x, y); researchItem = get_research_item_at(x, y); if (researchItem != NULL) @@ -1006,15 +956,11 @@ static void window_editor_inventions_list_drag_moved() * * rct2: 0x006853D9 */ -static void window_editor_inventions_list_drag_paint() +static void window_editor_inventions_list_drag_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_string_id stringId; int x, y; - window_paint_get_registers(w, dpi); - x = w->x; y = w->y + 2; stringId = research_item_get_name(_editorInventionsListDraggedItem->entryIndex & 0xFFFFFF); diff --git a/src/windows/editor_main.c b/src/windows/editor_main.c index 8cd6b408e8..dcdd7d1830 100644 --- a/src/windows/editor_main.c +++ b/src/windows/editor_main.c @@ -23,39 +23,37 @@ #include "../interface/widget.h" #include "../interface/window.h" -static void window_editor_main_emptysub() { } +static void window_editor_main_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_editor_main_paint(); - -static void* window_editor_main_events[] = { - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, - window_editor_main_emptysub, +static rct_window_event_list window_editor_main_events = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_main_paint,// 0x0066FC97, //window_editor_main_paint, - window_editor_main_emptysub, + NULL, }; static rct_widget window_editor_main_widgets[] = { @@ -75,7 +73,7 @@ void window_editor_main_open() window_editor_main_widgets[0].right = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16); window_editor_main_widgets[0].bottom = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_HEIGHT, uint16); window = window_create(0, 0, window_editor_main_widgets[0].right, window_editor_main_widgets[0].bottom, - (uint32*)window_editor_main_events, WC_MAIN_WINDOW, WF_STICK_TO_BACK); + &window_editor_main_events, WC_MAIN_WINDOW, WF_STICK_TO_BACK); window->widgets = window_editor_main_widgets; viewport_create(window, window->x, window->y, window->width, window->height, 0, 0x0FFF, 0x0FFF, 0, 0x1, -1); @@ -96,11 +94,7 @@ void window_editor_main_open() * rct2: 0x0066FC97 * This function immediately jumps to 0x00685BE1 */ -static void window_editor_main_paint() { - rct_window* w; - rct_drawpixelinfo* dpi; - - window_paint_get_registers(w, dpi); - +static void window_editor_main_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ viewport_render(dpi, w->viewport, dpi->x, dpi->y, dpi->x + dpi->width, dpi->y + dpi->height); } \ No newline at end of file diff --git a/src/windows/editor_object_selection.c b/src/windows/editor_object_selection.c index a8471aca15..92f2a1499f 100644 --- a/src/windows/editor_object_selection.c +++ b/src/windows/editor_object_selection.c @@ -154,52 +154,50 @@ static rct_widget window_editor_object_selection_widgets[] = { #pragma region Events -static void window_editor_object_selection_emptysub() { } - -static void window_editor_object_selection_close(); -static void window_editor_object_selection_mouseup(); -static void window_editor_object_selection_resize(); +static void window_editor_object_selection_close(rct_window *w); +static void window_editor_object_selection_mouseup(rct_window *w, int widgetIndex); +static void window_editor_object_selection_resize(rct_window *w); static void window_editor_object_selection_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_editor_object_selection_dropdown(); +static void window_editor_object_selection_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_editor_object_selection_update(rct_window *w); -static void window_editor_object_selection_scrollgetsize(); -static void window_editor_object_selection_scroll_mousedown(); -static void window_editor_object_selection_scroll_mouseover(); -static void window_editor_object_selection_tooltip(); -static void window_editor_object_selection_invalidate(); -static void window_editor_object_selection_paint(); -static void window_editor_object_selection_scrollpaint(); -static void window_editor_object_selection_textinput(); +static void window_editor_object_selection_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_editor_object_selection_scroll_mousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_editor_object_selection_scroll_mouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_editor_object_selection_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_editor_object_selection_invalidate(rct_window *w); +static void window_editor_object_selection_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_editor_object_selection_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); +static void window_editor_object_selection_textinput(rct_window *w, int widgetIndex, char *text); -static void* window_editor_object_selection_events[] = { +static rct_window_event_list window_editor_object_selection_events = { window_editor_object_selection_close, - (void*)window_editor_object_selection_mouseup, - (void*)window_editor_object_selection_resize, - (void*)window_editor_object_selection_mousedown, - (void*)window_editor_object_selection_dropdown, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_update, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_scrollgetsize, - (void*)window_editor_object_selection_scroll_mousedown, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_scroll_mouseover, - (void*)window_editor_object_selection_textinput, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_tooltip, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_emptysub, - (void*)window_editor_object_selection_invalidate, - (void*)window_editor_object_selection_paint, - (void*)window_editor_object_selection_scrollpaint + window_editor_object_selection_mouseup, + window_editor_object_selection_resize, + window_editor_object_selection_mousedown, + window_editor_object_selection_dropdown, + NULL, + window_editor_object_selection_update, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_editor_object_selection_scrollgetsize, + window_editor_object_selection_scroll_mousedown, + NULL, + window_editor_object_selection_scroll_mouseover, + window_editor_object_selection_textinput, + NULL, + NULL, + window_editor_object_selection_tooltip, + NULL, + NULL, + window_editor_object_selection_invalidate, + window_editor_object_selection_paint, + window_editor_object_selection_scrollpaint }; #pragma endregion @@ -386,7 +384,7 @@ void window_editor_object_selection_open() window = window_create_centred( 600, 400, - (uint32*)window_editor_object_selection_events, + &window_editor_object_selection_events, WC_EDITOR_OBJECT_SELECTION, WF_10 | WF_RESIZABLE ); @@ -735,11 +733,8 @@ void unload_unselected_objects(){ * * rct2: 0x006AB199 */ -static void window_editor_object_selection_close() +static void window_editor_object_selection_close(rct_window *w) { - rct_window* w; - window_get_register(w); - //if (!(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_EDITOR)) // return; @@ -770,13 +765,8 @@ static void window_editor_object_selection_close() * * rct2: 0x006AAFAB */ -static void window_editor_object_selection_mouseup() +static void window_editor_object_selection_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_EDITOR) { @@ -877,12 +867,8 @@ static void window_editor_object_selection_mouseup() } } -static void window_editor_object_selection_resize() +static void window_editor_object_selection_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 600, 400, 1200, 1000); } @@ -920,16 +906,11 @@ void window_editor_object_selection_mousedown(int widgetIndex, rct_window*w, rct } } -static void window_editor_object_selection_dropdown() +static void window_editor_object_selection_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short dropdownIndex; - short widgetIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (dropdownIndex == -1) return; + switch (widgetIndex) { case WIDX_FILTER_DROPDOWN: _filter_flags ^= (1 << dropdownIndex); @@ -947,31 +928,17 @@ static void window_editor_object_selection_dropdown() * * rct2: 0x006AB031 */ -static void window_editor_object_selection_scrollgetsize() +static void window_editor_object_selection_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; - short scrollIndex; - int width, height; - - window_scroll_get_registers(w, scrollIndex); - - width = 0; - height = _numListItems * 12; - - window_scrollsize_set_registers(width, height); + *height = _numListItems * 12; } /** * * rct2: 0x006AB0B6 */ -static void window_editor_object_selection_scroll_mousedown() +static void window_editor_object_selection_scroll_mousedown(rct_window *w, int scrollIndex, int x, int y) { - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); - // Used for in-game object selection cheat to prevent crashing the game // when windows attempt to draw objects that don't exist any more window_close_all_except_class(WC_EDITOR_OBJECT_SELECTION); @@ -1025,16 +992,12 @@ static void window_editor_object_selection_scroll_mousedown() * * rct2: 0x006AB079 */ -static void window_editor_object_selection_scroll_mouseover() +static void window_editor_object_selection_scroll_mouseover(rct_window *w, int scrollIndex, int x, int y) { - rct_window *w; rct_object_entry *installedEntry; int selectedObject; - short x, y, scrollIndex; uint8 objectSelectionFlags; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - selectedObject = get_object_from_object_selection( w->selected_tab & 0xFF, y, &objectSelectionFlags, &installedEntry ); @@ -1057,13 +1020,8 @@ static void window_editor_object_selection_scroll_mouseover() * * rct2: 0x006AB058 */ -static void window_editor_object_selection_tooltip() +static void window_editor_object_selection_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { - rct_window *w; - short widgetIndex; - - window_scroll_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_TAB_1: case WIDX_TAB_2: @@ -1089,14 +1047,11 @@ static void window_editor_object_selection_tooltip() * * rct2: 0x006AA9FD */ -static void window_editor_object_selection_invalidate() +static void window_editor_object_selection_invalidate(rct_window *w) { int i, x; - rct_window *w; rct_widget *widget; - window_get_register(w); - colour_scheme_update(w); // Resize widgets @@ -1226,19 +1181,15 @@ static void window_editor_object_selection_invalidate() * * rct2: 0x006AAB56 */ -static void window_editor_object_selection_paint() +static void window_editor_object_selection_paint(rct_window *w, rct_drawpixelinfo *dpi) { int i, x, y, width, numSelected, totalSelectable, type; - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *widget; rct_object_entry *highlightedEntry; rct_string_id stringId; uint8 *text, source; char *datName, *name, *stringBuffer; - window_paint_get_registers(w, dpi); - /*if (w->selected_tab == WINDOW_OBJECT_SELECTION_PAGE_RIDE_VEHICLES_ATTRACTIONS) { gfx_fill_rect_inset(dpi, w->x + w->widgets[WIDX_FILTER_RIDE_TAB_ALL].left - 1, @@ -1447,14 +1398,9 @@ static void window_editor_object_selection_paint() * * rct2: 0x006AADA3 */ -static void window_editor_object_selection_scrollpaint() +static void window_editor_object_selection_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int x, y, i, colour, colour2; - short scrollIndex; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_scrollpaint_get_registers(w, dpi, scrollIndex); bool ridePage = (w->selected_tab == WINDOW_OBJECT_SELECTION_PAGE_RIDE_VEHICLES_ATTRACTIONS); @@ -2020,16 +1966,9 @@ static void window_editor_object_selection_update(rct_window *w) } } -static void window_editor_object_selection_textinput() +static void window_editor_object_selection_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; - - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex != WIDX_FILTER_STRING_BUTTON || !result) + if (widgetIndex != WIDX_FILTER_STRING_BUTTON || text == NULL) return; if (strcmp(_filter_string, text) == 0) diff --git a/src/windows/editor_objective_options.c b/src/windows/editor_objective_options.c index 32bf8d52ab..8a6b489875 100644 --- a/src/windows/editor_objective_options.c +++ b/src/windows/editor_objective_options.c @@ -114,94 +114,92 @@ static rct_widget *window_editor_objective_options_widgets[] = { #pragma region Events -static void window_editor_objective_options_emptysub() { } - -static void window_editor_objective_options_main_mouseup(); -static void window_editor_objective_options_main_resize(); +static void window_editor_objective_options_main_mouseup(rct_window *w, int widgetIndex); +static void window_editor_objective_options_main_resize(rct_window *w); static void window_editor_objective_options_main_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_editor_objective_options_main_dropdown(); +static void window_editor_objective_options_main_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_editor_objective_options_main_update(rct_window *w); -static void window_editor_objective_options_main_textinput(); -static void window_editor_objective_options_main_invalidate(); -static void window_editor_objective_options_main_paint(); +static void window_editor_objective_options_main_textinput(rct_window *w, int widgetIndex, char *text); +static void window_editor_objective_options_main_invalidate(rct_window *w); +static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_editor_objective_options_rides_mouseup(); -static void window_editor_objective_options_rides_resize(); +static void window_editor_objective_options_rides_mouseup(rct_window *w, int widgetIndex); +static void window_editor_objective_options_rides_resize(rct_window *w); static void window_editor_objective_options_rides_update(rct_window *w); -static void window_editor_objective_options_rides_scrollgetheight(); -static void window_editor_objective_options_rides_scrollmousedown(); -static void window_editor_objective_options_rides_scrollmouseover(); -static void window_editor_objective_options_rides_invalidate(); -static void window_editor_objective_options_rides_paint(); -static void window_editor_objective_options_rides_scrollpaint(); +static void window_editor_objective_options_rides_scrollgetheight(rct_window *w, int scrollIndex, int *width, int *height); +static void window_editor_objective_options_rides_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_editor_objective_options_rides_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_editor_objective_options_rides_invalidate(rct_window *w); +static void window_editor_objective_options_rides_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_editor_objective_options_rides_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); // 0x009A9DF4 -static void* window_objective_options_main_events[] = { - window_editor_objective_options_emptysub, +static rct_window_event_list window_objective_options_main_events = { + NULL, window_editor_objective_options_main_mouseup, window_editor_objective_options_main_resize, window_editor_objective_options_main_mousedown, window_editor_objective_options_main_dropdown, - window_editor_objective_options_emptysub, + NULL, window_editor_objective_options_main_update, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_objective_options_main_textinput, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_objective_options_main_invalidate, window_editor_objective_options_main_paint, - window_editor_objective_options_emptysub + NULL }; // 0x009A9F58 -static void* window_objective_options_rides_events[] = { - window_editor_objective_options_emptysub, +static rct_window_event_list window_objective_options_rides_events = { + NULL, window_editor_objective_options_rides_mouseup, window_editor_objective_options_rides_resize, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, + NULL, + NULL, + NULL, window_editor_objective_options_rides_update, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_objective_options_rides_scrollgetheight, window_editor_objective_options_rides_scrollmousedown, - window_editor_objective_options_emptysub, + NULL, window_editor_objective_options_rides_scrollmouseover, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, - window_editor_objective_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_objective_options_rides_invalidate, window_editor_objective_options_rides_paint, window_editor_objective_options_rides_scrollpaint }; -static void* window_editor_objective_options_page_events[] = { - window_objective_options_main_events, - window_objective_options_rides_events +static rct_window_event_list *window_editor_objective_options_page_events[] = { + &window_objective_options_main_events, + &window_objective_options_rides_events }; #pragma endregion @@ -260,7 +258,7 @@ void window_editor_objective_options_open() w = window_create_centred( 450, 228, - (uint32*)window_objective_options_main_events, + &window_objective_options_main_events, WC_EDTIOR_OBJECTIVE_OPTIONS, WF_10 ); @@ -395,13 +393,9 @@ static void window_editor_objective_options_set_objective(rct_window *w, int obj * * rct2: 0x006719CA */ -static void window_editor_objective_options_main_mouseup() +static void window_editor_objective_options_main_mouseup(rct_window *w, int widgetIndex) { rct_s6_info *s6Info = (rct_s6_info*)0x00141F570; - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); switch (widgetIndex) { case WIDX_CLOSE: @@ -434,12 +428,8 @@ static void window_editor_objective_options_main_mouseup() * * rct2: 0x00672254 */ -static void window_editor_objective_options_main_resize() +static void window_editor_objective_options_main_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 450, 229, 450, 229); } @@ -719,15 +709,11 @@ static void window_editor_objective_options_main_mousedown(int widgetIndex, rct_ * * rct2: 0x00671A54 */ -static void window_editor_objective_options_main_dropdown() +static void window_editor_objective_options_main_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { rct_s6_info *s6Info = (rct_s6_info*)0x00141F570; - rct_window *w; - short widgetIndex, dropdownIndex; uint8 newObjectiveType; - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (dropdownIndex == -1) return; @@ -792,17 +778,11 @@ static void window_editor_objective_options_main_update(rct_window *w) * * rct2: 0x00671A73 */ -static void window_editor_objective_options_main_textinput() +static void window_editor_objective_options_main_textinput(rct_window *w, int widgetIndex, char *text) { rct_s6_info *s6Info = (rct_s6_info*)0x00141F570; - uint8 result; - short widgetIndex; - rct_window *w; - char *text; - window_textinput_get_registers(w, widgetIndex, result, text); - - if (!result) + if (text == NULL) return; switch (widgetIndex) { @@ -827,13 +807,11 @@ static void window_editor_objective_options_main_textinput() * * rct2: 0x0067161C */ -static void window_editor_objective_options_main_invalidate() +static void window_editor_objective_options_main_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; rct_stex_entry *stex; - window_get_register(w); colour_scheme_update(w); stex = g_stexEntries[0]; @@ -906,18 +884,14 @@ static void window_editor_objective_options_main_invalidate() * * rct2: 0x0067161C */ -static void window_editor_objective_options_main_paint() +static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpixelinfo *dpi) { rct_s6_info *s6Info = (rct_s6_info*)0x00141F570; rct_stex_entry *stex; - rct_window *w; - rct_drawpixelinfo *dpi; int x, y, width; rct_string_id stringId; uint32 arg; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_editor_objective_options_draw_tab_images(w, dpi); @@ -1078,13 +1052,9 @@ static void window_editor_objective_options_main_paint() * * rct2: 0x006724A4 */ -static void window_editor_objective_options_rides_mouseup() +static void window_editor_objective_options_rides_mouseup(rct_window *w, int widgetIndex) { rct_s6_info *s6Info = (rct_s6_info*)0x00141F570; - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); switch (widgetIndex) { case WIDX_CLOSE: @@ -1101,12 +1071,8 @@ static void window_editor_objective_options_rides_mouseup() * * rct2: 0x006725A8 */ -static void window_editor_objective_options_rides_resize() +static void window_editor_objective_options_rides_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 380, 224, 380, 224); } @@ -1142,32 +1108,20 @@ static void window_editor_objective_options_rides_update(rct_window *w) * * rct2: 0x006724BF */ -static void window_editor_objective_options_rides_scrollgetheight() +static void window_editor_objective_options_rides_scrollgetheight(rct_window *w, int scrollIndex, int *width, int *height) { - int width, height; - rct_window *w; - - window_get_register(w); - - width = 0; - height = w->no_list_items * 12; - - window_scrollsize_set_registers(width, height); + *height = w->no_list_items * 12; } /** * * rct2: 0x006724FC */ -static void window_editor_objective_options_rides_scrollmousedown() +static void window_editor_objective_options_rides_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { rct_ride *ride; - rct_window *w; - short x, y, scrollIndex; int i; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - i = y / 12; if (i < 0 || i >= w->no_list_items) return; @@ -1181,14 +1135,10 @@ static void window_editor_objective_options_rides_scrollmousedown() * * rct2: 0x006724CC */ -static void window_editor_objective_options_rides_scrollmouseover() +static void window_editor_objective_options_rides_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { - rct_window *w; - short x, y, scrollIndex; int i; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - i = y / 12; if (i < 0 || i >= w->no_list_items) return; @@ -1203,12 +1153,10 @@ static void window_editor_objective_options_rides_scrollmouseover() * * rct2: 0x006722B5 */ -static void window_editor_objective_options_rides_invalidate() +static void window_editor_objective_options_rides_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_editor_objective_options_widgets[w->page]; @@ -1229,13 +1177,8 @@ static void window_editor_objective_options_rides_invalidate() * * rct2: 0x00672340 */ -static void window_editor_objective_options_rides_paint() +static void window_editor_objective_options_rides_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_editor_objective_options_draw_tab_images(w, dpi); @@ -1246,16 +1189,12 @@ static void window_editor_objective_options_rides_paint() * * rct2: 0x0067236F */ -static void window_editor_objective_options_rides_scrollpaint() +static void window_editor_objective_options_rides_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int i, y, colour; rct_string_id stringId; - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; - window_paint_get_registers(w, dpi); - colour = RCT2_GLOBAL(0x0141FC48 + (w->colours[1] * 8), uint8); gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, colour); diff --git a/src/windows/editor_scenario_options.c b/src/windows/editor_scenario_options.c index f505aca17a..3fc3a95f49 100644 --- a/src/windows/editor_scenario_options.c +++ b/src/windows/editor_scenario_options.c @@ -184,130 +184,128 @@ static rct_widget *window_editor_scenario_options_widgets[] = { #pragma region Events -static void window_editor_scenario_options_emptysub() { } - -static void window_editor_scenario_options_financial_mouseup(); -static void window_editor_scenario_options_financial_resize(); +static void window_editor_scenario_options_financial_mouseup(rct_window *w, int widgetIndex); +static void window_editor_scenario_options_financial_resize(rct_window *w); static void window_editor_scenario_options_financial_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); static void window_editor_scenario_options_financial_update(rct_window *w); -static void window_editor_scenario_options_financial_invalidate(); -static void window_editor_scenario_options_financial_paint(); +static void window_editor_scenario_options_financial_invalidate(rct_window *w); +static void window_editor_scenario_options_financial_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_editor_scenario_options_guests_mouseup(); -static void window_editor_scenario_options_guests_resize(); +static void window_editor_scenario_options_guests_mouseup(rct_window *w, int widgetIndex); +static void window_editor_scenario_options_guests_resize(rct_window *w); static void window_editor_scenario_options_guests_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); static void window_editor_scenario_options_guests_update(rct_window *w); -static void window_editor_scenario_options_guests_invalidate(); -static void window_editor_scenario_options_guests_paint(); +static void window_editor_scenario_options_guests_invalidate(rct_window *w); +static void window_editor_scenario_options_guests_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_editor_scenario_options_park_mouseup(); -static void window_editor_scenario_options_park_resize(); +static void window_editor_scenario_options_park_mouseup(rct_window *w, int widgetIndex); +static void window_editor_scenario_options_park_resize(rct_window *w); static void window_editor_scenario_options_park_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_editor_scenario_options_park_dropdown(); +static void window_editor_scenario_options_park_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_editor_scenario_options_park_update(rct_window *w); -static void window_editor_scenario_options_park_invalidate(); -static void window_editor_scenario_options_park_paint(); +static void window_editor_scenario_options_park_invalidate(rct_window *w); +static void window_editor_scenario_options_park_paint(rct_window *w, rct_drawpixelinfo *dpi); // 0x0097EB60 -static void* window_scenario_options_financial_events[] = { - window_editor_scenario_options_emptysub, +static rct_window_event_list window_scenario_options_financial_events = { + NULL, window_editor_scenario_options_financial_mouseup, window_editor_scenario_options_financial_resize, window_editor_scenario_options_financial_mousedown, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, + NULL, + NULL, window_editor_scenario_options_financial_update, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_scenario_options_financial_invalidate, window_editor_scenario_options_financial_paint, - window_editor_scenario_options_emptysub + NULL }; // 0x0097EBD0 -static void* window_scenario_options_guests_events[] = { - window_editor_scenario_options_emptysub, +static rct_window_event_list window_scenario_options_guests_events = { + NULL, window_editor_scenario_options_guests_mouseup, window_editor_scenario_options_guests_resize, window_editor_scenario_options_guests_mousedown, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, + NULL, + NULL, window_editor_scenario_options_guests_update, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_scenario_options_guests_invalidate, window_editor_scenario_options_guests_paint, - window_editor_scenario_options_emptysub + NULL }; // 0x0097EC40 -static void* window_scenario_options_park_events[] = { - window_editor_scenario_options_emptysub, +static rct_window_event_list window_scenario_options_park_events = { + NULL, window_editor_scenario_options_park_mouseup, window_editor_scenario_options_park_resize, window_editor_scenario_options_park_mousedown, window_editor_scenario_options_park_dropdown, - window_editor_scenario_options_emptysub, + NULL, window_editor_scenario_options_park_update, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, - window_editor_scenario_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_editor_scenario_options_park_invalidate, window_editor_scenario_options_park_paint, - window_editor_scenario_options_emptysub + NULL }; -static void* window_editor_scenario_options_page_events[] = { - window_scenario_options_financial_events, - window_scenario_options_guests_events, - window_scenario_options_park_events +static rct_window_event_list *window_editor_scenario_options_page_events[] = { + &window_scenario_options_financial_events, + &window_scenario_options_guests_events, + &window_scenario_options_park_events }; #pragma endregion @@ -434,13 +432,8 @@ static void window_editor_scenario_options_set_page(rct_window *w, int page) * * rct2: 0x0067049D */ -static void window_editor_scenario_options_financial_mouseup() +static void window_editor_scenario_options_financial_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -476,12 +469,8 @@ static void window_editor_scenario_options_financial_mouseup() * * rct2: 0x0067077A */ -static void window_editor_scenario_options_financial_resize() +static void window_editor_scenario_options_financial_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 280, 149, 280, 149); } @@ -587,13 +576,11 @@ static void window_editor_scenario_options_financial_update(rct_window *w) * * rct2: 0x006701CF */ -static void window_editor_scenario_options_financial_invalidate() +static void window_editor_scenario_options_financial_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; int i; - window_get_register(w); colour_scheme_update(w); widgets = window_editor_scenario_options_widgets[w->page]; @@ -640,14 +627,10 @@ static void window_editor_scenario_options_financial_invalidate() * * rct2: 0x00670338 */ -static void window_editor_scenario_options_financial_paint() +static void window_editor_scenario_options_financial_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int x, y; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_editor_scenario_options_draw_tab_images(w, dpi); @@ -700,13 +683,8 @@ static void window_editor_scenario_options_financial_paint() * * rct2: 0x00670A62 */ -static void window_editor_scenario_options_guests_mouseup() +static void window_editor_scenario_options_guests_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -731,12 +709,8 @@ static void window_editor_scenario_options_guests_mouseup() * * rct2: 0x00670C59 */ -static void window_editor_scenario_options_guests_resize() +static void window_editor_scenario_options_guests_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 380, 149, 380, 149); } @@ -829,12 +803,10 @@ static void window_editor_scenario_options_guests_update(rct_window *w) * * rct2: 0x006707DB */ -static void window_editor_scenario_options_guests_invalidate() +static void window_editor_scenario_options_guests_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_editor_scenario_options_widgets[w->page]; @@ -877,14 +849,10 @@ static void window_editor_scenario_options_guests_invalidate() * * rct2: 0x006708C4 */ -static void window_editor_scenario_options_guests_paint() +static void window_editor_scenario_options_guests_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int x, y, arg; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_editor_scenario_options_draw_tab_images(w, dpi); @@ -943,13 +911,8 @@ static void window_editor_scenario_options_guests_paint() * * rct2: 0x00670FD8 */ -static void window_editor_scenario_options_park_mouseup() +static void window_editor_scenario_options_park_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -986,12 +949,8 @@ static void window_editor_scenario_options_park_mouseup() * * rct2: 0x00671287 */ -static void window_editor_scenario_options_park_resize() +static void window_editor_scenario_options_park_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 400, 183, 400, 183); } @@ -1079,13 +1038,8 @@ static void window_editor_scenario_options_park_mousedown(int widgetIndex, rct_w * * rct2: 0x00671060 */ -static void window_editor_scenario_options_park_dropdown() +static void window_editor_scenario_options_park_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; - short widgetIndex, dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex == WIDX_PAY_FOR_PARK_OR_RIDES_DROPDOWN && dropdownIndex != -1) { if(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_SCENARIO_EDITOR) { if (dropdownIndex == 0) { @@ -1132,14 +1086,12 @@ static void window_editor_scenario_options_park_update(rct_window *w) * * rct2: 0x00670CBA */ -static void window_editor_scenario_options_park_invalidate() +static void window_editor_scenario_options_park_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; int i; uint64 pressedWidgets; - window_get_register(w); colour_scheme_update(w); widgets = window_editor_scenario_options_widgets[w->page]; @@ -1205,15 +1157,11 @@ static void window_editor_scenario_options_park_invalidate() * * rct2: 0x00670E5B */ -static void window_editor_scenario_options_park_paint() +static void window_editor_scenario_options_park_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int x, y, arg; rct_string_id stringId; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_editor_scenario_options_draw_tab_images(w, dpi); diff --git a/src/windows/error.c b/src/windows/error.c index c3779f4b3e..35b699a66b 100644 --- a/src/windows/error.c +++ b/src/windows/error.c @@ -34,39 +34,38 @@ static rct_widget window_error_widgets[] = { { WIDGETS_END } }; -static void window_error_emptysub() { } -static void window_error_unknown5(); -static void window_error_paint(); +static void window_error_unknown5(rct_window *w); +static void window_error_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_error_events[] = { - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_unknown5, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_emptysub, - (uint32*)window_error_paint, - (uint32*)window_error_emptysub +static rct_window_event_list window_error_events = { + NULL, + NULL, + NULL, + NULL, + NULL, + window_error_unknown5, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_error_paint, + NULL }; static char _window_error_text[512]; @@ -134,7 +133,7 @@ void window_error_open(rct_string_id title, rct_string_id message) y = min(y, maxY); } - w = window_create(x, y, width, height, (uint32*)window_error_events, WC_ERROR, WF_STICK_TO_FRONT | WF_TRANSPARENT | WF_RESIZABLE); + w = window_create(x, y, width, height, &window_error_events, WC_ERROR, WF_STICK_TO_FRONT | WF_TRANSPARENT | WF_RESIZABLE); w->widgets = window_error_widgets; w->error.var_480 = 0; if (!(RCT2_GLOBAL(0x009A8C29, uint8) & 1)) @@ -145,12 +144,8 @@ void window_error_open(rct_string_id title, rct_string_id message) * * rct2: 0x00667BFE */ -static void window_error_unknown5() +static void window_error_unknown5(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->error.var_480++; if (w->error.var_480 >= 8) window_close(w); @@ -160,14 +155,10 @@ static void window_error_unknown5() * * rct2: 0x00667AA3 */ -static void window_error_paint() +static void window_error_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int t, l, r, b; - window_paint_get_registers(w, dpi); - l = w->x; t = w->y; r = w->x + w->width - 1; diff --git a/src/windows/finances.c b/src/windows/finances.c index 686cc84f04..4aaa95ba39 100644 --- a/src/windows/finances.c +++ b/src/windows/finances.c @@ -202,240 +202,238 @@ static rct_widget *window_finances_page_widgets[] = { #pragma region Events -static void window_finances_emptysub() { } - -static void window_finances_summary_mouseup(); +static void window_finances_summary_mouseup(rct_window *w, int widgetIndex); static void window_finances_summary_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); static void window_finances_summary_update(rct_window *w); -static void window_finances_summary_invalidate(); -static void window_finances_summary_paint(); +static void window_finances_summary_invalidate(rct_window *w); +static void window_finances_summary_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_finances_financial_graph_mouseup(); +static void window_finances_financial_graph_mouseup(rct_window *w, int widgetIndex); static void window_finances_financial_graph_update(rct_window *w); -static void window_finances_financial_graph_invalidate(); -static void window_finances_financial_graph_paint(); +static void window_finances_financial_graph_invalidate(rct_window *w); +static void window_finances_financial_graph_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_finances_park_value_graph_mouseup(); +static void window_finances_park_value_graph_mouseup(rct_window *w, int widgetIndex); static void window_finances_park_value_graph_update(rct_window *w); -static void window_finances_park_value_graph_invalidate(); -static void window_finances_park_value_graph_paint(); +static void window_finances_park_value_graph_invalidate(rct_window *w); +static void window_finances_park_value_graph_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_finances_profit_graph_mouseup(); +static void window_finances_profit_graph_mouseup(rct_window *w, int widgetIndex); static void window_finances_profit_graph_update(rct_window *w); -static void window_finances_profit_graph_invalidate(); -static void window_finances_profit_graph_paint(); +static void window_finances_profit_graph_invalidate(rct_window *w); +static void window_finances_profit_graph_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_finances_marketing_mouseup(); +static void window_finances_marketing_mouseup(rct_window *w, int widgetIndex); static void window_finances_marketing_update(rct_window *w); -static void window_finances_marketing_invalidate(); -static void window_finances_marketing_paint(); +static void window_finances_marketing_invalidate(rct_window *w); +static void window_finances_marketing_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_finances_research_mouseup(); +static void window_finances_research_mouseup(rct_window *w, int widgetIndex); static void window_finances_research_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_finances_research_dropdown(); +static void window_finances_research_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_finances_research_update(rct_window *w); -static void window_finances_research_invalidate(); -static void window_finances_research_paint(); +static void window_finances_research_invalidate(rct_window *w); +static void window_finances_research_paint(rct_window *w, rct_drawpixelinfo *dpi); // 0x00988EB8 -static void* window_finances_summary_events[] = { - window_finances_emptysub, +static rct_window_event_list window_finances_summary_events = { + NULL, window_finances_summary_mouseup, - window_finances_emptysub, + NULL, window_finances_summary_mousedown, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, window_finances_summary_update, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_finances_summary_invalidate, window_finances_summary_paint, - window_finances_emptysub + NULL }; // 0x00988F28 -static void* window_finances_financial_graph_events[] = { - window_finances_emptysub, +static rct_window_event_list window_finances_financial_graph_events = { + NULL, window_finances_financial_graph_mouseup, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, window_finances_financial_graph_update, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_finances_financial_graph_invalidate, window_finances_financial_graph_paint, - window_finances_emptysub + NULL }; // 0x00988F98 -static void* window_finances_value_graph_events[] = { - window_finances_emptysub, +static rct_window_event_list window_finances_value_graph_events = { + NULL, window_finances_park_value_graph_mouseup, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, window_finances_park_value_graph_update, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_finances_park_value_graph_invalidate, window_finances_park_value_graph_paint, - window_finances_emptysub + NULL }; // 0x00989008 -static void* window_finances_profit_graph_events[] = { - window_finances_emptysub, +static rct_window_event_list window_finances_profit_graph_events = { + NULL, window_finances_profit_graph_mouseup, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, window_finances_profit_graph_update, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_finances_profit_graph_invalidate, window_finances_profit_graph_paint, - window_finances_emptysub + NULL }; // 0x00989078 -static void* window_finances_marketing_events[] = { - window_finances_emptysub, +static rct_window_event_list window_finances_marketing_events = { + NULL, window_finances_marketing_mouseup, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, window_finances_marketing_update, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_finances_marketing_invalidate, window_finances_marketing_paint, - window_finances_emptysub + NULL }; // 0x009890E8 -static void* window_finances_research_events[] = { - window_finances_emptysub, +static rct_window_event_list window_finances_research_events = { + NULL, window_finances_research_mouseup, - window_finances_emptysub, + NULL, window_finances_research_mousedown, window_finances_research_dropdown, - window_finances_emptysub, + NULL, window_finances_research_update, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, - window_finances_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_finances_research_invalidate, window_finances_research_paint, - window_finances_emptysub + NULL }; -static void* window_finances_page_events[] = { - window_finances_summary_events, - window_finances_financial_graph_events, - window_finances_value_graph_events, - window_finances_profit_graph_events, - window_finances_marketing_events, - window_finances_research_events +static rct_window_event_list *window_finances_page_events[] = { + &window_finances_summary_events, + &window_finances_financial_graph_events, + &window_finances_value_graph_events, + &window_finances_profit_graph_events, + &window_finances_marketing_events, + &window_finances_research_events }; static void window_finances_set_colours(); @@ -583,13 +581,8 @@ void window_finances_research_open() * * rct2: 0x0069CA99 */ -static void window_finances_summary_mouseup() +static void window_finances_summary_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_6) @@ -636,11 +629,8 @@ static void window_finances_summary_update(rct_window *w) * * rct2: 0x0069C732 */ -static void window_finances_summary_invalidate() +static void window_finances_summary_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_finances_page_widgets[WINDOW_FINANCES_PAGE_SUMMARY]) { @@ -656,14 +646,10 @@ static void window_finances_summary_invalidate() * * rct2: 0x0069C771 */ -static void window_finances_summary_paint() +static void window_finances_summary_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int i, j, x, y; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_finances_draw_tab_images(dpi, w); @@ -781,13 +767,8 @@ static void window_finances_summary_paint() * * rct2: 0x0069CF70 */ -static void window_finances_financial_graph_mouseup() +static void window_finances_financial_graph_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_6) @@ -810,11 +791,8 @@ static void window_finances_financial_graph_update(rct_window *w) * * rct2: 0x0069CBDB */ -static void window_finances_financial_graph_invalidate() +static void window_finances_financial_graph_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_finances_page_widgets[WINDOW_FINANCES_PAGE_FINANCIAL_GRAPH]) { @@ -829,14 +807,10 @@ static void window_finances_financial_graph_invalidate() * * rct2: 0x0069CC10 */ -static void window_finances_financial_graph_paint() +static void window_finances_financial_graph_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int i, x, y, graphLeft, graphTop, graphRight, graphBottom; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_finances_draw_tab_images(dpi, w); @@ -903,13 +877,8 @@ static void window_finances_financial_graph_paint() * * rct2: 0x0069D338 */ -static void window_finances_park_value_graph_mouseup() +static void window_finances_park_value_graph_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_6) @@ -932,11 +901,8 @@ static void window_finances_park_value_graph_update(rct_window *w) * * rct2: 0x0069CFC0 */ -static void window_finances_park_value_graph_invalidate() +static void window_finances_park_value_graph_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_finances_page_widgets[WINDOW_FINANCES_PAGE_VALUE_GRAPH]) { @@ -951,14 +917,10 @@ static void window_finances_park_value_graph_invalidate() * * rct2: 0x0069CFF5 */ -static void window_finances_park_value_graph_paint() +static void window_finances_park_value_graph_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int i, x, y, graphLeft, graphTop, graphRight, graphBottom; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_finances_draw_tab_images(dpi, w); @@ -1021,13 +983,8 @@ static void window_finances_park_value_graph_paint() * * rct2: 0x0069D715 */ -static void window_finances_profit_graph_mouseup() +static void window_finances_profit_graph_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_6) @@ -1050,11 +1007,8 @@ static void window_finances_profit_graph_update(rct_window *w) * * rct2: 0x0069D388 */ -static void window_finances_profit_graph_invalidate() +static void window_finances_profit_graph_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_finances_page_widgets[WINDOW_FINANCES_PAGE_PROFIT_GRAPH]) { @@ -1069,14 +1023,10 @@ static void window_finances_profit_graph_invalidate() * * rct2: 0x0069D3BD */ -static void window_finances_profit_graph_paint() +static void window_finances_profit_graph_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int i, x, y, graphLeft, graphTop, graphRight, graphBottom; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_finances_draw_tab_images(dpi, w); @@ -1139,13 +1089,8 @@ static void window_finances_profit_graph_paint() * * rct2: 0x0069D9F9 */ -static void window_finances_marketing_mouseup() +static void window_finances_marketing_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_6) @@ -1171,12 +1116,10 @@ static void window_finances_marketing_update(rct_window *w) * * rct2: 0x0069D765 */ -static void window_finances_marketing_invalidate() +static void window_finances_marketing_invalidate(rct_window *w) { - rct_window *w; int i; - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_finances_page_widgets[WINDOW_FINANCES_PAGE_MARKETING]) { @@ -1228,16 +1171,12 @@ static void window_finances_marketing_invalidate() * * rct2: 0x0069D834 */ -static void window_finances_marketing_paint() +static void window_finances_marketing_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int i, x, y; rct_ride *ride; rct_string_id shopString, weeksRemainingStringId; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_finances_draw_tab_images(dpi, w); @@ -1322,14 +1261,10 @@ static void window_finances_marketing_paint() * * rct2: 0x0069DB3F */ -static void window_finances_research_mouseup() +static void window_finances_research_mouseup(rct_window *w, int widgetIndex) { - rct_window * w; - short widgetIndex; int activeResearchTypes; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -1392,14 +1327,8 @@ static void window_finances_research_mousedown(int widgetIndex, rct_window *w, r * * rct2: 0x0069DB6D */ -static void window_finances_research_dropdown() +static void window_finances_research_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; - short widgetIndex; - short dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex != WIDX_RESEARCH_FUNDING_DROPDOWN_BUTTON || dropdownIndex == -1) return; @@ -1422,11 +1351,8 @@ static void window_finances_research_update(rct_window *w) * * rct2: 0x0069DA64 */ -static void window_finances_research_invalidate() +static void window_finances_research_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_finances_page_widgets[WINDOW_FINANCES_PAGE_RESEARCH]) { @@ -1471,13 +1397,8 @@ static void window_finances_research_invalidate() * * rct2: 0x0069DAF0 */ -static void window_finances_research_paint() +static void window_finances_research_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_finances_draw_tab_images(dpi, w); diff --git a/src/windows/footpath.c b/src/windows/footpath.c index c3135efe4a..c5bfd9586f 100644 --- a/src/windows/footpath.c +++ b/src/windows/footpath.c @@ -103,48 +103,47 @@ static rct_widget window_footpath_widgets[] = { { WIDGETS_END }, }; -static void window_footpath_emptysub() { } -static void window_footpath_close(); -static void window_footpath_mouseup(); +static void window_footpath_close(rct_window *w); +static void window_footpath_mouseup(rct_window *w, int widgetIndex); static void window_footpath_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_footpath_dropdown(); +static void window_footpath_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_footpath_update(rct_window *w); -static void window_footpath_toolupdate(); -static void window_footpath_tooldown(); -static void window_footpath_tooldrag(); -static void window_footpath_toolup(); -static void window_footpath_invalidate(); -static void window_footpath_paint(); +static void window_footpath_toolupdate(rct_window* w, int widgetIndex, int x, int y); +static void window_footpath_tooldown(rct_window* w, int widgetIndex, int x, int y); +static void window_footpath_tooldrag(rct_window* w, int widgetIndex, int x, int y); +static void window_footpath_toolup(rct_window* w, int widgetIndex, int x, int y); +static void window_footpath_invalidate(rct_window *w); +static void window_footpath_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_footpath_events[] = { +static rct_window_event_list window_footpath_events = { window_footpath_close, window_footpath_mouseup, - window_footpath_emptysub, + NULL, window_footpath_mousedown, window_footpath_dropdown, - window_footpath_emptysub, + NULL, window_footpath_update, - window_footpath_emptysub, - window_footpath_emptysub, + NULL, + NULL, window_footpath_toolupdate, window_footpath_tooldown, window_footpath_tooldrag, window_footpath_toolup, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, - window_footpath_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_footpath_invalidate, window_footpath_paint, - window_footpath_emptysub + NULL }; money32 _window_footpath_cost; @@ -182,7 +181,7 @@ void window_footpath_open() 29, 106, 381, - (uint32*)window_footpath_events, + &window_footpath_events, WC_FOOTPATH, 0 ); @@ -226,12 +225,8 @@ void window_footpath_open() * * rct2: 0x006A852F */ -static void window_footpath_close() +static void window_footpath_close(rct_window *w) { - rct_window *w; - - window_get_register(w); - footpath_provisional_update(); viewport_set_visibility(0); map_invalidate_map_selection_tiles(); @@ -244,13 +239,8 @@ static void window_footpath_close() * * rct2: 0x006A7E92 */ -static void window_footpath_mouseup() +static void window_footpath_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -335,16 +325,11 @@ static void window_footpath_mousedown(int widgetIndex, rct_window*w, rct_widget* * * rct2: 0x006A7F18 */ -static void window_footpath_dropdown() +static void window_footpath_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { int i, j, pathId; - short dropdownIndex; - short widgetIndex; - rct_window *w; rct_path_type *pathType; - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex == WIDX_FOOTPATH_TYPE) RCT2_GLOBAL(RCT2_ADDRESS_SELECTED_PATH_TYPE, uint8) = SELECTED_PATH_TYPE_NORMAL; else if (widgetIndex == WIDX_QUEUELINE_TYPE) @@ -390,14 +375,8 @@ static void window_footpath_dropdown() * * rct2: 0x006A8032 */ -static void window_footpath_toolupdate() +static void window_footpath_toolupdate(rct_window* w, int widgetIndex, int x, int y) { - short x, y; - short widgetIndex; - rct_window *w; - - window_tool_get_registers(w, widgetIndex, x, y); - if (widgetIndex == WIDX_CONSTRUCT_ON_LAND) { window_footpath_set_provisional_path_at_point(x, y); } else if (widgetIndex == WIDX_CONSTRUCT_BRIDGE_OR_TUNNEL) { @@ -409,14 +388,8 @@ static void window_footpath_toolupdate() * * rct2: 0x006A8047 */ -static void window_footpath_tooldown() +static void window_footpath_tooldown(rct_window* w, int widgetIndex, int x, int y) { - short x, y; - short widgetIndex; - rct_window *w; - - window_tool_get_registers(w, widgetIndex, x, y); - if (widgetIndex == WIDX_CONSTRUCT_ON_LAND) window_footpath_place_path_at_point(x, y); else if (widgetIndex == WIDX_CONSTRUCT_BRIDGE_OR_TUNNEL) @@ -427,14 +400,8 @@ static void window_footpath_tooldown() * * rct2: 0x006A8067 */ -static void window_footpath_tooldrag() +static void window_footpath_tooldrag(rct_window* w, int widgetIndex, int x, int y) { - short x, y; - short widgetIndex; - rct_window *w; - - window_tool_get_registers(w, widgetIndex, x, y); - if (widgetIndex == WIDX_CONSTRUCT_ON_LAND) { window_footpath_place_path_at_point(x, y); } @@ -444,14 +411,8 @@ static void window_footpath_tooldrag() * * rct2: 0x006A8066 */ -static void window_footpath_toolup() +static void window_footpath_toolup(rct_window* w, int widgetIndex, int x, int y) { - short x, y; - short widgetIndex; - rct_window *w; - - window_tool_get_registers(w, widgetIndex, x, y); - if (widgetIndex == WIDX_CONSTRUCT_ON_LAND) { // The function at 0x006A8380 in rct2 is just the following: RCT2_GLOBAL(RCT2_ADDRESS_PATH_ERROR_OCCURED, uint8) = 0; @@ -524,13 +485,11 @@ static void window_footpath_update(rct_window *w) * * rct2: 0x006A7D1C */ -static void window_footpath_invalidate() +static void window_footpath_invalidate(rct_window *w) { int selectedPath; rct_path_type *pathType; - rct_window *w; - window_get_register(w); colour_scheme_update(w); // Press / unpress footpath and queue type buttons @@ -569,14 +528,10 @@ static void window_footpath_invalidate() * * rct2: 0x006A7D8B */ -static void window_footpath_paint() +static void window_footpath_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y, image, selectedPath; rct_path_type *pathType; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); window_draw_widgets(w, dpi); diff --git a/src/windows/game_bottom_toolbar.c b/src/windows/game_bottom_toolbar.c index 8dedde93f4..2c3b41afc8 100644 --- a/src/windows/game_bottom_toolbar.c +++ b/src/windows/game_bottom_toolbar.c @@ -73,14 +73,13 @@ rct_widget window_game_bottom_toolbar_widgets[] = { { WIDGETS_END }, }; -static void window_game_bottom_toolbar_emptysub() { } -static void window_game_bottom_toolbar_mouseup(); -static void window_game_bottom_toolbar_tooltip(); -static void window_game_bottom_toolbar_invalidate(); -static void window_game_bottom_toolbar_paint(); +static void window_game_bottom_toolbar_mouseup(rct_window *w, int widgetIndex); +static void window_game_bottom_toolbar_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_game_bottom_toolbar_invalidate(rct_window *w); +static void window_game_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi); static void window_game_bottom_toolbar_update(rct_window* w); -static void window_game_bottom_toolbar_cursor(); -static void window_game_bottom_toolbar_unknown05(); +static void window_game_bottom_toolbar_cursor(rct_window *w, int widgetIndex, int x, int y, int *cursorId); +static void window_game_bottom_toolbar_unknown05(rct_window *w); static void window_game_bottom_toolbar_draw_left_panel(rct_drawpixelinfo *dpi, rct_window *w); static void window_game_bottom_toolbar_draw_park_rating(rct_drawpixelinfo *dpi, rct_window *w, int colour, int x, int y, uint8 factor); @@ -89,35 +88,35 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo *dpi, rc static void window_game_bottom_toolbar_draw_tutorial_text(rct_drawpixelinfo *dpi, rct_window *w); /* rct2: 0x0097BFDC */ -static void* window_game_bottom_toolbar_events[] = { - window_game_bottom_toolbar_emptysub, +static rct_window_event_list window_game_bottom_toolbar_events = { + NULL, window_game_bottom_toolbar_mouseup, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, + NULL, + NULL, + NULL, window_game_bottom_toolbar_unknown05, window_game_bottom_toolbar_update, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, - window_game_bottom_toolbar_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_game_bottom_toolbar_tooltip, window_game_bottom_toolbar_cursor, - window_game_bottom_toolbar_emptysub, + NULL, window_game_bottom_toolbar_invalidate, window_game_bottom_toolbar_paint, - window_game_bottom_toolbar_emptysub + NULL }; static void window_game_bottom_toolbar_invalidate_dirty_widgets(rct_window *w); @@ -133,7 +132,7 @@ void window_game_bottom_toolbar_open() window = window_create( 0, RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_HEIGHT, uint16) - 32, RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16), 32, - (uint32*)window_game_bottom_toolbar_events, + &window_game_bottom_toolbar_events, WC_BOTTOM_TOOLBAR, WF_STICK_TO_FRONT | WF_TRANSPARENT | WF_5 ); @@ -162,14 +161,11 @@ void window_game_bottom_toolbar_open() * * rct2: 0x0066C588 */ -static void window_game_bottom_toolbar_mouseup() +static void window_game_bottom_toolbar_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w, *mainWindow; + rct_window *mainWindow; rct_news_item *newsItem; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_LEFT_OUTSET: case WIDX_MONEY: @@ -214,23 +210,17 @@ static void window_game_bottom_toolbar_mouseup() } } -static void window_game_bottom_toolbar_tooltip() +static void window_game_bottom_toolbar_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { int month, day; - short widgetIndex, result; - rct_window *w; - - window_tooltip_get_registers(w, widgetIndex); switch (widgetIndex) { case WIDX_MONEY: RCT2_GLOBAL(0x013CE952, int) = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PROFIT, sint32); RCT2_GLOBAL(0x013CE956, int) = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PARK_VALUE, sint32); - result = 0; break; case WIDX_PARK_RATING: RCT2_GLOBAL(0x013CE952, short) = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PARK_RATING, sint16); - result = 0; break; case WIDX_DATE: month = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_MONTH_YEAR, sint16) & 7; @@ -238,24 +228,19 @@ static void window_game_bottom_toolbar_tooltip() RCT2_GLOBAL(0x013CE952, short) = STR_DATE_DAY_1 + day; RCT2_GLOBAL(0x013CE954, short) = STR_MONTH_MARCH + month; - result = 0; break; } - - window_tooltip_set_registers(result); } /** * * rct2: 0x0066BBA0 */ -static void window_game_bottom_toolbar_invalidate() +static void window_game_bottom_toolbar_invalidate(rct_window *w) { int x; - rct_window *w; rct_news_item *newsItem; - window_get_register(w); colour_scheme_update(w); // Anchor the middle and right panel to the right @@ -343,13 +328,8 @@ void window_game_bottom_toolbar_invalidate_news_item() * * rct2: 0x0066BC87 */ -static void window_game_bottom_toolbar_paint() +static void window_game_bottom_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - // Draw panel grey backgrounds gfx_fill_rect( dpi, @@ -643,13 +623,9 @@ static void window_game_bottom_toolbar_update(rct_window* w){ } /* rct2: 0x006C644 */ -static void window_game_bottom_toolbar_cursor(){ - rct_window *w; - short widgetIndex, x, y; - - window_cursor_get_registers(w, widgetIndex, x, y); - - switch (widgetIndex){ +static void window_game_bottom_toolbar_cursor(rct_window *w, int widgetIndex, int x, int y, int *cursorId) +{ + switch (widgetIndex) { case WIDX_MONEY: case WIDX_GUESTS: case WIDX_PARK_RATING: @@ -660,11 +636,8 @@ static void window_game_bottom_toolbar_cursor(){ } /* rct2: 0x0066C6F2 */ -static void window_game_bottom_toolbar_unknown05(){ - rct_window* w; - - window_get_register(w); - +static void window_game_bottom_toolbar_unknown05(rct_window *w) +{ window_game_bottom_toolbar_invalidate_dirty_widgets(w); } diff --git a/src/windows/guest.c b/src/windows/guest.c index ffbfaae46c..228ba7b153 100644 --- a/src/windows/guest.c +++ b/src/windows/guest.c @@ -71,8 +71,6 @@ enum WINDOW_GUEST_WIDGET_IDX { WIDX_RIDE_SCROLL = 10 }; -void window_guest_emptysub(){}; - rct_widget window_guest_overview_widgets[] = { { WWT_FRAME, 0, 0, 191, 0, 156, 0x0FFFFFFFF, STR_NONE }, // Panel / Background { WWT_CAPTION, 0, 1, 190, 1, 14, 865, STR_WINDOW_TITLE_TIP }, // Title @@ -179,245 +177,245 @@ void window_guest_set_page(rct_window* w, int page); void window_guest_disable_widgets(rct_window* w); void window_guest_viewport_init(rct_window* w); -void window_guest_overview_close(); -void window_guest_overview_resize(); -void window_guest_overview_mouse_up(); -void window_guest_overview_paint(); -void window_guest_overview_invalidate(); -void window_guest_overview_viewport_init_wrapper(); +void window_guest_overview_close(rct_window *w); +void window_guest_overview_resize(rct_window *w); +void window_guest_overview_mouse_up(rct_window *w, int widgetIndex); +void window_guest_overview_paint(rct_window *w, rct_drawpixelinfo *dpi); +void window_guest_overview_invalidate(rct_window *w); +void window_guest_overview_unknown_14(rct_window *w); void window_guest_overview_update(rct_window* w); -void window_guest_overview_text_input(); -void window_guest_overview_tool_update(); -void window_guest_overview_tool_down(); -void window_guest_overview_tool_abort(); +void window_guest_overview_text_input(rct_window *w, int widgetIndex, char *text); +void window_guest_overview_tool_update(rct_window* w, int widgetIndex, int x, int y); +void window_guest_overview_tool_down(rct_window* w, int widgetIndex, int x, int y); +void window_guest_overview_tool_abort(rct_window *w, int widgetIndex); -static void* window_guest_overview_events[] = { +void window_guest_mouse_up(rct_window *w, int widgetIndex); +void window_guest_unknown_05(rct_window *w); + +void window_guest_stats_resize(rct_window *w); +void window_guest_stats_update(rct_window *w); +void window_guest_stats_invalidate(rct_window *w); +void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi); + +void window_guest_rides_resize(rct_window *w); +void window_guest_rides_update(rct_window *w); +void window_guest_rides_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +void window_guest_rides_scroll_get_size(rct_window *w, int scrollIndex, int *width, int *height); +void window_guest_rides_scroll_mouse_down(rct_window *w, int scrollIndex, int x, int y); +void window_guest_rides_scroll_mouse_over(rct_window *w, int scrollIndex, int x, int y); +void window_guest_rides_invalidate(rct_window *w); +void window_guest_rides_paint(rct_window *w, rct_drawpixelinfo *dpi); +void window_guest_rides_scroll_paint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); + +void window_guest_finance_resize(rct_window *w); +void window_guest_finance_update(rct_window *w); +void window_guest_finance_invalidate(rct_window *w); +void window_guest_finance_paint(rct_window *w, rct_drawpixelinfo *dpi); + +void window_guest_thoughts_resize(rct_window *w); +void window_guest_thoughts_update(rct_window *w); +void window_guest_thoughts_invalidate(rct_window *w); +void window_guest_thoughts_paint(rct_window *w, rct_drawpixelinfo *dpi); + +void window_guest_inventory_resize(rct_window *w); +void window_guest_inventory_update(rct_window *w); +void window_guest_inventory_invalidate(rct_window *w); +void window_guest_inventory_paint(rct_window *w, rct_drawpixelinfo *dpi); + +static rct_window_event_list window_guest_overview_events = { window_guest_overview_close, window_guest_overview_mouse_up, window_guest_overview_resize, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, + NULL, + NULL, + NULL, window_guest_overview_update, - window_guest_emptysub, - window_guest_emptysub, - window_guest_overview_tool_update,//tool_update - window_guest_overview_tool_down,//tool_down - window_guest_emptysub, - window_guest_emptysub, - window_guest_overview_tool_abort,//tool_abort - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_overview_text_input,//text_input - window_guest_overview_viewport_init_wrapper, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_overview_invalidate, //Invalidate - window_guest_overview_paint, //Paint - window_guest_emptysub + NULL, + NULL, + window_guest_overview_tool_update, + window_guest_overview_tool_down, + NULL, + NULL, + window_guest_overview_tool_abort, + NULL, + NULL, + NULL, + NULL, + NULL, + window_guest_overview_text_input, + window_guest_overview_unknown_14, + NULL, + NULL, + NULL, + NULL, + window_guest_overview_invalidate, + window_guest_overview_paint, + NULL }; -void window_guest_mouse_up(); -void window_guest_unknown_05(); - -void window_guest_stats_resize(); -void window_guest_stats_update(); -void window_guest_stats_invalidate(); -void window_guest_stats_paint(); - -static void* window_guest_stats_events[] = { - window_guest_emptysub, - window_guest_mouse_up, //mouse_up - window_guest_stats_resize, //resize - window_guest_emptysub, - window_guest_emptysub, +static rct_window_event_list window_guest_stats_events = { + NULL, + window_guest_mouse_up, + window_guest_stats_resize, + NULL, + NULL, window_guest_unknown_05, window_guest_stats_update, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_stats_invalidate, //invalidate - window_guest_stats_paint, //paint - window_guest_emptysub + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_guest_stats_invalidate, + window_guest_stats_paint, + NULL }; -void window_guest_rides_resize(); -void window_guest_rides_update(); -void window_guest_rides_tooltip(); -void window_guest_rides_scroll_get_size(); -void window_guest_rides_scroll_mouse_down(); -void window_guest_rides_scroll_mouse_over(); -void window_guest_rides_invalidate(); -void window_guest_rides_paint(); -void window_guest_rides_scroll_paint(); - -static void* window_guest_rides_events[] = { - window_guest_emptysub, - window_guest_mouse_up, //mouse_up - window_guest_rides_resize, //resize - window_guest_emptysub, - window_guest_emptysub, +static rct_window_event_list window_guest_rides_events = { + NULL, + window_guest_mouse_up, + window_guest_rides_resize, + NULL, + NULL, window_guest_unknown_05, window_guest_rides_update, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_rides_scroll_get_size, //scroll_get_size - window_guest_rides_scroll_mouse_down, //scroll_mouse_down - window_guest_emptysub, - window_guest_rides_scroll_mouse_over, //scroll_mouse_over - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_rides_tooltip, //tooltip - window_guest_emptysub, - window_guest_emptysub, - window_guest_rides_invalidate, //invalidate - window_guest_rides_paint, //paint - window_guest_rides_scroll_paint //scroll_paint + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_guest_rides_scroll_get_size, + window_guest_rides_scroll_mouse_down, + NULL, + window_guest_rides_scroll_mouse_over, + NULL, + NULL, + NULL, + window_guest_rides_tooltip, + NULL, + NULL, + window_guest_rides_invalidate, + window_guest_rides_paint, + window_guest_rides_scroll_paint }; -void window_guest_finance_resize(); -void window_guest_finance_update(); -void window_guest_finance_invalidate(); -void window_guest_finance_paint(); - -static void* window_guest_finance_events[] = { - window_guest_emptysub, - window_guest_mouse_up, //mouse_up - window_guest_finance_resize, //resize - window_guest_emptysub, - window_guest_emptysub, +static rct_window_event_list window_guest_finance_events = { + NULL, + window_guest_mouse_up, + window_guest_finance_resize, + NULL, + NULL, window_guest_unknown_05, window_guest_finance_update, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_finance_invalidate, //invalidate - window_guest_finance_paint, //paint - window_guest_emptysub + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_guest_finance_invalidate, + window_guest_finance_paint, + NULL }; -void window_guest_thoughts_resize(); -void window_guest_thoughts_update(); -void window_guest_thoughts_invalidate(); -void window_guest_thoughts_paint(); - -static void* window_guest_thoughts_events[] = { - window_guest_emptysub, - window_guest_mouse_up, //mouse_up - window_guest_thoughts_resize, //resize - window_guest_emptysub, - window_guest_emptysub, +static rct_window_event_list window_guest_thoughts_events = { + NULL, + window_guest_mouse_up, + window_guest_thoughts_resize, + NULL, + NULL, window_guest_unknown_05, window_guest_thoughts_update, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_thoughts_invalidate, //invalidate - window_guest_thoughts_paint, //paint - window_guest_emptysub + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_guest_thoughts_invalidate, + window_guest_thoughts_paint, + NULL }; -void window_guest_inventory_resize(); -void window_guest_inventory_update(); -void window_guest_inventory_invalidate(); -void window_guest_inventory_paint(); - -static void* window_guest_inventory_events[] = { - window_guest_emptysub, - window_guest_mouse_up, //mouse_up - window_guest_inventory_resize, //resize - window_guest_emptysub, - window_guest_emptysub, +static rct_window_event_list window_guest_inventory_events = { + NULL, + window_guest_mouse_up, + window_guest_inventory_resize, + NULL, + NULL, window_guest_unknown_05, window_guest_inventory_update, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_emptysub, - window_guest_inventory_invalidate, //invalidate - window_guest_inventory_paint, //paint - window_guest_emptysub + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_guest_inventory_invalidate, + window_guest_inventory_paint, + NULL }; //0x981D24 -void* window_guest_page_events[] = { - window_guest_overview_events, - window_guest_stats_events, - window_guest_rides_events, - window_guest_finance_events, - window_guest_thoughts_events, - window_guest_inventory_events +static rct_window_event_list *window_guest_page_events[] = { + &window_guest_overview_events, + &window_guest_stats_events, + &window_guest_rides_events, + &window_guest_finance_events, + &window_guest_thoughts_events, + &window_guest_inventory_events }; void window_guest_set_colours(); @@ -493,7 +491,7 @@ void window_guest_open(rct_peep* peep){ window = window_bring_to_front_by_number(WC_PEEP, peep->sprite_index); if (window == NULL){ - window = window_create_auto_pos(192, 157, (uint32*)window_guest_overview_events, WC_PEEP, WF_RESIZABLE); + window = window_create_auto_pos(192, 157, &window_guest_overview_events, WC_PEEP, WF_RESIZABLE); window->widgets = window_guest_overview_widgets; window->enabled_widgets = window_guest_page_enabled_widgets[0]; window->number = peep->sprite_index; @@ -552,24 +550,17 @@ void window_guest_disable_widgets(rct_window* w){ } /* rct2: 0x00696A75 */ -void window_guest_overview_close(){ - rct_window* w; - - window_get_register(w); - +void window_guest_overview_close(rct_window *w) +{ if (RCT2_GLOBAL(RCT2_ADDRESS_INPUT_FLAGS, uint32) & INPUT_FLAG_TOOL_ACTIVE){ if (w->classification == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWCLASS,rct_windowclass) && - w->number == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWNUMBER,rct_windownumber)) + w->number == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWNUMBER,rct_windownumber)) tool_cancel(); } } /* rct2: 0x00696FBE */ -void window_guest_overview_resize(){ - rct_window* w; - - window_get_register(w); - +void window_guest_overview_resize(rct_window *w){ window_guest_disable_widgets(w); window_event_invalidate_call(w); @@ -596,10 +587,8 @@ void window_guest_overview_resize(){ } /* rct2: 0x00696A06 */ -void window_guest_overview_mouse_up(){ - short widgetIndex; - rct_window* w; - window_widget_get_registers(w, widgetIndex); +void window_guest_overview_mouse_up(rct_window *w, int widgetIndex) +{ rct_peep* peep = GET_PEEP(w->number); switch(widgetIndex){ @@ -687,10 +676,8 @@ void window_guest_set_page(rct_window* w, int page){ if (listen && w->viewport) w->viewport->flags |= VIEWPORT_FLAG_SOUND_ON; } -void window_guest_overview_viewport_init_wrapper(){ - rct_window* w; - window_get_register(w); - +void window_guest_overview_unknown_14(rct_window *w) +{ window_guest_viewport_init(w); } @@ -953,12 +940,8 @@ void window_guest_inventory_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ } /* rct2: 0x696887 */ -void window_guest_overview_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_guest_overview_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_guest_overview_tab_paint(w, dpi); window_guest_stats_tab_paint(w, dpi); @@ -1025,9 +1008,8 @@ void window_guest_overview_paint(){ } /* rct2: 0x696749*/ -void window_guest_overview_invalidate(){ - rct_window* w; - window_get_register(w); +void window_guest_overview_invalidate(rct_window *w) +{ colour_scheme_update(w); if (window_guest_page_widgets[w->page] != w->widgets){ @@ -1111,17 +1093,13 @@ void window_guest_overview_update(rct_window* w){ } /* rct2:0x696A6A */ -void window_guest_overview_text_input(){ - short widgetIndex; - rct_window *w; - char _cl; - uint32* text; +void window_guest_overview_text_input(rct_window *w, int widgetIndex, char *text) +{ + if (widgetIndex != WIDX_RENAME) + return; - window_text_input_get_registers(w, widgetIndex, _cl, text); - - if (widgetIndex != WIDX_RENAME)return; - - if (!_cl) return; + if (text == NULL) + return; RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_STRING_ID, uint16) = 0x5AE; @@ -1131,14 +1109,10 @@ void window_guest_overview_text_input(){ } /* rct2: 0x696A5F */ -void window_guest_overview_tool_update(){ - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - - if (widgetIndex != WIDX_PICKUP) return; +void window_guest_overview_tool_update(rct_window* w, int widgetIndex, int x, int y) +{ + if (widgetIndex != WIDX_PICKUP) + return; map_invalidate_selection_rect(); @@ -1183,14 +1157,10 @@ void window_guest_overview_tool_update(){ } /* rct2: 0x696A54 */ -void window_guest_overview_tool_down(){ - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - - if (widgetIndex != WIDX_PICKUP) return; +void window_guest_overview_tool_down(rct_window* w, int widgetIndex, int x, int y) +{ + if (widgetIndex != WIDX_PICKUP) + return; int dest_x, dest_y; rct_map_element *mapElement; @@ -1242,16 +1212,14 @@ void window_guest_overview_tool_down(){ } /* rct2: 0x696A49 */ -void window_guest_overview_tool_abort(){ - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - if (widgetIndex != WIDX_PICKUP) return; +void window_guest_overview_tool_abort(rct_window *w, int widgetIndex) +{ + if (widgetIndex != WIDX_PICKUP) + return; rct_peep* peep = GET_PEEP(w->number); - if (peep->state != PEEP_STATE_PICKED) return; + if (peep->state != PEEP_STATE_PICKED) + return; sprite_move( w->var_48C, peep->y, peep->z + 8, (rct_sprite*)peep); invalidate_sprite((rct_sprite*)peep); @@ -1273,11 +1241,8 @@ void window_guest_overview_tool_abort(){ /* rct2:0x69744F, 0x697795, 0x697BDD, 0x697E18, 0x698279 * This is a combination of 5 functions that were identical */ -void window_guest_mouse_up(){ - short widgetIndex; - rct_window* w; - window_widget_get_registers(w, widgetIndex); - +void window_guest_mouse_up(rct_window *w, int widgetIndex) +{ switch (widgetIndex){ case WIDX_CLOSE: window_close(w); @@ -1294,28 +1259,22 @@ void window_guest_mouse_up(){ } /* rct2: 0x697488 */ -void window_guest_stats_resize(){ - rct_window* w; - window_get_register(w); - +void window_guest_stats_resize(rct_window *w) +{ window_set_resize(w, 192, 162, 192, 162); } /* rct2: 0x6974ED, 0x00697959, 0x00697C7B, 0x00697ED2, 0x00698333 * This is a combination of 5 functions that were identical */ -void window_guest_unknown_05(){ - rct_window* w; - window_get_register(w); - +void window_guest_unknown_05(rct_window *w) +{ widget_invalidate(w, WIDX_TAB_1); } /* rct2: 0x69746A */ -void window_guest_stats_update(){ - rct_window* w; - window_get_register(w); - +void window_guest_stats_update(rct_window *w) +{ w->frame_no++; rct_peep* peep = GET_PEEP(w->number); peep->var_45 &= ~(1<<1); @@ -1324,9 +1283,8 @@ void window_guest_stats_update(){ } /* rct2: 0x69707D */ -void window_guest_stats_invalidate(){ - rct_window* w; - window_get_register(w); +void window_guest_stats_invalidate(rct_window *w) +{ colour_scheme_update(w); if (w->widgets != window_guest_page_widgets[w->page]) { @@ -1380,12 +1338,8 @@ void window_guest_stats_bars_paint(int value, int x, int y, rct_window *w, rct_d } /* rct2: 0x0069711D */ -void window_guest_stats_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_guest_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_guest_overview_tab_paint(w, dpi); window_guest_stats_tab_paint(w, dpi); @@ -1536,18 +1490,14 @@ void window_guest_stats_paint(){ } /* rct2: 0x006978F4 */ -void window_guest_rides_resize(){ - rct_window* w; - window_get_register(w); - +void window_guest_rides_resize(rct_window *w) +{ window_set_resize(w, 192, 128, 500, 400); } /* rct2: 0x6977B0 */ -void window_guest_rides_update(){ - rct_window* w; - window_get_register(w); - +void window_guest_rides_update(rct_window *w) +{ w->frame_no++; widget_invalidate(w, WIDX_TAB_2); @@ -1580,27 +1530,22 @@ void window_guest_rides_update(){ } /* rct2: 0x697844 */ -void window_guest_rides_tooltip(){ +void window_guest_rides_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) +{ RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } /* rct2: 0x69784E */ -void window_guest_rides_scroll_get_size() +void window_guest_rides_scroll_get_size(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; - int width, height; - - window_get_register(w); - - width = 0; - height = w->no_list_items * 10; + *height = w->no_list_items * 10; if (w->selected_list_item != -1){ w->selected_list_item = -1; window_invalidate(w); } - int visable_height = height + int visable_height = *height - window_guest_rides_widgets[WIDX_RIDE_SCROLL].bottom + window_guest_rides_widgets[WIDX_RIDE_SCROLL].top + 21; @@ -1611,17 +1556,12 @@ void window_guest_rides_scroll_get_size() w->scrolls[0].v_top = visable_height; window_invalidate(w); } - - window_scrollsize_set_registers(width, height); } /* rct2: 0x006978CC */ -void window_guest_rides_scroll_mouse_down(){ +void window_guest_rides_scroll_mouse_down(rct_window *w, int scrollIndex, int x, int y) +{ int index; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); index = y / 10; if (index >= w->no_list_items) return; @@ -1630,12 +1570,9 @@ void window_guest_rides_scroll_mouse_down(){ } /* rct2: 0x0069789C */ -void window_guest_rides_scroll_mouse_over(){ +void window_guest_rides_scroll_mouse_over(rct_window *w, int scrollIndex, int x, int y) +{ int index; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); index = y / 10; if (index >= w->no_list_items)return; @@ -1647,9 +1584,8 @@ void window_guest_rides_scroll_mouse_over(){ } /* rct2: 0x0069757A */ -void window_guest_rides_invalidate(){ - rct_window* w; - window_get_register(w); +void window_guest_rides_invalidate(rct_window *w) +{ colour_scheme_update(w); if (window_guest_page_widgets[w->page] != w->widgets){ @@ -1681,12 +1617,8 @@ void window_guest_rides_invalidate(){ } /* rct2: 0x00697637 */ -void window_guest_rides_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_guest_rides_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_guest_overview_tab_paint(w, dpi); window_guest_stats_tab_paint(w, dpi); @@ -1720,12 +1652,8 @@ void window_guest_rides_paint(){ } /* rct2: 0x006976FC */ -void window_guest_rides_scroll_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_guest_rides_scroll_paint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) +{ // ax int left = dpi->x; // bx @@ -1752,18 +1680,14 @@ void window_guest_rides_scroll_paint(){ } /* rct2: 0x00697C16 */ -void window_guest_finance_resize(){ - rct_window* w; - window_get_register(w); - +void window_guest_finance_resize(rct_window *w) +{ window_set_resize(w, 210, 134, 210, 134); } /* rct2: 0x00697BF8 */ -void window_guest_finance_update(){ - rct_window* w; - window_get_register(w); - +void window_guest_finance_update(rct_window *w) +{ w->frame_no++; widget_invalidate(w, WIDX_TAB_2); @@ -1771,9 +1695,8 @@ void window_guest_finance_update(){ } /* rct2: 0x00697968 */ -void window_guest_finance_invalidate(){ - rct_window* w; - window_get_register(w); +void window_guest_finance_invalidate(rct_window *w) +{ colour_scheme_update(w); if (window_guest_page_widgets[w->page] != w->widgets){ @@ -1803,12 +1726,8 @@ void window_guest_finance_invalidate(){ } /* rct2: 0x00697A08 */ -void window_guest_finance_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_guest_finance_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_guest_overview_tab_paint(w, dpi); window_guest_stats_tab_paint(w, dpi); @@ -1886,10 +1805,8 @@ void window_guest_finance_paint(){ } /* rct2: 0x00697E33 */ -void window_guest_thoughts_resize(){ - rct_window* w; - window_get_register(w); - +void window_guest_thoughts_resize(rct_window *w) +{ rct_peep* peep = GET_PEEP(w->number); if (peep->var_45 & 1){ peep->var_45 &=~(1 << 0); @@ -1900,10 +1817,8 @@ void window_guest_thoughts_resize(){ } /* rct2: 0x00697EB4 */ -void window_guest_thoughts_update(){ - rct_window* w; - window_get_register(w); - +void window_guest_thoughts_update(rct_window *w) +{ w->frame_no++; widget_invalidate(w, WIDX_TAB_2); @@ -1911,9 +1826,8 @@ void window_guest_thoughts_update(){ } /* rct2: 0x00697C8A */ -void window_guest_thoughts_invalidate(){ - rct_window* w; - window_get_register(w); +void window_guest_thoughts_invalidate(rct_window *w) +{ colour_scheme_update(w); if (window_guest_page_widgets[w->page] != w->widgets){ @@ -1943,12 +1857,8 @@ void window_guest_thoughts_invalidate(){ } /* rct2: 0x00697D2A */ -void window_guest_thoughts_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_guest_thoughts_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_guest_overview_tab_paint(w, dpi); window_guest_stats_tab_paint(w, dpi); @@ -1989,10 +1899,8 @@ void window_guest_thoughts_paint(){ /* rct2: 0x00698294 */ -void window_guest_inventory_resize(){ - rct_window* w; - window_get_register(w); - +void window_guest_inventory_resize(rct_window *w) +{ rct_peep* peep = GET_PEEP(w->number); if (peep->var_45 & (1<<3)){ peep->var_45 &= ~(1 << 3); @@ -2003,10 +1911,8 @@ void window_guest_inventory_resize(){ } /* rct2: 0x00698315 */ -void window_guest_inventory_update(){ - rct_window* w; - window_get_register(w); - +void window_guest_inventory_update(rct_window *w) +{ w->frame_no++; widget_invalidate(w, WIDX_TAB_2); @@ -2014,9 +1920,8 @@ void window_guest_inventory_update(){ } /* rct2: 0x00697EE1 */ -void window_guest_inventory_invalidate(){ - rct_window* w; - window_get_register(w); +void window_guest_inventory_invalidate(rct_window *w) +{ colour_scheme_update(w); if (window_guest_page_widgets[w->page] != w->widgets){ @@ -2046,12 +1951,8 @@ void window_guest_inventory_invalidate(){ } /* rct2: 0x00697F81 */ -void window_guest_inventory_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_guest_inventory_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_guest_overview_tab_paint(w, dpi); window_guest_stats_tab_paint(w, dpi); diff --git a/src/windows/guest_list.c b/src/windows/guest_list.c index 47fff45313..145defa3b5 100644 --- a/src/windows/guest_list.c +++ b/src/windows/guest_list.c @@ -72,46 +72,45 @@ static rct_widget window_guest_list_widgets[] = { { WIDGETS_END }, }; -static void window_guest_list_emptysub() { } -static void window_guest_list_mouseup(); -static void window_guest_list_resize(); +static void window_guest_list_mouseup(rct_window *w, int widgetIndex); +static void window_guest_list_resize(rct_window *w); static void window_guest_list_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_guest_list_dropdown(); +static void window_guest_list_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_guest_list_update(rct_window *w); -static void window_guest_list_scrollgetsize(); -static void window_guest_list_scrollmousedown(); -static void window_guest_list_scrollmouseover(); -static void window_guest_list_tooltip(); -static void window_guest_list_invalidate(); -static void window_guest_list_paint(); -static void window_guest_list_scrollpaint(); +static void window_guest_list_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_guest_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_guest_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_guest_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_guest_list_invalidate(rct_window *w); +static void window_guest_list_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_guest_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_guest_list_events[] = { - window_guest_list_emptysub, +static rct_window_event_list window_guest_list_events = { + NULL, window_guest_list_mouseup, window_guest_list_resize, window_guest_list_mousedown, window_guest_list_dropdown, - window_guest_list_emptysub, + NULL, window_guest_list_update, - window_guest_list_emptysub, - window_guest_list_emptysub, - window_guest_list_emptysub, - window_guest_list_emptysub, - window_guest_list_emptysub, - window_guest_list_emptysub, - window_guest_list_emptysub, - window_guest_list_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_guest_list_scrollgetsize, window_guest_list_scrollmousedown, - window_guest_list_emptysub, + NULL, window_guest_list_scrollmouseover, - window_guest_list_emptysub, - window_guest_list_emptysub, - window_guest_list_emptysub, + NULL, + NULL, + NULL, window_guest_list_tooltip, - window_guest_list_emptysub, - window_guest_list_emptysub, + NULL, + NULL, window_guest_list_invalidate, window_guest_list_paint, window_guest_list_scrollpaint @@ -148,7 +147,7 @@ void window_guest_list_open() if (window != NULL) return; - window = window_create_auto_pos(350, 330, (uint32*)window_guest_list_events, WC_GUEST_LIST, WF_10 | WF_RESIZABLE); + window = window_create_auto_pos(350, 330, &window_guest_list_events, WC_GUEST_LIST, WF_10 | WF_RESIZABLE); window->widgets = window_guest_list_widgets; window->enabled_widgets = (1 << WIDX_CLOSE) | @@ -265,13 +264,8 @@ void window_guest_list_open_with_filter(int type, int index) * * rct2: 0x00699AAF */ -static void window_guest_list_mouseup() +static void window_guest_list_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -286,12 +280,8 @@ static void window_guest_list_mouseup() * * rct2: 0x00699EA3 */ -static void window_guest_list_resize() +static void window_guest_list_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->min_width = 350; w->min_height = 330; if (w->width < w->min_width) { @@ -373,13 +363,8 @@ static void window_guest_list_mousedown(int widgetIndex, rct_window*w, rct_widge * * rct2: 0x00699AE1 */ -static void window_guest_list_dropdown() +static void window_guest_list_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short dropdownIndex, widgetIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - switch (widgetIndex) { case WIDX_PAGE_DROPDOWN_BUTTON: if (dropdownIndex == -1) @@ -414,14 +399,11 @@ static void window_guest_list_update(rct_window *w) * * rct2: 0x00699C55 */ -static void window_guest_list_scrollgetsize() +static void window_guest_list_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int i, y, numGuests, spriteIndex, width, height; - rct_window *w; + int i, y, numGuests, spriteIndex; rct_peep *peep; - window_get_register(w); - switch (_window_guest_list_selected_tab) { case PAGE_INDIVIDUAL: // Count the number of guests @@ -467,25 +449,19 @@ static void window_guest_list_scrollgetsize() window_invalidate(w); } - width = 447; - height = y; - - window_scrollsize_set_registers(width, height); + *width = 447; + *height = y; } /** * * rct2: 0x00699D7D */ -static void window_guest_list_scrollmousedown() +static void window_guest_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { int i, spriteIndex; - short x, y, scrollIndex; - rct_window *w; rct_peep *peep; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - switch (_window_guest_list_selected_tab) { case PAGE_INDIVIDUAL: i = y / 10; @@ -525,13 +501,9 @@ static void window_guest_list_scrollmousedown() * * rct2: 0x00699D3B */ -static void window_guest_list_scrollmouseover() +static void window_guest_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { int i; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); i = y / (_window_guest_list_selected_tab == PAGE_INDIVIDUAL ? 10 : 21); i += _window_guest_list_selected_page * 3173; @@ -545,7 +517,7 @@ static void window_guest_list_scrollmouseover() * * rct2: 0x00699E4A */ -static void window_guest_list_tooltip() +static void window_guest_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } @@ -554,11 +526,8 @@ static void window_guest_list_tooltip() * * rct2: 0x00699511 */ -static void window_guest_list_invalidate() +static void window_guest_list_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); w->pressed_widgets &= ~(1 << WIDX_TAB_1); @@ -587,13 +556,9 @@ static void window_guest_list_invalidate() * * rct2: 0x006995CC */ -static void window_guest_list_paint() +static void window_guest_list_paint(rct_window *w, rct_drawpixelinfo *dpi) { int i, x, y, format; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); // Widgets window_draw_widgets(w, dpi); @@ -647,17 +612,13 @@ static void window_guest_list_paint() * * rct2: 0x00699701 */ -static void window_guest_list_scrollpaint() +static void window_guest_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int spriteIndex, format, numGuests, i, j, y; - rct_window *w; - rct_drawpixelinfo *dpi; rct_peep *peep; rct_peep_thought *thought; uint32 argument_1, argument_2; - window_paint_get_registers(w, dpi); - // Background fill gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ((char*)0x0141FC48)[w->colours[1] * 8]); diff --git a/src/windows/install_track.c b/src/windows/install_track.c index c98aca69d0..6a8a25517c 100644 --- a/src/windows/install_track.c +++ b/src/windows/install_track.c @@ -53,42 +53,41 @@ static rct_widget window_install_track_widgets[] = { { WIDGETS_END }, }; -static void window_install_track_emptysub() { } -static void window_install_track_close(); -static void window_install_track_mouseup(); -static void window_install_track_invalidate(); -static void window_install_track_paint(); -static void window_install_track_text_input(); +static void window_install_track_close(rct_window *w); +static void window_install_track_mouseup(rct_window *w, int widgetIndex); +static void window_install_track_invalidate(rct_window *w); +static void window_install_track_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_install_track_text_input(rct_window *w, int widgetIndex, char *text); -static void* window_install_track_events[] = { - (uint32*)window_install_track_close, - (uint32*)window_install_track_mouseup, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_text_input, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_emptysub, - (uint32*)window_install_track_invalidate, - (uint32*)window_install_track_paint, - (uint32*)window_install_track_emptysub +static rct_window_event_list window_install_track_events = { + window_install_track_close, + window_install_track_mouseup, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_install_track_text_input, + NULL, + NULL, + NULL, + NULL, + NULL, + window_install_track_invalidate, + window_install_track_paint, + NULL }; ride_list_item _window_install_track_item; @@ -127,7 +126,7 @@ void window_install_track_open(const char* path) x = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) / 2 - 201; y = max(28, RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_HEIGHT, uint16) / 2 - 200); - w = window_create(x, y, 402, 400, (uint32*)window_install_track_events, WC_INSTALL_TRACK, 0); + w = window_create(x, y, 402, 400, &window_install_track_events, WC_INSTALL_TRACK, 0); w->widgets = window_install_track_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_ROTATE) | (1 << WIDX_TOGGLE_SCENERY) | (1 << WIDX_INSTALL) | (1 << WIDX_CANCEL); window_init_scroll_widgets(w); @@ -210,7 +209,7 @@ static void window_install_track_select(rct_window *w, int index) * * rct2: 0x006D41DC */ -static void window_install_track_close() +static void window_install_track_close(rct_window *w) { free(RCT2_GLOBAL(RCT2_ADDRESS_TRACK_DESIGN_CACHE, void*)); } @@ -219,12 +218,9 @@ static void window_install_track_close() * * rct2: 0x006D407A */ -static void window_install_track_mouseup() +static void window_install_track_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex, result; - - window_widget_get_registers(w, widgetIndex); + int result; switch (widgetIndex) { case WIDX_CLOSE: @@ -264,10 +260,8 @@ static void window_install_track_mouseup() * * rct2: 0x006D3B06 */ -static void window_install_track_invalidate() +static void window_install_track_invalidate(rct_window *w) { - rct_window *w; - window_get_register(w); colour_scheme_update(w); w->pressed_widgets |= 1 << WIDX_TRACK_PREVIEW; @@ -288,10 +282,8 @@ static void window_install_track_invalidate() * * rct2: 0x006D3B1F */ -static void window_install_track_paint() +static void window_install_track_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *widget; rct_track_design *trackDesign = NULL; uint8 *image, *trackDesignList = RCT2_ADDRESS(RCT2_ADDRESS_TRACK_LIST, uint8); @@ -300,8 +292,6 @@ static void window_install_track_paint() int x, y, colour, gForces, airTime; rct_g1_element tmpElement, *subsituteElement; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); if (w->track_list.var_482 == 0xFFFF) @@ -467,21 +457,14 @@ static void window_install_track_paint() * * rct2: 0x006D40A7 */ -static void window_install_track_text_input(){ - short widgetIndex; - rct_window *w; - char _cl; - char* text; - - window_text_input_get_registers(w, widgetIndex, _cl, text); - if (_cl == 0) - { +static void window_install_track_text_input(rct_window *w, int widgetIndex, char *text) +{ + if (text == NULL) { window_close(w); return; } - if (widgetIndex == WIDX_INSTALL){ - + if (widgetIndex == WIDX_INSTALL) { char* extension_pointer = track_dest_name; while (*extension_pointer++ != '.'); --extension_pointer; diff --git a/src/windows/land.c b/src/windows/land.c index 02bcd0961b..7e8c0e385b 100644 --- a/src/windows/land.c +++ b/src/windows/land.c @@ -53,47 +53,46 @@ static rct_widget window_land_widgets[] = { { WIDGETS_END }, }; -static void window_land_emptysub() { } -static void window_land_close(); -static void window_land_mouseup(); +static void window_land_close(rct_window *w); +static void window_land_mouseup(rct_window *w, int widgetIndex); static void window_land_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_land_dropdown(); +static void window_land_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_land_update(rct_window *w); -static void window_land_invalidate(); -static void window_land_paint(); -static void window_land_textinput(); +static void window_land_invalidate(rct_window *w); +static void window_land_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_land_textinput(rct_window *w, int widgetIndex, char *text); static void window_land_inputsize(rct_window *w); -static void* window_land_events[] = { +static rct_window_event_list window_land_events = { window_land_close, window_land_mouseup, - window_land_emptysub, + NULL, window_land_mousedown, window_land_dropdown, - window_land_emptysub, + NULL, window_land_update, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_land_textinput, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, - window_land_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_land_invalidate, window_land_paint, - window_land_emptysub + NULL }; static char window_land_floor_texture_order[] = { @@ -127,7 +126,7 @@ void window_land_open() if (window_find_by_class(WC_LAND) != NULL) return; - window = window_create(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 98, 29, 98, 126, (uint32*)window_land_events, WC_LAND, 0); + window = window_create(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 98, 29, 98, 126, &window_land_events, WC_LAND, 0); window->widgets = window_land_widgets; window->enabled_widgets = (1 << WIDX_CLOSE) | @@ -153,7 +152,7 @@ void window_land_open() * * rct2: 0x006640A5 */ -static void window_land_close() +static void window_land_close(rct_window *w) { // If the tool wasn't changed, turn tool off if (land_tool_is_active()) @@ -164,13 +163,9 @@ static void window_land_close() * * rct2: 0x00664064 */ -static void window_land_mouseup() +static void window_land_mouseup(rct_window *w, int widgetIndex) { int limit; - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); switch (widgetIndex) { case WIDX_CLOSE: @@ -267,13 +262,9 @@ static void window_land_mousedown(int widgetIndex, rct_window*w, rct_widget* wid * * rct2: 0x00664090 */ -static void window_land_dropdown() +static void window_land_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { int type; - short dropdownIndex, widgetIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); switch (widgetIndex) { case WIDX_FLOOR: @@ -311,18 +302,12 @@ static void window_land_dropdown() } } -static void window_land_textinput() +static void window_land_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; int size; char* end; - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex != WIDX_PREVIEW || !result) + if (widgetIndex != WIDX_PREVIEW || text == NULL) return; size = strtol(text, &end, 10); @@ -355,11 +340,8 @@ static void window_land_update(rct_window *w) * * rct2: 0x00663F20 */ -static void window_land_invalidate() +static void window_land_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); w->pressed_widgets = (1 << WIDX_PREVIEW); @@ -381,15 +363,11 @@ static void window_land_invalidate() * * rct2: 0x00663F7C */ -static void window_land_paint() +static void window_land_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int x, y, numTiles; money32 price; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); x = w->x + (window_land_widgets[WIDX_PREVIEW].left + window_land_widgets[WIDX_PREVIEW].right) / 2; diff --git a/src/windows/land_rights.c b/src/windows/land_rights.c index a9bdad8db6..4585068c18 100644 --- a/src/windows/land_rights.c +++ b/src/windows/land_rights.c @@ -56,44 +56,43 @@ static rct_widget window_land_rights_widgets[] = { static int window_land_rights_should_close(); -static void window_land_rights_emptysub() { } -static void window_land_rights_close(); -static void window_land_rights_mouseup(); -static void window_land_rights_update(); -static void window_land_rights_invalidate(); -static void window_land_rights_paint(); -static void window_land_rights_textinput(); +static void window_land_rights_close(rct_window *w); +static void window_land_rights_mouseup(rct_window *w, int widgetIndex); +static void window_land_rights_update(rct_window *w); +static void window_land_rights_invalidate(rct_window *w); +static void window_land_rights_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_land_rights_textinput(rct_window *w, int widgetIndex, char *text); static void window_land_rights_inputsize(rct_window *w); -static void* window_land_rights_events[] = { +static rct_window_event_list window_land_rights_events = { window_land_rights_close, window_land_rights_mouseup, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, + NULL, + NULL, + NULL, + NULL, window_land_rights_update, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_land_rights_textinput, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, - window_land_rights_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_land_rights_invalidate, window_land_rights_paint, - window_land_rights_emptysub + NULL }; void window_land_rights_open() @@ -104,7 +103,7 @@ void window_land_rights_open() if (window_find_by_class(WC_LAND_RIGHTS) != NULL) return; - window = window_create(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 98, 29, 98, 94, (uint32*)window_land_rights_events, WC_LAND_RIGHTS, 0); + window = window_create(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 98, 29, 98, 94, &window_land_rights_events, WC_LAND_RIGHTS, 0); window->widgets = window_land_rights_widgets; window->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_DECREMENT) | (1 << WIDX_INCREMENT) | (1 << WIDX_PREVIEW) | (1 << WIDX_BUY_LAND_RIGHTS) | (1 << WIDX_BUY_CONSTRUCTION_RIGHTS); @@ -120,7 +119,7 @@ void window_land_rights_open() show_land_rights(); } -static void window_land_rights_close() +static void window_land_rights_close(rct_window *w) { //if (LandRightsMode) // hide_land_rights(); @@ -131,13 +130,9 @@ static void window_land_rights_close() tool_cancel(); } -static void window_land_rights_mouseup() +static void window_land_rights_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; int limit; - short widgetIndex; - - window_widget_get_registers(w, widgetIndex); switch (widgetIndex) { case WIDX_CLOSE: @@ -187,18 +182,12 @@ static void window_land_rights_mouseup() } } -static void window_land_rights_textinput() +static void window_land_rights_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; int size; char* end; - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex != WIDX_PREVIEW || !result) + if (widgetIndex != WIDX_PREVIEW || text == NULL) return; size = strtol(text, &end, 10); @@ -224,11 +213,8 @@ static void window_land_rights_update(rct_window *w) window_close(w); } -static void window_land_rights_invalidate() +static void window_land_rights_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); // Set the preview image button to be pressed down @@ -241,14 +227,10 @@ static void window_land_rights_invalidate() 0xFFFFFFFF; } -static void window_land_rights_paint() +static void window_land_rights_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int x, y; - window_paint_get_registers(w, dpi); - x = w->x + (window_land_rights_widgets[WIDX_PREVIEW].left + window_land_rights_widgets[WIDX_PREVIEW].right) / 2; y = w->y + (window_land_rights_widgets[WIDX_PREVIEW].top + window_land_rights_widgets[WIDX_PREVIEW].bottom) / 2; diff --git a/src/windows/loadsave.c b/src/windows/loadsave.c index 5b83b99b58..55da869e33 100644 --- a/src/windows/loadsave.c +++ b/src/windows/loadsave.c @@ -64,45 +64,44 @@ static rct_widget window_loadsave_widgets[] = { #pragma region Events -void window_loadsave_emptysub() { } -static void window_loadsave_close(); -static void window_loadsave_mouseup(); +static void window_loadsave_close(rct_window *w); +static void window_loadsave_mouseup(rct_window *w, int widgetIndex); static void window_loadsave_update(rct_window *w); -static void window_loadsave_scrollgetsize(); -static void window_loadsave_scrollmousedown(); -static void window_loadsave_scrollmouseover(); -static void window_loadsave_textinput(); -static void window_loadsave_tooltip(); -static void window_loadsave_invalidate(); -static void window_loadsave_paint(); -static void window_loadsave_scrollpaint(); +static void window_loadsave_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_loadsave_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_loadsave_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_loadsave_textinput(rct_window *w, int widgetIndex, char *text); +static void window_loadsave_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_loadsave_invalidate(rct_window *w); +static void window_loadsave_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_loadsave_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_loadsave_events[] = { +static rct_window_event_list window_loadsave_events = { window_loadsave_close, window_loadsave_mouseup, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, - window_loadsave_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_loadsave_scrollgetsize, window_loadsave_scrollmousedown, - window_loadsave_emptysub, + NULL, window_loadsave_scrollmouseover, window_loadsave_textinput, - window_loadsave_emptysub, - window_loadsave_emptysub, + NULL, + NULL, window_loadsave_tooltip, - window_loadsave_emptysub, - window_loadsave_emptysub, + NULL, + NULL, window_loadsave_invalidate, window_loadsave_paint, window_loadsave_scrollpaint @@ -154,7 +153,7 @@ rct_window *window_loadsave_open(int type, char *defaultName) w = window_bring_to_front_by_class(WC_LOADSAVE); if (w == NULL) { - w = window_create_centred(WW, WH, (uint32*)window_loadsave_events, WC_LOADSAVE, WF_STICK_TO_FRONT); + w = window_create_centred(WW, WH, &window_loadsave_events, WC_LOADSAVE, WF_STICK_TO_FRONT); w->widgets = window_loadsave_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_SORT_NAME) | (1 << WIDX_SORT_DATE) | (1 << WIDX_BROWSE); w->colours[0] = 7; @@ -253,7 +252,7 @@ rct_window *window_loadsave_open(int type, char *defaultName) return w; } -static void window_loadsave_close() +static void window_loadsave_close(rct_window *w) { if (_listItems != NULL) { free(_listItems); @@ -263,15 +262,11 @@ static void window_loadsave_close() window_close_by_class(WC_LOADSAVE_OVERWRITE_PROMPT); } -static void window_loadsave_mouseup() +static void window_loadsave_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex; int result; char filename[MAX_PATH], filter[MAX_PATH]; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex){ case WIDX_CLOSE: window_close(w); @@ -347,26 +342,14 @@ static int has_extension(char *path, char *extension) return 1; } -static void window_loadsave_scrollgetsize() +static void window_loadsave_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; - int width, height; - - window_get_register(w); - - width = 0; - height = w->no_list_items * 10; - - window_scrollsize_set_registers(width, height); + *height = w->no_list_items * 10; } -static void window_loadsave_scrollmousedown() +static void window_loadsave_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { int selectedItem; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); selectedItem = y / 10; if (selectedItem >= w->no_list_items) @@ -408,13 +391,9 @@ static void window_loadsave_scrollmousedown() } } -static void window_loadsave_scrollmouseover() +static void window_loadsave_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { int selectedItem; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); selectedItem = y / 10; if (selectedItem >= w->no_list_items) @@ -425,17 +404,12 @@ static void window_loadsave_scrollmouseover() window_invalidate(w); } -static void window_loadsave_textinput() +static void window_loadsave_textinput(rct_window *w, int widgetIndex, char *text) { - rct_window *w; - short widgetIndex; - uint8 result; - char *text, path[MAX_PATH]; + char path[MAX_PATH]; int i, overwrite; - window_textinput_get_registers(w, widgetIndex, result, text); - - if (!result || text[0] == 0) + if (text == NULL || text[0] == 0) return; if (gLoadSaveTitleSequenceSave) { @@ -471,26 +445,18 @@ static void window_loadsave_textinput() window_loadsave_select(w, path); } -static void window_loadsave_tooltip() +static void window_loadsave_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } -static void window_loadsave_invalidate() +static void window_loadsave_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } -static void window_loadsave_paint() +static void window_loadsave_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); if (_shortenedDirectory[0] == '\0') @@ -551,16 +517,12 @@ static void shorten_path(char* path, char* buffer, int available_width){ return; } -static void window_loadsave_scrollpaint() +static void window_loadsave_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int i, y; - rct_window *w; - rct_drawpixelinfo *dpi; rct_string_id stringId, templateStringId = 3165; char *templateString; - window_paint_get_registers(w, dpi); - gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, RCT2_ADDRESS(0x0141FC48,uint8)[w->colours[1] * 8]); templateString = (char*)language_get_string(templateStringId); @@ -868,40 +830,39 @@ static rct_widget window_overwrite_prompt_widgets[] = { { WIDGETS_END } }; -static void window_overwrite_prompt_emptysub(){} -static void window_overwrite_prompt_mouseup(); -static void window_overwrite_prompt_invalidate(); -static void window_overwrite_prompt_paint(); +static void window_overwrite_prompt_mouseup(rct_window *w, int widgetIndex); +static void window_overwrite_prompt_invalidate(rct_window *w); +static void window_overwrite_prompt_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_overwrite_prompt_events[] = { - window_overwrite_prompt_emptysub, +static rct_window_event_list window_overwrite_prompt_events = { + NULL, window_overwrite_prompt_mouseup, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, - window_overwrite_prompt_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_overwrite_prompt_invalidate, window_overwrite_prompt_paint, - window_overwrite_prompt_emptysub + NULL }; static char _window_overwrite_prompt_name[256]; @@ -913,7 +874,7 @@ static rct_window *window_overwrite_prompt_open(const char *name, const char *pa window_close_by_class(WC_LOADSAVE_OVERWRITE_PROMPT); - w = window_create_centred(OVERWRITE_WW, OVERWRITE_WH, (uint32*)window_overwrite_prompt_events, WC_LOADSAVE_OVERWRITE_PROMPT, WF_STICK_TO_FRONT); + w = window_create_centred(OVERWRITE_WW, OVERWRITE_WH, &window_overwrite_prompt_events, WC_LOADSAVE_OVERWRITE_PROMPT, WF_STICK_TO_FRONT); w->widgets = window_overwrite_prompt_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_OVERWRITE_CANCEL) | (1 << WIDX_OVERWRITE_OVERWRITE); window_init_scroll_widgets(w); @@ -926,14 +887,11 @@ static rct_window *window_overwrite_prompt_open(const char *name, const char *pa return w; } -static void window_overwrite_prompt_mouseup() +static void window_overwrite_prompt_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w, *loadsaveWindow; + rct_window *loadsaveWindow; - window_widget_get_registers(w, widgetIndex); - - switch (widgetIndex){ + switch (widgetIndex) { case WIDX_OVERWRITE_OVERWRITE: loadsaveWindow = window_find_by_class(WC_LOADSAVE); if (loadsaveWindow != NULL) @@ -943,24 +901,17 @@ static void window_overwrite_prompt_mouseup() case WIDX_OVERWRITE_CANCEL: case WIDX_OVERWRITE_CLOSE: window_close(w); + break; } } -static void window_overwrite_prompt_invalidate() +static void window_overwrite_prompt_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } -static void window_overwrite_prompt_paint() +static void window_overwrite_prompt_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); rct_string_id templateStringId = 3165; diff --git a/src/windows/main.c b/src/windows/main.c index cd9e3ace06..1d6fdb8d10 100644 --- a/src/windows/main.c +++ b/src/windows/main.c @@ -28,38 +28,37 @@ rct_widget window_main_widgets[] = { { WIDGETS_END }, }; -void window_main_empty(){} -void window_main_paint(); +void window_main_paint(rct_window *w, rct_drawpixelinfo *dpi); -void* window_main_events[] = { - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, - window_main_empty, +static rct_window_event_list window_main_events = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_main_paint, - window_main_empty + NULL }; /** @@ -75,7 +74,7 @@ void window_main_open() window = window_create( 0, 0, window_main_widgets[0].right, window_main_widgets[0].bottom, - (uint32*)window_main_events, + &window_main_events, WC_MAIN_WINDOW, WF_STICK_TO_BACK ); @@ -97,12 +96,7 @@ void window_main_open() * This function immediately jumps to 0x00685BE1 this is the second function * decompiled. */ -void window_main_paint() +void window_main_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window* w; - rct_drawpixelinfo* dpi; - - window_paint_get_registers(w, dpi); - viewport_render(dpi, w->viewport, dpi->x, dpi->y, dpi->x + dpi->width, dpi->y + dpi->height); } diff --git a/src/windows/map.c b/src/windows/map.c index 22ed38688c..3cc06577be 100644 --- a/src/windows/map.c +++ b/src/windows/map.c @@ -96,50 +96,49 @@ const rct_xy16 MiniMapOffsets[] = { { 0 - 8, 256 } }; -static void window_map_emptysub() { } -static void window_map_close(); -static void window_map_resize(); -static void window_map_mouseup(); +static void window_map_close(rct_window *w); +static void window_map_resize(rct_window *w); +static void window_map_mouseup(rct_window *w, int widgetIndex); static void window_map_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); static void window_map_update(rct_window *w); -static void window_map_toolupdate(); -static void window_map_tooldown(); -static void window_map_tooldrag(); -static void window_map_toolabort(); -static void window_map_scrollgetsize(); -static void window_map_scrollmousedown(); -static void window_map_textinput(); -static void window_map_tooltip(); -static void window_map_invalidate(); -static void window_map_paint(); -static void window_map_scrollpaint(); +static void window_map_toolupdate(rct_window* w, int widgetIndex, int x, int y); +static void window_map_tooldown(rct_window* w, int widgetIndex, int x, int y); +static void window_map_tooldrag(rct_window* w, int widgetIndex, int x, int y); +static void window_map_toolabort(rct_window *w, int widgetIndex); +static void window_map_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_map_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_map_textinput(rct_window *w, int widgetIndex, char *text); +static void window_map_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_map_invalidate(rct_window *w); +static void window_map_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_map_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_map_events[] = { +static rct_window_event_list window_map_events = { window_map_close, window_map_mouseup, window_map_resize, window_map_mousedown, - window_map_emptysub, - window_map_emptysub, + NULL, + NULL, window_map_update, - window_map_emptysub, - window_map_emptysub, + NULL, + NULL, window_map_toolupdate, window_map_tooldown, window_map_tooldrag, - window_map_emptysub, + NULL, window_map_toolabort, - window_map_emptysub, + NULL, window_map_scrollgetsize, window_map_scrollmousedown, window_map_scrollmousedown, - window_map_emptysub, + NULL, window_map_textinput, - window_map_emptysub, - window_map_emptysub, + NULL, + NULL, window_map_tooltip, - window_map_emptysub, - window_map_emptysub, + NULL, + NULL, window_map_invalidate, window_map_paint, window_map_scrollpaint @@ -190,7 +189,7 @@ void window_map_open() return; RCT2_GLOBAL(RCT2_ADDRESS_MAP_IMAGE_DATA, uint32*) = map_image_data; - w = window_create_auto_pos(245, 259, (uint32*)window_map_events, WC_MAP, WF_10); + w = window_create_auto_pos(245, 259, &window_map_events, WC_MAP, WF_10); w->widgets = window_map_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | @@ -228,12 +227,8 @@ void window_map_open() * * rct2: 0x0068D0F1 */ -static void window_map_close() +static void window_map_close(rct_window *w) { - rct_window *w; - - window_get_register(w); - free(RCT2_GLOBAL(RCT2_ADDRESS_MAP_IMAGE_DATA, uint32*)); if ((RCT2_GLOBAL(RCT2_ADDRESS_INPUT_FLAGS, uint32) & INPUT_FLAG_TOOL_ACTIVE) && RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWCLASS, uint8) == w->classification && @@ -249,16 +244,11 @@ static void window_map_close() * * rct2: 0x0068CFC1 */ -static void window_map_mouseup() +static void window_map_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex; - // Maximum land ownership tool size int landToolSizeLimit; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -374,12 +364,8 @@ static void window_map_mouseup() * * rct2: 0x0068D7DC */ -static void window_map_resize() +static void window_map_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->flags |= WF_RESIZABLE; w->min_width = 245; w->max_width = 800; @@ -445,14 +431,8 @@ static void window_map_update(rct_window *w) * * rct2: 0x0068D093 */ -static void window_map_toolupdate() +static void window_map_toolupdate(rct_window* w, int widgetIndex, int x, int y) { - rct_window *w; - short widgetIndex; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - switch (widgetIndex) { case WIDX_SET_LAND_RIGHTS: window_map_set_land_rights_tool_update(x, y); @@ -470,14 +450,8 @@ static void window_map_toolupdate() * * rct2: 0x0068D074 */ -static void window_map_tooldown() +static void window_map_tooldown(rct_window* w, int widgetIndex, int x, int y) { - rct_window *w; - short widgetIndex; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - switch (widgetIndex) { case WIDX_BUILD_PARK_ENTRANCE: window_map_place_park_entrance_tool_down(x, y); @@ -492,14 +466,8 @@ static void window_map_tooldown() * * rct2: 0x0068D088 */ -static void window_map_tooldrag() +static void window_map_tooldrag(rct_window* w, int widgetIndex, int x, int y) { - rct_window *w; - short widgetIndex; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - switch (widgetIndex) { case WIDX_SET_LAND_RIGHTS: if (RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) & (1 << 0)) { @@ -522,14 +490,8 @@ static void window_map_tooldrag() * * rct2: 0x0068D055 */ -static void window_map_toolabort() +static void window_map_toolabort(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - switch (widgetIndex) { case WIDX_SET_LAND_RIGHTS: window_invalidate(w); @@ -557,28 +519,22 @@ static void window_map_toolabort() * * rct2: 0x0068D7CC */ -static void window_map_scrollgetsize() +static void window_map_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int width, height; + window_map_invalidate(w); - window_map_invalidate(); - - width = 512; - height = 512; - window_scrollsize_set_registers(width, height); + *width = 512; + *height = 512; } /** * * rct2: 0x0068D726 */ -static void window_map_scrollmousedown() +static void window_map_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { int mapX, mapY, mapZ; - short x, y, scrollIndex; - rct_window *w, *mainWindow; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); + rct_window *mainWindow; map_window_screen_to_map(x, y, &mapX, &mapY); mapX = clamp(0, mapX, 8191); @@ -647,46 +603,41 @@ static void window_map_scrollmousedown() } } -static void window_map_textinput() +static void window_map_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; int size; char* end; - window_textinput_get_registers(w, widgetIndex, result, text); + if (text == NULL) + return; - if (result) { - switch (widgetIndex) { - case WIDX_LAND_TOOL: - size = strtol(text, &end, 10); - if (*end == '\0') { - if (size < 1) size = 1; - if (size > 64) size = 64; - RCT2_GLOBAL(RCT2_ADDRESS_LAND_TOOL_SIZE, sint16) = size; - window_invalidate(w); - } - break; - case WIDX_MAP_SIZE_SPINNER: - size = strtol(text, &end, 10); - if (*end == '\0') { - if (size < 50) size = 50; - if (size > 256) size = 256; - int currentSize = RCT2_GLOBAL(RCT2_ADDRESS_MAP_SIZE, uint16); - while (size < currentSize) { - map_window_decrease_map_size(); - currentSize--; - } - while (size > currentSize) { - map_window_increase_map_size(); - currentSize++; - } - window_invalidate(w); - } - break; + switch (widgetIndex) { + case WIDX_LAND_TOOL: + size = strtol(text, &end, 10); + if (*end == '\0') { + if (size < 1) size = 1; + if (size > 64) size = 64; + RCT2_GLOBAL(RCT2_ADDRESS_LAND_TOOL_SIZE, sint16) = size; + window_invalidate(w); } + break; + case WIDX_MAP_SIZE_SPINNER: + size = strtol(text, &end, 10); + if (*end == '\0') { + if (size < 50) size = 50; + if (size > 256) size = 256; + int currentSize = RCT2_GLOBAL(RCT2_ADDRESS_MAP_SIZE, uint16); + while (size < currentSize) { + map_window_decrease_map_size(); + currentSize--; + } + while (size > currentSize) { + map_window_increase_map_size(); + currentSize++; + } + window_invalidate(w); + } + break; } } @@ -694,7 +645,7 @@ static void window_map_textinput() * * rct2: 0x0068D140 */ -static void window_map_tooltip() +static void window_map_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, short) = 3157; } @@ -703,13 +654,11 @@ static void window_map_tooltip() * * rct2: 0x0068CA8F */ -static void window_map_invalidate() +static void window_map_invalidate(rct_window *w) { - rct_window *w; uint64 pressedWidgets; int i, height; - window_get_register(w); colour_scheme_update(w); // Set the pressed widgets @@ -837,14 +786,10 @@ static void window_map_invalidate() * * rct2: 0x0068CDA9 */ -static void window_map_paint() +static void window_map_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int i, x, y; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_map_draw_tab_images(w, dpi); @@ -893,14 +838,10 @@ static void window_map_paint() * * rct2: 0x0068CF23 */ -static void window_map_scrollpaint() +static void window_map_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_g1_element *g1_element, pushed_g1_element; - window_paint_get_registers(w, dpi); - gfx_clear(dpi, 0x0A0A0A0A); g1_element = &g1Elements[0]; diff --git a/src/windows/map_tooltip.c b/src/windows/map_tooltip.c index 3832471df4..a4dc5695c2 100644 --- a/src/windows/map_tooltip.c +++ b/src/windows/map_tooltip.c @@ -29,39 +29,38 @@ static rct_widget window_map_tooltip_widgets[] = { { WIDGETS_END } }; -static void window_map_tooltip_emptysub() { } static void window_map_tooltip_update(rct_window *w); -static void window_map_tooltip_paint(); +static void window_map_tooltip_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_map_tooltip_events[] = { - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, +static rct_window_event_list window_map_tooltip_events = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_map_tooltip_update, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, - window_map_tooltip_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_map_tooltip_paint, - window_map_tooltip_emptysub + NULL }; #define MAP_TOOLTIP_ARGS @@ -122,7 +121,7 @@ static void window_map_tooltip_open() w = window_find_by_class(WC_MAP_TOOLTIP); if (w == NULL) { w = window_create( - x, y, width, height, (uint32*)window_map_tooltip_events, WC_MAP_TOOLTIP, WF_STICK_TO_FRONT | WF_TRANSPARENT | WF_5 + x, y, width, height, &window_map_tooltip_events, WC_MAP_TOOLTIP, WF_STICK_TO_FRONT | WF_TRANSPARENT | WF_5 ); w->widgets = window_map_tooltip_widgets; } else { @@ -147,13 +146,8 @@ static void window_map_tooltip_update(rct_window *w) * * rct2: 0x006EE894 */ -static void window_map_tooltip_paint() +static void window_map_tooltip_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - if (RCT2_GLOBAL(RCT2_ADDRESS_MAP_TOOLTIP_ARGS, rct_string_id) == (rct_string_id)STR_NONE) return; diff --git a/src/windows/mapgen.c b/src/windows/mapgen.c index 01c48c457c..e641556f2c 100644 --- a/src/windows/mapgen.c +++ b/src/windows/mapgen.c @@ -186,124 +186,124 @@ static rct_widget *window_mapgen_page_widgets[] = { #pragma region Events -static void window_mapgen_emptysub() { } - -static void window_mapgen_base_mouseup(); +static void window_mapgen_base_mouseup(rct_window *w, int widgetIndex); static void window_mapgen_base_mousedown(int widgetIndex, rct_window *w, rct_widget* widget); -static void window_mapgen_base_dropdown(); +static void window_mapgen_base_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_mapgen_base_update(rct_window *w); -static void window_mapgen_textinput(); -static void window_mapgen_base_invalidate(); -static void window_mapgen_base_paint(); -static void window_mapgen_random_mouseup(); +static void window_mapgen_textinput(rct_window *w, int widgetIndex, char *text); +static void window_mapgen_base_invalidate(rct_window *w); +static void window_mapgen_base_paint(rct_window *w, rct_drawpixelinfo *dpi); + +static void window_mapgen_random_mouseup(rct_window *w, int widgetIndex); static void window_mapgen_random_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); static void window_mapgen_random_update(rct_window *w); -static void window_mapgen_random_invalidate(); -static void window_mapgen_random_paint(); -static void window_mapgen_simplex_mouseup(); -static void window_mapgen_simplex_mousedown(int widgetIndex, rct_window *w, rct_widget* widget); -static void window_mapgen_simplex_dropdown(); -static void window_mapgen_simplex_update(rct_window *w); -static void window_mapgen_simplex_invalidate(); -static void window_mapgen_simplex_paint(); +static void window_mapgen_random_invalidate(rct_window *w); +static void window_mapgen_random_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_mapgen_base_events[] = { - window_mapgen_emptysub, +static void window_mapgen_simplex_mouseup(rct_window *w, int widgetIndex); +static void window_mapgen_simplex_mousedown(int widgetIndex, rct_window *w, rct_widget* widget); +static void window_mapgen_simplex_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); +static void window_mapgen_simplex_update(rct_window *w); +static void window_mapgen_simplex_invalidate(rct_window *w); +static void window_mapgen_simplex_paint(rct_window *w, rct_drawpixelinfo *dpi); + +static rct_window_event_list window_mapgen_base_events = { + NULL, window_mapgen_base_mouseup, - window_mapgen_emptysub, + NULL, window_mapgen_base_mousedown, window_mapgen_base_dropdown, - window_mapgen_emptysub, + NULL, window_mapgen_base_update, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_mapgen_textinput, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_mapgen_base_invalidate, window_mapgen_base_paint, - window_mapgen_emptysub + NULL }; -static void* window_mapgen_random_events[] = { - window_mapgen_emptysub, +static rct_window_event_list window_mapgen_random_events = { + NULL, window_mapgen_random_mouseup, - window_mapgen_emptysub, + NULL, window_mapgen_random_mousedown, - window_mapgen_emptysub, - window_mapgen_emptysub, + NULL, + NULL, window_mapgen_random_update, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_mapgen_random_invalidate, window_mapgen_random_paint, - window_mapgen_emptysub + NULL }; -static void* window_mapgen_simplex_events[] = { - window_mapgen_emptysub, +static rct_window_event_list window_mapgen_simplex_events = { + NULL, window_mapgen_simplex_mouseup, - window_mapgen_emptysub, + NULL, window_mapgen_simplex_mousedown, window_mapgen_simplex_dropdown, - window_mapgen_emptysub, + NULL, window_mapgen_simplex_update, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, - window_mapgen_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_mapgen_simplex_invalidate, window_mapgen_simplex_paint, - window_mapgen_emptysub + NULL }; -static void* window_mapgen_page_events[] = { - window_mapgen_base_events, - window_mapgen_random_events, - window_mapgen_simplex_events +static rct_window_event_list *window_mapgen_page_events[] = { + &window_mapgen_base_events, + &window_mapgen_random_events, + &window_mapgen_simplex_events }; #pragma endregion @@ -461,14 +461,10 @@ rct_window *window_mapgen_open() #pragma region Base page -static void window_mapgen_base_mouseup() +static void window_mapgen_base_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; mapgen_settings mapgenSettings; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -572,13 +568,9 @@ static void window_mapgen_base_mousedown(int widgetIndex, rct_window *w, rct_wid } } -static void window_mapgen_base_dropdown() +static void window_mapgen_base_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { int type; - short dropdownIndex, widgetIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); switch (widgetIndex) { case WIDX_FLOOR_TEXTURE: @@ -624,20 +616,13 @@ static void window_mapgen_base_update(rct_window *w) widget_invalidate(w, WIDX_TAB_1); } -static void window_mapgen_textinput() +static void window_mapgen_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; int value; char* end; - window_textinput_get_registers(w, widgetIndex, result, text); - - if (!result) { + if (text == NULL) return; - } value = strtol(text, &end, 10); @@ -661,11 +646,8 @@ static void window_mapgen_textinput() } -static void window_mapgen_base_invalidate() +static void window_mapgen_base_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_mapgen_page_widgets[WINDOW_MAPGEN_PAGE_BASE]) { @@ -680,13 +662,9 @@ static void window_mapgen_base_invalidate() window_mapgen_anchor_border_widgets(w); } -static void window_mapgen_base_paint() +static void window_mapgen_base_paint(rct_window *w, rct_drawpixelinfo *dpi) { uint16 arg; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); window_draw_widgets(w, dpi); window_mapgen_draw_tab_images(dpi, w); @@ -710,14 +688,10 @@ static void window_mapgen_base_paint() #pragma region Random page -static void window_mapgen_random_mouseup() +static void window_mapgen_random_mouseup(rct_window *w, int widgetIndex) { - rct_window * w; - short widgetIndex; mapgen_settings mapgenSettings; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -765,11 +739,8 @@ static void window_mapgen_random_update(rct_window *w) widget_invalidate(w, WIDX_TAB_2); } -static void window_mapgen_random_invalidate() +static void window_mapgen_random_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_mapgen_page_widgets[WINDOW_MAPGEN_PAGE_RANDOM]) { @@ -787,13 +758,8 @@ static void window_mapgen_random_invalidate() window_mapgen_anchor_border_widgets(w); } -static void window_mapgen_random_paint() +static void window_mapgen_random_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_mapgen_draw_tab_images(dpi, w); } @@ -802,14 +768,10 @@ static void window_mapgen_random_paint() #pragma region Simplex page -static void window_mapgen_simplex_mouseup() +static void window_mapgen_simplex_mouseup(rct_window *w, int widgetIndex) { - rct_window * w; - short widgetIndex; mapgen_settings mapgenSettings; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -929,13 +891,9 @@ static void window_mapgen_simplex_mousedown(int widgetIndex, rct_window *w, rct_ } } -static void window_mapgen_simplex_dropdown() +static void window_mapgen_simplex_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { int type; - short dropdownIndex, widgetIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); switch (widgetIndex) { case WIDX_SIMPLEX_FLOOR_TEXTURE: @@ -983,11 +941,8 @@ static void window_mapgen_simplex_update(rct_window *w) widget_invalidate(w, WIDX_TAB_3); } -static void window_mapgen_simplex_invalidate() +static void window_mapgen_simplex_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_mapgen_page_widgets[WINDOW_MAPGEN_PAGE_SIMPLEX]) { @@ -1002,13 +957,9 @@ static void window_mapgen_simplex_invalidate() window_mapgen_anchor_border_widgets(w); } -static void window_mapgen_simplex_paint() +static void window_mapgen_simplex_paint(rct_window *w, rct_drawpixelinfo *dpi) { uint16 arg; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); window_draw_widgets(w, dpi); window_mapgen_draw_tab_images(dpi, w); diff --git a/src/windows/maze_construction.c b/src/windows/maze_construction.c index 0c0ec22bc7..3e08cee16d 100644 --- a/src/windows/maze_construction.c +++ b/src/windows/maze_construction.c @@ -89,42 +89,46 @@ static rct_widget window_maze_construction_widgets[] = { #pragma region Events -static void window_maze_construction_emptysub() {} - -static void window_maze_construction_close(); -static void window_maze_construction_invalidate(); -static void window_maze_construction_paint(); +static void window_maze_construction_close(rct_window *w); +static void window_maze_construction_mouseup(rct_window *w, int widgetIndex); +static void window_maze_construction_resize(rct_window *w); +static void window_maze_construction_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); +static void window_maze_construction_update(rct_window *w); +static void window_ride_construction_toolupdate(rct_window* w, int widgetIndex, int x, int y); +static void window_ride_construction_tooldown(rct_window* w, int widgetIndex, int x, int y); +static void window_maze_construction_invalidate(rct_window *w); +static void window_maze_construction_paint(rct_window *w, rct_drawpixelinfo *dpi); // 0x993F6C -static void* window_maze_construction_events[] = { +static rct_window_event_list window_maze_construction_events = { window_maze_construction_close, - (void*)0x006CD461, - (void*)0x006CD623, - (void*)0x006CD48C, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - (void*)0x006CD767, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - (void*)0x006CD63E, - (void*)0x006CD65D, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, - window_maze_construction_emptysub, + window_maze_construction_mouseup, + window_maze_construction_resize, + window_maze_construction_mousedown, + NULL, + NULL, + window_maze_construction_update, + NULL, + NULL, + window_ride_construction_toolupdate, + window_ride_construction_tooldown, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_maze_construction_invalidate, window_maze_construction_paint, - window_maze_construction_emptysub + NULL }; #pragma endregion @@ -135,7 +139,7 @@ static void* window_maze_construction_events[] = { */ rct_window *window_maze_construction_open() { - rct_window *w = window_create(0, 29, 166, 200, (uint32*)window_maze_construction_events, WC_RIDE_CONSTRUCTION, WF_9); + rct_window *w = window_create(0, 29, 166, 200, &window_maze_construction_events, WC_RIDE_CONSTRUCTION, WF_9); w->widgets = window_maze_construction_widgets; w->enabled_widgets = 0x6F0001C4; @@ -153,12 +157,8 @@ rct_window *window_maze_construction_open() * * rct2: 0x006CD811 */ -static void window_maze_construction_close() +static void window_maze_construction_close(rct_window *w) { - rct_window *w; - - window_get_register(w); - sub_6C9627(); viewport_set_visibility(0); @@ -183,11 +183,65 @@ static void window_maze_construction_close() } } +/** + * + * rct2: 0x006CD461 + */ +static void window_maze_construction_mouseup(rct_window *w, int widgetIndex) +{ + RCT2_CALLPROC_X(0x006CD461, 0, 0, 0, widgetIndex, (int)w, 0, 0); +} + +/** + * + * rct2: 0x006CD623 + */ +static void window_maze_construction_resize(rct_window *w) +{ + RCT2_CALLPROC_X(0x006CD623, 0, 0, 0, 0, (int)w, 0, 0); +} + +/** + * + * rct2: 0x006CD48C + */ +static void window_maze_construction_mousedown(int widgetIndex, rct_window *w, rct_widget *widget) +{ + RCT2_CALLPROC_X(0x006CD48C, 0, 0, 0, widgetIndex, (int)w, (int)widget, 0); +} + +/** + * + * rct2: 0x006CD767 + */ +static void window_maze_construction_update(rct_window *w) +{ + RCT2_CALLPROC_X(0x006CD767, 0, 0, 0, 0, (int)w, 0, 0); +} + +/** + * + * rct2: 0x006CD63E + */ +static void window_ride_construction_toolupdate(rct_window* w, int widgetIndex, int x, int y) +{ + RCT2_CALLPROC_X(0x006CD63E, x, y, 0, widgetIndex, (int)w, 0, 0); +} + +/** + * + * rct2: 0x006CD65D + */ +static void window_ride_construction_tooldown(rct_window* w, int widgetIndex, int x, int y) +{ + RCT2_CALLPROC_X(0x006CD65D, x, y, 0, widgetIndex, (int)w, 0, 0); +} + /** * * rct2: 0x006CD435 */ -static void window_maze_construction_invalidate() +static void window_maze_construction_invalidate(rct_window *w) { rct_ride *ride = GET_RIDE(_currentRideIndex); @@ -200,13 +254,8 @@ static void window_maze_construction_invalidate() * * rct2: 0x006CD45B */ -static void window_maze_construction_paint() +static void window_maze_construction_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } diff --git a/src/windows/music_credits.c b/src/windows/music_credits.c index 1c628bde81..0fad3895c8 100644 --- a/src/windows/music_credits.c +++ b/src/windows/music_credits.c @@ -38,39 +38,38 @@ rct_widget window_music_credits_widgets[] = { { WIDGETS_END }, }; -static void window_music_credits_emptysub() { } -static void window_music_credits_mouseup(); -static void window_music_credits_scrollgetsize(); -static void window_music_credits_paint(); -static void window_music_credits_scrollpaint(); +static void window_music_credits_mouseup(rct_window *w, int widgetIndex); +static void window_music_credits_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_music_credits_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_music_credits_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_music_credits_events[] = { - window_music_credits_emptysub, +static rct_window_event_list window_music_credits_events = { + NULL, window_music_credits_mouseup, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_music_credits_scrollgetsize, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, - window_music_credits_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_music_credits_paint, window_music_credits_scrollpaint }; @@ -91,7 +90,7 @@ void window_music_credits_open() window = window_create_centred( 510, 314, - (uint32*)window_music_credits_events, + &window_music_credits_events, WC_MUSIC_CREDITS, 0 ); @@ -110,13 +109,8 @@ void window_music_credits_open() * * rct2: 0x0066DB2C */ -static void window_music_credits_mouseup() +static void window_music_credits_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -128,26 +122,17 @@ static void window_music_credits_mouseup() * * rct2: 0x0066DB37 */ -static void window_music_credits_scrollgetsize() +static void window_music_credits_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int width, height; - - width = 0; - height = 560; - window_scrollsize_set_registers(width, height); + *height = 560; } /** * * rct2: 0x0066D7B9 */ -static void window_music_credits_paint() +static void window_music_credits_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } @@ -155,12 +140,8 @@ static void window_music_credits_paint() * * rct2: 0x0066D7BF */ -static void window_music_credits_scrollpaint() +static void window_music_credits_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; - window_paint_get_registers(w, dpi); - int x = 245; int y = 2; diff --git a/src/windows/new_campaign.c b/src/windows/new_campaign.c index c618b103e3..edf39c2c48 100644 --- a/src/windows/new_campaign.c +++ b/src/windows/new_campaign.c @@ -61,42 +61,41 @@ static rct_widget window_new_campaign_widgets[] = { }; -static void window_new_campaign_emptysub() { } -static void window_new_campaign_mouseup(); +static void window_new_campaign_mouseup(rct_window *w, int widgetIndex); static void window_new_campaign_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_new_campaign_dropdown(); -static void window_new_campaign_invalidate(); -static void window_new_campaign_paint(); +static void window_new_campaign_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); +static void window_new_campaign_invalidate(rct_window *w); +static void window_new_campaign_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_new_campaign_events[] = { - window_new_campaign_emptysub, +static rct_window_event_list window_new_campaign_events = { + NULL, window_new_campaign_mouseup, - window_new_campaign_emptysub, + NULL, window_new_campaign_mousedown, window_new_campaign_dropdown, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, - window_new_campaign_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_new_campaign_invalidate, window_new_campaign_paint, - window_new_campaign_emptysub + NULL }; uint8 window_new_campaign_rides[MAX_RIDES]; @@ -143,7 +142,7 @@ void window_new_campaign_open(sint16 campaignType) window_close(w); } - w = window_create_auto_pos(350, 107, (uint32*)window_new_campaign_events, WC_NEW_CAMPAIGN, 0); + w = window_create_auto_pos(350, 107, &window_new_campaign_events, WC_NEW_CAMPAIGN, 0); w->widgets = window_new_campaign_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | @@ -220,13 +219,8 @@ static void window_new_campaign_get_shop_items() * * rct2: 0x0069E50B */ -static void window_new_campaign_mouseup() +static void window_new_campaign_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -315,13 +309,8 @@ static void window_new_campaign_mousedown(int widgetIndex, rct_window *w, rct_wi * * rct2: 0x0069E537 */ -static void window_new_campaign_dropdown() +static void window_new_campaign_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; - short widgetIndex, dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex != WIDX_RIDE_DROPDOWN_BUTTON) return; @@ -341,11 +330,8 @@ static void window_new_campaign_dropdown() * * rct2: 0x0069E397 */ -static void window_new_campaign_invalidate() +static void window_new_campaign_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); window_new_campaign_widgets[WIDX_RIDE_LABEL].type = WWT_EMPTY; @@ -392,14 +378,10 @@ static void window_new_campaign_invalidate() * * rct2: 0x0069E493 */ -static void window_new_campaign_paint() +static void window_new_campaign_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int x, y; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); x = w->x + 14; diff --git a/src/windows/new_ride.c b/src/windows/new_ride.c index 220c838de3..c035581e4a 100644 --- a/src/windows/new_ride.c +++ b/src/windows/new_ride.c @@ -197,46 +197,44 @@ static rct_widget window_new_ride_widgets[] = { #pragma region Events -static void window_new_ride_emptysub() { } - -static void window_new_ride_mouseup(); +static void window_new_ride_mouseup(rct_window *w, int widgetIndex); static void window_new_ride_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); static void window_new_ride_update(rct_window *w); -static void window_new_ride_scrollgetsize(); -static void window_new_ride_scrollmousedown(); -static void window_new_ride_scrollmouseover(); -static void window_new_ride_tooltip(); -static void window_new_ride_invalidate(); -static void window_new_ride_paint(); -static void window_new_ride_scrollpaint(); +static void window_new_ride_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_new_ride_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_new_ride_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_new_ride_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_new_ride_invalidate(rct_window *w); +static void window_new_ride_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_new_ride_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); // 0x0098E354 -static void* window_new_ride_events[] = { - window_new_ride_emptysub, +static rct_window_event_list window_new_ride_events = { + NULL, window_new_ride_mouseup, - window_new_ride_emptysub, + NULL, window_new_ride_mousedown, - window_new_ride_emptysub, - window_new_ride_emptysub, + NULL, + NULL, window_new_ride_update, - window_new_ride_emptysub, - window_new_ride_emptysub, - window_new_ride_emptysub, - window_new_ride_emptysub, - window_new_ride_emptysub, - window_new_ride_emptysub, - window_new_ride_emptysub, - window_new_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_new_ride_scrollgetsize, window_new_ride_scrollmousedown, - window_new_ride_emptysub, + NULL, window_new_ride_scrollmouseover, - window_new_ride_emptysub, - window_new_ride_emptysub, - window_new_ride_emptysub, + NULL, + NULL, + NULL, window_new_ride_tooltip, - window_new_ride_emptysub, - window_new_ride_emptysub, + NULL, + NULL, window_new_ride_invalidate, window_new_ride_paint, window_new_ride_scrollpaint @@ -381,7 +379,8 @@ static void window_new_ride_populate_list() */ static void window_new_ride_scroll_to_focused_ride(rct_window *w) { - int scrollWidth, scrollHeight; + int scrollWidth = 0; + int scrollHeight = 0; window_get_scroll_size(w, 0, &scrollWidth, &scrollHeight); // Find row index of the focused ride type @@ -422,7 +421,7 @@ rct_window *window_new_ride_open() window_close_by_class(WC_TRACK_DESIGN_LIST); window_close_by_class(WC_TRACK_DESIGN_PLACE); - w = window_create_auto_pos(601, 370, (uint32*)window_new_ride_events, WC_CONSTRUCT_RIDE, WF_10); + w = window_create_auto_pos(601, 370, &window_new_ride_events, WC_CONSTRUCT_RIDE, WF_10); w->widgets = window_new_ride_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | @@ -612,13 +611,8 @@ static void window_new_ride_draw_tab_images(rct_drawpixelinfo *dpi, rct_window * * * rct2: 0x006B6B38 */ -static void window_new_ride_mouseup() +static void window_new_ride_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -662,34 +656,26 @@ static void window_new_ride_update(rct_window *w) * * rct2: 0x006B6BC9 */ -static void window_new_ride_scrollgetsize() +static void window_new_ride_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { ride_list_item *listItem = (ride_list_item*)0x00F43523; - int width, height; int count = 0; while (listItem->type != 255 || listItem->entry_index != 255) { count++; listItem++; } - width = 0; - height = ((count + 4) / 5) * 116; - - window_scrollsize_set_registers(width, height); + *height = ((count + 4) / 5) * 116; } /** * * rct2: 0x006B6C89 */ -static void window_new_ride_scrollmousedown() +static void window_new_ride_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { - short x, y, scrollIndex; - rct_window *w; ride_list_item item; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - // Made it impossible to click a ride in pause mode. Since the UI now stays responsive in pause mode, always allow clicking a ride. /*if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0) return;*/ @@ -710,14 +696,10 @@ static void window_new_ride_scrollmousedown() * * rct2: 0x006B6C51 */ -static void window_new_ride_scrollmouseover() +static void window_new_ride_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { - short x, y, scrollIndex; - rct_window *w; ride_list_item item; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - if (w->new_ride.selected_ride_id != -1) return; @@ -735,7 +717,7 @@ static void window_new_ride_scrollmouseover() * * rct2: 0x006B6BBF */ -static void window_new_ride_tooltip() +static void window_new_ride_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = 3159; } @@ -744,11 +726,8 @@ static void window_new_ride_tooltip() * * rct2: 0x006B6819 */ -static void window_new_ride_invalidate() +static void window_new_ride_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); window_new_ride_set_pressed_tab(w); @@ -772,13 +751,8 @@ static void window_new_ride_invalidate() * * rct2: 0x006B689B */ -static void window_new_ride_paint() +static void window_new_ride_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_new_ride_draw_tab_images(dpi, w); @@ -795,14 +769,10 @@ static void window_new_ride_paint() * * rct2: 0x006B6ABF */ -static void window_new_ride_scrollpaint() +static void window_new_ride_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride_type **rideEntries = (rct_ride_type**)0x009ACFA4; - window_paint_get_registers(w, dpi); - if (_window_new_ride_current_tab == WINDOW_NEW_RIDE_PAGE_RESEARCH) return; diff --git a/src/windows/news.c b/src/windows/news.c index 512bff4d0e..71e4d5a420 100644 --- a/src/windows/news.c +++ b/src/windows/news.c @@ -44,42 +44,41 @@ static rct_widget window_news_widgets[] = { { WIDGETS_END }, }; -static void window_news_emptysub() { } -static void window_news_mouseup(); +static void window_news_mouseup(rct_window *w, int widgetIndex); static void window_news_update(rct_window *w); -static void window_news_scrollgetsize(); -static void window_news_scrollmousedown(); -static void window_news_tooltip(); -static void window_news_invalidate(); -static void window_news_paint(); -static void window_news_scrollpaint(); +static void window_news_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_news_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_news_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_news_invalidate(rct_window *w); +static void window_news_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_news_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_news_events[] = { - window_news_emptysub, +static rct_window_event_list window_news_events = { + NULL, window_news_mouseup, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, + NULL, + NULL, + NULL, + NULL, window_news_update, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_news_scrollgetsize, window_news_scrollmousedown, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, - window_news_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_news_tooltip, - window_news_emptysub, - window_news_emptysub, + NULL, + NULL, window_news_invalidate, window_news_paint, window_news_scrollpaint @@ -99,7 +98,7 @@ void window_news_open() window = window_create_auto_pos( 400, 300, - (uint32*)window_news_events, + &window_news_events, WC_RECENT_NEWS, 0 ); @@ -110,9 +109,10 @@ void window_news_open() } // sub_66E4BA: - int width, height; rct_widget *widget; + int width = 0; + int height = 0; window_get_scroll_size(window, 0, &width, &height); widget = &window_news_widgets[WIDX_SCROLL]; window->scrolls[0].v_top = max(0, height - (widget->bottom - widget->top - 1)); @@ -124,15 +124,13 @@ void window_news_open() * * rct2: 0x0066D4D5 */ -static void window_news_mouseup() +static void window_news_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - - if (widgetIndex == WIDX_CLOSE) + switch (widgetIndex) { + case WIDX_CLOSE: window_close(w); + break; + } } /** @@ -182,36 +180,29 @@ static void window_news_update(rct_window *w) * * rct2: 0x0066EA3C */ -static void window_news_scrollgetsize() +static void window_news_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int i, width, height; + int i; rct_news_item *newsItems = RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item); - width = 0; - height = 0; + *height = 0; for (i = 11; i < 61; i++) { if (newsItems[i].type == NEWS_ITEM_NULL) break; - height += 42; + *height += 42; } - - window_scrollsize_set_registers(width, height); } /** * * rct2: 0x0066EA5C */ -static void window_news_scrollmousedown() +static void window_news_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { int i, buttonIndex; - short x, y, scrollIndex; - rct_window *w; rct_news_item *newsItems; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - buttonIndex = 0; newsItems = RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item); for (i = 11; i < 61; i++) { @@ -259,7 +250,7 @@ static void window_news_scrollmousedown() * * rct2: 0x0066EAAE */ -static void window_news_tooltip() +static void window_news_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = 3159; } @@ -268,21 +259,13 @@ static void window_news_tooltip() * * rct2: 0x0066E4E8 */ -static void window_news_paint() +static void window_news_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } -static void window_news_invalidate() +static void window_news_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } @@ -290,15 +273,11 @@ static void window_news_invalidate() * * rct2: 0x0066E4EE */ -static void window_news_scrollpaint() +static void window_news_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int i, x, y, yy, press; - rct_window *w; - rct_drawpixelinfo *dpi; rct_news_item *newsItems, *newsItem, *newsItem2; - window_paint_get_registers(w, dpi); - y = 0; newsItems = RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item); for (i = 11; i < 61; i++) { diff --git a/src/windows/options.c b/src/windows/options.c index a038be8344..5a26ddf43f 100644 --- a/src/windows/options.c +++ b/src/windows/options.c @@ -265,46 +265,44 @@ static void window_options_update_height_markers(); #pragma region Events -static void window_options_emptysub() { } - -static void window_options_mouseup(); +static void window_options_mouseup(rct_window *w, int widgetIndex); static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_options_dropdown(); +static void window_options_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_options_update(rct_window *w); -static void window_options_invalidate(); -static void window_options_paint(); -static void window_options_scrollgetsize(); -static void window_options_text_input(); +static void window_options_invalidate(rct_window *w); +static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_options_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_options_text_input(rct_window *w, int widgetIndex, char *text); -static void* window_options_events[] = { - window_options_emptysub, +static rct_window_event_list window_options_events = { + NULL, window_options_mouseup, - window_options_emptysub, + NULL, window_options_mousedown, window_options_dropdown, - window_options_emptysub, + NULL, window_options_update, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_options_scrollgetsize, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, + NULL, + NULL, + NULL, window_options_text_input, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, - window_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_options_invalidate, window_options_paint, - window_options_emptysub + NULL }; #pragma endregion @@ -404,7 +402,7 @@ void window_options_open() if (w != NULL) return; - w = window_create_centred(WW, WH, (uint32*)window_options_events, WC_OPTIONS, WF_RESIZABLE); + w = window_create_centred(WW, WH, &window_options_events, WC_OPTIONS, WF_RESIZABLE); w->widgets = window_options_display_widgets; w->enabled_widgets = window_options_page_enabled_widgets[WINDOW_OPTIONS_PAGE_DISPLAY]; w->page = WINDOW_OPTIONS_PAGE_DISPLAY; @@ -420,13 +418,8 @@ void window_options_open() * * rct2: 0x006BAFCA */ -static void window_options_mouseup() +static void window_options_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -861,14 +854,8 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* * * rct2: 0x006BB076 */ -static void window_options_dropdown() +static void window_options_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short dropdownIndex; - short widgetIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (dropdownIndex == -1) return; @@ -1039,13 +1026,11 @@ static void window_options_dropdown() * * rct2: 0x006BAD48 */ -static void window_options_invalidate() +static void window_options_invalidate(rct_window *w) { - rct_window *w; rct_widget* widget; sint32 currentSoundDevice; - window_get_register(w); colour_scheme_update(w); if (window_options_page_widgets[w->page] != w->widgets) { @@ -1252,13 +1237,8 @@ static void window_options_update(rct_window *w) * * rct2: 0x006BAEB4 */ -static void window_options_paint() +static void window_options_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_options_draw_tab_images(dpi, w); @@ -1365,33 +1345,19 @@ static void window_options_update_height_markers() gfx_invalidate_screen(); } -static void window_options_scrollgetsize() +static void window_options_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; - short scrollIndex; - - window_scroll_get_registers(w, scrollIndex); - if (w->page == WINDOW_OPTIONS_PAGE_AUDIO) { - int width = 1000; - int height = 0; - window_scrollsize_set_registers(width, height); + *width = 1000; } } -static void window_options_text_input(){ - short widgetIndex; - rct_window *w; - char _cl; - char* text; - - window_text_input_get_registers(w, widgetIndex, _cl, text); - if (_cl == 0) - { +static void window_options_text_input(rct_window *w, int widgetIndex, char *text) +{ + if (text == NULL) return; - } - if (widgetIndex == WIDX_CHANNEL_BUTTON){ + if (widgetIndex == WIDX_CHANNEL_BUTTON) { if (gConfigTwitch.channel != NULL) free(gConfigTwitch.channel); gConfigTwitch.channel = _strdup(text); diff --git a/src/windows/park.c b/src/windows/park.c index 3226d91786..6eb5fe929e 100644 --- a/src/windows/park.c +++ b/src/windows/park.c @@ -159,286 +159,284 @@ static rct_widget *window_park_page_widgets[] = { #pragma region Events -static void window_park_emptysub() { } - -static void window_park_entrance_close(); -static void window_park_entrance_mouseup(); -static void window_park_entrance_resize(); +static void window_park_entrance_close(rct_window *w); +static void window_park_entrance_mouseup(rct_window *w, int widgetIndex); +static void window_park_entrance_resize(rct_window *w); static void window_park_entrance_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_park_entrance_dropdown(); +static void window_park_entrance_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_park_entrance_update(rct_window *w); -static void window_park_entrance_toolupdate(); -static void window_park_entrance_tooldown(); -static void window_park_entrance_tooldrag(); -static void window_park_entrance_toolabort(); -static void window_park_entrance_textinput(); -static void window_park_entrance_invalidate(); -static void window_park_entrance_paint(); +static void window_park_entrance_toolupdate(rct_window* w, int widgetIndex, int x, int y); +static void window_park_entrance_tooldown(rct_window* w, int widgetIndex, int x, int y); +static void window_park_entrance_tooldrag(rct_window* w, int widgetIndex, int x, int y); +static void window_park_entrance_toolabort(rct_window *w, int widgetIndex); +static void window_park_entrance_textinput(rct_window *w, int widgetIndex, char *text); +static void window_park_entrance_invalidate(rct_window *w); +static void window_park_entrance_paint(rct_window *w, rct_drawpixelinfo *dpi); void toggle_land_rights_window(rct_window *parkWindow, int widgetIndex); -static void window_park_rating_mouseup(); -static void window_park_rating_resize(); +static void window_park_rating_mouseup(rct_window *w, int widgetIndex); +static void window_park_rating_resize(rct_window *w); static void window_park_rating_update(rct_window *w); -static void window_park_rating_invalidate(); -static void window_park_rating_paint(); +static void window_park_rating_invalidate(rct_window *w); +static void window_park_rating_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_park_guests_mouseup(); -static void window_park_guests_resize(); +static void window_park_guests_mouseup(rct_window *w, int widgetIndex); +static void window_park_guests_resize(rct_window *w); static void window_park_guests_update(rct_window *w); -static void window_park_guests_invalidate(); -static void window_park_guests_paint(); +static void window_park_guests_invalidate(rct_window *w); +static void window_park_guests_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_park_price_mouseup(); -static void window_park_price_resize(); +static void window_park_price_mouseup(rct_window *w, int widgetIndex); +static void window_park_price_resize(rct_window *w); static void window_park_price_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); static void window_park_price_update(rct_window *w); -static void window_park_price_invalidate(); -static void window_park_price_paint(); +static void window_park_price_invalidate(rct_window *w); +static void window_park_price_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_park_stats_mouseup(); -static void window_park_stats_resize(); +static void window_park_stats_mouseup(rct_window *w, int widgetIndex); +static void window_park_stats_resize(rct_window *w); static void window_park_stats_update(rct_window *w); -static void window_park_stats_invalidate(); -static void window_park_stats_paint(); +static void window_park_stats_invalidate(rct_window *w); +static void window_park_stats_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_park_objective_mouseup(); -static void window_park_objective_resize(); +static void window_park_objective_mouseup(rct_window *w, int widgetIndex); +static void window_park_objective_resize(rct_window *w); static void window_park_objective_update(rct_window *w); -static void window_park_objective_textinput(); -static void window_park_objective_invalidate(); -static void window_park_objective_paint(); +static void window_park_objective_textinput(rct_window *w, int widgetIndex, char *text); +static void window_park_objective_invalidate(rct_window *w); +static void window_park_objective_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_park_awards_mouseup(); -static void window_park_awards_resize(); +static void window_park_awards_mouseup(rct_window *w, int widgetIndex); +static void window_park_awards_resize(rct_window *w); static void window_park_awards_update(rct_window *w); -static void window_park_awards_invalidate(); -static void window_park_awards_paint(); +static void window_park_awards_invalidate(rct_window *w); +static void window_park_awards_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_park_entrance_events[] = { +static rct_window_event_list window_park_entrance_events = { window_park_entrance_close, window_park_entrance_mouseup, window_park_entrance_resize, window_park_entrance_mousedown, window_park_entrance_dropdown, - window_park_emptysub, + NULL, window_park_entrance_update, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, window_park_entrance_toolupdate, window_park_entrance_tooldown, window_park_entrance_tooldrag, - window_park_emptysub, + NULL, window_park_entrance_toolabort, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_entrance_textinput, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_entrance_invalidate, window_park_entrance_paint, - window_park_emptysub + NULL }; -static void* window_park_rating_events[] = { - window_park_emptysub, +static rct_window_event_list window_park_rating_events = { + NULL, window_park_rating_mouseup, window_park_rating_resize, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, window_park_rating_update, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_rating_invalidate, window_park_rating_paint, - window_park_emptysub + NULL }; -static void* window_park_guests_events[] = { - window_park_emptysub, +static rct_window_event_list window_park_guests_events = { + NULL, window_park_guests_mouseup, window_park_guests_resize, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, window_park_guests_update, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_guests_invalidate, window_park_guests_paint, - window_park_emptysub + NULL }; -static void* window_park_price_events[] = { - window_park_emptysub, +static rct_window_event_list window_park_price_events = { + NULL, window_park_price_mouseup, window_park_price_resize, window_park_price_mousedown, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, window_park_price_update, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_price_invalidate, window_park_price_paint, - window_park_emptysub + NULL }; -static void* window_park_stats_events[] = { - window_park_emptysub, +static rct_window_event_list window_park_stats_events = { + NULL, window_park_stats_mouseup, window_park_stats_resize, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, window_park_stats_update, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_stats_invalidate, window_park_stats_paint, - window_park_emptysub + NULL }; -static void* window_park_objective_events[] = { - window_park_emptysub, +static rct_window_event_list window_park_objective_events = { + NULL, window_park_objective_mouseup, window_park_objective_resize, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, window_park_objective_update, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_objective_textinput, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_objective_invalidate, window_park_objective_paint, - window_park_emptysub + NULL }; -static void* window_park_awards_events[] = { - window_park_emptysub, +static rct_window_event_list window_park_awards_events = { + NULL, window_park_awards_mouseup, window_park_awards_resize, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, window_park_awards_update, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, - window_park_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_park_awards_invalidate, window_park_awards_paint, - window_park_emptysub + NULL }; -static void* window_park_page_events[] = { - window_park_entrance_events, - window_park_rating_events, - window_park_guests_events, - window_park_price_events, - window_park_stats_events, - window_park_objective_events, - window_park_awards_events +static rct_window_event_list *window_park_page_events[] = { + &window_park_entrance_events, + &window_park_rating_events, + &window_park_guests_events, + &window_park_price_events, + &window_park_stats_events, + &window_park_objective_events, + &window_park_awards_events }; #pragma endregion @@ -550,7 +548,7 @@ rct_window *window_park_open() { rct_window* w; - w = window_create_auto_pos(230, 174 + 9, (uint32*)window_park_entrance_events, WC_PARK_INFORMATION, WF_10); + w = window_create_auto_pos(230, 174 + 9, &window_park_entrance_events, WC_PARK_INFORMATION, WF_10); w->widgets = window_park_entrance_widgets; w->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_ENTRANCE]; w->number = 0; @@ -602,7 +600,7 @@ void window_park_entrance_open() window_invalidate(window); window->widgets = window_park_entrance_widgets; window->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_ENTRANCE]; - window->event_handlers = (uint32*)window_park_entrance_events; + window->event_handlers = &window_park_entrance_events; window->pressed_widgets = 0; window_init_scroll_widgets(window); window_park_init_viewport(window); @@ -612,12 +610,8 @@ void window_park_entrance_open() * * rct2: 0x0066860C */ -static void window_park_entrance_close() +static void window_park_entrance_close(rct_window *w) { - rct_window *w; - - window_get_register(w); - if (RCT2_GLOBAL(RCT2_ADDRESS_INPUT_FLAGS, uint32) & INPUT_FLAG_TOOL_ACTIVE) if (w->classification == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWCLASS, rct_windowclass) && w->number == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWNUMBER, rct_windownumber)) tool_cancel(); @@ -627,13 +621,8 @@ static void window_park_entrance_close() * * rct2: 0x0066817C */ -static void window_park_entrance_mouseup() +static void window_park_entrance_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -672,12 +661,8 @@ static void window_park_entrance_mouseup() * * rct2: 0x00668637 */ -static void window_park_entrance_resize() +static void window_park_entrance_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->flags |= WF_RESIZABLE; window_set_resize(w, 230, 174 + 9, 230 * 3, (274 + 9) * 3); window_park_init_viewport(w); @@ -717,13 +702,8 @@ static void window_park_entrance_mousedown(int widgetIndex, rct_window*w, rct_wi * * rct2: 0x006682B8 */ -static void window_park_entrance_dropdown() +static void window_park_entrance_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short widgetIndex, dropdownIndex; - rct_window* w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex == WIDX_OPEN_OR_CLOSE) { if (dropdownIndex == -1) dropdownIndex = RCT2_GLOBAL(0x009DEBA2, sint16); @@ -830,13 +810,8 @@ void window_park_entrance_tool_update_land_rights(sint16 x, sint16 y){ * * rct2: 0x006681D1 */ -static void window_park_entrance_toolupdate() +static void window_park_entrance_toolupdate(rct_window* w, int widgetIndex, int x, int y) { - short x, y, widgetIndex; - rct_window *w; - - window_tool_get_registers(w, widgetIndex, x, y); - switch (widgetIndex){ case WIDX_BUY_LAND_RIGHTS: window_park_entrance_tool_update_land_rights(x, y); @@ -848,13 +823,8 @@ static void window_park_entrance_toolupdate() * * rct2: 0x006681E6 */ -static void window_park_entrance_tooldown() +static void window_park_entrance_tooldown(rct_window* w, int widgetIndex, int x, int y) { - short x, y, widgetIndex; - rct_window *w; - - window_tool_get_registers(w, widgetIndex, x, y); - switch (widgetIndex){ case WIDX_BUY_LAND_RIGHTS: if (LandRightsMode) { @@ -893,13 +863,8 @@ static void window_park_entrance_tooldown() * * rct2: 0x006681FB */ -static void window_park_entrance_tooldrag() +static void window_park_entrance_tooldrag(rct_window* w, int widgetIndex, int x, int y) { - short x, y, widgetIndex; - rct_window *w; - - window_tool_get_registers(w, widgetIndex, x, y); - rct_window* w2 = window_find_by_number(0xB, 0); if (!w2) { @@ -942,13 +907,8 @@ static void window_park_entrance_tooldrag() * * rct2: 0x0066822A */ -static void window_park_entrance_toolabort() +static void window_park_entrance_toolabort(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_BUY_LAND_RIGHTS) { hide_gridlines(); if (LandRightsMode) @@ -966,16 +926,9 @@ static void window_park_entrance_toolabort() * * rct2: 0x0066848B */ -static void window_park_entrance_textinput() +static void window_park_entrance_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; - - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex == WIDX_RENAME && result) + if (widgetIndex == WIDX_RENAME && text != NULL) park_set_name(text); } @@ -983,12 +936,10 @@ static void window_park_entrance_textinput() * * rct2: 0x00667FDC */ -static void window_park_entrance_invalidate() +static void window_park_entrance_invalidate(rct_window *w) { int i, height; - rct_window *w; - window_get_register(w); colour_scheme_update(w); w->widgets = window_park_page_widgets[w->page]; @@ -1066,14 +1017,10 @@ static void window_park_entrance_invalidate() * * rct2: 0x006680D0 */ -static void window_park_entrance_paint() +static void window_park_entrance_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *labelWidget; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_park_draw_tab_images(dpi, w); @@ -1218,7 +1165,7 @@ void window_park_rating_open() window->widgets = window_park_rating_widgets; window->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_RATING]; window->hold_down_widgets = window_park_page_hold_down_widgets[WINDOW_PARK_PAGE_RATING]; - window->event_handlers = (uint32*)window_park_rating_events; + window->event_handlers = &window_park_rating_events; window_init_scroll_widgets(window); } @@ -1226,13 +1173,8 @@ void window_park_rating_open() * * rct2: 0x00668A06 */ -static void window_park_rating_mouseup() +static void window_park_rating_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_7) @@ -1243,12 +1185,8 @@ static void window_park_rating_mouseup() * * rct2: 0x00668A36 */ -static void window_park_rating_resize() +static void window_park_rating_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 230, 182, 230, 182); } @@ -1266,12 +1204,10 @@ static void window_park_rating_update(rct_window *w) * * rct2: 0x006686CB */ -static void window_park_rating_invalidate() +static void window_park_rating_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_park_page_widgets[w->page]; @@ -1291,15 +1227,11 @@ static void window_park_rating_invalidate() * * rct2: 0x0066875D */ -static void window_park_rating_paint() +static void window_park_rating_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y; - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *widget; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_park_draw_tab_images(dpi, w); @@ -1349,7 +1281,7 @@ void window_park_guests_open() window->widgets = window_park_guests_widgets; window->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_GUESTS]; window->hold_down_widgets = window_park_page_hold_down_widgets[WINDOW_PARK_PAGE_GUESTS]; - window->event_handlers = (uint32*)window_park_guests_events; + window->event_handlers = &window_park_guests_events; window_init_scroll_widgets(window); } @@ -1357,13 +1289,8 @@ void window_park_guests_open() * * rct2: 0x00668DEB */ -static void window_park_guests_mouseup() +static void window_park_guests_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_7) @@ -1374,12 +1301,8 @@ static void window_park_guests_mouseup() * * rct2: 0x00668E33 */ -static void window_park_guests_resize() +static void window_park_guests_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 230, 182, 230, 182); } @@ -1398,12 +1321,10 @@ static void window_park_guests_update(rct_window *w) * * rct2: 0x00668AB0 */ -static void window_park_guests_invalidate() +static void window_park_guests_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_park_page_widgets[w->page]; @@ -1423,15 +1344,11 @@ static void window_park_guests_invalidate() * * rct2: 0x00668B42 */ -static void window_park_guests_paint() +static void window_park_guests_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y; - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *widget; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_park_draw_tab_images(dpi, w); @@ -1460,13 +1377,8 @@ static void window_park_guests_paint() * * rct2: 0x00669011 */ -static void window_park_price_mouseup() +static void window_park_price_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_7) @@ -1477,12 +1389,8 @@ static void window_park_price_mouseup() * * rct2: 0x0066908C */ -static void window_park_price_resize() +static void window_park_price_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 230, 124, 230, 124); } @@ -1532,12 +1440,10 @@ static void window_park_price_update(rct_window *w) * * rct2: 0x00668EAD */ -static void window_park_price_invalidate() +static void window_park_price_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_park_page_widgets[w->page]; @@ -1572,13 +1478,9 @@ static void window_park_price_invalidate() * * rct2: 0x00668F99 */ -static void window_park_price_paint() +static void window_park_price_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); window_draw_widgets(w, dpi); window_park_draw_tab_images(dpi, w); @@ -1599,13 +1501,8 @@ static void window_park_price_paint() * * rct2: 0x0066928C */ -static void window_park_stats_mouseup() +static void window_park_stats_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_7) @@ -1616,12 +1513,8 @@ static void window_park_stats_mouseup() * * rct2: 0x00669338 */ -static void window_park_stats_resize() +static void window_park_stats_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 230, 109, 230, 109); } @@ -1655,12 +1548,10 @@ static void window_park_stats_update(rct_window *w) * * rct2: 0x00669106 */ -static void window_park_stats_invalidate() +static void window_park_stats_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_park_page_widgets[w->page]; @@ -1680,13 +1571,9 @@ static void window_park_stats_invalidate() * * rct2: 0x00669198 */ -static void window_park_stats_paint() +static void window_park_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y, parkSize, stringIndex; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); window_draw_widgets(w, dpi); window_park_draw_tab_images(dpi, w); @@ -1752,7 +1639,7 @@ void window_park_objective_open() window->widgets = window_park_objective_widgets; window->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_OBJECTIVE]; window->hold_down_widgets = window_park_page_hold_down_widgets[WINDOW_PARK_PAGE_OBJECTIVE]; - window->event_handlers = (uint32*)window_park_objective_events; + window->event_handlers = &window_park_objective_events; window_init_scroll_widgets(window); window->x = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) / 2 - 115; window->y = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_HEIGHT, uint16) / 2 - 87; @@ -1763,13 +1650,8 @@ void window_park_objective_open() * * rct2: 0x006695AA */ -static void window_park_objective_mouseup() +static void window_park_objective_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -1801,12 +1683,8 @@ static void window_park_objective_mouseup() * * rct2: 0x00669681 */ -static void window_park_objective_resize() +static void window_park_objective_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 230, 224, 230, 224); } @@ -1824,16 +1702,9 @@ static void window_park_objective_update(rct_window *w) * * rct2: 0x006695CC */ -static void window_park_objective_textinput() +static void window_park_objective_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; - - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex == WIDX_ENTER_NAME && result && text[0] != 0) { + if (widgetIndex == WIDX_ENTER_NAME && text != NULL && text[0] != 0) { scenario_success_submit_name(text); window_invalidate(w); } @@ -1843,11 +1714,8 @@ static void window_park_objective_textinput() * * rct2: 0x006693B2 */ -static void window_park_objective_invalidate() +static void window_park_objective_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); window_park_set_pressed_tab(w); @@ -1867,13 +1735,9 @@ static void window_park_objective_invalidate() * * rct2: 0x0066945C */ -static void window_park_objective_paint() +static void window_park_objective_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); window_draw_widgets(w, dpi); window_park_draw_tab_images(dpi, w); @@ -1940,7 +1804,7 @@ void window_park_awards_open() window->widgets = window_park_awards_widgets; window->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_AWARDS]; window->hold_down_widgets = window_park_page_hold_down_widgets[WINDOW_PARK_PAGE_AWARDS]; - window->event_handlers = (uint32*)window_park_awards_events; + window->event_handlers = &window_park_awards_events; window_init_scroll_widgets(window); } @@ -1948,13 +1812,8 @@ void window_park_awards_open() * * rct2: 0x00669851 */ -static void window_park_awards_mouseup() +static void window_park_awards_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); else if (widgetIndex >= WIDX_TAB_1 && widgetIndex <= WIDX_TAB_7) @@ -1965,12 +1824,8 @@ static void window_park_awards_mouseup() * * rct2: 0x00669882 */ -static void window_park_awards_resize() +static void window_park_awards_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 230, 182, 230, 182); } @@ -1988,12 +1843,10 @@ static void window_park_awards_update(rct_window *w) * * rct2: 0x006696FB */ -static void window_park_awards_invalidate() +static void window_park_awards_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_park_page_widgets[w->page]; @@ -2013,15 +1866,11 @@ static void window_park_awards_invalidate() * * rct2: 0x0066978D */ -static void window_park_awards_paint() +static void window_park_awards_paint(rct_window *w, rct_drawpixelinfo *dpi) { int i, count, x, y; - rct_window *w; - rct_drawpixelinfo *dpi; rct_award *award; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_park_draw_tab_images(dpi, w); diff --git a/src/windows/publisher_credits.c b/src/windows/publisher_credits.c index 270a2d790c..08eed0e41f 100644 --- a/src/windows/publisher_credits.c +++ b/src/windows/publisher_credits.c @@ -38,39 +38,38 @@ rct_widget window_publisher_credits_widgets[] = { { WIDGETS_END }, }; -static void window_publisher_credits_emptysub() { } -static void window_publisher_credits_mouseup(); -static void window_publisher_credits_scrollgetsize(); -static void window_publisher_credits_paint(); -static void window_publisher_credits_scrollpaint(); +static void window_publisher_credits_mouseup(rct_window *w, int widgetIndex); +static void window_publisher_credits_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_publisher_credits_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_publisher_credits_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_publisher_credits_events[] = { - window_publisher_credits_emptysub, +static rct_window_event_list window_publisher_credits_events = { + NULL, window_publisher_credits_mouseup, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_publisher_credits_scrollgetsize, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, - window_publisher_credits_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_publisher_credits_paint, window_publisher_credits_scrollpaint }; @@ -91,7 +90,7 @@ void window_publisher_credits_open() window = window_create_centred( 420, 384, - (uint32*)window_publisher_credits_events, + &window_publisher_credits_events, WC_PUBLISHER_CREDITS, 0 ); @@ -110,13 +109,8 @@ void window_publisher_credits_open() * * rct2: 0x0066D7A8 */ -static void window_publisher_credits_mouseup() +static void window_publisher_credits_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -128,26 +122,17 @@ static void window_publisher_credits_mouseup() * * rct2: 0x0066D7B3 */ -static void window_publisher_credits_scrollgetsize() +static void window_publisher_credits_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int width, height; - - width = 0; - height = 820; - window_scrollsize_set_registers(width, height); + *height = 820; } /** * * rct2: 0x0066D5CB */ -static void window_publisher_credits_paint() +static void window_publisher_credits_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } @@ -180,12 +165,8 @@ int credits_order[] = { * * rct2: 0x0066D5D1 */ -static void window_publisher_credits_scrollpaint() +static void window_publisher_credits_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; - window_paint_get_registers(w, dpi); - int x = 200; int y = 2; diff --git a/src/windows/research.c b/src/windows/research.c index f33641ae5e..5c4292e3b6 100644 --- a/src/windows/research.c +++ b/src/windows/research.c @@ -109,87 +109,85 @@ static rct_widget *window_research_page_widgets[] = { #pragma region Events -static void window_research_emptysub() { } - -static void window_research_development_mouseup(); +static void window_research_development_mouseup(rct_window *w, int widgetIndex); static void window_research_development_update(rct_window *w); -static void window_research_development_invalidate(); -static void window_research_development_paint(); +static void window_research_development_invalidate(rct_window *w); +static void window_research_development_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_research_funding_mouseup(); +static void window_research_funding_mouseup(rct_window *w, int widgetIndex); static void window_research_funding_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_research_funding_dropdown(); +static void window_research_funding_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_research_funding_update(rct_window *w); -static void window_research_funding_invalidate(); -static void window_research_funding_paint(); +static void window_research_funding_invalidate(rct_window *w); +static void window_research_funding_paint(rct_window *w, rct_drawpixelinfo *dpi); // -static void* window_research_development_events[] = { - window_research_emptysub, +static rct_window_event_list window_research_development_events = { + NULL, window_research_development_mouseup, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, + NULL, + NULL, + NULL, + NULL, window_research_development_update, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_research_development_invalidate, window_research_development_paint, - window_research_emptysub + NULL }; // 0x009890E8 -static void* window_research_funding_events[] = { - window_research_emptysub, +static rct_window_event_list window_research_funding_events = { + NULL, window_research_funding_mouseup, - window_research_emptysub, + NULL, window_research_funding_mousedown, window_research_funding_dropdown, - window_research_emptysub, + NULL, window_research_funding_update, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, - window_research_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_research_funding_invalidate, window_research_funding_paint, - window_research_emptysub + NULL }; -static void* window_research_page_events[] = { - window_research_development_events, - window_research_funding_events +static rct_window_event_list *window_research_page_events[] = { + &window_research_development_events, + &window_research_funding_events }; #pragma endregion @@ -261,13 +259,8 @@ void window_research_open() * * rct2: 0x006B6B38 */ -static void window_research_development_mouseup() +static void window_research_development_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -298,11 +291,8 @@ static void window_research_development_update(rct_window *w) * * rct2: 0x006B6819 */ -static void window_research_development_invalidate() +static void window_research_development_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_research_page_widgets[WINDOW_RESEARCH_PAGE_DEVELOPMENT]) { @@ -324,13 +314,8 @@ static void window_research_development_invalidate() * * rct2: 0x006B689B */ -static void window_research_development_paint() +static void window_research_development_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_research_draw_tab_images(dpi, w); @@ -425,14 +410,10 @@ void window_research_development_page_paint(rct_window *w, rct_drawpixelinfo *dp * * rct2: 0x0069DB3F */ -static void window_research_funding_mouseup() +static void window_research_funding_mouseup(rct_window *w, int widgetIndex) { - rct_window * w; - short widgetIndex; int activeResearchTypes; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -491,14 +472,8 @@ static void window_research_funding_mousedown(int widgetIndex, rct_window *w, rc * * rct2: 0x0069DB6D */ -static void window_research_funding_dropdown() +static void window_research_funding_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; - short widgetIndex; - short dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex != WIDX_RESEARCH_FUNDING_DROPDOWN_BUTTON || dropdownIndex == -1) return; @@ -522,11 +497,8 @@ static void window_research_funding_update(rct_window *w) * * rct2: 0x0069DA64 */ -static void window_research_funding_invalidate() +static void window_research_funding_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); if (w->widgets != window_research_page_widgets[WINDOW_RESEARCH_PAGE_FUNDING]) { @@ -578,13 +550,8 @@ static void window_research_funding_invalidate() * * rct2: 0x0069DAF0 */ -static void window_research_funding_paint() +static void window_research_funding_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_research_draw_tab_images(dpi, w); diff --git a/src/windows/ride.c b/src/windows/ride.c index fbe5ddf64d..9eb5b926a4 100644 --- a/src/windows/ride.c +++ b/src/windows/ride.c @@ -521,432 +521,431 @@ const uint64 window_ride_page_hold_down_widgets[] = { #pragma region Events -static void window_ride_emptysub() { } static void window_ride_init_viewport(rct_window *w); -static void window_ride_main_mouseup(); -static void window_ride_main_resize(); +static void window_ride_main_mouseup(rct_window *w, int widgetIndex); +static void window_ride_main_resize(rct_window *w); static void window_ride_main_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_ride_main_dropdown(); +static void window_ride_main_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_main_update(rct_window *w); -static void window_ride_main_textinput(); -static void window_ride_main_unknown_14(); -static void window_ride_main_invalidate(); -static void window_ride_main_paint(); +static void window_ride_main_textinput(rct_window *w, int widgetIndex, char *text); +static void window_ride_main_unknown_14(rct_window *w); +static void window_ride_main_invalidate(rct_window *w); +static void window_ride_main_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_ride_vehicle_mouseup(); -static void window_ride_vehicle_resize(); +static void window_ride_vehicle_mouseup(rct_window *w, int widgetIndex); +static void window_ride_vehicle_resize(rct_window *w); static void window_ride_vehicle_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_ride_vehicle_dropdown(); +static void window_ride_vehicle_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_vehicle_update(rct_window *w); -static void window_ride_vehicle_invalidate(); -static void window_ride_vehicle_paint(); -static void window_ride_vehicle_scrollpaint(); +static void window_ride_vehicle_invalidate(rct_window *w); +static void window_ride_vehicle_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_ride_vehicle_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void window_ride_operating_mouseup(); -static void window_ride_operating_resize(); +static void window_ride_operating_mouseup(rct_window *w, int widgetIndex); +static void window_ride_operating_resize(rct_window *w); static void window_ride_operating_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_ride_operating_dropdown(); +static void window_ride_operating_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_operating_update(rct_window *w); -static void window_ride_operating_invalidate(); -static void window_ride_operating_paint(); +static void window_ride_operating_invalidate(rct_window *w); +static void window_ride_operating_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_ride_maintenance_mouseup(); -static void window_ride_maintenance_resize(); +static void window_ride_maintenance_mouseup(rct_window *w, int widgetIndex); +static void window_ride_maintenance_resize(rct_window *w); static void window_ride_maintenance_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_ride_maintenance_dropdown(); +static void window_ride_maintenance_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_maintenance_update(rct_window *w); -static void window_ride_maintenance_invalidate(); -static void window_ride_maintenance_paint(); +static void window_ride_maintenance_invalidate(rct_window *w); +static void window_ride_maintenance_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_ride_colour_close(); -static void window_ride_colour_mouseup(); -static void window_ride_colour_resize(); +static void window_ride_colour_close(rct_window *w); +static void window_ride_colour_mouseup(rct_window *w, int widgetIndex); +static void window_ride_colour_resize(rct_window *w); static void window_ride_colour_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_ride_colour_dropdown(); +static void window_ride_colour_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_colour_update(rct_window *w); -static void window_ride_colour_tooldown(); -static void window_ride_colour_tooldrag(); -static void window_ride_colour_invalidate(); -static void window_ride_colour_paint(); -static void window_ride_colour_scrollpaint(); +static void window_ride_colour_tooldown(rct_window *w, int widgetIndex, int x, int y); +static void window_ride_colour_tooldrag(rct_window *w, int widgetIndex, int x, int y); +static void window_ride_colour_invalidate(rct_window *w); +static void window_ride_colour_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_ride_colour_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void window_ride_music_mouseup(); -static void window_ride_music_resize(); +static void window_ride_music_mouseup(rct_window *w, int widgetIndex); +static void window_ride_music_resize(rct_window *w); static void window_ride_music_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_ride_music_dropdown(); +static void window_ride_music_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_music_update(rct_window *w); -static void window_ride_music_invalidate(); -static void window_ride_music_paint(); +static void window_ride_music_invalidate(rct_window *w); +static void window_ride_music_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_ride_measurements_close(); -static void window_ride_measurements_mouseup(); -static void window_ride_measurements_resize(); +static void window_ride_measurements_close(rct_window *w); +static void window_ride_measurements_mouseup(rct_window *w, int widgetIndex); +static void window_ride_measurements_resize(rct_window *w); static void window_ride_measurements_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_ride_measurements_dropdown(); +static void window_ride_measurements_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_measurements_update(rct_window *w); -static void window_ride_measurements_tooldown(); -static void window_ride_measurements_toolabort(); -static void window_ride_measurements_invalidate(); -static void window_ride_measurements_paint(); +static void window_ride_measurements_tooldown(rct_window *w, int widgetIndex, int x, int y); +static void window_ride_measurements_toolabort(rct_window *w, int widgetIndex); +static void window_ride_measurements_invalidate(rct_window *w); +static void window_ride_measurements_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_ride_graphs_mouseup(); -static void window_ride_graphs_resize(); +static void window_ride_graphs_mouseup(rct_window *w, int widgetIndex); +static void window_ride_graphs_resize(rct_window *w); static void window_ride_graphs_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); static void window_ride_graphs_update(rct_window *w); -static void window_ride_graphs_scrollgetheight(); -static void window_ride_graphs_15(); -static void window_ride_graphs_tooltip(); -static void window_ride_graphs_invalidate(); -static void window_ride_graphs_paint(); -static void window_ride_graphs_scrollpaint(); +static void window_ride_graphs_scrollgetheight(rct_window *w, int scrollIndex, int *width, int *height); +static void window_ride_graphs_15(rct_window *w, int scrollIndex, int scrollAreaType); +static void window_ride_graphs_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_ride_graphs_invalidate(rct_window *w); +static void window_ride_graphs_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_ride_graphs_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void window_ride_income_mouseup(); -static void window_ride_income_resize(); +static void window_ride_income_mouseup(rct_window *w, int widgetIndex); +static void window_ride_income_resize(rct_window *w); static void window_ride_income_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); static void window_ride_income_update(rct_window *w); -static void window_ride_income_invalidate(); -static void window_ride_income_paint(); +static void window_ride_income_invalidate(rct_window *w); +static void window_ride_income_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_ride_customer_mouseup(); -static void window_ride_customer_resize(); +static void window_ride_customer_mouseup(rct_window *w, int widgetIndex); +static void window_ride_customer_resize(rct_window *w); static void window_ride_customer_update(rct_window *w); -static void window_ride_customer_invalidate(); -static void window_ride_customer_paint(); +static void window_ride_customer_invalidate(rct_window *w); +static void window_ride_customer_paint(rct_window *w, rct_drawpixelinfo *dpi); static void window_ride_set_colours(); // 0x0098DFD4 -static void* window_ride_main_events[] = { - window_ride_emptysub, +static rct_window_event_list window_ride_main_events = { + NULL, window_ride_main_mouseup, window_ride_main_resize, window_ride_main_mousedown, window_ride_main_dropdown, - window_ride_emptysub, + NULL, window_ride_main_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_main_textinput, window_ride_main_unknown_14, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, window_ride_main_invalidate, window_ride_main_paint, - window_ride_emptysub + NULL }; // 0x0098E204 -static void* window_ride_vehicle_events[] = { - window_ride_emptysub, +static rct_window_event_list window_ride_vehicle_events = { + NULL, window_ride_vehicle_mouseup, window_ride_vehicle_resize, window_ride_vehicle_mousedown, window_ride_vehicle_dropdown, - window_ride_emptysub, + NULL, window_ride_vehicle_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_vehicle_invalidate, window_ride_vehicle_paint, window_ride_vehicle_scrollpaint }; // 0x0098E0B4 -static void* window_ride_operating_events[] = { - window_ride_emptysub, +static rct_window_event_list window_ride_operating_events = { + NULL, window_ride_operating_mouseup, window_ride_operating_resize, window_ride_operating_mousedown, window_ride_operating_dropdown, - window_ride_emptysub, + NULL, window_ride_operating_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_operating_invalidate, window_ride_operating_paint, - window_ride_emptysub + NULL }; // 0x0098E124 -static void* window_ride_maintenance_events[] = { - window_ride_emptysub, +static rct_window_event_list window_ride_maintenance_events = { + NULL, window_ride_maintenance_mouseup, window_ride_maintenance_resize, window_ride_maintenance_mousedown, window_ride_maintenance_dropdown, - window_ride_emptysub, + NULL, window_ride_maintenance_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_maintenance_invalidate, window_ride_maintenance_paint, - window_ride_emptysub + NULL }; // 0x0098E044 -static void* window_ride_colour_events[] = { +static rct_window_event_list window_ride_colour_events = { window_ride_colour_close, window_ride_colour_mouseup, window_ride_colour_resize, window_ride_colour_mousedown, window_ride_colour_dropdown, - window_ride_emptysub, + NULL, window_ride_colour_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, window_ride_colour_tooldown, window_ride_colour_tooldrag, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_colour_invalidate, window_ride_colour_paint, window_ride_colour_scrollpaint }; // 0x0098E194 -static void* window_ride_music_events[] = { - window_ride_emptysub, +static rct_window_event_list window_ride_music_events = { + NULL, window_ride_music_mouseup, window_ride_music_resize, window_ride_music_mousedown, window_ride_music_dropdown, - window_ride_emptysub, + NULL, window_ride_music_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_music_invalidate, window_ride_music_paint, - window_ride_emptysub + NULL }; // 0x0098DE14 -static void* window_ride_measurements_events[] = { +static rct_window_event_list window_ride_measurements_events = { window_ride_measurements_close, window_ride_measurements_mouseup, window_ride_measurements_resize, window_ride_measurements_mousedown, window_ride_measurements_dropdown, - window_ride_emptysub, + NULL, window_ride_measurements_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, window_ride_measurements_tooldown, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, window_ride_measurements_toolabort, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_measurements_invalidate, window_ride_measurements_paint, - window_ride_emptysub + NULL }; // 0x0098DF64 -static void* window_ride_graphs_events[] = { - window_ride_emptysub, +static rct_window_event_list window_ride_graphs_events = { + NULL, window_ride_graphs_mouseup, window_ride_graphs_resize, window_ride_graphs_mousedown, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, window_ride_graphs_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_graphs_scrollgetheight, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_graphs_15, window_ride_graphs_tooltip, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, window_ride_graphs_invalidate, window_ride_graphs_paint, window_ride_graphs_scrollpaint }; // 0x0098DEF4 -static void* window_ride_income_events[] = { - window_ride_emptysub, +static rct_window_event_list window_ride_income_events = { + NULL, window_ride_income_mouseup, window_ride_income_resize, window_ride_income_mousedown, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, window_ride_income_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_income_invalidate, window_ride_income_paint, - window_ride_emptysub + NULL }; // 0x0098DE84 -static void* window_ride_customer_events[] = { - window_ride_emptysub, +static rct_window_event_list window_ride_customer_events = { + NULL, window_ride_customer_mouseup, window_ride_customer_resize, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, window_ride_customer_update, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, - window_ride_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_customer_invalidate, window_ride_customer_paint, - window_ride_emptysub + NULL }; -static uint32* window_ride_page_events[] = { - (uint32*)window_ride_main_events, - (uint32*)window_ride_vehicle_events, - (uint32*)window_ride_operating_events, - (uint32*)window_ride_maintenance_events, - (uint32*)window_ride_colour_events, - (uint32*)window_ride_music_events, - (uint32*)window_ride_measurements_events, - (uint32*)window_ride_graphs_events, - (uint32*)window_ride_income_events, - (uint32*)window_ride_customer_events +static rct_window_event_list *window_ride_page_events[] = { + &window_ride_main_events, + &window_ride_vehicle_events, + &window_ride_operating_events, + &window_ride_maintenance_events, + &window_ride_colour_events, + &window_ride_music_events, + &window_ride_measurements_events, + &window_ride_graphs_events, + &window_ride_income_events, + &window_ride_customer_events }; #pragma endregion @@ -1614,15 +1613,11 @@ static void window_ride_rename(rct_window *w) * * rct2: 0x006AF17E */ -static void window_ride_main_mouseup() +static void window_ride_main_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; rct_ride *ride; int status; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -1683,14 +1678,11 @@ static void window_ride_main_mouseup() * * rct2: 0x006AF4A2 */ -static void window_ride_main_resize() +static void window_ride_main_resize(rct_window *w) { - rct_window *w; rct_viewport *viewport; int width, height; - window_get_register(w); - w->flags |= WF_RESIZABLE; int minHeight = 180; if (theme_get_preset()->features.rct1_ride_lights) @@ -1871,14 +1863,10 @@ static void window_ride_main_mousedown(int widgetIndex, rct_window *w, rct_widge * * rct2: 0x006AF300 */ -static void window_ride_main_dropdown() +static void window_ride_main_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { rct_ride *ride; - rct_window *w; int status; - short widgetIndex, dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); switch (widgetIndex) { case WIDX_VIEW_DROPDOWN: @@ -1975,16 +1963,9 @@ static void window_ride_main_update(rct_window *w) * * rct2: 0x006AF2F9 */ -static void window_ride_main_textinput() +static void window_ride_main_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; - - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex != WIDX_RENAME || !result) + if (widgetIndex != WIDX_RENAME || text == NULL) return; ride_set_name(w->number, text); @@ -1994,12 +1975,8 @@ static void window_ride_main_textinput() * * rct2: 0x006AF55A */ -static void window_ride_main_unknown_14() +static void window_ride_main_unknown_14(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_ride_init_viewport(w); } @@ -2007,13 +1984,11 @@ static void window_ride_main_unknown_14() * * rct2: 0x006AECF6 */ -static void window_ride_main_invalidate() +static void window_ride_main_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; int i, height; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -2230,16 +2205,12 @@ static rct_string_id window_ride_get_status(rct_window *w, void *arguments) * * rct2: 0x006AEE73 */ -static void window_ride_main_paint() +static void window_ride_main_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; rct_widget *widget; rct_string_id stringId; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); @@ -2295,14 +2266,10 @@ static void window_ride_main_paint() * * rct2: 0x006B272D */ -static void window_ride_vehicle_mouseup() +static void window_ride_vehicle_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; rct_ride *ride; - window_widget_get_registers(w, widgetIndex); - ride = GET_RIDE(w->number); switch (widgetIndex) { @@ -2328,12 +2295,8 @@ static void window_ride_vehicle_mouseup() * * rct2: 0x006B2ABB */ -static void window_ride_vehicle_resize() +static void window_ride_vehicle_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 316, 208, 316, 208); } @@ -2445,15 +2408,11 @@ static void window_ride_vehicle_mousedown(int widgetIndex, rct_window *w, rct_wi * * rct2: 0x006B2767 */ -static void window_ride_vehicle_dropdown() +static void window_ride_vehicle_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; - short widgetIndex, dropdownIndex; rct_ride *ride; rct_ride_type *rideEntry; - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (dropdownIndex == -1) return; @@ -2489,16 +2448,14 @@ static void window_ride_vehicle_update(rct_window *w) * * rct2: 0x006B222C */ -static void window_ride_vehicle_invalidate() +static void window_ride_vehicle_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; rct_ride *ride; rct_ride_type *rideEntry; rct_string_id stringId; int carsPerTrain; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -2565,18 +2522,14 @@ static void window_ride_vehicle_invalidate() * * rct2: 0x006B23DC */ -static void window_ride_vehicle_paint() +static void window_ride_vehicle_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; rct_ride_type *rideEntry; rct_string_id stringId; int x, y; sint16 factor; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); @@ -2632,10 +2585,8 @@ rct_vehichle_paintinfo _sprites_to_draw[144]; * * rct2: 0x006B2502 */ -static void window_ride_vehicle_scrollpaint() +static void window_ride_vehicle_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; rct_ride_type *rideEntry; rct_widget *widget; @@ -2643,8 +2594,6 @@ static void window_ride_vehicle_scrollpaint() rct_vehichle_paintinfo *nextSpriteToDraw, *current, tmp; vehicle_colour vehicleColour; - window_paint_get_registers(w, dpi); - ride = GET_RIDE(w->number); rideEntry = ride_get_entry(ride); @@ -2886,14 +2835,10 @@ static void window_ride_load_dropdown(rct_window *w, rct_widget *widget) * * rct2: 0x006B10A7 */ -static void window_ride_operating_mouseup() +static void window_ride_operating_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; rct_ride *ride; - window_widget_get_registers(w, widgetIndex); - ride = GET_RIDE(w->number); switch (widgetIndex) { @@ -2934,12 +2879,8 @@ static void window_ride_operating_mouseup() * * rct2: 0x006B1715 */ -static void window_ride_operating_resize() +static void window_ride_operating_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 316, 186, 316, 186); } @@ -3002,16 +2943,12 @@ static void window_ride_operating_mousedown(int widgetIndex, rct_window *w, rct_ * * rct2: 0x006B1165 */ -static void window_ride_operating_dropdown() +static void window_ride_operating_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; - short widgetIndex, dropdownIndex; rct_ride *ride; const uint8 *availableModes; int i; - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (dropdownIndex == -1) return; @@ -3055,15 +2992,13 @@ static void window_ride_operating_update(rct_window *w) * * rct2: 0x006B0B30 */ -static void window_ride_operating_invalidate() +static void window_ride_operating_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; rct_ride *ride; rct_ride_type *rideEntry; rct_string_id format, caption, tooltip; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -3265,15 +3200,11 @@ static void window_ride_operating_invalidate() * * rct2: 0x006B1001 */ -static void window_ride_operating_paint() +static void window_ride_operating_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; uint16 blockSections; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); @@ -3348,13 +3279,8 @@ static void window_ride_maintenance_draw_bar(rct_window *w, rct_drawpixelinfo *d * * rct2: 0x006B1AAD */ -static void window_ride_maintenance_mouseup() +static void window_ride_maintenance_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -3381,12 +3307,8 @@ static void window_ride_maintenance_mouseup() * * rct2: 0x006B1D70 */ -static void window_ride_maintenance_resize() +static void window_ride_maintenance_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 316, 135, 316, 135); } @@ -3492,17 +3414,13 @@ static void window_ride_maintenance_mousedown(int widgetIndex, rct_window *w, rc * * rct2: 0x006B1AD9 */ -static void window_ride_maintenance_dropdown() +static void window_ride_maintenance_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; rct_ride *ride; rct_ride_type *ride_type; rct_vehicle *vehicle; - short widgetIndex, dropdownIndex; int i, j, num_items; - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (dropdownIndex == -1) return; @@ -3587,12 +3505,10 @@ static void window_ride_maintenance_update(rct_window *w) * * rct2: 0x006B17C8 */ -static void window_ride_maintenance_invalidate() +static void window_ride_maintenance_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -3625,10 +3541,8 @@ static void window_ride_maintenance_invalidate() * * rct2: 0x006B1877 */ -static void window_ride_maintenance_paint() +static void window_ride_maintenance_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; rct_widget *widget; rct_peep *mechanicSprite; @@ -3636,8 +3550,6 @@ static void window_ride_maintenance_paint() uint16 reliability, downTime, lastInspection; rct_string_id stringId, breakdownMessage; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); @@ -3804,12 +3716,8 @@ static void window_ride_set_track_colour_scheme(rct_window *w, int x, int y) * * rct2: 0x006B04FA */ -static void window_ride_colour_close() +static void window_ride_colour_close(rct_window *w) { - rct_window *w; - - window_get_register(w); - if (!(RCT2_GLOBAL(RCT2_ADDRESS_INPUT_FLAGS, uint32) & INPUT_FLAG_TOOL_ACTIVE)) return; @@ -3826,13 +3734,8 @@ static void window_ride_colour_close() * * rct2: 0x006B02A1 */ -static void window_ride_colour_mouseup() +static void window_ride_colour_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -3859,12 +3762,8 @@ static void window_ride_colour_mouseup() * * rct2: 0x006B0AB6 */ -static void window_ride_colour_resize() +static void window_ride_colour_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 316, 207, 316, 207); } @@ -4015,13 +3914,8 @@ static void window_ride_colour_mousedown(int widgetIndex, rct_window *w, rct_wid * * rct2: 0x006B0331 */ -static void window_ride_colour_dropdown() +static void window_ride_colour_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; - short widgetIndex, dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (dropdownIndex == -1) return; @@ -4081,13 +3975,8 @@ static void window_ride_colour_update(rct_window *w) * * rct2: 0x006B04EC */ -static void window_ride_colour_tooldown() -{ - rct_window *w; - short widgetIndex, x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - +static void window_ride_colour_tooldown(rct_window *w, int widgetIndex, int x, int y) +{ if (widgetIndex == WIDX_PAINT_INDIVIDUAL_AREA) window_ride_set_track_colour_scheme(w, x, y); } @@ -4096,13 +3985,8 @@ static void window_ride_colour_tooldown() * * rct2: 0x006B04F3 */ -static void window_ride_colour_tooldrag() -{ - rct_window *w; - short widgetIndex, x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - +static void window_ride_colour_tooldrag(rct_window *w, int widgetIndex, int x, int y) +{ if (widgetIndex == WIDX_PAINT_INDIVIDUAL_AREA) window_ride_set_track_colour_scheme(w, x, y); } @@ -4111,9 +3995,8 @@ static void window_ride_colour_tooldrag() * * rct2: 0x006AFB36 */ -static void window_ride_colour_invalidate() +static void window_ride_colour_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; rct_ride_type *rideEntry; rct_ride *ride; @@ -4121,7 +4004,6 @@ static void window_ride_colour_invalidate() vehicle_colour vehicleColour; int vehicleColourSchemeType; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -4288,18 +4170,15 @@ static void window_ride_colour_invalidate() * * rct2: 0x006AFF3E */ -static void window_ride_colour_paint() +static void window_ride_colour_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi, *clippedDpi; + rct_drawpixelinfo *clippedDpi; rct_widget *widget; rct_ride *ride; rct_ride_type *rideEntry; int x, y, spriteIndex, terniaryColour; track_colour trackColour; - window_paint_get_registers(w, dpi); - ride = GET_RIDE(w->number); rideEntry = ride_get_entry(ride); @@ -4383,18 +4262,14 @@ static void window_ride_colour_paint() * * rct2: 0x006B0192 */ -static void window_ride_colour_scrollpaint() +static void window_ride_colour_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; rct_ride_type *rideEntry; rct_widget *vehiclePreviewWidget; int trainCarIndex, x, y, spriteIndex; vehicle_colour vehicleColour; - window_paint_get_registers(w, dpi); - ride = GET_RIDE(w->number); rideEntry = ride_get_entry(ride); vehiclePreviewWidget = &window_ride_colour_widgets[WIDX_VEHICLE_PREVIEW]; @@ -4484,13 +4359,8 @@ static void window_ride_toggle_music(rct_window *w) * * rct2: 0x006B1ED7 */ -static void window_ride_music_mouseup() +static void window_ride_music_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -4517,12 +4387,8 @@ static void window_ride_music_mouseup() * * rct2: 0x006AF4A2 */ -static void window_ride_music_resize() +static void window_ride_music_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->flags |= WF_RESIZABLE; window_set_resize(w, 316, 81, 316, 81); } @@ -4580,14 +4446,10 @@ static void window_ride_music_mousedown(int widgetIndex, rct_window *w, rct_widg * * rct2: 0x006B1F03 */ -static void window_ride_music_dropdown() +static void window_ride_music_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; rct_ride *ride; uint8 musicStyle; - short widgetIndex, dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); if (widgetIndex != WIDX_MUSIC_DROPDOWN || dropdownIndex == -1) return; @@ -4613,13 +4475,11 @@ static void window_ride_music_update(rct_window *w) * * rct2: 0x006B1DEA */ -static void window_ride_music_invalidate() +static void window_ride_music_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; int isMusicActivated; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -4657,13 +4517,8 @@ static void window_ride_music_invalidate() * * rct2: 0x006B1ECC */ -static void window_ride_music_paint() +static void window_ride_music_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); } @@ -4759,7 +4614,7 @@ static void window_ride_measurements_design_save(rct_window *w) * * rct2: 0x006AD4DA */ -static void window_ride_measurements_close() +static void window_ride_measurements_close(rct_window *w) { window_ride_measurements_design_cancel(); } @@ -4768,13 +4623,8 @@ static void window_ride_measurements_close() * * rct2: 0x006AD478 */ -static void window_ride_measurements_mouseup() +static void window_ride_measurements_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -4810,12 +4660,8 @@ static void window_ride_measurements_mouseup() * * rct2: 0x006AD564 */ -static void window_ride_measurements_resize() +static void window_ride_measurements_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 316, 202, 316, 202); } @@ -4850,13 +4696,8 @@ static void window_ride_measurements_mousedown(int widgetIndex, rct_window *w, r * * rct2: 0x006AD4B2 */ -static void window_ride_measurements_dropdown() +static void window_ride_measurements_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window *w; - short widgetIndex, dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex != WIDX_SAVE_TRACK_DESIGN) return; @@ -4884,13 +4725,8 @@ static void window_ride_measurements_update(rct_window *w) * * rct2: 0x006AD4EB */ -static void window_ride_measurements_tooldown() +static void window_ride_measurements_tooldown(rct_window *w, int widgetIndex, int x, int y) { - rct_window *w; - short x, y, widgetIndex; - - window_tool_get_registers(w, widgetIndex, x, y); - RCT2_CALLPROC_X(0x006D2AE7, x, y, 0, widgetIndex, (int)w, 0, 0); } @@ -4898,7 +4734,7 @@ static void window_ride_measurements_tooldown() * * rct2: 0x006AD4DA */ -static void window_ride_measurements_toolabort(rct_window *w) +static void window_ride_measurements_toolabort(rct_window *w, int widgetIndex) { window_ride_measurements_design_cancel(); } @@ -4907,12 +4743,10 @@ static void window_ride_measurements_toolabort(rct_window *w) * * rct2: 0x006ACDBC */ -static void window_ride_measurements_invalidate() +static void window_ride_measurements_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -4961,10 +4795,8 @@ static void window_ride_measurements_invalidate() * * rct2: 0x006ACF07 */ -static void window_ride_measurements_paint() +static void window_ride_measurements_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *widget; rct_ride *ride; rct_string_id stringId; @@ -4972,8 +4804,6 @@ static void window_ride_measurements_paint() sint16 holes, maxSpeed, averageSpeed, drops, highestDropHeight, inversions, time; sint32 maxPositiveVerticalGs, maxNegativeVerticalGs, maxLateralGs, totalAirTime, length; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); @@ -5177,13 +5007,8 @@ static void window_ride_set_graph(rct_window *w, int type) * * rct2: 0x006AE85D */ -static void window_ride_graphs_mouseup() +static void window_ride_graphs_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -5207,12 +5032,8 @@ static void window_ride_graphs_mouseup() * * rct2: 0x006AE8DA */ -static void window_ride_graphs_resize() +static void window_ride_graphs_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 316, 180, 500, 450); } @@ -5271,38 +5092,27 @@ static void window_ride_graphs_update(rct_window *w) * * rct2: 0x006AEA75 */ -static void window_ride_graphs_scrollgetheight() +static void window_ride_graphs_scrollgetheight(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; rct_ride_measurement *measurement; - int width, height; - - window_get_register(w); window_event_invalidate_call(w); // Set minimum size - width = window_ride_graphs_widgets[WIDX_GRAPH].right - window_ride_graphs_widgets[WIDX_GRAPH].left - 2; - height = 0; + *width = window_ride_graphs_widgets[WIDX_GRAPH].right - window_ride_graphs_widgets[WIDX_GRAPH].left - 2; // Get measurement size measurement = ride_get_measurement(w->number, NULL); if (measurement != NULL) - width = max(width, measurement->num_items); - - window_scrollsize_set_registers(width, height); + *width = max(*width, measurement->num_items); } /** * * rct2: 0x006AE953 */ -static void window_ride_graphs_15() +static void window_ride_graphs_15(rct_window *w, int scrollIndex, int scrollAreaType) { - rct_window *w; - - window_get_register(w); - w->list_information_type |= 0x8000; } @@ -5310,45 +5120,37 @@ static void window_ride_graphs_15() * * rct2: 0x006AEA05 */ -static void window_ride_graphs_tooltip() +static void window_ride_graphs_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { - rct_window *w; - short widgetIndex, result; rct_ride *ride; rct_ride_measurement *measurement; - rct_string_id stringId; + rct_string_id message; - window_tooltip_get_registers(w, widgetIndex); - - result = -1; if (widgetIndex == WIDX_GRAPH) { RCT2_GLOBAL(0x013CE952, uint16) = 3158; - measurement = ride_get_measurement(w->number, &stringId); + measurement = ride_get_measurement(w->number, &message); if (measurement != NULL && (measurement->flags & RIDE_MEASUREMENT_FLAG_RUNNING)) { RCT2_GLOBAL(0x013CE952 + 4, uint16) = measurement->vehicle_index + 1; ride = GET_RIDE(w->number); RCT2_GLOBAL(0x013CE952 + 2, uint16) = RideNameConvention[ride->type].vehicle_name + 6; - result = 0; } else { - result = stringId; + *stringId = message; } + } else { + *stringId = STR_NONE; } - - window_tooltip_set_registers(result); } /** * * rct2: 0x006AE372 */ -static void window_ride_graphs_invalidate() +static void window_ride_graphs_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; rct_ride *ride; int x, y; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -5405,13 +5207,8 @@ static void window_ride_graphs_invalidate() * * rct2: 0x006AE4BC */ -static void window_ride_graphs_paint() +static void window_ride_graphs_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); } @@ -5420,17 +5217,13 @@ static void window_ride_graphs_paint() * * rct2: 0x006AE4C7 */ -static void window_ride_graphs_scrollpaint() +static void window_ride_graphs_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride_measurement *measurement; rct_widget *widget; int x, y, width, time, listType, colour, top, bottom, tmp; rct_string_id stringId; - window_paint_get_registers(w, dpi); - gfx_clear(dpi, RCT2_GLOBAL(0x0141FC9D, uint8) * 0x01010101); widget = &window_ride_graphs_widgets[WIDX_GRAPH]; @@ -5732,13 +5525,8 @@ static void window_ride_income_decrease_secondary_price(rct_window *w) * * rct2: 0x006ADEA9 */ -static void window_ride_income_mouseup() +static void window_ride_income_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -5768,12 +5556,8 @@ static void window_ride_income_mouseup() * * rct2: 0x006AE2F8 */ -static void window_ride_income_resize() +static void window_ride_income_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_set_resize(w, 316, 177, 316, 177); } @@ -5822,15 +5606,13 @@ static void window_ride_income_update(rct_window *w) * * rct2: 0x006ADAA3 */ -static void window_ride_income_invalidate() +static void window_ride_income_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; rct_ride_type *rideEntry; rct_string_id stringId; int primaryItem, secondaryItem; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -5941,18 +5723,14 @@ static void window_ride_income_invalidate() * * rct2: 0x006ADCE5 */ -static void window_ride_income_paint() +static void window_ride_income_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; rct_ride_type *rideEntry; rct_string_id stringId; money32 profit, costPerHour; int x, y, primaryItem, secondaryItem; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); @@ -6032,13 +5810,8 @@ static void window_ride_income_paint() * * rct2: 0x006AD986 */ -static void window_ride_customer_mouseup() +static void window_ride_customer_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -6071,12 +5844,8 @@ static void window_ride_customer_mouseup() * * rct2: 0x006ADA29 */ -static void window_ride_customer_resize() +static void window_ride_customer_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->flags |= WF_RESIZABLE; window_set_resize(w, 316, 139, 316, 139); } @@ -6107,12 +5876,10 @@ static void window_ride_customer_update(rct_window *w) * * rct2: 0x006AD5F8 */ -static void window_ride_customer_invalidate() +static void window_ride_customer_invalidate(rct_window *w) { - rct_window *w; rct_widget *widgets; - window_get_register(w); colour_scheme_update(w); widgets = window_ride_page_widgets[w->page]; @@ -6144,10 +5911,8 @@ static void window_ride_customer_invalidate() * * rct2: 0x006AD6CD */ -static void window_ride_customer_paint() +static void window_ride_customer_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; int x, y; uint8 shopItem; @@ -6155,8 +5920,6 @@ static void window_ride_customer_paint() sint32 customersPerHour; rct_string_id stringId; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_draw_tab_images(dpi, w); diff --git a/src/windows/ride_construction.c b/src/windows/ride_construction.c index 84daa1f183..b7f346abbe 100644 --- a/src/windows/ride_construction.c +++ b/src/windows/ride_construction.c @@ -132,49 +132,47 @@ static rct_widget window_ride_construction_widgets[] = { #pragma region Events -static void window_ride_construction_emptysub() {} - -static void window_ride_construction_close(); -static void window_ride_construction_mouseup(); -static void window_ride_construction_resize(); +static void window_ride_construction_close(rct_window *w); +static void window_ride_construction_mouseup(rct_window *w, int widgetIndex); +static void window_ride_construction_resize(rct_window *w); static void window_ride_construction_mousedown(int widgetIndex, rct_window *w, rct_widget *widget); -static void window_ride_construction_dropdown(); +static void window_ride_construction_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_construction_update(rct_window *w); -static void window_ride_construction_toolupdate(); -static void window_ride_construction_tooldown(); -static void window_ride_construction_invalidate(); -static void window_ride_construction_paint(); +static void window_ride_construction_toolupdate(rct_window* w, int widgetIndex, int x, int y); +static void window_ride_construction_tooldown(rct_window* w, int widgetIndex, int x, int y); +static void window_ride_construction_invalidate(rct_window *w); +static void window_ride_construction_paint(rct_window *w, rct_drawpixelinfo *dpi); //0x993EEC -static void* window_ride_construction_events[] = { +static rct_window_event_list window_ride_construction_events = { window_ride_construction_close, window_ride_construction_mouseup, window_ride_construction_resize, window_ride_construction_mousedown, window_ride_construction_dropdown, - window_ride_construction_emptysub, + NULL, window_ride_construction_update, - window_ride_construction_emptysub, - window_ride_construction_emptysub, + NULL, + NULL, window_ride_construction_toolupdate, window_ride_construction_tooldown, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, - window_ride_construction_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_construction_invalidate, window_ride_construction_paint, - window_ride_construction_emptysub + NULL }; #pragma endregion @@ -507,7 +505,7 @@ rct_window *window_ride_construction_open() if (ride->type == RIDE_TYPE_MAZE) return window_maze_construction_open(); - w = window_create(0, 29, 166, 394, (uint32*)window_ride_construction_events, WC_RIDE_CONSTRUCTION, WF_9); + w = window_create(0, 29, 166, 394, &window_ride_construction_events, WC_RIDE_CONSTRUCTION, WF_9); w->widgets = window_ride_construction_widgets; w->enabled_widgets = 0x67EFFFFFC4; @@ -560,13 +558,10 @@ rct_window *window_ride_construction_open() * * rct2: 0x006C845D */ -static void window_ride_construction_close() +static void window_ride_construction_close(rct_window *w) { - rct_window *w; rct_xy_element mapElement; - window_get_register(w); - sub_6C9627(); viewport_set_visibility(0); @@ -596,13 +591,8 @@ static void window_ride_construction_close() * * rct2: 0x006C6E14 */ -static void window_ride_construction_mouseup() +static void window_ride_construction_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - window_ride_construction_update_enabled_track_pieces(); switch (widgetIndex){ case WIDX_CLOSE: @@ -636,12 +626,8 @@ static void window_ride_construction_mouseup() * * rct2: 0x006C7934 */ -static void window_ride_construction_resize() +static void window_ride_construction_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_ride_construction_update_enabled_track_pieces(); w->enabled_widgets &= ~(1 << WIDX_CONSTRUCT); if (_rideConstructionState != RIDE_CONSTRUCTION_STATE_PLACE) { @@ -1528,13 +1514,8 @@ static void window_ride_construction_mousedown(int widgetIndex, rct_window *w, r * * rct2: 0x006C78CD */ -static void window_ride_construction_dropdown() +static void window_ride_construction_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short dropdownIndex, widgetIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex != WIDX_SPECIAL_TRACK_DROPDOWN) return; if (dropdownIndex == -1) @@ -1931,20 +1912,15 @@ static bool ride_get_place_position_from_screen_position(int screenX, int screen * * rct2: 0x006C8229 */ -static void window_ride_construction_toolupdate() +static void window_ride_construction_toolupdate(rct_window* w, int widgetIndex, int x, int y) { - rct_window *w; - short screenX, screenY, widgetIndex; - - window_tool_get_registers(w, widgetIndex, screenX, screenY); - switch (widgetIndex) { case WIDX_CONSTRUCT: - ride_construction_toolupdate_construct(screenX, screenY); + ride_construction_toolupdate_construct(x, y); break; case WIDX_ENTRANCE: case WIDX_EXIT: - ride_construction_toolupdate_entrance_exit(screenX, screenY); + ride_construction_toolupdate_entrance_exit(x, y); break; } } @@ -1953,20 +1929,15 @@ static void window_ride_construction_toolupdate() * * rct2: 0x006C8248 */ -static void window_ride_construction_tooldown() +static void window_ride_construction_tooldown(rct_window* w, int widgetIndex, int x, int y) { - rct_window *w; - short screenX, screenY, widgetIndex; - - window_tool_get_registers(w, widgetIndex, screenX, screenY); - switch (widgetIndex) { case WIDX_CONSTRUCT: - ride_construction_tooldown_construct(screenX, screenY); + ride_construction_tooldown_construct(x, y); break; case WIDX_ENTRANCE: case WIDX_EXIT: - ride_construction_tooldown_entrance_exit(screenX, screenY); + ride_construction_tooldown_entrance_exit(x, y); break; } } @@ -1975,14 +1946,11 @@ static void window_ride_construction_tooldown() * * rct2: 0x006C6AD5 */ -static void window_ride_construction_invalidate() +static void window_ride_construction_invalidate(rct_window *w) { - rct_window *w; rct_ride *ride; rct_string_id stringId; - window_get_register(w); - ride = GET_RIDE(_currentRideIndex); stringId = STR_RIDE_CONSTRUCTION_SPECIAL; @@ -2011,15 +1979,12 @@ static void window_ride_construction_invalidate() * * rct2: 0x006C6B86 */ -static void window_ride_construction_paint() +static void window_ride_construction_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi, *clipdpi; + rct_drawpixelinfo *clipdpi; rct_widget *widget; int x, y, width, height; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); widget = &window_ride_construction_widgets[WIDX_CONSTRUCT]; diff --git a/src/windows/ride_list.c b/src/windows/ride_list.c index 704946e326..873a93c76e 100644 --- a/src/windows/ride_list.c +++ b/src/windows/ride_list.c @@ -71,46 +71,45 @@ static rct_widget window_ride_list_widgets[] = { { WIDGETS_END }, }; -static void window_ride_list_emptysub() { } -static void window_ride_list_mouseup(); -static void window_ride_list_resize(); +static void window_ride_list_mouseup(rct_window *w, int widgetIndex); +static void window_ride_list_resize(rct_window *w); static void window_ride_list_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_ride_list_dropdown(); +static void window_ride_list_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_ride_list_update(rct_window *w); -static void window_ride_list_scrollgetsize(); -static void window_ride_list_scrollmousedown(); -static void window_ride_list_scrollmouseover(); -static void window_ride_list_tooltip(); -static void window_ride_list_invalidate(); -static void window_ride_list_paint(); -static void window_ride_list_scrollpaint(); +static void window_ride_list_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_ride_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_ride_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_ride_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_ride_list_invalidate(rct_window *w); +static void window_ride_list_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_ride_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_ride_list_events[] = { - window_ride_list_emptysub, +static rct_window_event_list window_ride_list_events = { + NULL, window_ride_list_mouseup, window_ride_list_resize, window_ride_list_mousedown, window_ride_list_dropdown, - window_ride_list_emptysub, + NULL, window_ride_list_update, - window_ride_list_emptysub, - window_ride_list_emptysub, - window_ride_list_emptysub, - window_ride_list_emptysub, - window_ride_list_emptysub, - window_ride_list_emptysub, - window_ride_list_emptysub, - window_ride_list_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_ride_list_scrollgetsize, window_ride_list_scrollmousedown, - window_ride_list_emptysub, + NULL, window_ride_list_scrollmouseover, - window_ride_list_emptysub, - window_ride_list_emptysub, - window_ride_list_emptysub, + NULL, + NULL, + NULL, window_ride_list_tooltip, - window_ride_list_emptysub, - window_ride_list_emptysub, + NULL, + NULL, window_ride_list_invalidate, window_ride_list_paint, window_ride_list_scrollpaint @@ -146,7 +145,7 @@ void window_ride_list_open() // Check if window is already open window = window_bring_to_front_by_class(WC_RIDE_LIST); if (window == NULL) { - window = window_create_auto_pos(340, 240, (uint32*)window_ride_list_events, WC_RIDE_LIST, WF_10 | WF_RESIZABLE); + window = window_create_auto_pos(340, 240, &window_ride_list_events, WC_RIDE_LIST, WF_10 | WF_RESIZABLE); window->widgets = window_ride_list_widgets; window->enabled_widgets = (1 << WIDX_CLOSE) | @@ -177,13 +176,8 @@ void window_ride_list_open() * * rct2: 0x006B3511 */ -static void window_ride_list_mouseup() +static void window_ride_list_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -219,12 +213,8 @@ static void window_ride_list_mouseup() * * rct2: 0x006B38A7 */ -static void window_ride_list_resize() +static void window_ride_list_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->min_width = 340; w->min_height = 124; if (w->width < w->min_width) { @@ -281,13 +271,8 @@ static void window_ride_list_mousedown(int widgetIndex, rct_window*w, rct_widget * * rct2: 0x006B3547 */ -static void window_ride_list_dropdown() +static void window_ride_list_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short dropdownIndex, widgetIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex == WIDX_OPEN_CLOSE_ALL) { if (dropdownIndex == 0) window_ride_list_close_all(w); @@ -318,42 +303,32 @@ static void window_ride_list_update(rct_window *w) * * rct2: 0x006B35A1 */ -static void window_ride_list_scrollgetsize() +static void window_ride_list_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int top, width, height; - rct_window *w; - - window_get_register(w); + int top; - height = w->no_list_items * 10; + *height = w->no_list_items * 10; if (w->selected_list_item != -1) { w->selected_list_item = -1; window_invalidate(w); } - top = height - window_ride_list_widgets[WIDX_LIST].bottom + window_ride_list_widgets[WIDX_LIST].top + 21; + top = *height - window_ride_list_widgets[WIDX_LIST].bottom + window_ride_list_widgets[WIDX_LIST].top + 21; if (top < 0) top = 0; if (top < w->scrolls[0].v_top) { w->scrolls[0].v_top = top; window_invalidate(w); } - - width = 0; - window_scrollsize_set_registers(width, height); } /** * * rct2: 0x006B361F */ -static void window_ride_list_scrollmousedown() +static void window_ride_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { int index; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); index = y / 10; if (index >= w->no_list_items) @@ -367,13 +342,9 @@ static void window_ride_list_scrollmousedown() * * rct2: 0x006B35EF */ -static void window_ride_list_scrollmouseover() +static void window_ride_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { int index; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); index = y / 10; if (index >= w->no_list_items) @@ -387,7 +358,7 @@ static void window_ride_list_scrollmouseover() * * rct2: 0x006B3861 */ -static void window_ride_list_tooltip() +static void window_ride_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } @@ -396,13 +367,11 @@ static void window_ride_list_tooltip() * * rct2: 0x006B3182 */ -static void window_ride_list_invalidate() +static void window_ride_list_invalidate(rct_window *w) { int i; - rct_window *w; rct_ride *ride; - window_get_register(w); colour_scheme_update(w); window_ride_list_widgets[WIDX_CURRENT_INFORMATION_TYPE].image = STR_STATUS + _window_ride_list_information_type; @@ -463,13 +432,8 @@ static void window_ride_list_invalidate() * * rct2: 0x006B3235 */ -static void window_ride_list_paint() +static void window_ride_list_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); window_ride_list_draw_tab_images(dpi, w); } @@ -478,15 +442,11 @@ static void window_ride_list_paint() * * rct2: 0x006B3240 */ -static void window_ride_list_scrollpaint() +static void window_ride_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int i, y, format, formatSecondary, argument; - rct_window *w; - rct_drawpixelinfo *dpi; rct_ride *ride; - window_paint_get_registers(w, dpi); - gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width, dpi->y + dpi->height, RCT2_GLOBAL(0x0141FC48 + (w->colours[1] * 8), uint8)); y = 0; diff --git a/src/windows/save_prompt.c b/src/windows/save_prompt.c index 61f5f40419..3bd10840cc 100644 --- a/src/windows/save_prompt.c +++ b/src/windows/save_prompt.c @@ -68,41 +68,40 @@ static rct_widget window_quit_prompt_widgets[] = { { WIDGETS_END }, }; -static void window_save_prompt_emptysub() { } -static void window_save_prompt_close(); -static void window_save_prompt_mouseup(); -static void window_save_prompt_invalidate(); -static void window_save_prompt_paint(); +static void window_save_prompt_close(rct_window *w); +static void window_save_prompt_mouseup(rct_window *w, int widgetIndex); +static void window_save_prompt_invalidate(rct_window *w); +static void window_save_prompt_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_save_prompt_events[] = { +static rct_window_event_list window_save_prompt_events = { window_save_prompt_close, window_save_prompt_mouseup, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, - window_save_prompt_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_save_prompt_invalidate, window_save_prompt_paint, - window_save_prompt_emptysub + NULL }; /** @@ -181,7 +180,7 @@ void window_save_prompt_open() window = window_create_centred( width, height, - (uint32*)window_save_prompt_events, + &window_save_prompt_events, WC_SAVE_PROMPT, WF_TRANSPARENT | WF_STICK_TO_FRONT ); @@ -208,7 +207,7 @@ void window_save_prompt_open() * * rct2: 0x0066DF17 */ -static void window_save_prompt_close() +static void window_save_prompt_close(rct_window *w) { // Unpause the game RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) &= ~2; @@ -220,13 +219,8 @@ static void window_save_prompt_close() * * rct2: 0x0066DDF2 */ -static void window_save_prompt_mouseup() +static void window_save_prompt_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & (SCREEN_FLAGS_TITLE_DEMO | SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER)) { switch (widgetIndex) { case WQIDX_OK: @@ -275,20 +269,12 @@ static void window_save_prompt_mouseup() } } -static void window_save_prompt_invalidate() +static void window_save_prompt_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } -static void window_save_prompt_paint() +static void window_save_prompt_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } \ No newline at end of file diff --git a/src/windows/scenery.c b/src/windows/scenery.c index 0e3a18c127..39865e9627 100644 --- a/src/windows/scenery.c +++ b/src/windows/scenery.c @@ -62,48 +62,47 @@ enum { WINDOW_SCENERY_TAB_20 }; -static void window_scenery_emptysub() { } -static void window_scenery_close(); -static void window_scenery_mouseup(); -static void window_scenery_resize(); +static void window_scenery_close(rct_window *w); +static void window_scenery_mouseup(rct_window *w, int widgetIndex); +static void window_scenery_resize(rct_window *w); static void window_scenery_mousedown(int widgetIndex, rct_window* w, rct_widget* widget); -static void window_scenery_dropdown(); +static void window_scenery_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_scenery_update(rct_window *w); -static void window_scenery_event_07(); -static void window_scenery_scrollgetsize(); -static void window_scenery_scrollmousedown(); -static void window_scenery_scrollmouseover(); -static void window_scenery_tooltip(); -static void window_scenery_invalidate(); -static void window_scenery_paint(); -static void window_scenery_scrollpaint(); +static void window_scenery_event_07(rct_window *w); +static void window_scenery_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_scenery_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_scenery_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_scenery_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_scenery_invalidate(rct_window *w); +static void window_scenery_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_scenery_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_scenery_events[] = { +static rct_window_event_list window_scenery_events = { window_scenery_close, window_scenery_mouseup, window_scenery_resize, window_scenery_mousedown, window_scenery_dropdown, - window_scenery_emptysub, + NULL, window_scenery_update, window_scenery_event_07, - window_scenery_emptysub, - window_scenery_emptysub, - window_scenery_emptysub, - window_scenery_emptysub, - window_scenery_emptysub, - window_scenery_emptysub, - window_scenery_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_scenery_scrollgetsize, window_scenery_scrollmousedown, - window_scenery_emptysub, + NULL, window_scenery_scrollmouseover, - window_scenery_emptysub, - window_scenery_emptysub, - window_scenery_emptysub, + NULL, + NULL, + NULL, window_scenery_tooltip, - window_scenery_emptysub, - window_scenery_emptysub, + NULL, + NULL, window_scenery_invalidate, window_scenery_paint, window_scenery_scrollpaint, @@ -427,7 +426,7 @@ void window_scenery_open() 0x1D, WINDOW_SCENERY_WIDTH, WINDOW_SCENERY_HEIGHT, - (uint32*)window_scenery_events, + &window_scenery_events, WC_SCENERY, WF_2 ); @@ -503,11 +502,8 @@ bool window_scenery_is_scenery_tool_active() { * * rct2: 0x006E1A73 */ -void window_scenery_close() { - rct_window *w; - - window_get_register(w); - +void window_scenery_close(rct_window *w) +{ scenery_remove_ghost_tool_placement(); hide_gridlines(); viewport_set_visibility(0); @@ -534,13 +530,8 @@ int window_scenery_scrollgetsize_num() * * rct2: 0x006BD94C */ -static void window_scenery_mouseup() +static void window_scenery_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_SCENERY_CLOSE: window_close(w); @@ -595,12 +586,8 @@ void window_scenery_update_scroll(rct_window *w) * * rct2: 0x006E1E48 */ -static void window_scenery_resize() +static void window_scenery_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - if (w->width < w->min_width) { window_invalidate(w); w->width = w->min_width; @@ -661,11 +648,8 @@ static void window_scenery_mousedown(int widgetIndex, rct_window* w, rct_widget* * * rct2: 0x006E1A54 */ -static void window_scenery_dropdown() { - rct_window* w; - short widgetIndex, dropdownIndex; - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - +static void window_scenery_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) +{ if (dropdownIndex == -1) return; @@ -686,11 +670,8 @@ static void window_scenery_dropdown() { * * rct2: 0x006E1B9F */ -static void window_scenery_event_07() { - rct_window *w; - - window_get_register(w); - +static void window_scenery_event_07(rct_window *w) +{ if (w->scenery.selected_scenery_id != -1) { w->scenery.selected_scenery_id = -1; } @@ -777,14 +758,9 @@ static void window_scenery_update(rct_window *w) * * rct2: 0x006E1A91 */ -void window_scenery_scrollgetsize() +void window_scenery_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int width, height; - - width = 0; - height = window_scenery_scrollgetsize_num(); - - window_scrollsize_set_registers(width, height); + *height = window_scenery_scrollgetsize_num(); } short get_scenery_id_by_cursor_pos(short x, short y) @@ -809,13 +785,8 @@ short get_scenery_id_by_cursor_pos(short x, short y) * * rct2: 0x006E1C4A */ -void window_scenery_scrollmousedown() +void window_scenery_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); - short sceneryId = get_scenery_id_by_cursor_pos(x, y); if (sceneryId == -1) return; @@ -834,12 +805,8 @@ void window_scenery_scrollmousedown() * * rct2: 0x006E1BB8 */ -void window_scenery_scrollmouseover() +void window_scenery_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); short sceneryId = get_scenery_id_by_cursor_pos(x, y); if (sceneryId != -1) { w->scenery.selected_scenery_id = sceneryId; @@ -851,14 +818,9 @@ void window_scenery_scrollmouseover() * * rct2: 0x006E1C05 */ -void window_scenery_tooltip() +void window_scenery_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { - rct_window *w; - short widget; - - window_scroll_get_registers(w, widget); - - switch (widget) { + switch (widgetIndex) { case WIDX_SCENERY_LIST: RCT2_GLOBAL(0x013CE952, uint16) = 3159; break; @@ -882,7 +844,7 @@ void window_scenery_tooltip() case WIDX_SCENERY_TAB_18: case WIDX_SCENERY_TAB_19: case WIDX_SCENERY_TAB_20: - RCT2_GLOBAL(0x013CE952, uint16) = g_scenerySetEntries[widget - WIDX_SCENERY_TAB_1]->name; + RCT2_GLOBAL(0x013CE952, uint16) = g_scenerySetEntries[widgetIndex - WIDX_SCENERY_TAB_1]->name; break; } } @@ -891,11 +853,8 @@ void window_scenery_tooltip() * * rct2: 0x006E118B */ -void window_scenery_invalidate() +void window_scenery_invalidate(rct_window *w) { - rct_window* w; - - window_get_register(w); colour_scheme_update(w); uint16 tabIndex = window_scenery_active_tab_index; @@ -1018,13 +977,8 @@ void window_scenery_invalidate() * * rct2: 0x006E1462 */ -void window_scenery_paint() +void window_scenery_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); uint16 tabIndex = window_scenery_active_tab_index; @@ -1088,13 +1042,8 @@ void window_scenery_paint() * * rct2: 0x006E15ED */ -void window_scenery_scrollpaint() +void window_scenery_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - gfx_clear(dpi, ((char*)0x0141FC48)[w->colours[1] * 8] * 0x1010101); uint8 tabIndex = window_scenery_active_tab_index; diff --git a/src/windows/shortcut_key_change.c b/src/windows/shortcut_key_change.c index 01cf458ca6..bb9209490e 100644 --- a/src/windows/shortcut_key_change.c +++ b/src/windows/shortcut_key_change.c @@ -42,41 +42,40 @@ static rct_widget window_shortcut_change_widgets[] = { { WIDGETS_END } }; -static void window_shortcut_change_emptysub(){} -static void window_shortcut_change_mouseup(); -static void window_shortcut_change_invalidate(); -static void window_shortcut_change_paint(); +static void window_shortcut_change_mouseup(rct_window *w, int widgetIndex); +static void window_shortcut_change_invalidate(rct_window *w); +static void window_shortcut_change_paint(rct_window *w, rct_drawpixelinfo *dpi); //0x9A3F7C -static void* window_shortcut_change_events[] = { - window_shortcut_change_emptysub, +static rct_window_event_list window_shortcut_change_events = { + NULL, window_shortcut_change_mouseup, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, - window_shortcut_change_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_shortcut_change_invalidate, window_shortcut_change_paint, - window_shortcut_change_emptysub + NULL }; void window_shortcut_change_open(int selected_key){ @@ -84,7 +83,7 @@ void window_shortcut_change_open(int selected_key){ window_close_by_class(WC_CHANGE_KEYBOARD_SHORTCUT); // Save the item we are selecting for new window RCT2_GLOBAL(0x9DE511, uint8) = selected_key; - rct_window* w = window_create_auto_pos(WW, WH, (uint32*)window_shortcut_change_events, WC_CHANGE_KEYBOARD_SHORTCUT, 0); + rct_window* w = window_create_auto_pos(WW, WH, &window_shortcut_change_events, WC_CHANGE_KEYBOARD_SHORTCUT, 0); w->widgets = window_shortcut_change_widgets; w->enabled_widgets = (1 << 2); @@ -95,23 +94,17 @@ void window_shortcut_change_open(int selected_key){ * * rct2: 0x006E3AE0 */ -static void window_shortcut_change_mouseup(){ - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - +static void window_shortcut_change_mouseup(rct_window *w, int widgetIndex) +{ switch (widgetIndex){ case WIDX_CLOSE: window_close(w); + break; } } -static void window_shortcut_change_invalidate() +static void window_shortcut_change_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } @@ -119,12 +112,8 @@ static void window_shortcut_change_invalidate() * * rct2: 0x006E3A9F */ -static void window_shortcut_change_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +static void window_shortcut_change_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); int x = w->x + 125; diff --git a/src/windows/shortcut_keys.c b/src/windows/shortcut_keys.c index 7c36ea0166..6f17099807 100644 --- a/src/windows/shortcut_keys.c +++ b/src/windows/shortcut_keys.c @@ -47,42 +47,41 @@ static rct_widget window_shortcut_widgets[] = { { WIDGETS_END } }; -void window_shortcut_emptysub() { } -static void window_shortcut_mouseup(); -static void window_shortcut_invalidate(); -static void window_shortcut_paint(); -static void window_shortcut_tooltip(); -static void window_shortcut_scrollgetsize(); -static void window_shortcut_scrollmousedown(); -static void window_shortcut_scrollmouseover(); -static void window_shortcut_scrollpaint(); +static void window_shortcut_mouseup(rct_window *w, int widgetIndex); +static void window_shortcut_invalidate(rct_window *w); +static void window_shortcut_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_shortcut_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_shortcut_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_shortcut_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_shortcut_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_shortcut_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_shortcut_events[] = { - window_shortcut_emptysub, +static rct_window_event_list window_shortcut_events = { + NULL, window_shortcut_mouseup, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_shortcut_scrollgetsize, window_shortcut_scrollmousedown, - window_shortcut_emptysub, + NULL, window_shortcut_scrollmouseover, - window_shortcut_emptysub, - window_shortcut_emptysub, - window_shortcut_emptysub, + NULL, + NULL, + NULL, window_shortcut_tooltip, - window_shortcut_emptysub, - window_shortcut_emptysub, + NULL, + NULL, window_shortcut_invalidate, window_shortcut_paint, window_shortcut_scrollpaint @@ -140,7 +139,7 @@ void window_shortcut_keys_open() if (w) return; - w = window_create_auto_pos(WW, WH, (uint32*)window_shortcut_events, WC_KEYBOARD_SHORTCUT_LIST, 0); + w = window_create_auto_pos(WW, WH, &window_shortcut_events, WC_KEYBOARD_SHORTCUT_LIST, 0); w->widgets = window_shortcut_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_RESET); @@ -154,13 +153,8 @@ void window_shortcut_keys_open() * * rct2: 0x006E39E4 */ -static void window_shortcut_mouseup() +static void window_shortcut_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex){ case WIDX_CLOSE: window_close(w); @@ -173,11 +167,8 @@ static void window_shortcut_mouseup() } } -static void window_shortcut_invalidate() +static void window_shortcut_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } @@ -185,13 +176,8 @@ static void window_shortcut_invalidate() * * rct2: 0x006E38E0 */ -static void window_shortcut_paint() +static void window_shortcut_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } @@ -199,7 +185,7 @@ static void window_shortcut_paint() * * rct2: 0x006E3A0C */ -static void window_shortcut_tooltip() +static void window_shortcut_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } @@ -208,30 +194,17 @@ static void window_shortcut_tooltip() * * rct2: 0x006E3A07 */ -static void window_shortcut_scrollgetsize() +static void window_shortcut_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; - int width, height; - - window_get_register(w); - - width = 0; - height = w->no_list_items * 10; - - window_scrollsize_set_registers(width, height); + *height = w->no_list_items * 10; } /** * * rct2: 0x006E3A3E */ -static void window_shortcut_scrollmousedown() +static void window_shortcut_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); - int selected_item = y / 10; if (selected_item >= w->no_list_items) return; @@ -243,13 +216,8 @@ static void window_shortcut_scrollmousedown() * * rct2: 0x006E3A16 */ -static void window_shortcut_scrollmouseover() +static void window_shortcut_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); - int selected_item = y / 10; if (selected_item >= w->no_list_items) return; @@ -263,13 +231,8 @@ static void window_shortcut_scrollmouseover() * * rct2: 0x006E38E6 */ -static void window_shortcut_scrollpaint() +static void window_shortcut_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, RCT2_ADDRESS(0x0141FC48,uint8)[w->colours[1] * 8]); for (int i = 0; i < w->no_list_items; ++i) { diff --git a/src/windows/sign.c b/src/windows/sign.c index 7c9cc5ed9e..c27f0a6194 100644 --- a/src/windows/sign.c +++ b/src/windows/sign.c @@ -61,81 +61,81 @@ rct_widget window_sign_widgets[] = { { WIDGETS_END }, }; -static void window_sign_emptysub() { } -static void window_sign_mouseup(); +static void window_sign_mouseup(rct_window *w, int widgetIndex); static void window_sign_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_sign_dropdown(); -static void window_sign_textinput(); -static void window_sign_invalidate(); -static void window_sign_paint(); -static void window_sign_unknown_14(); +static void window_sign_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); +static void window_sign_textinput(rct_window *w, int widgetIndex, char *text); +static void window_sign_unknown_14(rct_window *w); +static void window_sign_invalidate(rct_window *w); +static void window_sign_paint(rct_window *w, rct_drawpixelinfo *dpi); + // 0x98E44C -static void* window_sign_events[] = { - window_sign_emptysub, +static rct_window_event_list window_sign_events = { + NULL, window_sign_mouseup, - window_sign_emptysub, + NULL, window_sign_mousedown, window_sign_dropdown, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_sign_textinput, window_sign_unknown_14, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, + NULL, + NULL, + NULL, + NULL, window_sign_invalidate, window_sign_paint, - window_sign_emptysub + NULL }; -static void window_sign_small_mouseup(); -static void window_sign_small_dropdown(); -static void window_sign_small_invalidate(); +static void window_sign_small_mouseup(rct_window *w, int widgetIndex); +static void window_sign_small_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); +static void window_sign_small_invalidate(rct_window *w); // 0x9A410C -static void* window_sign_small_events[] = { - window_sign_emptysub, +static rct_window_event_list window_sign_small_events = { + NULL, window_sign_small_mouseup, - window_sign_emptysub, + NULL, window_sign_mousedown, window_sign_small_dropdown, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_sign_textinput, window_sign_unknown_14, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, - window_sign_emptysub, + NULL, + NULL, + NULL, + NULL, window_sign_small_invalidate, window_sign_paint, - window_sign_emptysub + NULL }; /** @@ -153,7 +153,7 @@ void window_sign_open(rct_windownumber number) if (w != NULL) return; - w = window_create_auto_pos(WW, WH, (uint32*)window_sign_events, WC_BANNER, WF_2); + w = window_create_auto_pos(WW, WH, &window_sign_events, WC_BANNER, WF_2); w->widgets = window_sign_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | @@ -215,13 +215,8 @@ void window_sign_open(rct_windownumber number) } /* rct2: 0x6B9765*/ -static void window_sign_mouseup() +static void window_sign_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - rct_banner* banner = &gBanners[w->number]; int x = banner->x << 5; int y = banner->y << 5; @@ -288,13 +283,8 @@ static void window_sign_mousedown(int widgetIndex, rct_window*w, rct_widget* wid } /* rct2: 0x6B979C */ -static void window_sign_dropdown() +static void window_sign_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short widgetIndex, dropdownIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - switch (widgetIndex){ case WIDX_MAIN_COLOR: if (dropdownIndex == -1) return; @@ -326,21 +316,14 @@ static void window_sign_dropdown() } /* rct2: 0x6B9791 & 0x6E6171*/ -static void window_sign_textinput() +static void window_sign_textinput(rct_window *w, int widgetIndex, char *text) { - short widgetIndex; - rct_window *w; - uint8 result; - uint8* text; - - window_text_input_get_registers(w, widgetIndex, result, text); rct_banner* banner = &gBanners[w->number]; int x = banner->x << 5; int y = banner->y << 5; - if (widgetIndex == WIDX_SIGN_TEXT && result) { - - if (*text != 0){ + if (widgetIndex == WIDX_SIGN_TEXT && text != NULL) { + if (*text != 0) { rct_string_id string_id = user_string_allocate(128, text); if (string_id != 0) { rct_string_id prev_string_id = banner->string_idx; @@ -369,11 +352,8 @@ static void window_sign_textinput() } /* rct2: 0x006B96F5 */ -static void window_sign_invalidate() +static void window_sign_invalidate(rct_window *w) { - rct_window* w; - - window_get_register(w); colour_scheme_update(w); rct_widget* main_colour_btn = &window_sign_widgets[WIDX_MAIN_COLOR]; @@ -396,13 +376,8 @@ static void window_sign_invalidate() } /* rct2: 0x006B9754 & 0x006E6134 */ -static void window_sign_paint() +static void window_sign_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); // Draw viewport @@ -412,11 +387,8 @@ static void window_sign_paint() } /* rct2: 0x6B9A6C & 0x6E6424 */ -static void window_sign_unknown_14() +static void window_sign_unknown_14(rct_window *w) { - rct_window* w; - window_get_register(w); - rct_viewport* view = w->viewport; w->viewport = 0; @@ -461,7 +433,7 @@ void window_sign_small_open(rct_windownumber number){ if (w != NULL) return; - w = window_create_auto_pos(WW, WH, (uint32*)window_sign_small_events, WC_BANNER, 0); + w = window_create_auto_pos(WW, WH, &window_sign_small_events, WC_BANNER, 0); w->widgets = window_sign_widgets; w->enabled_widgets = (1 << WIDX_CLOSE) | @@ -524,13 +496,8 @@ void window_sign_small_open(rct_windownumber number){ } /* rct2: 0x6E6145 */ -static void window_sign_small_mouseup() +static void window_sign_small_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - rct_banner* banner = &gBanners[w->number]; int x = banner->x << 5; int y = banner->y << 5; @@ -580,13 +547,8 @@ static void window_sign_small_mouseup() } /* rct2: 0x6E617C */ -static void window_sign_small_dropdown() +static void window_sign_small_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short widgetIndex, dropdownIndex; - rct_window* w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - switch (widgetIndex){ case WIDX_MAIN_COLOR: if (dropdownIndex == -1) return; @@ -628,11 +590,8 @@ static void window_sign_small_dropdown() } /* rct2: 0x006E60D5 */ -static void window_sign_small_invalidate() +static void window_sign_small_invalidate(rct_window *w) { - rct_window* w; - - window_get_register(w); colour_scheme_update(w); rct_widget* main_colour_btn = &window_sign_widgets[WIDX_MAIN_COLOR]; diff --git a/src/windows/staff.c b/src/windows/staff.c index 9a877cdda8..de7e41d4ef 100644 --- a/src/windows/staff.c +++ b/src/windows/staff.c @@ -70,8 +70,6 @@ enum WINDOW_STAFF_WIDGET_IDX { WIDX_COSTUME_BTN, }; -void window_staff_emptysub(){}; - rct_widget window_staff_overview_widgets[] = { { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0x0FFFFFFFF, STR_NONE }, // Panel / Background { WWT_CAPTION, 0, 1, WW - 2, 1, 14, 0x361, STR_WINDOW_TITLE_TIP }, // Title @@ -131,141 +129,141 @@ rct_widget *window_staff_page_widgets[] = { void window_staff_set_page(rct_window* w, int page); void window_staff_disable_widgets(rct_window* w); -void window_staff_unknown_05(); +void window_staff_unknown_05(rct_window *w); void window_staff_viewport_init(rct_window* w); -void window_staff_overview_close(); -void window_staff_overview_mouseup(); -void window_staff_overview_resize(); +void window_staff_overview_close(rct_window *w); +void window_staff_overview_mouseup(rct_window *w, int widgetIndex); +void window_staff_overview_resize(rct_window *w); void window_staff_overview_mousedown(int widgetIndex, rct_window* w, rct_widget* widget); -void window_staff_overview_dropdown(); +void window_staff_overview_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); void window_staff_overview_update(rct_window* w); -void window_staff_overview_invalidate(); -void window_staff_overview_paint(); +void window_staff_overview_invalidate(rct_window *w); +void window_staff_overview_paint(rct_window *w, rct_drawpixelinfo *dpi); void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi); -void window_staff_overview_tool_update(); -void window_staff_overview_tool_down(); -void window_staff_overview_tool_abort(); -void window_staff_overview_text_input(); -void window_staff_overview_viewport_init_wrapper(); +void window_staff_overview_tool_update(rct_window* w, int widgetIndex, int x, int y); +void window_staff_overview_tool_down(rct_window* w, int widgetIndex, int x, int y); +void window_staff_overview_tool_abort(rct_window *w, int widgetIndex); +void window_staff_overview_text_input(rct_window *w, int widgetIndex, char *text); +void window_staff_overview_unknown_14(rct_window *w); -void window_staff_options_mouseup(); +void window_staff_options_mouseup(rct_window *w, int widgetIndex); void window_staff_options_update(rct_window* w); -void window_staff_options_invalidate(); -void window_staff_options_paint(); +void window_staff_options_invalidate(rct_window *w); +void window_staff_options_paint(rct_window *w, rct_drawpixelinfo *dpi); void window_staff_options_tab_paint(rct_window* w, rct_drawpixelinfo* dpi); void window_staff_options_mousedown(int widgetIndex, rct_window* w, rct_widget* widget); -void window_staff_options_dropdown(); +void window_staff_options_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); -void window_staff_stats_mouseup(); -void window_staff_stats_resize(); +void window_staff_stats_mouseup(rct_window *w, int widgetIndex); +void window_staff_stats_resize(rct_window *w); void window_staff_stats_update(rct_window* w); -void window_staff_stats_invalidate(); -void window_staff_stats_paint(); +void window_staff_stats_invalidate(rct_window *w); +void window_staff_stats_paint(rct_window *w, rct_drawpixelinfo *dpi); void window_staff_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi); void window_staff_set_colours(); // 0x992AEC -static void* window_staff_overview_events[] = { +static rct_window_event_list window_staff_overview_events = { window_staff_overview_close, window_staff_overview_mouseup, window_staff_overview_resize, window_staff_overview_mousedown, window_staff_overview_dropdown, - window_staff_emptysub, + NULL, window_staff_overview_update, - window_staff_emptysub, - window_staff_emptysub, + NULL, + NULL, window_staff_overview_tool_update, window_staff_overview_tool_down, - window_staff_emptysub, - window_staff_emptysub, + NULL, + NULL, window_staff_overview_tool_abort, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_staff_overview_text_input, - window_staff_overview_viewport_init_wrapper, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, + window_staff_overview_unknown_14, + NULL, + NULL, + NULL, + NULL, window_staff_overview_invalidate, //Invalidate window_staff_overview_paint, //Paint - window_staff_emptysub + NULL }; // 0x992B5C -static void* window_staff_options_events[] = { - window_staff_emptysub, +static rct_window_event_list window_staff_options_events = { + NULL, window_staff_options_mouseup, window_staff_stats_resize, window_staff_options_mousedown, window_staff_options_dropdown, window_staff_unknown_05, window_staff_options_update, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_staff_options_invalidate, //Invalidate window_staff_options_paint, //Paint - window_staff_emptysub + NULL }; // 0x992BCC -static void* window_staff_stats_events[] = { - window_staff_emptysub, +static rct_window_event_list window_staff_stats_events = { + NULL, window_staff_stats_mouseup, window_staff_stats_resize, - window_staff_emptysub, - window_staff_emptysub, + NULL, + NULL, window_staff_unknown_05, window_staff_stats_update, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, - window_staff_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_staff_stats_invalidate, //Invalidate window_staff_stats_paint, //Paint - window_staff_emptysub + NULL }; -void* window_staff_page_events[] = { - window_staff_overview_events, - window_staff_options_events, - window_staff_stats_events +static rct_window_event_list *window_staff_page_events[] = { + &window_staff_overview_events, + &window_staff_options_events, + &window_staff_stats_events }; uint32 window_staff_page_enabled_widgets[] = { @@ -303,7 +301,7 @@ void window_staff_open(rct_peep* peep) { rct_window* w = window_bring_to_front_by_number(WC_PEEP, peep->sprite_index); if (w == NULL) { - w = window_create_auto_pos(WW, WH, (uint32*)window_staff_overview_events, WC_PEEP, WF_10 | WF_RESIZABLE); + w = window_create_auto_pos(WW, WH, &window_staff_overview_events, WC_PEEP, WF_10 | WF_RESIZABLE); w->widgets = RCT2_GLOBAL(0x9AF81C, rct_widget*); w->enabled_widgets = RCT2_GLOBAL(0x9929B0, uint32); @@ -369,12 +367,8 @@ void window_staff_disable_widgets(rct_window* w) * Same as window_peep_overview_close. * rct2: 0x006BDFF8 */ -void window_staff_overview_close() +void window_staff_overview_close(rct_window *w) { - rct_window* w; - - window_get_register(w); - if (RCT2_GLOBAL(RCT2_ADDRESS_INPUT_FLAGS, uint32) & INPUT_FLAG_TOOL_ACTIVE){ if (w->classification == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWCLASS, rct_windowclass) && w->number == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWNUMBER, rct_windownumber)) @@ -431,11 +425,8 @@ void window_staff_set_page(rct_window* w, int page) } /** rct2: 0x006BDF55 */ -void window_staff_overview_mouseup() +void window_staff_overview_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window* w; - window_widget_get_registers(w, widgetIndex); rct_peep* peep = GET_PEEP(w->number); switch (widgetIndex) { @@ -475,11 +466,8 @@ void window_staff_overview_mouseup() } /** rct2: 0x006BE558 */ -void window_staff_overview_resize() +void window_staff_overview_resize(rct_window *w) { - rct_window* w; - window_get_register(w); - window_staff_disable_widgets(w); w->min_width = WW; @@ -554,13 +542,8 @@ void window_staff_overview_mousedown(int widgetIndex, rct_window* w, rct_widget* } /** rct2: 0x006BDFA3 */ -void window_staff_overview_dropdown() +void window_staff_overview_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short widgetIndex, dropdownIndex; - rct_window* w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex != WIDX_PATROL) { return; } @@ -616,12 +599,8 @@ void window_staff_set_order(rct_window* w, int order_id) } /** rct2: 0x006BE7DB */ -void window_staff_options_mouseup() +void window_staff_options_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window* w; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -648,12 +627,8 @@ void window_staff_options_update(rct_window* w) } /** rct2: 0x006BEBCF */ -void window_staff_stats_mouseup() +void window_staff_stats_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window* w; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -667,11 +642,8 @@ void window_staff_stats_mouseup() } /** rct2: 0x006BEC1B and rct2: 0x006BE975 */ -void window_staff_stats_resize() +void window_staff_stats_resize(rct_window *w) { - rct_window* w; - window_get_register(w); - w->min_width = 190; w->max_width = 190; w->min_height = 119; @@ -712,17 +684,14 @@ void window_staff_stats_update(rct_window* w) } /* rct2: 0x6BEC80, 0x6BE9DA */ -void window_staff_unknown_05(){ - rct_window* w; - window_get_register(w); - +void window_staff_unknown_05(rct_window *w) +{ widget_invalidate(w, WIDX_TAB_1); } /* rct2: 0x006BE9E9 */ -void window_staff_stats_invalidate(){ - rct_window* w; - window_get_register(w); +void window_staff_stats_invalidate(rct_window *w) +{ colour_scheme_update_by_class(w, (rct_windowclass)WC_STAFF); if (window_staff_page_widgets[w->page] != w->widgets){ @@ -753,9 +722,8 @@ void window_staff_stats_invalidate(){ /* rct2: 0x006BE62B */ -void window_staff_options_invalidate(){ - rct_window* w; - window_get_register(w); +void window_staff_options_invalidate(rct_window *w) +{ colour_scheme_update_by_class(w, (rct_windowclass)WC_STAFF); if (window_staff_page_widgets[w->page] != w->widgets){ @@ -826,9 +794,8 @@ void window_staff_options_invalidate(){ } /* rct2: 0x006BDD91 */ -void window_staff_overview_invalidate(){ - rct_window* w; - window_get_register(w); +void window_staff_overview_invalidate(rct_window *w) +{ colour_scheme_update_by_class(w, (rct_windowclass)WC_STAFF); if (window_staff_page_widgets[w->page] != w->widgets){ @@ -880,12 +847,8 @@ void window_staff_overview_invalidate(){ } /* rct2: 0x6BDEAF */ -void window_staff_overview_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_staff_overview_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_staff_overview_tab_paint(w, dpi); window_staff_options_tab_paint(w, dpi); @@ -915,7 +878,8 @@ void window_staff_overview_paint(){ } /* rct2: 0x6BEC8F */ -void window_staff_options_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ +void window_staff_options_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) +{ if (w->disabled_widgets & (1 << WIDX_TAB_2)) return; rct_widget* widget = &w->widgets[WIDX_TAB_2]; @@ -932,7 +896,8 @@ void window_staff_options_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ } /* rct2: 0x6BECD3 */ -void window_staff_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ +void window_staff_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) +{ if (w->disabled_widgets & (1 << WIDX_TAB_3)) return; rct_widget* widget = &w->widgets[WIDX_TAB_3]; @@ -951,7 +916,8 @@ void window_staff_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ /** * Based on rct2: 0x6983dd in window_guest to be remerged into one when peep file added. */ -void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ +void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) +{ if (w->disabled_widgets & (1 << WIDX_TAB_1)) return; @@ -1011,12 +977,8 @@ void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi){ } /* rct2: 0x6BE7C6 */ -void window_staff_options_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_staff_options_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_staff_overview_tab_paint(w, dpi); window_staff_options_tab_paint(w, dpi); @@ -1024,12 +986,8 @@ void window_staff_options_paint(){ } /* rct2: 0x6BEA86 */ -void window_staff_stats_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_staff_stats_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); window_staff_overview_tab_paint(w, dpi); window_staff_options_tab_paint(w, dpi); @@ -1076,14 +1034,10 @@ void window_staff_stats_paint(){ } /* rct2: 0x006BDFD8 */ -void window_staff_overview_tool_update(){ - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - - if (widgetIndex != WIDX_PICKUP) return; +void window_staff_overview_tool_update(rct_window* w, int widgetIndex, int x, int y) +{ + if (widgetIndex != WIDX_PICKUP) + return; RCT2_GLOBAL(RCT2_ADDRESS_PICKEDUP_PEEP_SPRITE, sint32) = -1; @@ -1109,15 +1063,9 @@ void window_staff_overview_tool_update(){ } /* rct2: 0x006BDFC3 */ -void window_staff_overview_tool_down(){ - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - - if (widgetIndex == WIDX_PICKUP){ - +void window_staff_overview_tool_down(rct_window* w, int widgetIndex, int x, int y) +{ + if (widgetIndex == WIDX_PICKUP) { int dest_x, dest_y; rct_map_element *mapElement; footpath_get_coordinates_from_pos(x, y + 16, &dest_x, &dest_y, NULL, &mapElement); @@ -1174,14 +1122,9 @@ void window_staff_overview_tool_down(){ } /* rct2: 0x6BDFAE */ -void window_staff_overview_tool_abort(){ - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - if (widgetIndex == WIDX_PICKUP){ - +void window_staff_overview_tool_abort(rct_window *w, int widgetIndex) +{ + if (widgetIndex == WIDX_PICKUP) { rct_peep* peep = GET_PEEP(w->number); if (peep->state != PEEP_STATE_PICKED) return; @@ -1209,17 +1152,13 @@ void window_staff_overview_tool_abort(){ } /* rct2:0x6BDFED */ -void window_staff_overview_text_input(){ - short widgetIndex; - rct_window *w; - char _cl; - uint32* text; +void window_staff_overview_text_input(rct_window *w, int widgetIndex, char *text) +{ + if (widgetIndex != WIDX_RENAME) + return; - window_text_input_get_registers(w, widgetIndex, _cl, text); - - if (widgetIndex != WIDX_RENAME)return; - - if (!_cl) return; + if (text == NULL) + return; RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_STRING_ID, uint16) = 2979; @@ -1229,10 +1168,8 @@ void window_staff_overview_text_input(){ } /* rct2: 0x006BE5FC */ -void window_staff_overview_viewport_init_wrapper(){ - rct_window* w; - window_get_register(w); - +void window_staff_overview_unknown_14(rct_window *w) +{ window_staff_viewport_init(w); } @@ -1360,22 +1297,16 @@ void window_staff_options_mousedown(int widgetIndex, rct_window* w, rct_widget* } /** rct2: 0x6BE809 */ -void window_staff_options_dropdown() +void window_staff_options_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short widgetIndex, dropdownIndex; - rct_window* w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex != WIDX_COSTUME_BTN) { return; } - if (dropdownIndex == -1)return; + if (dropdownIndex == -1) + return; rct_peep* peep = GET_PEEP(w->number); - int costume = (RCT2_ADDRESS(0xF4391B, uint8)[dropdownIndex] - 4) | 0x80; - game_do_command(peep->x, (costume << 8) | 1, peep->y, w->number, GAME_COMMAND_SET_STAFF_ORDER, (int)peep, 0); } diff --git a/src/windows/staff_fire_prompt.c b/src/windows/staff_fire_prompt.c index dcf4ae0c28..0669f0bd8b 100644 --- a/src/windows/staff_fire_prompt.c +++ b/src/windows/staff_fire_prompt.c @@ -50,50 +50,50 @@ static rct_widget window_staff_fire_widgets[] = { { WIDGETS_END } }; -static void window_staff_fire_emptysub(){} -static void window_staff_fire_mouseup(); -static void window_staff_fire_invalidate(); -static void window_staff_fire_paint(); +static void window_staff_fire_mouseup(rct_window *w, int widgetIndex); +static void window_staff_fire_invalidate(rct_window *w); +static void window_staff_fire_paint(rct_window *w, rct_drawpixelinfo *dpi); //0x9A3F7C -static void* window_staff_fire_events[] = { - window_staff_fire_emptysub, +static rct_window_event_list window_staff_fire_events = { + NULL, window_staff_fire_mouseup, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, - window_staff_fire_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_staff_fire_invalidate, window_staff_fire_paint, - window_staff_fire_emptysub + NULL }; /** Based off of rct2: 0x6C0A77 */ -void window_staff_fire_prompt_open(rct_peep* peep){ +void window_staff_fire_prompt_open(rct_peep* peep) +{ // Check if the confirm window already exists. if (window_bring_to_front_by_number(WC_FIRE_PROMPT, peep->sprite_index)) { return; } - rct_window* w = window_create_centred(WW, WH, (uint32*)0x992C3C, 0x1A, WF_TRANSPARENT); + rct_window* w = window_create_centred(WW, WH, &window_staff_fire_events, WC_FIRE_PROMPT, WF_TRANSPARENT); w->widgets = window_staff_fire_widgets; w->enabled_widgets |= (1 << WIDX_CLOSE) | (1 << WIDX_YES) | (1 << WIDX_CANCEL); @@ -109,12 +109,8 @@ void window_staff_fire_prompt_open(rct_peep* peep){ * * rct2: 0x006C0B40 */ -static void window_staff_fire_mouseup(){ - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - +static void window_staff_fire_mouseup(rct_window *w, int widgetIndex) +{ rct_peep* peep = &g_sprite_list[w->number].peep; switch (widgetIndex){ @@ -127,11 +123,8 @@ static void window_staff_fire_mouseup(){ } } -static void window_staff_fire_invalidate() +static void window_staff_fire_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } @@ -139,12 +132,8 @@ static void window_staff_fire_invalidate() * * rct2: 0x006C0AF2 */ -static void window_staff_fire_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +static void window_staff_fire_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); rct_peep* peep = &g_sprite_list[w->number].peep; diff --git a/src/windows/staff_list.c b/src/windows/staff_list.c index 18014ac40e..1da2146008 100644 --- a/src/windows/staff_list.c +++ b/src/windows/staff_list.c @@ -43,49 +43,48 @@ enum { bool _quick_fire_mode = false; -static void window_staff_list_emptysub() { } -static void window_staff_list_close(); -static void window_staff_list_mouseup(); -static void window_staff_list_resize(); +static void window_staff_list_close(rct_window *w); +static void window_staff_list_mouseup(rct_window *w, int widgetIndex); +static void window_staff_list_resize(rct_window *w); static void window_staff_list_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_staff_list_dropdown(); +static void window_staff_list_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_staff_list_update(rct_window *w); -static void window_staff_list_tooldown(); -static void window_staff_list_toolabort(); -static void window_staff_list_scrollgetsize(); -static void window_staff_list_scrollmousedown(); -static void window_staff_list_scrollmouseover(); -static void window_staff_list_tooltip(); -static void window_staff_list_invalidate(); -static void window_staff_list_paint(); -static void window_staff_list_scrollpaint(); +static void window_staff_list_tooldown(rct_window *w, int widgetIndex, int x, int y); +static void window_staff_list_toolabort(rct_window *w, int widgetIndex); +static void window_staff_list_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_staff_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_staff_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_staff_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_staff_list_invalidate(rct_window *w); +static void window_staff_list_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_staff_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_staff_list_events[] = { +static rct_window_event_list window_staff_list_events = { window_staff_list_close, window_staff_list_mouseup, window_staff_list_resize, window_staff_list_mousedown, window_staff_list_dropdown, - window_staff_list_emptysub, + NULL, window_staff_list_update, - window_staff_list_emptysub, - window_staff_list_emptysub, - window_staff_list_emptysub, - (void*)0x006BD990, // window_staff_list_tooldown - window_staff_list_emptysub, - window_staff_list_emptysub, + NULL, + NULL, + NULL, + window_staff_list_tooldown, + NULL, + NULL, window_staff_list_toolabort, - window_staff_list_emptysub, + NULL, window_staff_list_scrollgetsize, window_staff_list_scrollmousedown, - window_staff_list_emptysub, + NULL, window_staff_list_scrollmouseover, - window_staff_list_emptysub, - window_staff_list_emptysub, - window_staff_list_emptysub, + NULL, + NULL, + NULL, window_staff_list_tooltip, - window_staff_list_emptysub, - window_staff_list_emptysub, + NULL, + NULL, window_staff_list_invalidate, window_staff_list_paint, window_staff_list_scrollpaint, @@ -151,7 +150,7 @@ void window_staff_list_open() if (window != NULL) return; - window = window_create_auto_pos(320, 270, (uint32*)window_staff_list_events, WC_STAFF_LIST, WF_10 | WF_RESIZABLE); + window = window_create_auto_pos(320, 270, &window_staff_list_events, WC_STAFF_LIST, WF_10 | WF_RESIZABLE); window->widgets = window_staff_list_widgets; window->enabled_widgets = (1 << WIDX_STAFF_LIST_CLOSE) | @@ -188,11 +187,8 @@ void window_staff_list_cancel_tools(rct_window *w) { /* * rct2: 0x006BD9B1 **/ -void window_staff_list_close() { - rct_window *w; - - window_get_register(w); - +void window_staff_list_close(rct_window *w) +{ window_staff_list_cancel_tools(w); } @@ -200,14 +196,10 @@ void window_staff_list_close() { * * rct2: 0x006BD94C */ -static void window_staff_list_mouseup() +static void window_staff_list_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; uint16 newStaffId; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_STAFF_LIST_CLOSE: window_close(w); @@ -247,12 +239,8 @@ static void window_staff_list_mouseup() * * rct2: 0x006BDD5D */ -static void window_staff_list_resize() +static void window_staff_list_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->min_width = 320; w->min_height = 270; if (w->width < w->min_width) { @@ -299,12 +287,8 @@ static void window_staff_list_mousedown(int widgetIndex, rct_window* w, rct_widg * * rct2: 0x006BD9A6 */ -static void window_staff_list_dropdown() +static void window_staff_list_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window* w; - short widgetIndex, dropdownIndex; - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex == WIDX_STAFF_LIST_UNIFORM_COLOR_PICKER && dropdownIndex != -1) { update_staff_colour(RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_STAFF_LIST_SELECTED_TAB, uint8), dropdownIndex); } @@ -337,16 +321,21 @@ void window_staff_list_update(rct_window *w) } } +/** + * + * rct2: 0x006BD990 + */ +static void window_staff_list_tooldown(rct_window *w, int widgetIndex, int x, int y) +{ + RCT2_CALLPROC_X(0x006BD990, x, y, 0, widgetIndex, (int)w, 0, 0); +} + /** * * rct2: 0x006BD99B */ -void window_staff_list_toolabort() { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - +void window_staff_list_toolabort(rct_window *w, int widgetIndex) +{ if (widgetIndex == WIDX_STAFF_LIST_SHOW_PATROL_AREA_BUTTON) { hide_gridlines(); tool_cancel(); @@ -359,13 +348,10 @@ void window_staff_list_toolabort() { * * rct2: 0x006BDBE6 */ -void window_staff_list_scrollgetsize() +void window_staff_list_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int i, width, height, spriteIndex; + int i, spriteIndex; rct_peep *peep; - rct_window *w; - - window_get_register(w); uint16 staffCount = 0; FOR_ALL_PEEPS(spriteIndex, peep) { @@ -380,8 +366,8 @@ void window_staff_list_scrollgetsize() window_invalidate(w); } - height = staffCount * 10; - i = height - window_staff_list_widgets[WIDX_STAFF_LIST_LIST].bottom + window_staff_list_widgets[WIDX_STAFF_LIST_LIST].top + 21; + *height = staffCount * 10; + i = *height - window_staff_list_widgets[WIDX_STAFF_LIST_LIST].bottom + window_staff_list_widgets[WIDX_STAFF_LIST_LIST].top + 21; if (i < 0) i = 0; if (i < w->scrolls[0].v_top) { @@ -389,22 +375,18 @@ void window_staff_list_scrollgetsize() window_invalidate(w); } - width = 420; - window_scrollsize_set_registers(width, height); + *width = 420; } /** * * rct2: 0x006BDC9A */ -void window_staff_list_scrollmousedown() { +void window_staff_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) +{ int i, spriteIndex; - short x, y, scrollIndex; - rct_window *w; rct_peep *peep; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - i = y / 10; FOR_ALL_PEEPS(spriteIndex, peep) { if (peep->type != PEEP_TYPE_STAFF) @@ -429,12 +411,9 @@ void window_staff_list_scrollmousedown() { * * rct2: 0x006BDC6B */ -void window_staff_list_scrollmouseover() { +void window_staff_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) +{ int i; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); i = y / 10; if (i != RCT2_GLOBAL(RCT2_ADDRESS_STAFF_HIGHLIGHTED_INDEX, short)) { @@ -447,7 +426,7 @@ void window_staff_list_scrollmouseover() { * * rct2: 0x006BDC90 */ -void window_staff_list_tooltip() +void window_staff_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } @@ -456,11 +435,8 @@ void window_staff_list_tooltip() * * rct2: 0x006BD477 */ -void window_staff_list_invalidate() +void window_staff_list_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); int pressed_widgets = w->pressed_widgets & 0xFFFFFF0F; @@ -497,13 +473,10 @@ void window_staff_list_invalidate() * * rct2: 0x006BD533 */ -void window_staff_list_paint() { +void window_staff_list_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ int i; uint8 selectedTab; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); // Widgets window_draw_widgets(w, dpi); @@ -594,17 +567,13 @@ void window_staff_list_paint() { * * rct2: 0x006BD785 */ -void window_staff_list_scrollpaint() +void window_staff_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int spriteIndex, y, i, staffOrderIcon_x, staffOrders, staffOrderSprite; uint32 argument_1, argument_2; uint8 selectedTab; - rct_window *w; - rct_drawpixelinfo *dpi; rct_peep *peep; - window_paint_get_registers(w, dpi); - gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ((char*)0x0141FC48)[w->colours[1] * 8]); y = 0; diff --git a/src/windows/text_input.c b/src/windows/text_input.c index c6dcfd9008..5f84c6aedf 100644 --- a/src/windows/text_input.c +++ b/src/windows/text_input.c @@ -53,44 +53,43 @@ static rct_widget window_text_input_widgets[] = { { WIDGETS_END } }; -static void window_text_input_emptysub(){} -static void window_text_input_mouseup(); -static void window_text_input_paint(); +static void window_text_input_close(rct_window *w); +static void window_text_input_mouseup(rct_window *w, int widgetIndex); +static void window_text_input_update7(rct_window *w); static void window_text_input_text(int key, rct_window* w); -static void window_text_input_update7(); -static void window_text_input_close(); -static void window_text_input_invalidate(); +static void window_text_input_invalidate(rct_window *w); +static void window_text_input_paint(rct_window *w, rct_drawpixelinfo *dpi); //0x9A3F7C -static void* window_text_input_events[] = { +static rct_window_event_list window_text_input_events = { window_text_input_close, window_text_input_mouseup, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_text_input_update7, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_text, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, - window_text_input_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_text_input_invalidate, window_text_input_paint, - window_text_input_emptysub + NULL }; int input_text_description; @@ -137,7 +136,7 @@ void window_text_input_open(rct_window* call_w, int call_widget, rct_string_id t rct_window* w = window_create_centred( WW, height, - (uint32*)window_text_input_events, + &window_text_input_events, WC_TEXTINPUT, WF_STICK_TO_FRONT ); @@ -198,7 +197,7 @@ void window_text_input_raw_open(rct_window* call_w, int call_widget, rct_string_ rct_window* w = window_create_centred( WW, height, - (uint32*)window_text_input_events, + &window_text_input_events, WC_TEXTINPUT, WF_STICK_TO_FRONT ); @@ -225,14 +224,11 @@ void window_text_input_raw_open(rct_window* call_w, int call_widget, rct_string_ /** * */ -static void window_text_input_mouseup(){ - short widgetIndex; - rct_window *w; +static void window_text_input_mouseup(rct_window *w, int widgetIndex) +{ rct_window *calling_w; - window_widget_get_registers(w, widgetIndex); calling_w = window_find_by_number(calling_class, calling_number); - switch (widgetIndex){ case WIDX_CANCEL: case WIDX_CLOSE: @@ -256,12 +252,8 @@ static void window_text_input_mouseup(){ /** * */ -static void window_text_input_paint(){ - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +static void window_text_input_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ window_draw_widgets(w, dpi); int y = w->y + 25; @@ -329,9 +321,8 @@ static void window_text_input_paint(){ } } - -static void window_text_input_text(int key, rct_window* w){ - +void window_text_input_key(rct_window* w, int key) +{ int text = key; char new_char = platform_scancode_to_rct_keycode(0xFF&key); @@ -349,12 +340,8 @@ static void window_text_input_text(int key, rct_window* w){ window_invalidate(w); } -void window_text_input_update7() +void window_text_input_update7(rct_window *w) { - rct_window* w; - - window_get_register(w); - rct_window* calling_w = window_find_by_number(calling_class, calling_number); // If the calling window is closed then close the text // input window. @@ -368,18 +355,15 @@ void window_text_input_update7() window_invalidate(w); } -static void window_text_input_close() +static void window_text_input_close(rct_window *w) { // Make sure that we take it out of the text input // mode otherwise problems may occur. platform_stop_text_input(); } -static void window_text_input_invalidate(){ - rct_window* w; - - window_get_register(w); - +static void window_text_input_invalidate(rct_window *w) +{ // Work out the existing size of the window char wrapped_string[512]; strcpy(wrapped_string, text_input); diff --git a/src/windows/themes.c b/src/windows/themes.c index c6fa4ab4ba..ae3d3ea222 100644 --- a/src/windows/themes.c +++ b/src/windows/themes.c @@ -49,49 +49,47 @@ enum { WINDOW_THEMES_TAB_COUNT } WINDOW_THEMES_TAB; -static void window_themes_emptysub() { } -static void window_themes_close(); -static void window_themes_mouseup(); -static void window_themes_resize(); +static void window_themes_mouseup(rct_window *w, int widgetIndex); +static void window_themes_resize(rct_window *w); static void window_themes_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_themes_dropdown(); +static void window_themes_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_themes_update(rct_window *w); -static void window_themes_scrollgetsize(); -static void window_themes_scrollmousedown(); -static void window_themes_scrollmouseover(); -static void window_themes_textinput(); -static void window_themes_tooltip(); -static void window_themes_invalidate(); -static void window_themes_paint(); -static void window_themes_scrollpaint(); +static void window_themes_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_themes_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_themes_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_themes_textinput(rct_window *w, int widgetIndex, char *text); +static void window_themes_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_themes_invalidate(rct_window *w); +static void window_themes_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_themes_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); static void window_themes_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w); -static void* window_themes_events[] = { - window_themes_close, +static rct_window_event_list window_themes_events = { + NULL, window_themes_mouseup, window_themes_resize, window_themes_mousedown, window_themes_dropdown, - window_themes_emptysub, + NULL, window_themes_update, - window_themes_emptysub, - window_themes_emptysub, - window_themes_emptysub, - window_themes_emptysub, - window_themes_emptysub, - window_themes_emptysub, - window_themes_emptysub, - window_themes_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_themes_scrollgetsize, window_themes_scrollmousedown, - window_themes_emptysub, + NULL, window_themes_scrollmouseover, window_themes_textinput, - window_themes_emptysub, - window_themes_emptysub, + NULL, + NULL, window_themes_tooltip, - window_themes_emptysub, - window_themes_emptysub, + NULL, + NULL, window_themes_invalidate, window_themes_paint, window_themes_scrollpaint, @@ -370,7 +368,7 @@ void window_themes_open() if (window != NULL) return; - window = window_create_auto_pos(320, 107, (uint32*)window_themes_events, WC_THEMES, WF_10 | WF_RESIZABLE); + window = window_create_auto_pos(320, 107, &window_themes_events, WC_THEMES, WF_10 | WF_RESIZABLE); window->widgets = window_themes_widgets; window->enabled_widgets = (1 << WIDX_THEMES_CLOSE) | @@ -405,19 +403,8 @@ void window_themes_open() window->max_height = 107; } -void window_themes_close() { - rct_window *w; - - window_get_register(w); -} - -static void window_themes_mouseup() +static void window_themes_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_THEMES_CLOSE: window_close(w); @@ -444,12 +431,8 @@ static void window_themes_mouseup() } } -static void window_themes_resize() +static void window_themes_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - if (_selected_tab == WINDOW_THEMES_TAB_SETTINGS) { w->min_width = 320; w->min_height = 107; @@ -607,12 +590,8 @@ static void window_themes_mousedown(int widgetIndex, rct_window* w, rct_widget* } } -static void window_themes_dropdown() +static void window_themes_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window* w; - short widgetIndex, dropdownIndex; - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - switch (widgetIndex) { case WIDX_THEMES_LIST: if (dropdownIndex != -1) { @@ -647,11 +626,8 @@ void window_themes_update(rct_window *w) } -void window_themes_scrollgetsize() { - rct_window *w; - - window_get_register(w); - +void window_themes_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) +{ if (_selected_tab == WINDOW_THEMES_TAB_SETTINGS || _selected_tab == WINDOW_THEMES_TAB_FEATURES) return; @@ -664,25 +640,12 @@ void window_themes_scrollgetsize() { window_invalidate(w); } - #ifdef _MSC_VER - __asm mov ecx, 420 - #else - __asm__("mov ecx, 420 "); - #endif - - #ifdef _MSC_VER - __asm mov edx, scrollHeight - #else - __asm__("mov edx, %[scrollHeight] " : [scrollHeight] "+m" (scrollHeight)); - #endif + *width = 420; + *height = scrollHeight; } -void window_themes_scrollmousedown() { - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); - +void window_themes_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) +{ if (y / _row_height < get_colour_scheme_tab_count()) { int y2 = y % _row_height; _color_index_1 = y / _row_height; @@ -720,26 +683,15 @@ void window_themes_scrollmousedown() { } } -void window_themes_scrollmouseover() { - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); - +void window_themes_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) +{ //if (_selected_tab == WINDOW_THEMES_TAB_SETTINGS) // return; } -static void window_themes_textinput() +static void window_themes_textinput(rct_window *w, int widgetIndex, char *text) { - rct_window *w; - short widgetIndex; - uint8 result; - char *text; - - window_textinput_get_registers(w, widgetIndex, result, text); - - if (!result || text[0] == 0) + if (text == NULL || text[0] == 0) return; switch (widgetIndex) { @@ -772,16 +724,13 @@ static void window_themes_textinput() } } -void window_themes_tooltip() +void window_themes_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } -void window_themes_invalidate() +void window_themes_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); int pressed_widgets = w->pressed_widgets & 0xFFFFE00F; @@ -854,12 +803,8 @@ void window_themes_invalidate() } } -void window_themes_paint() { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_themes_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ // Widgets window_draw_widgets(w, dpi); window_themes_draw_tab_images(dpi, w); @@ -890,13 +835,9 @@ void window_themes_paint() { * * rct2: 0x006BD785 */ -void window_themes_scrollpaint() +void window_themes_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int y; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); if (_selected_tab == WINDOW_THEMES_TAB_SETTINGS || _selected_tab == WINDOW_THEMES_TAB_FEATURES) return; diff --git a/src/windows/tile_inspector.c b/src/windows/tile_inspector.c index 539b3a2f9b..c612c9ad88 100644 --- a/src/windows/tile_inspector.c +++ b/src/windows/tile_inspector.c @@ -53,45 +53,44 @@ static int window_tile_inspector_tile_x; static int window_tile_inspector_tile_y; static int window_tile_inspector_item_count; -static void window_tile_inspector_emptysub() { } -static void window_tile_inspector_close(); -static void window_tile_inspector_tool_update(); -static void window_tile_inspector_tool_down(); -static void window_tile_inspector_tool_abort(); -static void window_tile_inspector_scrollgetsize(); -static void window_tile_inspector_scrollmouseover(); -static void window_tile_inspector_mouseup(); -static void window_tile_inspector_resize(); -static void window_tile_inspector_invalidate(); -static void window_tile_inspector_paint(); -static void window_tile_inspector_scrollpaint(); +static void window_tile_inspector_close(rct_window *w); +static void window_tile_inspector_mouseup(rct_window *w, int widgetIndex); +static void window_tile_inspector_resize(rct_window *w); +static void window_tile_inspector_tool_update(rct_window* w, int widgetIndex, int x, int y); +static void window_tile_inspector_tool_down(rct_window* w, int widgetIndex, int x, int y); +static void window_tile_inspector_tool_abort(rct_window *w, int widgetIndex); +static void window_tile_inspector_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_tile_inspector_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_tile_inspector_invalidate(rct_window *w); +static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_tile_inspector_events[] = { +static rct_window_event_list window_tile_inspector_events = { window_tile_inspector_close, window_tile_inspector_mouseup, window_tile_inspector_resize, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_tile_inspector_tool_update, window_tile_inspector_tool_down, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, + NULL, + NULL, window_tile_inspector_tool_abort, - window_tile_inspector_emptysub, + NULL, window_tile_inspector_scrollgetsize, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, + NULL, + NULL, window_tile_inspector_scrollmouseover, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, - window_tile_inspector_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_tile_inspector_invalidate, window_tile_inspector_paint, window_tile_inspector_scrollpaint @@ -111,7 +110,7 @@ void window_tile_inspector_open() 29, WW, WH, - (uint32*)window_tile_inspector_events, + &window_tile_inspector_events, WC_TILE_INSPECTOR, WF_RESIZABLE ); @@ -133,18 +132,13 @@ void window_tile_inspector_open() tool_set(window, WIDX_BACKGROUND, 12); } -static void window_tile_inspector_close() +static void window_tile_inspector_close(rct_window *w) { tool_cancel(); } -static void window_tile_inspector_mouseup() +static void window_tile_inspector_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -152,12 +146,8 @@ static void window_tile_inspector_mouseup() } } -static void window_tile_inspector_resize() +static void window_tile_inspector_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->min_width = WW; w->min_height = MIN_WH; if (w->width < w->min_width) { @@ -170,17 +160,14 @@ static void window_tile_inspector_resize() } } -static void window_tile_inspector_tool_update() +static void window_tile_inspector_tool_update(rct_window* w, int widgetIndex, int x, int y) { - short widgetIndex; - rct_window *w; - short x, y; int direction; + short mapX, mapY; - window_tool_get_registers(w, widgetIndex, x, y); map_invalidate_selection_rect(); RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) &= ~(1 << 0); - screen_pos_to_map_pos(&x, &y, &direction); + screen_pos_to_map_pos(&mapX, &mapY, &direction); if (x == (short)0x8000) { return; @@ -197,15 +184,12 @@ static void window_tile_inspector_tool_update() } -static void window_tile_inspector_tool_down() +static void window_tile_inspector_tool_down(rct_window* w, int widgetIndex, int x, int y) { - short widgetIndex; - rct_window* w; - short x, y; int direction; + short mapX, mapY; - window_tool_get_registers(w, widgetIndex, x, y); - screen_pos_to_map_pos(&x, &y, &direction); + screen_pos_to_map_pos(&mapX, &mapY, &direction); if (x == (short)0x8000) { return; @@ -226,43 +210,24 @@ static void window_tile_inspector_tool_down() window_invalidate(w); } -static void window_tile_inspector_tool_abort() +static void window_tile_inspector_tool_abort(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex, x, y; - window_tool_get_registers(w, widgetIndex, x, y); window_close(w); } -static void window_tile_inspector_scrollgetsize() +static void window_tile_inspector_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - - rct_window *w; - int width, height; - window_get_register(w); - - height = window_tile_inspector_item_count * 11; - width = WW - 30; - - window_scrollsize_set_registers(width, height); - + *width = WW - 30; + *height = window_tile_inspector_item_count * 11; } -static void window_tile_inspector_scrollmouseover() +static void window_tile_inspector_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); window_invalidate(w); } -static void window_tile_inspector_invalidate() +static void window_tile_inspector_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); - window_tile_inspector_widgets[WIDX_BACKGROUND].right = w->width - 1; window_tile_inspector_widgets[WIDX_BACKGROUND].bottom = w->height - 1; window_tile_inspector_widgets[WIDX_CLOSE].left = w->width - 13; @@ -272,15 +237,11 @@ static void window_tile_inspector_invalidate() window_tile_inspector_widgets[WIDX_SCROLL].bottom = w->height - 30; } -static void window_tile_inspector_paint() +static void window_tile_inspector_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y; - rct_window *w; - rct_drawpixelinfo *dpi; char buffer[256]; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); x = w->x + 20; @@ -313,15 +274,11 @@ static void window_tile_inspector_paint() } -static void window_tile_inspector_scrollpaint() +static void window_tile_inspector_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int x = 15, y = 11 * (window_tile_inspector_item_count - 1), i = 0; - rct_window *w; - rct_drawpixelinfo *dpi; char buffer[256]; - window_paint_get_registers(w, dpi); - if (window_tile_inspector_tile_x == -1) return; diff --git a/src/windows/title_command_editor.c b/src/windows/title_command_editor.c index 3fe009bbe8..d1b282a291 100644 --- a/src/windows/title_command_editor.c +++ b/src/windows/title_command_editor.c @@ -102,50 +102,48 @@ static rct_widget window_title_command_editor_widgets[] = { { WIDGETS_END }, }; -static void window_title_command_editor_emptysub() { } -static void window_title_command_editor_close(); -static void window_title_command_editor_mouseup(); +static void window_title_command_editor_mouseup(rct_window *w, int widgetIndex); static void window_title_command_editor_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_title_command_editor_dropdown(); -static void window_title_command_editor_update(); -static void window_title_command_editor_invalidate(); -static void window_title_command_editor_paint(); -static void window_title_command_editor_textinput(); +static void window_title_command_editor_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); +static void window_title_command_editor_update(rct_window *w); +static void window_title_command_editor_invalidate(rct_window *w); +static void window_title_command_editor_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_title_command_editor_textinput(rct_window *w, int widgetIndex, char *text); static void window_title_command_editor_inputsize(rct_window *w); static int get_command_info_index(int index); static TITLE_COMMAND_ORDER get_command_info(int index); static rct_xy16 get_location(); static uint8 get_zoom(); -static void* window_title_command_editor_events[] = { - window_title_command_editor_close, +static rct_window_event_list window_title_command_editor_events = { + NULL, window_title_command_editor_mouseup, - window_title_command_editor_emptysub, + NULL, window_title_command_editor_mousedown, window_title_command_editor_dropdown, - window_title_command_editor_emptysub, + NULL, window_title_command_editor_update, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_title_command_editor_textinput, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, - window_title_command_editor_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_title_command_editor_invalidate, window_title_command_editor_paint, - window_title_command_editor_emptysub + NULL }; static int get_command_info_index(int index) @@ -206,7 +204,7 @@ void window_title_command_editor_open(int index, bool insert) window = window_create_centred( WW, WH, - (uint32*)window_title_command_editor_events, + &window_title_command_editor_events, WC_TITLE_COMMAND_EDITOR, WF_STICK_TO_FRONT ); @@ -248,22 +246,12 @@ void window_title_command_editor_open(int index, bool insert) } } -static void window_title_command_editor_close() +static void window_title_command_editor_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - - window_get_register(w); -} - -static void window_title_command_editor_mouseup() -{ - rct_window *w, *title_editor_w; - short widgetIndex; + rct_window *title_editor_w; rct_xy16 mapCoord; uint8 zoom; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: case WIDX_CANCEL: @@ -378,13 +366,9 @@ static void window_title_command_editor_mousedown(int widgetIndex, rct_window* w } } -static void window_title_command_editor_dropdown() +static void window_title_command_editor_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - rct_window* w; - short widgetIndex, dropdownIndex; rct_xy16 mapCoord; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); if (dropdownIndex == -1) return; @@ -441,22 +425,17 @@ static void window_title_command_editor_dropdown() } } -static void window_title_command_editor_textinput() +static void window_title_command_editor_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text, * end; + char *end; int value; - window_textinput_get_registers(w, widgetIndex, result, text); - value = strtol(widgetIndex != WIDX_TEXTBOX_Y ? textbox1Buffer : textbox2Buffer, &end, 10); if (value < 0) value = 0; if (value > 255) value = 255; switch (widgetIndex) { case WIDX_TEXTBOX_FULL: - if (!result) { + if (text == NULL) { if (*end == '\0') { if (command.command == TITLE_SCRIPT_ROTATE || command.command == TITLE_SCRIPT_ZOOM) { if (value > 3) value = 3; @@ -474,7 +453,7 @@ static void window_title_command_editor_textinput() } break; case WIDX_TEXTBOX_X: - if (!result) { + if (text == NULL) { if (*end == '\0') command.x = (uint8)value; _itoa(command.x, textbox1Buffer, 10); @@ -485,7 +464,7 @@ static void window_title_command_editor_textinput() } break; case WIDX_TEXTBOX_Y: - if (!result) { + if (text == NULL) { if (*end == '\0') command.y = (uint8)value; _itoa(command.y, textbox2Buffer, 10); @@ -507,11 +486,8 @@ static void window_title_command_editor_update(rct_window *w) } } -static void window_title_command_editor_invalidate() +static void window_title_command_editor_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update_by_class(w, WC_TITLE_EDITOR); window_title_command_editor_widgets[WIDX_TEXTBOX_FULL].type = WWT_EMPTY; @@ -547,13 +523,8 @@ static void window_title_command_editor_invalidate() w->disabled_widgets &= ~(1 << WIDX_GET); } -static void window_title_command_editor_paint() +static void window_title_command_editor_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); gfx_draw_string_left(dpi, 5432, NULL, w->colours[1], w->x + WS, w->y + BY - 14); diff --git a/src/windows/title_editor.c b/src/windows/title_editor.c index 2b13bcc63a..1b3c22c50d 100644 --- a/src/windows/title_editor.c +++ b/src/windows/title_editor.c @@ -46,49 +46,48 @@ enum { WINDOW_TITLE_EDITOR_TAB_COUNT } WINDOW_TITLE_EDITOR_TAB; -static void window_title_editor_emptysub() { } -static void window_title_editor_close(); -static void window_title_editor_mouseup(); -static void window_title_editor_resize(); +static void window_title_editor_close(rct_window *w); +static void window_title_editor_mouseup(rct_window *w, int widgetIndex); +static void window_title_editor_resize(rct_window *w); static void window_title_editor_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_title_editor_dropdown(); +static void window_title_editor_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); static void window_title_editor_update(rct_window *w); -static void window_title_editor_scrollgetsize(); -static void window_title_editor_scrollmousedown(); -static void window_title_editor_scrollmouseover(); -static void window_title_editor_textinput(); -static void window_title_editor_tooltip(); -static void window_title_editor_invalidate(); -static void window_title_editor_paint(); -static void window_title_editor_scrollpaint(); +static void window_title_editor_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_title_editor_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_title_editor_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_title_editor_textinput(rct_window *w, int widgetIndex, char *text); +static void window_title_editor_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_title_editor_invalidate(rct_window *w); +static void window_title_editor_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_title_editor_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); static void window_title_editor_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w); -static void* window_title_editor_events[] = { +static rct_window_event_list window_title_editor_events = { window_title_editor_close, window_title_editor_mouseup, window_title_editor_resize, window_title_editor_mousedown, window_title_editor_dropdown, - window_title_editor_emptysub, + NULL, window_title_editor_update, - window_title_editor_emptysub, - window_title_editor_emptysub, - window_title_editor_emptysub, - window_title_editor_emptysub, - window_title_editor_emptysub, - window_title_editor_emptysub, - window_title_editor_emptysub, - window_title_editor_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_title_editor_scrollgetsize, window_title_editor_scrollmousedown, - window_title_editor_emptysub, + NULL, window_title_editor_scrollmouseover, window_title_editor_textinput, - window_title_editor_emptysub, - window_title_editor_emptysub, + NULL, + NULL, window_title_editor_tooltip, - window_title_editor_emptysub, - window_title_editor_emptysub, + NULL, + NULL, window_title_editor_invalidate, window_title_editor_paint, window_title_editor_scrollpaint, @@ -236,7 +235,7 @@ void window_title_editor_open(int tab) if (window != NULL) return; - window = window_create_auto_pos(WW, WH2, (uint32*)window_title_editor_events, WC_TITLE_EDITOR, WF_10 | WF_RESIZABLE); + window = window_create_auto_pos(WW, WH2, &window_title_editor_events, WC_TITLE_EDITOR, WF_10 | WF_RESIZABLE); window->widgets = window_title_editor_widgets; window->enabled_widgets = (1 << WIDX_TITLE_EDITOR_CLOSE) | @@ -285,10 +284,9 @@ void window_title_editor_open(int tab) } -void window_title_editor_close() { - rct_window *w, *command_editor_w, *load_save_w; - - window_get_register(w); +void window_title_editor_close(rct_window *w) +{ + rct_window *command_editor_w, *load_save_w; // Close the related windows command_editor_w = window_find_by_class(WC_TITLE_COMMAND_EDITOR); @@ -299,14 +297,11 @@ void window_title_editor_close() { window_close(load_save_w); } -static void window_title_editor_mouseup() +static void window_title_editor_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; char path[MAX_PATH]; char separator = platform_get_path_separator(); int defaultPreset, playing, inTitle, i, commandEditorOpen; - window_widget_get_registers(w, widgetIndex); defaultPreset = (gCurrentTitleSequence < TITLE_SEQUENCE_DEFAULT_PRESETS); playing = (gCurrentTitleSequence == gCurrentPreviewTitleSequence) && ((RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO); @@ -499,12 +494,8 @@ static void window_title_editor_mouseup() window_error_open(5398, 5399); } -static void window_title_editor_resize() -{ - rct_window *w; - - window_get_register(w); - +static void window_title_editor_resize(rct_window *w) +{ if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_PRESETS) { w->min_width = WW; w->min_height = WH2; @@ -602,13 +593,8 @@ static void window_title_editor_mousedown(int widgetIndex, rct_window* w, rct_wi } } -static void window_title_editor_dropdown() -{ - rct_window* w; - short widgetIndex, dropdownIndex; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - +static void window_title_editor_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) +{ if (dropdownIndex == -1) return; @@ -634,13 +620,10 @@ void window_title_editor_update(rct_window *w) widget_invalidate(w, WIDX_TITLE_EDITOR_PRESETS_TAB + w->selected_tab); } -void window_title_editor_scrollgetsize() +void window_title_editor_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int i, width, height; + int i; uint16 lineCount; - rct_window *w; - - window_get_register(w); lineCount = 1; if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_SAVES) @@ -648,8 +631,8 @@ void window_title_editor_scrollgetsize() else if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_SCRIPT) lineCount = gConfigTitleSequences.presets[gCurrentTitleSequence].num_commands; - height = lineCount * ROW_HEIGHT; - i = height - window_title_editor_widgets[WIDX_TITLE_EDITOR_LIST].bottom + window_title_editor_widgets[WIDX_TITLE_EDITOR_LIST].top + 21; + *height = lineCount * ROW_HEIGHT; + i = *height - window_title_editor_widgets[WIDX_TITLE_EDITOR_LIST].bottom + window_title_editor_widgets[WIDX_TITLE_EDITOR_LIST].top + 21; if (i < 0) i = 0; if (i < w->scrolls[0].v_top) { @@ -657,16 +640,12 @@ void window_title_editor_scrollgetsize() window_invalidate(w); } - width = SCROLL_WIDTH; - window_scrollsize_set_registers(width, height); + *width = SCROLL_WIDTH; } -void window_title_editor_scrollmousedown() { +void window_title_editor_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) +{ int index; - short x, y, scrollIndex; - rct_window *w; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); index = y / ROW_HEIGHT; w->selected_list_item = -1; @@ -686,13 +665,10 @@ void window_title_editor_scrollmousedown() { } } -void window_title_editor_scrollmouseover() { +void window_title_editor_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) +{ int index; - short x, y, scrollIndex; - rct_window *w; sint16 oldHighlightedIndex; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); index = y / ROW_HEIGHT; switch (w->selected_tab) { @@ -713,16 +689,9 @@ void window_title_editor_scrollmouseover() { //} } -static void window_title_editor_textinput() +static void window_title_editor_textinput(rct_window *w, int widgetIndex, char *text) { - rct_window *w; - short widgetIndex; - uint8 result; - char *text; - - window_textinput_get_registers(w, widgetIndex, result, text); - - if (!result || text[0] == 0) + if (text == NULL || text[0] == 0) return; switch (widgetIndex) { @@ -769,16 +738,13 @@ static void window_title_editor_textinput() } } -void window_title_editor_tooltip() +void window_title_editor_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } -void window_title_editor_invalidate() +void window_title_editor_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); int pressed_widgets = w->pressed_widgets & 0xFFFFFF8F; @@ -883,12 +849,8 @@ void window_title_editor_invalidate() w->disabled_widgets &= ~((1 << WIDX_TITLE_EDITOR_REPLAY) | (1 << WIDX_TITLE_EDITOR_STOP) | (1 << WIDX_TITLE_EDITOR_SKIP) | (1 << WIDX_TITLE_EDITOR_SKIP_TO)); } -void window_title_editor_paint() { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - +void window_title_editor_paint(rct_window *w, rct_drawpixelinfo *dpi) +{ // Widgets window_draw_widgets(w, dpi); window_title_editor_draw_tab_images(dpi, w); @@ -919,16 +881,12 @@ void window_title_editor_paint() { } } -void window_title_editor_scrollpaint() +void window_title_editor_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; char buffer[256]; bool selected, hover, error, inTitle; int y, x, x2, width; - window_paint_get_registers(w, dpi); - gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ((char*)0x0141FC48)[w->colours[1] * 8]); title_sequence *title = &gConfigTitleSequences.presets[gCurrentTitleSequence]; diff --git a/src/windows/title_exit.c b/src/windows/title_exit.c index 18ebb3d74f..b78c788ca5 100644 --- a/src/windows/title_exit.c +++ b/src/windows/title_exit.c @@ -32,40 +32,39 @@ static rct_widget window_title_exit_widgets[] = { { WIDGETS_END }, }; -static void window_title_exit_emptysub() {} -static void window_title_exit_paint(); -static void window_title_exit_mouseup(); -static void window_title_exit_invalidate(); +static void window_title_exit_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_title_exit_mouseup(rct_window *w, int widgetIndex); +static void window_title_exit_invalidate(rct_window *w); -static void* window_title_exit_events[] = { - window_title_exit_emptysub, +static rct_window_event_list window_title_exit_events = { + NULL, window_title_exit_mouseup, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, - window_title_exit_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_title_exit_invalidate, window_title_exit_paint, - window_title_exit_emptysub + NULL }; /** @@ -79,7 +78,7 @@ void window_title_exit_open() window = window_create( RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 40, RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_HEIGHT, uint16) - 64, 40, 64, - (uint32*)window_title_exit_events, + &window_title_exit_events, WC_TITLE_EXIT, WF_STICK_TO_BACK | WF_TRANSPARENT ); @@ -92,13 +91,8 @@ void window_title_exit_open() * * rct2: 0x0066B83C */ -static void window_title_exit_mouseup() +static void window_title_exit_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (RCT2_GLOBAL(RCT2_ADDRESS_RUN_INTRO_TICK_PART, uint8) != 0) return; @@ -111,19 +105,12 @@ static void window_title_exit_mouseup() * * rct2: 0x0066B836 */ -static void window_title_exit_paint() +static void window_title_exit_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } -static void window_title_exit_invalidate() +static void window_title_exit_invalidate(rct_window *w) { - rct_window *w; - window_get_register(w); colour_scheme_update(w); } diff --git a/src/windows/title_logo.c b/src/windows/title_logo.c index dbb473c4bf..001be0e02d 100644 --- a/src/windows/title_logo.c +++ b/src/windows/title_logo.c @@ -29,38 +29,37 @@ static rct_widget window_title_logo_widgets[] = { { WIDGETS_END }, }; -static void window_title_logo_emptysub() {} -static void window_title_logo_paint(); +static void window_title_logo_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_title_logo_events[] = { - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, - window_title_logo_emptysub, +static rct_window_event_list window_title_logo_events = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_title_logo_paint, - window_title_logo_emptysub + NULL }; static void window_title_logo_draw_expansion_packs(rct_drawpixelinfo *dpi); @@ -86,7 +85,7 @@ void window_title_logo_open() 0, 200, 106 + (10 * packs), - (uint32*)window_title_logo_events, + &window_title_logo_events, WC_TITLE_LOGO, WF_STICK_TO_BACK | WF_TRANSPARENT ); @@ -101,13 +100,8 @@ void window_title_logo_open() * * rct2: 0x0066B872 */ -static void window_title_logo_paint() +static void window_title_logo_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - // gfx_draw_sprite(dpi, SPR_MENU_LOGO, w->x, w->y, 0); int x = 2, y = 2; gfx_draw_sprite(dpi, SPR_G2_LOGO, w->x + x, w->y + y, 0); diff --git a/src/windows/title_menu.c b/src/windows/title_menu.c index 5ce6858c31..0b2c289138 100644 --- a/src/windows/title_menu.c +++ b/src/windows/title_menu.c @@ -45,43 +45,42 @@ static rct_widget window_title_menu_widgets[] = { { WIDGETS_END }, }; -static void window_title_menu_emptysub() { } -static void window_title_menu_mouseup(); +static void window_title_menu_mouseup(rct_window *w, int widgetIndex); static void window_title_menu_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_title_menu_dropdown(); -static void window_title_menu_unknown17(); -static void window_title_menu_paint(); -static void window_title_menu_invalidate(); +static void window_title_menu_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); +static void window_title_menu_cursor(rct_window *w, int widgetIndex, int x, int y, int *cursorId); +static void window_title_menu_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_title_menu_invalidate(rct_window *w); -static void* window_title_menu_events[] = { - window_title_menu_emptysub, +static rct_window_event_list window_title_menu_events = { + NULL, window_title_menu_mouseup, - window_title_menu_emptysub, + NULL, window_title_menu_mousedown, window_title_menu_dropdown, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_emptysub, - window_title_menu_unknown17, - window_title_menu_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_title_menu_cursor, + NULL, window_title_menu_invalidate, window_title_menu_paint, - window_title_menu_emptysub + NULL }; /** @@ -95,7 +94,7 @@ void window_title_menu_open() window = window_create( (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 328) / 2, RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_HEIGHT, uint16) - 142, 328, 82, - (uint32*)window_title_menu_events, + &window_title_menu_events, WC_TITLE_MENU, WF_STICK_TO_BACK | WF_TRANSPARENT ); @@ -104,17 +103,15 @@ void window_title_menu_open() window_init_scroll_widgets(window); } -static void window_title_menu_mouseup() +static void window_title_menu_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window* w; - - window_widget_get_registers(w, widgetIndex); - - if (widgetIndex == WIDX_START_NEW_GAME) { + switch (widgetIndex) { + case WIDX_START_NEW_GAME: window_scenarioselect_open(); - } else if (widgetIndex == WIDX_CONTINUE_SAVED_GAME) { + break; + case WIDX_CONTINUE_SAVED_GAME: game_do_command(0, 1, 0, 0, GAME_COMMAND_LOAD_OR_QUIT, 0, 0); + break; } } @@ -148,13 +145,8 @@ static void window_title_menu_mousedown(int widgetIndex, rct_window*w, rct_widge } } -static void window_title_menu_dropdown() +static void window_title_menu_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short widgetIndex, dropdownIndex; - rct_window *w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - if (widgetIndex == WIDX_SHOW_TUTORIAL) { tutorial_start(dropdownIndex); } else if (widgetIndex == WIDX_GAME_TOOLS) { @@ -175,24 +167,17 @@ static void window_title_menu_dropdown() } } -static void window_title_menu_unknown17() +static void window_title_menu_cursor(rct_window *w, int widgetIndex, int x, int y, int *cursorId) { RCT2_GLOBAL(RCT2_ADDRESS_TOOLTIP_TIMEOUT, sint16) = 2000; } -static void window_title_menu_paint() +static void window_title_menu_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } -static void window_title_menu_invalidate() +static void window_title_menu_invalidate(rct_window *w) { - rct_window *w; - window_get_register(w); colour_scheme_update(w); } diff --git a/src/windows/title_options.c b/src/windows/title_options.c index ee4e22be77..40be52d339 100644 --- a/src/windows/title_options.c +++ b/src/windows/title_options.c @@ -31,40 +31,39 @@ static rct_widget window_title_options_widgets[] = { { WIDGETS_END }, }; -static void window_title_options_emptysub() {} -static void window_title_options_paint(); -static void window_title_options_mouseup(); -static void window_title_options_invalidate(); +static void window_title_options_mouseup(rct_window *w, int widgetIndex); +static void window_title_options_invalidate(rct_window *w); +static void window_title_options_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_title_options_events[] = { - window_title_options_emptysub, +static rct_window_event_list window_title_options_events = { + NULL, window_title_options_mouseup, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, - window_title_options_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_title_options_invalidate, window_title_options_paint, - window_title_options_emptysub + NULL }; /** @@ -77,7 +76,7 @@ void window_title_options_open() window = window_create( RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 80, 0, 80, 12, - (uint32*)window_title_options_events, + &window_title_options_events, WC_TITLE_OPTIONS, WF_STICK_TO_BACK | WF_TRANSPARENT ); @@ -86,13 +85,8 @@ void window_title_options_open() window_init_scroll_widgets(window); } -static void window_title_options_mouseup() +static void window_title_options_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (RCT2_GLOBAL(RCT2_ADDRESS_RUN_INTRO_TICK_PART, uint8) != 0) return; @@ -100,19 +94,12 @@ static void window_title_options_mouseup() window_options_open(); } -static void window_title_options_paint() +static void window_title_options_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } -static void window_title_options_invalidate() +static void window_title_options_invalidate(rct_window *w) { - rct_window *w; - window_get_register(w); colour_scheme_update(w); } diff --git a/src/windows/title_scenarioselect.c b/src/windows/title_scenarioselect.c index 8fdf3fc80c..cb2997252f 100644 --- a/src/windows/title_scenarioselect.c +++ b/src/windows/title_scenarioselect.c @@ -58,42 +58,41 @@ static rct_widget window_scenarioselect_widgets[] = { static void window_scenarioselect_init_tabs(); -static void window_scenarioselect_emptysub() { } -static void window_scenarioselect_mouseup(); +static void window_scenarioselect_mouseup(rct_window *w, int widgetIndex); static void window_scenarioselect_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_scenarioselect_scrollgetsize(); -static void window_scenarioselect_scrollmousedown(); -static void window_scenarioselect_scrollmouseover(); -static void window_scenarioselect_invalidate(); -static void window_scenarioselect_paint(); -static void window_scenarioselect_scrollpaint(); +static void window_scenarioselect_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_scenarioselect_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_scenarioselect_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_scenarioselect_invalidate(rct_window *w); +static void window_scenarioselect_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_scenarioselect_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_scenarioselect_events[] = { - window_scenarioselect_emptysub, +static rct_window_event_list window_scenarioselect_events = { + NULL, window_scenarioselect_mouseup, - window_scenarioselect_emptysub, + NULL, window_scenarioselect_mousedown, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_scenarioselect_scrollgetsize, window_scenarioselect_scrollmousedown, - window_scenarioselect_emptysub, + NULL, window_scenarioselect_scrollmouseover, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, - window_scenarioselect_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_scenarioselect_invalidate, window_scenarioselect_paint, window_scenarioselect_scrollpaint @@ -116,7 +115,7 @@ void window_scenarioselect_open() window = window_create_centred( 610, 334, - (uint32*)window_scenarioselect_events, + &window_scenarioselect_events, WC_SCENARIO_SELECT, WF_10 ); @@ -164,13 +163,8 @@ static void window_scenarioselect_init_tabs() } } -static void window_scenarioselect_mouseup() +static void window_scenarioselect_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w; - - window_widget_get_registers(w, widgetIndex); - if (widgetIndex == WIDX_CLOSE) window_close(w); } @@ -188,37 +182,27 @@ static void window_scenarioselect_mousedown(int widgetIndex, rct_window*w, rct_w } } -static void window_scenarioselect_scrollgetsize() +static void window_scenarioselect_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - int i, width, height; - rct_window *w; + int i; rct_scenario_basic *scenario; - window_get_register(w); - - width = 0; - height = 0; + *height = 0; for (i = 0; i < gScenarioListCount; i++) { scenario = &gScenarioList[i]; if (scenario->category != w->selected_tab) continue; if (scenario->flags & SCENARIO_FLAGS_VISIBLE) - height += 24; + *height += 24; } - - window_scrollsize_set_registers(width, height); } /* rct2: 0x6780FE */ -static void window_scenarioselect_scrollmousedown() +static void window_scenarioselect_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { int i; - short x, y, scrollIndex; - rct_window *w; rct_scenario_basic *scenario; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - for (i = 0; i < gScenarioListCount; i++) { scenario = &gScenarioList[i]; if (scenario->category != w->selected_tab) @@ -237,15 +221,11 @@ static void window_scenarioselect_scrollmousedown() } /* rct2: 0x678162 */ -static void window_scenarioselect_scrollmouseover() +static void window_scenarioselect_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { int i; - short x, y, scrollIndex; - rct_window *w; rct_scenario_basic *scenario, *selected; - window_scrollmouse_get_registers(w, scrollIndex, x, y); - selected = NULL; for (i = 0; i < gScenarioListCount; i++) { scenario = &gScenarioList[i]; @@ -267,27 +247,20 @@ static void window_scenarioselect_scrollmouseover() } } -static void window_scenarioselect_invalidate() +static void window_scenarioselect_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); w->pressed_widgets &= ~(0x10 | 0x20 | 0x40 | 0x80 | 0x100); w->pressed_widgets |= 1LL << (w->selected_tab + 4); } -static void window_scenarioselect_paint() +static void window_scenarioselect_paint(rct_window *w, rct_drawpixelinfo *dpi) { int i, x, y, format; - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *widget; rct_scenario_basic *scenario; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); format = (theme_get_preset()->features.rct1_scenario_font) ? 5138 : 1193; @@ -342,15 +315,11 @@ static void window_scenarioselect_paint() } } -static void window_scenarioselect_scrollpaint() +static void window_scenarioselect_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { int i, y, colour, highlighted, highlighted_format, unhighlighted_format; - rct_window *w; - rct_drawpixelinfo *dpi; rct_scenario_basic *scenario; - window_paint_get_registers(w, dpi); - colour = ((char*)0x0141FC48)[w->colours[1] * 8]; colour = (colour << 24) | (colour << 16) | (colour << 8) | colour; gfx_clear(dpi, colour); diff --git a/src/windows/tooltip.c b/src/windows/tooltip.c index 8a6e8a11e2..6f836cc1a0 100644 --- a/src/windows/tooltip.c +++ b/src/windows/tooltip.c @@ -33,40 +33,39 @@ static rct_widget window_tooltip_widgets[] = { { WIDGETS_END }, }; -static void window_tooltip_emptysub() { } -static void window_tooltip_onclose(); +static void window_tooltip_onclose(rct_window *w); static void window_tooltip_update(rct_window *w); -static void window_tooltip_paint(); +static void window_tooltip_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_tooltip_events[] = { +static rct_window_event_list window_tooltip_events = { window_tooltip_onclose, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_tooltip_update, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, - window_tooltip_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_tooltip_paint, - window_tooltip_emptysub + NULL }; void window_tooltip_reset(int x, int y) @@ -151,7 +150,7 @@ void window_tooltip_open(rct_window *widgetWindow, int widgetIndex, int x, int y y, width, height, - (uint32*)window_tooltip_events, + &window_tooltip_events, WC_TOOLTIP, WF_TRANSPARENT | WF_STICK_TO_FRONT ); @@ -177,7 +176,7 @@ void window_tooltip_close() * * rct2: 0x006EA578 */ -static void window_tooltip_onclose() +static void window_tooltip_onclose(rct_window *w) { RCT2_GLOBAL(0x009BC3B0, uint8) = 0; } @@ -196,13 +195,8 @@ static void window_tooltip_update(rct_window *w) * * rct2: 0x006EA41D */ -static void window_tooltip_paint() +static void window_tooltip_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - int left = w->x; int top = w->y; int right = w->x + w->width - 1; diff --git a/src/windows/top_toolbar.c b/src/windows/top_toolbar.c index a880b07206..a4a5dd0a04 100644 --- a/src/windows/top_toolbar.c +++ b/src/windows/top_toolbar.c @@ -171,47 +171,46 @@ static rct_widget window_top_toolbar_widgets[] = { { WIDGETS_END }, }; -static void window_top_toolbar_emptysub() { } -static void window_top_toolbar_mouseup(); +static void window_top_toolbar_mouseup(rct_window *w, int widgetIndex); static void window_top_toolbar_mousedown(int widgetIndex, rct_window*w, rct_widget* widget); -static void window_top_toolbar_dropdown(); -static void window_top_toolbar_tool_update(); -static void window_top_toolbar_tool_down(); -static void window_top_toolbar_tool_drag(); -static void window_top_toolbar_tool_up(); -static void window_top_toolbar_tool_abort(); -static void window_top_toolbar_invalidate(); -static void window_top_toolbar_paint(); +static void window_top_toolbar_dropdown(rct_window *w, int widgetIndex, int dropdownIndex); +static void window_top_toolbar_tool_update(rct_window* w, int widgetIndex, int x, int y); +static void window_top_toolbar_tool_down(rct_window* w, int widgetIndex, int x, int y); +static void window_top_toolbar_tool_drag(rct_window* w, int widgetIndex, int x, int y); +static void window_top_toolbar_tool_up(rct_window* w, int widgetIndex, int x, int y); +static void window_top_toolbar_tool_abort(rct_window *w, int widgetIndex); +static void window_top_toolbar_invalidate(rct_window *w); +static void window_top_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_top_toolbar_events[] = { - window_top_toolbar_emptysub, +static rct_window_event_list window_top_toolbar_events = { + NULL, window_top_toolbar_mouseup, - window_top_toolbar_emptysub, + NULL, window_top_toolbar_mousedown, window_top_toolbar_dropdown, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, // check if editor versions are significantly different... + NULL, + NULL, + NULL, + NULL, // check if editor versions are significantly different... window_top_toolbar_tool_update, // editor: 0x0066fB0E window_top_toolbar_tool_down, // editor: 0x0066fB5C window_top_toolbar_tool_drag, // editor: 0x0066fB37 window_top_toolbar_tool_up, // editor: 0x0066fC44 (Exactly the same) window_top_toolbar_tool_abort, // editor: 0x0066fA74 (Exactly the same) - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, - window_top_toolbar_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_top_toolbar_invalidate, window_top_toolbar_paint, - window_top_toolbar_emptysub + NULL }; void top_toolbar_init_view_menu(rct_window *window, rct_widget *widget); @@ -244,7 +243,7 @@ void window_top_toolbar_open() window = window_create( 0, 0, RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16), 28, - (uint32*)window_top_toolbar_events, + &window_top_toolbar_events, WC_TOP_TOOLBAR, WF_STICK_TO_FRONT | WF_TRANSPARENT | WF_5 ); @@ -257,12 +256,9 @@ void window_top_toolbar_open() * * rct2: 0x0066C957 */ -static void window_top_toolbar_mouseup() +static void window_top_toolbar_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w, *mainWindow; - - window_widget_get_registers(w, widgetIndex); + rct_window *mainWindow; switch (widgetIndex) { case WIDX_PAUSE: @@ -433,13 +429,8 @@ static void window_top_toolbar_mousedown(int widgetIndex, rct_window*w, rct_widg * * rct2: 0x0066C9EA */ -static void window_top_toolbar_dropdown() +static void window_top_toolbar_dropdown(rct_window *w, int widgetIndex, int dropdownIndex) { - short widgetIndex, dropdownIndex; - rct_window* w; - - window_dropdown_get_registers(w, widgetIndex, dropdownIndex); - switch (widgetIndex) { case WIDX_FILE_MENU: if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & (SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER)) @@ -520,13 +511,11 @@ static void window_top_toolbar_dropdown() * * rct2: 0x0066C810 */ -static void window_top_toolbar_invalidate() +static void window_top_toolbar_invalidate(rct_window *w) { int i, x, enabledWidgets, widgetIndex, widgetWidth, firstAlignment; - rct_window *w; rct_widget *widget; - window_get_register(w); colour_scheme_update(w); // Enable / disable buttons @@ -671,13 +660,9 @@ static void window_top_toolbar_invalidate() * * rct2: 0x0066C8EC */ -static void window_top_toolbar_paint() +static void window_top_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi) { int x, y, imgId; - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); window_draw_widgets(w, dpi); @@ -2428,15 +2413,9 @@ void top_toolbar_tool_update_scenery(sint16 x, sint16 y){ * * rct2: 0x0066CB25 */ -static void window_top_toolbar_tool_update() +static void window_top_toolbar_tool_update(rct_window* w, int widgetIndex, int x, int y) { - short widgetIndex; - rct_window *w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - - switch (widgetIndex){ + switch (widgetIndex) { case WIDX_CLEAR_SCENERY: top_toolbar_tool_update_scenery_clear(x, y); break; @@ -2458,13 +2437,8 @@ static void window_top_toolbar_tool_update() /** * rct2: 0x0066CB73 */ -static void window_top_toolbar_tool_down(){ - short widgetIndex; - rct_window* w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - +static void window_top_toolbar_tool_down(rct_window* w, int widgetIndex, int x, int y) +{ switch (widgetIndex){ case WIDX_CLEAR_SCENERY: if (!RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) & (1 << 0)) @@ -2669,14 +2643,8 @@ void window_top_toolbar_water_tool_drag(short x, short y) * * rct2: 0x0066CB4E */ -static void window_top_toolbar_tool_drag() +static void window_top_toolbar_tool_drag(rct_window* w, int widgetIndex, int x, int y) { - short widgetIndex; - rct_window *w; - short x, y; - - window_tool_get_registers(w, widgetIndex, x, y); - switch (widgetIndex){ case WIDX_CLEAR_SCENERY: if (window_find_by_class(WC_ERROR) != NULL) @@ -2733,13 +2701,8 @@ static void window_top_toolbar_tool_drag() * * rct2: 0x0066CC5B */ -static void window_top_toolbar_tool_up() -{ - short widgetIndex, x, y; - rct_window *w; - - window_tool_get_registers(w, widgetIndex, x, y); - +static void window_top_toolbar_tool_up(rct_window* w, int widgetIndex, int x, int y) +{ switch (widgetIndex) { case WIDX_LAND: map_invalidate_selection_rect(); @@ -2763,13 +2726,8 @@ static void window_top_toolbar_tool_up() * * rct2: 0x0066CA58 */ -static void window_top_toolbar_tool_abort() +static void window_top_toolbar_tool_abort(rct_window *w, int widgetIndex) { - short widgetIndex, x, y; - rct_window* w; - - window_tool_get_registers(w, widgetIndex, x, y); - switch (widgetIndex) { case WIDX_LAND: case WIDX_WATER: diff --git a/src/windows/track_list.c b/src/windows/track_list.c index e15d4e6192..f32d4722b4 100644 --- a/src/windows/track_list.c +++ b/src/windows/track_list.c @@ -54,46 +54,45 @@ static rct_widget window_track_list_widgets[] = { { WIDGETS_END }, }; -static void window_track_list_emptysub() { } -static void window_track_list_close(); -static void window_track_list_mouseup(); -static void window_track_list_scrollgetsize(); -static void window_track_list_scrollmousedown(); -static void window_track_list_scrollmouseover(); -static void window_track_list_tooltip(); -static void window_track_list_invalidate(); -static void window_track_list_paint(); -static void window_track_list_scrollpaint(); +static void window_track_list_close(rct_window *w); +static void window_track_list_mouseup(rct_window *w, int widgetIndex); +static void window_track_list_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height); +static void window_track_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y); +static void window_track_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y); +static void window_track_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId); +static void window_track_list_invalidate(rct_window *w); +static void window_track_list_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_track_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex); -static void* window_track_list_events[] = { - (uint32*)window_track_list_close, - (uint32*)window_track_list_mouseup, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_scrollgetsize, - (uint32*)window_track_list_scrollmousedown, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_scrollmouseover, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_tooltip, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_emptysub, - (uint32*)window_track_list_invalidate, - (uint32*)window_track_list_paint, - (uint32*)window_track_list_scrollpaint +static rct_window_event_list window_track_list_events = { + window_track_list_close, + window_track_list_mouseup, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + window_track_list_scrollgetsize, + window_track_list_scrollmousedown, + NULL, + window_track_list_scrollmouseover, + NULL, + NULL, + NULL, + window_track_list_tooltip, + NULL, + NULL, + window_track_list_invalidate, + window_track_list_paint, + window_track_list_scrollpaint }; ride_list_item _window_track_list_item; @@ -133,7 +132,7 @@ void window_track_list_open(ride_list_item item) y, 600, 400, - (uint32*)window_track_list_events, + &window_track_list_events, WC_TRACK_DESIGN_LIST, 0 ); @@ -233,7 +232,7 @@ static int window_track_list_get_list_item_index_from_position(int x, int y) * * rct2: 0x006CFD76 */ -static void window_track_list_close() +static void window_track_list_close(rct_window *w) { free(RCT2_GLOBAL(RCT2_ADDRESS_TRACK_DESIGN_CACHE, void*)); } @@ -242,13 +241,8 @@ static void window_track_list_close() * * rct2: 0x006CFA31 */ -static void window_track_list_mouseup() +static void window_track_list_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -279,32 +273,22 @@ static void window_track_list_mouseup() * * rct2: 0x006CFAB0 */ -static void window_track_list_scrollgetsize() +static void window_track_list_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height) { - rct_window *w; - int width, height; uint8 *trackDesignItem, *trackDesignList = RCT2_ADDRESS(RCT2_ADDRESS_TRACK_LIST, uint8); - window_get_register(w); - - width = 0; - height = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_TRACK_MANAGER ? 0 : 10; + *height = RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_TRACK_MANAGER ? 0 : 10; for (trackDesignItem = trackDesignList; *trackDesignItem != 0; trackDesignItem += 128) - height += 10; - - window_scrollsize_set_registers(width, height); + *height += 10; } /** * * rct2: 0x006CFB39 */ -static void window_track_list_scrollmousedown() +static void window_track_list_scrollmousedown(rct_window *w, int scrollIndex, int x, int y) { - rct_window *w; - short i, x, y, scrollIndex; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); + int i; if (w->track_list.var_484 & 1) return; @@ -321,12 +305,9 @@ static void window_track_list_scrollmousedown() * * rct2: 0x006CFAD7 */ -static void window_track_list_scrollmouseover() +static void window_track_list_scrollmouseover(rct_window *w, int scrollIndex, int x, int y) { - rct_window *w; - short i, x, y, scrollIndex; - - window_scrollmouse_get_registers(w, scrollIndex, x, y); + int i; if (w->track_list.var_484 & 1) return; @@ -344,7 +325,7 @@ static void window_track_list_scrollmouseover() * * rct2: 0x006CFD6C */ -static void window_track_list_tooltip() +static void window_track_list_tooltip(rct_window* w, int widgetIndex, rct_string_id *stringId) { RCT2_GLOBAL(0x013CE952, uint16) = STR_LIST; } @@ -353,13 +334,11 @@ static void window_track_list_tooltip() * * rct2: 0x006CF2D6 */ -static void window_track_list_invalidate() +static void window_track_list_invalidate(rct_window *w) { - rct_window *w; rct_ride_type *entry; rct_string_id stringId; - window_get_register(w); colour_scheme_update(w); entry = GET_RIDE_ENTRY(_window_track_list_item.entry_index); @@ -398,10 +377,8 @@ static void window_track_list_invalidate() * * rct2: 0x006CF387 */ -static void window_track_list_paint() +static void window_track_list_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_widget *widget; rct_track_design *trackDesign = NULL; uint8 *image, *trackDesignList = RCT2_ADDRESS(RCT2_ADDRESS_TRACK_LIST, uint8); @@ -410,8 +387,6 @@ static void window_track_list_paint() int trackIndex, x, y, colour, gForces, airTime; rct_g1_element tmpElement, *subsituteElement; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); trackIndex = w->track_list.var_482; @@ -584,16 +559,12 @@ static void window_track_list_paint() * * rct2: 0x006CF8CD */ -static void window_track_list_scrollpaint() +static void window_track_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, int scrollIndex) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_string_id stringId, stringId2; int i, x, y, colour; uint8 *trackDesignItem, *trackDesignList = RCT2_ADDRESS(RCT2_ADDRESS_TRACK_LIST, uint8); - window_paint_get_registers(w, dpi); - colour = RCT2_GLOBAL(0x00141FC48 + (w->colours[0] * 8), uint8); colour = (colour << 24) | (colour << 16) | (colour << 8) | colour; gfx_clear(dpi, colour); diff --git a/src/windows/track_manage.c b/src/windows/track_manage.c index 9f9bea901f..eaa9c122b3 100644 --- a/src/windows/track_manage.c +++ b/src/windows/track_manage.c @@ -61,82 +61,78 @@ static rct_widget window_track_delete_prompt_widgets[] = { #pragma region Events -static void window_track_manage_emptysub() { } +static void window_track_manage_close(rct_window *w); +static void window_track_manage_mouseup(rct_window *w, int widgetIndex); +static void window_track_manage_textinput(rct_window *w, int widgetIndex, char *text); +static void window_track_manage_invalidate(rct_window *w); +static void window_track_manage_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void window_track_manage_close(); -static void window_track_manage_mouseup(); -static void window_track_manage_textinput(); -static void window_track_manage_invalidate(); -static void window_track_manage_paint(); - -static void window_track_delete_prompt_emptysub() { } - -static void window_track_delete_prompt_mouseup(); -static void window_track_delete_prompt_invalidate(); -static void window_track_delete_prompt_paint(); +static void window_track_delete_prompt_mouseup(rct_window *w, int widgetIndex); +static void window_track_delete_prompt_invalidate(rct_window *w); +static void window_track_delete_prompt_paint(rct_window *w, rct_drawpixelinfo *dpi); // 0x009940EC -static void* window_track_manage_events[] = { +static rct_window_event_list window_track_manage_events = { window_track_manage_close, window_track_manage_mouseup, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_track_manage_textinput, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, - window_track_manage_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_track_manage_invalidate, window_track_manage_paint, - window_track_manage_emptysub + NULL }; // 0x0099415C -static void* window_track_delete_prompt_events[] = { - window_track_delete_prompt_emptysub, +static rct_window_event_list window_track_delete_prompt_events = { + NULL, window_track_delete_prompt_mouseup, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, - window_track_delete_prompt_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_track_delete_prompt_invalidate, window_track_delete_prompt_paint, - window_track_delete_prompt_emptysub + NULL }; #pragma endregion @@ -156,7 +152,7 @@ void window_track_manage_open() w = window_create_centred( 250, 44, - (uint32*)window_track_manage_events, + &window_track_manage_events, WC_MANAGE_TRACK_DESIGN, WF_STICK_TO_FRONT | WF_TRANSPARENT ); @@ -176,28 +172,23 @@ void window_track_manage_open() * * rct2: 0x006D364C */ -static void window_track_manage_close() +static void window_track_manage_close(rct_window *w) { - rct_window *w; - - w = window_find_by_class(WC_TRACK_DESIGN_LIST); - if (w != NULL) - w->track_list.var_484 &= ~1; + rct_window *trackDesignListWindow = window_find_by_class(WC_TRACK_DESIGN_LIST); + if (trackDesignListWindow != NULL) + trackDesignListWindow->track_list.var_484 &= ~1; } /** * * rct2: 0x006D3523 */ -static void window_track_manage_mouseup() +static void window_track_manage_mouseup(rct_window *w, int widgetIndex) { uint8 *trackDesignList = (uint8*)0x00F441EC; - rct_window *w, *trackDesignListWindow; - short widgetIndex; + rct_window *trackDesignListWindow; char *dst, *src; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -223,16 +214,9 @@ static void window_track_manage_mouseup() * * rct2: 0x006D3523 */ -static void window_track_manage_textinput() +static void window_track_manage_textinput(rct_window *w, int widgetIndex, char *text) { - rct_window *w; - short widgetIndex; - uint8 result; - char *text; - - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex != WIDX_RENAME || !result) + if (widgetIndex != WIDX_RENAME || text == NULL) return; if (track_rename(text)) { @@ -243,11 +227,8 @@ static void window_track_manage_textinput() } } -static void window_track_manage_invalidate() +static void window_track_manage_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } @@ -255,13 +236,8 @@ static void window_track_manage_invalidate() * * rct2: 0x006D3523 */ -static void window_track_manage_paint() +static void window_track_manage_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); } @@ -280,7 +256,7 @@ static void window_track_delete_prompt_open() (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_WIDTH, uint16) - 44) / 2, 250, 74, - (uint32*)window_track_delete_prompt_events, + &window_track_delete_prompt_events, WC_TRACK_DELETE_PROMPT, WF_STICK_TO_FRONT ); @@ -297,13 +273,8 @@ static void window_track_delete_prompt_open() * * rct2: 0x006D3823 */ -static void window_track_delete_prompt_mouseup() +static void window_track_delete_prompt_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: case WIDX_PROMPT_CANCEL: @@ -319,11 +290,8 @@ static void window_track_delete_prompt_mouseup() } } -static void window_track_delete_prompt_invalidate() +static void window_track_delete_prompt_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } @@ -331,14 +299,10 @@ static void window_track_delete_prompt_invalidate() * * rct2: 0x006D37EE */ -static void window_track_delete_prompt_paint() +static void window_track_delete_prompt_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; rct_string_id stringId; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); stringId = 3155; diff --git a/src/windows/track_place.c b/src/windows/track_place.c index 83db7c7698..22933ca5fc 100644 --- a/src/windows/track_place.c +++ b/src/windows/track_place.c @@ -56,46 +56,45 @@ static rct_widget window_track_place_widgets[] = { { WIDGETS_END }, }; -static void window_track_place_emptysub() { } -static void window_track_place_close(); -static void window_track_place_mouseup(); +static void window_track_place_close(rct_window *w); +static void window_track_place_mouseup(rct_window *w, int widgetIndex); static void window_track_place_update(rct_window *w); -static void window_track_place_toolupdate(); -static void window_track_place_tooldown(); -static void window_track_place_toolabort(); -static void window_track_place_unknown14(); -static void window_track_place_invalidate(); -static void window_track_place_paint(); +static void window_track_place_toolupdate(rct_window* w, int widgetIndex, int x, int y); +static void window_track_place_tooldown(rct_window* w, int widgetIndex, int x, int y); +static void window_track_place_toolabort(rct_window *w, int widgetIndex); +static void window_track_place_unknown14(rct_window *w); +static void window_track_place_invalidate(rct_window *w); +static void window_track_place_paint(rct_window *w, rct_drawpixelinfo *dpi); -static void* window_track_place_events[] = { +static rct_window_event_list window_track_place_events = { window_track_place_close, window_track_place_mouseup, - window_track_place_emptysub, - window_track_place_emptysub, - window_track_place_emptysub, - window_track_place_emptysub, + NULL, + NULL, + NULL, + NULL, window_track_place_update, - window_track_place_emptysub, - window_track_place_emptysub, + NULL, + NULL, window_track_place_toolupdate, window_track_place_tooldown, - window_track_place_emptysub, - window_track_place_emptysub, + NULL, + NULL, window_track_place_toolabort, - window_track_place_emptysub, - window_track_place_emptysub, - window_track_place_emptysub, - window_track_place_emptysub, - window_track_place_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_track_place_unknown14, - window_track_place_emptysub, - window_track_place_emptysub, - window_track_place_emptysub, - window_track_place_emptysub, - window_track_place_emptysub, + NULL, + NULL, + NULL, + NULL, window_track_place_invalidate, window_track_place_paint, - window_track_place_emptysub + NULL }; static uint8 *_window_track_place_mini_preview; @@ -381,7 +380,7 @@ void window_track_place_open() 29, 200, 124, - (uint32*)window_track_place_events, + &window_track_place_events, WC_TRACK_DESIGN_PLACE, 0 ); @@ -402,7 +401,7 @@ void window_track_place_open() * * rct2: 0x006D0119 */ -static void window_track_place_close() +static void window_track_place_close(rct_window *w) { window_track_place_clear_provisional(); viewport_set_visibility(0); @@ -416,13 +415,8 @@ static void window_track_place_close() * * rct2: 0x006CFEAC */ -static void window_track_place_mouseup() +static void window_track_place_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; - short widgetIndex; - - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -463,96 +457,90 @@ static void window_track_place_update(rct_window *w) * * rct2: 0x006CFF2D */ -static void window_track_place_toolupdate() +static void window_track_place_toolupdate(rct_window* w, int widgetIndex, int x, int y) { - rct_window *w; - short widgetIndex, x, y; - int i, z; + int i; + short mapX, mapY, mapZ; money32 cost; uint8 rideIndex; - window_tool_get_registers(w, widgetIndex, x, y); - map_invalidate_map_selection_tiles(); RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) &= ~7; // Get the tool map position - sub_68A15E(x, y, &x, &y, NULL, NULL); - if (x == (short)0x8000) { + sub_68A15E(x, y, &mapX, &mapY, NULL, NULL); + if (mapX == (short)0x8000) { window_track_place_clear_provisional(); return; } // Check if tool map position has changed since last update - if (x == _window_track_place_last_x && y == _window_track_place_last_y) { - sub_6D01B3(0, 0, x, y, 0); + if (mapX == _window_track_place_last_x && mapY == _window_track_place_last_y) { + sub_6D01B3(0, 0, mapX, mapY, 0); return; } cost = MONEY32_UNDEFINED; // Get base Z position - z = window_track_place_get_base_z(x, y); + mapZ = window_track_place_get_base_z(mapX, mapY); if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) == 0 || gConfigCheat.build_in_pause_mode) { window_track_place_clear_provisional(); // Try increasing Z until a feasible placement is found for (i = 0; i < 7; i++) { - window_track_place_attempt_placement(x, y, z, 105, &cost, &rideIndex); + window_track_place_attempt_placement(mapX, mapY, mapZ, 105, &cost, &rideIndex); if (cost != MONEY32_UNDEFINED) { RCT2_GLOBAL(0x00F440EB, uint16) = rideIndex; - _window_track_place_last_valid_x = x; - _window_track_place_last_valid_y = y; - _window_track_place_last_valid_z = z; + _window_track_place_last_valid_x = mapX; + _window_track_place_last_valid_y = mapY; + _window_track_place_last_valid_z = mapZ; _window_track_place_last_was_valid = 1; break; } - z += 8; + mapZ += 8; } } - _window_track_place_last_x = x; - _window_track_place_last_y = y; + _window_track_place_last_x = mapX; + _window_track_place_last_y = mapY; if (cost != _window_track_place_last_cost) { _window_track_place_last_cost = cost; widget_invalidate(w, WIDX_PRICE); } - sub_6D01B3(0, 0, x, y, z); + sub_6D01B3(0, 0, mapX, mapY, mapZ); } /** * * rct2: 0x006CFF34 */ -static void window_track_place_tooldown() +static void window_track_place_tooldown(rct_window* w, int widgetIndex, int x, int y) { - rct_window *w; - short widgetIndex, x, y, z; int i; + short mapX, mapY, mapZ; money32 cost; uint8 rideIndex; - window_tool_get_registers(w, widgetIndex, x, y); - window_track_place_clear_provisional(); map_invalidate_map_selection_tiles(); RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, uint16) &= ~7; - sub_68A15E(x, y, &x, &y, NULL, NULL); - if (x == (short)0x8000) + sub_68A15E(x, y, &mapX, &mapY, NULL, NULL); + if (mapX == (short)0x8000) return; // Try increasing Z until a feasible placement is found - z = window_track_place_get_base_z(x, y); + mapZ = window_track_place_get_base_z(mapX, mapY); for (i = 0; i < 7; i++) { RCT2_GLOBAL(0x009A8C29, uint8) |= 1; - window_track_place_attempt_placement(x, y, z, 1, &cost, &rideIndex); + window_track_place_attempt_placement(mapX, mapY, mapZ, 1, &cost, &rideIndex); RCT2_GLOBAL(0x009A8C29, uint8) &= ~1; if (cost != MONEY32_UNDEFINED) { window_close_by_class(WC_ERROR); - sound_play_panned(SOUND_PLACE_ITEM, 0x8001, x, y, z); + sound_play_panned(SOUND_PLACE_ITEM, 0x8001, mapX, mapY, mapZ); RCT2_GLOBAL(0x00F440A7, uint8) = rideIndex; if (RCT2_GLOBAL(0x00F4414E, uint8) & 1) { @@ -570,18 +558,18 @@ static void window_track_place_tooldown() if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) == 827) break; - z += 8; + mapZ += 8; } // Unable to build track - sound_play_panned(SOUND_ERROR, 0x8001, x, y, z); + sound_play_panned(SOUND_ERROR, 0x8001, mapX, mapY, mapZ); } /** * * rct2: 0x006D015C */ -static void window_track_place_toolabort() +static void window_track_place_toolabort(rct_window *w, int widgetIndex) { window_track_place_clear_provisional(); } @@ -590,16 +578,13 @@ static void window_track_place_toolabort() * * rct2: 0x006CFF01 */ -static void window_track_place_unknown14() +static void window_track_place_unknown14(rct_window *w) { window_track_place_draw_mini_preview(); } -static void window_track_place_invalidate() +static void window_track_place_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); } @@ -607,14 +592,11 @@ static void window_track_place_invalidate() * * rct2: 0x006CFD9D */ -static void window_track_place_paint() +static void window_track_place_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi, *clippedDpi; + rct_drawpixelinfo *clippedDpi; rct_g1_element tmpElement, *subsituteElement; - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); // Draw mini tile preview diff --git a/src/windows/viewport.c b/src/windows/viewport.c index c40ea69850..43803bef5b 100644 --- a/src/windows/viewport.c +++ b/src/windows/viewport.c @@ -57,42 +57,41 @@ static rct_widget window_viewport_widgets[] = { { WIDGETS_END }, }; -static void window_viewport_empty(){} -static void window_viewport_mouseup(); -static void window_viewport_resize(); +static void window_viewport_mouseup(rct_window *w, int widgetIndex); +static void window_viewport_resize(rct_window *w); static void window_viewport_update(rct_window *w); -static void window_viewport_invalidate(); -static void window_viewport_paint(); +static void window_viewport_invalidate(rct_window *w); +static void window_viewport_paint(rct_window *w, rct_drawpixelinfo *dpi); -void* window_viewport_events[] = { - window_viewport_empty, +static rct_window_event_list window_viewport_events = { + NULL, window_viewport_mouseup, window_viewport_resize, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, + NULL, + NULL, + NULL, window_viewport_update, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, - window_viewport_empty, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_viewport_invalidate, window_viewport_paint, - window_viewport_empty + NULL }; static int _viewportNumber = 1; @@ -108,7 +107,7 @@ void window_viewport_open() w = window_create_auto_pos( INITIAL_WIDTH, INITIAL_HEIGHT, - (uint32*)window_viewport_events, + &window_viewport_events, WC_VIEWPORT, WF_RESIZABLE ); @@ -147,14 +146,11 @@ static void window_viewport_anchor_border_widgets(rct_window *w) w->widgets[WIDX_CLOSE].right = w->width - 3; } -static void window_viewport_mouseup() +static void window_viewport_mouseup(rct_window *w, int widgetIndex) { - short widgetIndex; - rct_window *w, *mainWindow; + rct_window *mainWindow; sint16 x, y; - window_widget_get_registers(w, widgetIndex); - switch (widgetIndex) { case WIDX_CLOSE: window_close(w); @@ -181,12 +177,8 @@ static void window_viewport_mouseup() } } -static void window_viewport_resize() +static void window_viewport_resize(rct_window *w) { - rct_window *w; - - window_get_register(w); - w->flags |= WF_RESIZABLE; window_set_resize(w, 200, 200, 2000, 2000); } @@ -208,14 +200,12 @@ static void window_viewport_update(rct_window *w) //widget_invalidate(w, WIDX_VIEWPORT); } -static void window_viewport_invalidate() +static void window_viewport_invalidate(rct_window *w) { - rct_window *w; rct_widget *viewportWidget; rct_viewport *viewport; int i; - window_get_register(w); colour_scheme_update(w); viewportWidget = &window_viewport_widgets[WIDX_VIEWPORT]; @@ -248,13 +238,8 @@ static void window_viewport_invalidate() viewport->view_height = viewport->height << viewport->zoom; } -static void window_viewport_paint() +static void window_viewport_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; - - window_paint_get_registers(w, dpi); - window_draw_widgets(w, dpi); // Draw viewport diff --git a/src/windows/water.c b/src/windows/water.c index 33eb360ed9..5b2e4c2a5e 100644 --- a/src/windows/water.c +++ b/src/windows/water.c @@ -48,44 +48,43 @@ static rct_widget window_water_widgets[] = { static int window_water_should_close(); -static void window_water_emptysub() { } -static void window_water_close(); -static void window_water_mouseup(); -static void window_water_update(); -static void window_water_invalidate(); -static void window_water_paint(); -static void window_water_textinput(); +static void window_water_close(rct_window *w); +static void window_water_mouseup(rct_window *w, int widgetIndex); +static void window_water_update(rct_window *w); +static void window_water_invalidate(rct_window *w); +static void window_water_paint(rct_window *w, rct_drawpixelinfo *dpi); +static void window_water_textinput(rct_window *w, int widgetIndex, char *text); static void window_water_inputsize(rct_window *w); -static void* window_water_events[] = { +static rct_window_event_list window_water_events = { window_water_close, window_water_mouseup, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, + NULL, + NULL, + NULL, + NULL, window_water_update, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, window_water_textinput, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, - window_water_emptysub, + NULL, + NULL, + NULL, + NULL, + NULL, window_water_invalidate, window_water_paint, - window_water_emptysub + NULL }; /** @@ -105,7 +104,7 @@ void window_water_open() 29, 76, 77, - (uint32*)window_water_events, + &window_water_events, WC_WATER, 0 ); @@ -122,7 +121,7 @@ void window_water_open() * * rct2: 0x006E6B65 */ -static void window_water_close() +static void window_water_close(rct_window *w) { // If the tool wasn't changed, turn tool off if (!window_water_should_close()) @@ -133,13 +132,9 @@ static void window_water_close() * * rct2: 0x006E6B4E */ -static void window_water_mouseup() +static void window_water_mouseup(rct_window *w, int widgetIndex) { - rct_window *w; int limit; - short widgetIndex; - - window_widget_get_registers(w, widgetIndex); switch (widgetIndex) { case WIDX_CLOSE: @@ -176,18 +171,12 @@ static void window_water_mouseup() } } -static void window_water_textinput() +static void window_water_textinput(rct_window *w, int widgetIndex, char *text) { - uint8 result; - short widgetIndex; - rct_window *w; - char *text; int size; char* end; - window_textinput_get_registers(w, widgetIndex, result, text); - - if (widgetIndex != WIDX_PREVIEW || !result) + if (widgetIndex != WIDX_PREVIEW || text == NULL) return; size = strtol(text, &end, 10); @@ -221,11 +210,8 @@ static void window_water_update(rct_window *w) * * rct2: 0x006E6AB8 */ -static void window_water_invalidate() +static void window_water_invalidate(rct_window *w) { - rct_window *w; - - window_get_register(w); colour_scheme_update(w); // Set the preview image button to be pressed down @@ -244,14 +230,10 @@ static void window_water_invalidate() * * rct2: 0x006E6ACF */ -static void window_water_paint() +static void window_water_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_window *w; - rct_drawpixelinfo *dpi; int x, y; - window_paint_get_registers(w, dpi); - x = w->x + (window_water_widgets[WIDX_PREVIEW].left + window_water_widgets[WIDX_PREVIEW].right) / 2; y = w->y + (window_water_widgets[WIDX_PREVIEW].top + window_water_widgets[WIDX_PREVIEW].bottom) / 2;