Changed window_update to use cdecl where possible

This commit is contained in:
Duncan Frost 2014-05-19 18:47:14 +01:00
parent aaca1d2ece
commit d077beea20
14 changed files with 40 additions and 119 deletions

View File

@ -180,22 +180,6 @@ void game_logic_update()
static void game_handle_input_mouse();
static void game_get_next_input(int *x, int *y, int *state);
static void RCT2_CALLPROC_EVENT_HANDLER(int address, rct_window* w)
{
__asm {
push address
push w
mov eax, 0
mov ebx, 0
mov ecx, 0
mov edx, 0
mov esi, w
mov edi, 0
mov ebp, 0
call[esp+4]
add esp, 8
}
}
/**
*
* rct2: 0x006EA627
@ -211,7 +195,7 @@ void game_handle_input()
if (RCT2_GLOBAL(0x009ABDF2, uint8) != 0) {
for (w = RCT2_ADDRESS(RCT2_ADDRESS_WINDOW_LIST, rct_window); w < RCT2_GLOBAL(RCT2_ADDRESS_NEW_WINDOW_PTR, rct_window*); w++)
RCT2_CALLPROC_EVENT_HANDLER(w->event_handlers[WE_UNKNOWN_07], w);
RCT2_CALLPROC_X(w->event_handlers[WE_UNKNOWN_07], 0, 0, 0, 0, (int)w, 0, 0);
RCT2_CALLPROC_EBPSAFE(0x006EA73F);
RCT2_CALLPROC_EBPSAFE(0x006E8346); // update_cursor_position
@ -245,7 +229,7 @@ void game_handle_input()
}
for (w = RCT2_ADDRESS(RCT2_ADDRESS_WINDOW_LIST, rct_window); w < RCT2_GLOBAL(RCT2_ADDRESS_NEW_WINDOW_PTR, rct_window*); w++)
RCT2_CALLPROC_EVENT_HANDLER(w->event_handlers[WE_UNKNOWN_08],w);
RCT2_CALLPROC_X(w->event_handlers[WE_UNKNOWN_08], 0, 0, 0, 0,(int) w, 0, 0);
}
/**

View File

@ -99,18 +99,12 @@ rct_widget *window_get_scroll_widget(rct_window *w, int scrollIndex)
return NULL;
}
static void RCT2_CALLPROC_EVENT_HANDLER(int address, rct_window* w)
static void RCT2_CALLPROC_WE_UPDATE(int address, rct_window* w)
{
__asm {
push address
push address
push w
mov eax, 0
mov ebx, 0
mov ecx, 0
mov edx, 0
mov esi, w
mov edi, 0
mov ebp, 0
call[esp + 4]
add esp, 8
}
@ -126,7 +120,7 @@ void window_dispatch_update_all()
RCT2_GLOBAL(0x01423604, sint32)++;
RCT2_GLOBAL(RCT2_ADDRESS_TOOLTIP_NOT_SHOWN_TICKS, sint16)++;
for (w = RCT2_LAST_WINDOW; w >= RCT2_FIRST_WINDOW; w--)
RCT2_CALLPROC_EVENT_HANDLER(w->event_handlers[WE_UPDATE], w);
RCT2_CALLPROC_WE_UPDATE(w->event_handlers[WE_UPDATE], w);
RCT2_CALLPROC_EBPSAFE(0x006EE411); // handle_text_input
}
@ -157,7 +151,7 @@ void window_update_all()
if (RCT2_GLOBAL(0x009DEB7C, sint16) >= 1000) {
RCT2_GLOBAL(0x009DEB7C, sint16) = 0;
for (w = RCT2_LAST_WINDOW; w >= RCT2_FIRST_WINDOW; w--)
RCT2_CALLPROC_EVENT_HANDLER(w->event_handlers[WE_UNKNOWN_07],w);
RCT2_CALLPROC_X(w->event_handlers[WE_UNKNOWN_07], 0, 0, 0, 0, (int) w, 0, 0);
}
// Border flash invalidation

View File

@ -79,7 +79,7 @@ static rct_widget *window_cheats_page_widgets[] = {
static void window_cheats_emptysub() { }
static void window_cheats_money_mouseup();
static void window_cheats_guests_mouseup();
static void window_cheats_update();
static void window_cheats_update(rct_window *w);
static void window_cheats_invalidate();
static void window_cheats_paint();
static void window_cheats_set_page(rct_window *w, int page);

View File

@ -49,7 +49,7 @@ 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_update();
static void window_clear_scenery_update(rct_window *w);
static void window_clear_scenery_invalidate();
static void window_clear_scenery_paint();
@ -168,12 +168,8 @@ static void window_clear_scenery_mouseup()
*
* rct2: 0x0068E205
*/
static void window_clear_scenery_update()
static void window_clear_scenery_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
// Close window if another tool is open
if (window_clear_scenery_should_close())
window_close(w);

View File

@ -108,7 +108,7 @@ static void window_footpath_close();
static void window_footpath_mouseup();
static void window_footpath_mousedown();
static void window_footpath_dropdown();
static void window_footpath_update();
static void window_footpath_update(rct_window *w);
static void window_footpath_toolupdate();
static void window_footpath_tooldown();
static void window_footpath_tooldrag();
@ -470,12 +470,8 @@ static void window_footpath_toolup()
*
* rct2: 0x006A84BB
*/
static void window_footpath_update()
static void window_footpath_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
// Invalidate construct button
widget_invalidate(WC_FOOTPATH, 0, WIDX_CONSTRUCT);

View File

@ -75,7 +75,7 @@ static void window_guest_list_mouseup();
static void window_guest_list_resize();
static void window_guest_list_mousedown();
static void window_guest_list_dropdown();
static void window_guest_list_update();
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();
@ -327,12 +327,8 @@ static void window_guest_list_dropdown()
*
* rct2: 0x00699E54
*/
static void window_guest_list_update()
static void window_guest_list_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
if (RCT2_GLOBAL(0x00F1AF20, uint16) != 0)
RCT2_GLOBAL(0x00F1AF20, uint16)--;
w->var_490++;

View File

@ -54,7 +54,7 @@ static void window_land_close();
static void window_land_mouseup();
static void window_land_mousedown();
static void window_land_dropdown();
static void window_land_update();
static void window_land_update(rct_window *w);
static void window_land_invalidate();
static void window_land_paint();
@ -310,12 +310,8 @@ static void window_land_dropdown()
*
* rct2: 0x00664272
*/
static void window_land_update()
static void window_land_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
// Close window if another tool is open
if (window_land_should_close())
window_close(w);

View File

@ -65,7 +65,7 @@ static void window_map_emptysub() { }
static void window_map_close();
static void window_map_mouseup();
static void window_map_mousedown();
static void window_map_update();
static void window_map_update(rct_window *w);
static void window_map_scrollgetsize();
static void window_map_scrollmousedown();
static void window_map_invalidate();
@ -198,7 +198,7 @@ static void window_map_mousedown()
*
* rct2: 0x0068D7FB
*/
static void window_map_update()
static void window_map_update(rct_window *w)
{
RCT2_CALLPROC_EBPSAFE(0x0068D7FB);
}

View File

@ -45,7 +45,7 @@ static rct_widget window_news_widgets[] = {
static void window_news_emptysub() { }
static void window_news_mouseup();
static void window_news_update();
static void window_news_update(rct_window *w);
static void window_news_scrollgetsize();
static void window_news_scrollmousedown();
static void window_news_tooltip();
@ -140,14 +140,11 @@ static void window_news_mouseup()
*
* rct2: 0x0066EAB8
*/
static void window_news_update()
static void window_news_update(rct_window *w)
{
int i, j, x, y, z;
rct_window *w;
rct_news_item *newsItems;
__asm mov w, esi
if (w->var_480 == -1)
return;
if (--w->var_484 != 0)

View File

@ -105,7 +105,7 @@ static void window_options_emptysub() { }
static void window_options_mouseup();
static void window_options_mousedown();
static void window_options_dropdown();
static void window_options_update();
static void window_options_update(rct_window *w);
static void window_options_paint();
static void window_options_draw_dropdown_box(w, widget, num_items);
static void window_options_update_height_markers();
@ -458,12 +458,9 @@ static void window_options_dropdown()
*
* rct2: 0x006BAD48
*/
static void window_options_update()
static void window_options_update(rct_window *w)
{
sint32 format_args = RCT2_GLOBAL(0x009AF280, sint32);
rct_window *w;
__asm mov w, esi
// sound devices
if (format_args == -1 || RCT2_GLOBAL(RCT2_ADDRESS_NUM_DSOUND_DEVICES, sint32) == 0) {

View File

@ -218,7 +218,7 @@ static void window_park_entrance_mouseup();
static void window_park_entrance_resize();
static void window_park_entrance_mousedown();
static void window_park_entrance_dropdown();
static void window_park_entrance_update();
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();
@ -229,38 +229,38 @@ static void window_park_entrance_paint();
static void window_park_rating_mouseup();
static void window_park_rating_resize();
static void window_park_rating_update();
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_guests_mouseup();
static void window_park_guests_resize();
static void window_park_guests_update();
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_price_mouseup();
static void window_park_price_resize();
static void window_park_price_mousedown();
static void window_park_price_update();
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_stats_mouseup();
static void window_park_stats_resize();
static void window_park_stats_update();
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_objective_mouseup();
static void window_park_objective_resize();
static void window_park_objective_update();
static void window_park_objective_update(rct_window *w);
static void window_park_objective_invalidate();
static void window_park_objective_paint();
static void window_park_awards_mouseup();
static void window_park_awards_resize();
static void window_park_awards_update();
static void window_park_awards_update(rct_window *w);
static void window_park_awards_invalidate();
static void window_park_awards_paint();
@ -773,12 +773,8 @@ static void window_park_entrance_dropdown()
*
* rct2: 0x006686B5
*/
static void window_park_entrance_update()
static void window_park_entrance_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
w->var_48E++;
window_invalidate_by_id(w->classification, 1179);
}
@ -1146,12 +1142,8 @@ static void window_park_rating_resize()
*
* rct2: 0x00668A21
*/
static void window_park_rating_update()
static void window_park_rating_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
w->var_48E++;
widget_invalidate(w->classification, w->number, WIDX_TAB_2);
}
@ -1288,12 +1280,8 @@ static void window_park_guests_resize()
*
* rct2: 0x00668E06
*/
static void window_park_guests_update()
static void window_park_guests_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
w->var_48E++;
w->var_492 = (w->var_492 + 1) % 24;
widget_invalidate(w->classification, w->number, WIDX_TAB_3);
@ -1439,12 +1427,8 @@ static void window_park_price_mousedown()
*
* rct2: 0x00669077
*/
static void window_park_price_update()
static void window_park_price_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
w->var_48E++;
widget_invalidate(w->classification, w->number, WIDX_TAB_4);
}
@ -1551,12 +1535,9 @@ static void window_park_stats_resize()
*
* rct2: 0x006692A8
*/
static void window_park_stats_update()
static void window_park_stats_update(rct_window *w)
{
int i;
rct_window *w;
__asm mov w, esi
w->var_48E++;
widget_invalidate(w->classification, w->number, WIDX_TAB_5);
@ -1734,12 +1715,8 @@ static void window_park_objective_resize()
*
* rct2: 0x0066966C
*/
static void window_park_objective_update()
static void window_park_objective_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
w->var_48E++;
widget_invalidate(w->classification, w->number, WIDX_TAB_6);
}
@ -1887,12 +1864,8 @@ static void window_park_awards_resize()
*
* rct2: 0x0066986D
*/
static void window_park_awards_update()
static void window_park_awards_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
w->var_48E++;
window_invalidate_by_id(w->classification, 1179);
}

View File

@ -70,7 +70,7 @@ static void window_ride_list_mouseup();
static void window_ride_list_resize();
static void window_ride_list_mousedown();
static void window_ride_list_dropdown();
static void window_ride_list_update();
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();
@ -297,12 +297,8 @@ static void window_ride_list_dropdown()
*
* rct2: 0x006B386B
*/
static void window_ride_list_update()
static void window_ride_list_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
w->var_48E = (w->var_48E + 1) % 64;
widget_invalidate(w->classification, w->number, WIDX_TAB_1 + w->page);
if (_window_ride_list_information_type != INFORMATION_TYPE_STATUS)

View File

@ -35,7 +35,7 @@ static rct_widget window_tooltip_widgets[] = {
static void window_tooltip_emptysub() { }
static void window_tooltip_onclose();
static void window_tooltip_update();
static void window_tooltip_update(rct_window *w);
static void window_tooltip_paint();
static void* window_tooltip_events[] = {
@ -173,7 +173,7 @@ static void window_tooltip_onclose()
*
* rct2: 0x006EA580
*/
static void window_tooltip_update()
static void window_tooltip_update(rct_window *w)
{
if (RCT2_GLOBAL(0x009DE51E, uint8) == 0)
RCT2_GLOBAL(RCT2_ADDRESS_TOOLTIP_NOT_SHOWN_TICKS, uint16) = 0;

View File

@ -169,12 +169,8 @@ static void window_water_mouseup()
*
* rct2: 0x006E6BCE
*/
static void window_water_update()
static void window_water_update(rct_window *w)
{
rct_window *w;
__asm mov w, esi
// Close window if another tool is open
if (window_water_should_close())
window_close(w);