mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge branch 'c_based_mouse_down' of https://github.com/duncanspumpkin/OpenRCT2 into duncanspumpkin-c_based_mouse_down
This commit is contained in:
commit
d1c0ab28f2
32
src/game.c
32
src/game.c
|
@ -654,6 +654,36 @@ static void input_mouseover_widget_flatbutton_invalidate()
|
|||
widget_invalidate(RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_OVER_WINDOWCLASS, rct_windowclass), RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_OVER_WINDOWNUMBER, rct_windownumber), RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_OVER_WIDGETINDEX, rct_windownumber));
|
||||
}
|
||||
|
||||
static void RCT2_CALLPROC_WE_MOUSE_DOWN(int address, int widgetIndex, rct_window*w, rct_widget* widget )
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
__asm {
|
||||
push address
|
||||
push widget
|
||||
push w
|
||||
push widgetIndex
|
||||
mov edi, widget
|
||||
mov edx, widgetIndex
|
||||
mov esi, w
|
||||
call[esp + 12]
|
||||
add esp, 16
|
||||
}
|
||||
#else
|
||||
__asm__("\
|
||||
push %[address]\n\
|
||||
mov edx, widgetIndex \n\
|
||||
mov edi, widget
|
||||
mov eax, %[w] \n\
|
||||
push edx \n\
|
||||
push eax \n\
|
||||
push edi \n\
|
||||
mov esi, %[w] \n\
|
||||
call [esp+12] \n\
|
||||
add esp, 16 \n\
|
||||
" :[address] "+m" (address), [w] "+m" (w) : : "eax", "esi");
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006E95F9
|
||||
|
@ -803,7 +833,7 @@ static void input_leftmousedown(int x, int y, rct_window *w, int widgetIndex)
|
|||
RCT2_GLOBAL(0x009DE528, uint16) = 1;
|
||||
|
||||
widget_invalidate(windowClass, windowNumber, widgetIndex);
|
||||
RCT2_CALLPROC_X(w->event_handlers[WE_MOUSE_DOWN], 0, 0, 0, widgetIndex, (int)w, (int)widget, 0);
|
||||
RCT2_CALLPROC_WE_MOUSE_DOWN(w->event_handlers[WE_MOUSE_DOWN], widgetIndex, w, widget);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ typedef struct {
|
|||
short width; // 0x08
|
||||
short height; // 0x0A
|
||||
short pitch; // 0x0C note: this is actually (pitch - width)
|
||||
char pad_0E; // 0x0E
|
||||
uint8 zoom_level; // 0x0E
|
||||
char var_0F; // 0x0F
|
||||
} rct_drawpixelinfo;
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ rct_widget window_banner_widgets[] = {
|
|||
|
||||
static void window_banner_emptysub() { }
|
||||
static void window_banner_mouseup();
|
||||
static void window_banner_mousedown();
|
||||
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();
|
||||
|
@ -182,12 +182,12 @@ static void window_banner_mouseup()
|
|||
}
|
||||
}
|
||||
|
||||
static void window_banner_mousedown()
|
||||
static void window_banner_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
short widgetIndex;
|
||||
//short widgetIndex;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
//__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
|
|
@ -111,7 +111,7 @@ static rct_widget window_footpath_widgets[] = {
|
|||
static void window_footpath_emptysub() { }
|
||||
static void window_footpath_close();
|
||||
static void window_footpath_mouseup();
|
||||
static void window_footpath_mousedown();
|
||||
static void window_footpath_mousedown(int widgetIndex, rct_window*w, rct_widget* widget);
|
||||
static void window_footpath_dropdown();
|
||||
static void window_footpath_update(rct_window *w);
|
||||
static void window_footpath_toolupdate();
|
||||
|
@ -307,31 +307,8 @@ static void window_footpath_mouseup()
|
|||
*
|
||||
* rct2: 0x006A7EC5
|
||||
*/
|
||||
static void window_footpath_mousedown()
|
||||
static void window_footpath_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_FOOTPATH_TYPE:
|
||||
window_footpath_show_footpath_types_dialog(w, widget, 0);
|
||||
|
|
|
@ -78,7 +78,7 @@ static rct_widget window_game_top_toolbar_widgets[] = {
|
|||
|
||||
static void window_game_top_toolbar_emptysub() { }
|
||||
static void window_game_top_toolbar_mouseup();
|
||||
static void window_game_top_toolbar_mousedown();
|
||||
static void window_game_top_toolbar_mousedown(int widgetIndex, rct_window*w, rct_widget* widget);
|
||||
static void window_game_top_toolbar_dropdown();
|
||||
static void window_game_top_toolbar_invalidate();
|
||||
static void window_game_top_toolbar_paint();
|
||||
|
@ -259,32 +259,10 @@ static void window_game_top_toolbar_mouseup()
|
|||
*
|
||||
* rct2: 0x0066CA3B
|
||||
*/
|
||||
static void window_game_top_toolbar_mousedown()
|
||||
static void window_game_top_toolbar_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
rct_viewport *mainViewport;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_FILE_MENU) {
|
||||
gDropdownItemsFormat[0] = 882;
|
||||
gDropdownItemsFormat[1] = 883;
|
||||
|
|
|
@ -73,7 +73,7 @@ static rct_widget window_guest_list_widgets[] = {
|
|||
static void window_guest_list_emptysub() { }
|
||||
static void window_guest_list_mouseup();
|
||||
static void window_guest_list_resize();
|
||||
static void window_guest_list_mousedown();
|
||||
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_update(rct_window *w);
|
||||
static void window_guest_list_scrollgetsize();
|
||||
|
@ -241,32 +241,9 @@ static void window_guest_list_resize()
|
|||
*
|
||||
* rct2: 0x00699AC4
|
||||
*/
|
||||
static void window_guest_list_mousedown()
|
||||
static void window_guest_list_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
int i;
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_TAB_1:
|
||||
case WIDX_TAB_2:
|
||||
|
|
|
@ -52,7 +52,7 @@ static rct_widget window_land_widgets[] = {
|
|||
static void window_land_emptysub() { }
|
||||
static void window_land_close();
|
||||
static void window_land_mouseup();
|
||||
static void window_land_mousedown();
|
||||
static void window_land_mousedown(int widgetIndex, rct_window*w, rct_widget* widget);
|
||||
static void window_land_dropdown();
|
||||
static void window_land_update(rct_window *w);
|
||||
static void window_land_invalidate();
|
||||
|
@ -217,31 +217,9 @@ static void window_land_mouseup()
|
|||
*
|
||||
* rct2: 0x0066407B
|
||||
*/
|
||||
static void window_land_mousedown()
|
||||
static void window_land_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
int i;
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_FLOOR:
|
||||
|
|
|
@ -77,7 +77,7 @@ static rct_widget window_map_widgets[] = {
|
|||
static void window_map_emptysub() { }
|
||||
static void window_map_close();
|
||||
static void window_map_mouseup();
|
||||
static void window_map_mousedown();
|
||||
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_scrollgetsize();
|
||||
static void window_map_scrollmousedown();
|
||||
|
@ -228,7 +228,7 @@ static void window_map_mouseup()
|
|||
*
|
||||
* rct2: 0x0068D040
|
||||
*/
|
||||
static void window_map_mousedown()
|
||||
static void window_map_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
RCT2_CALLPROC_EBPSAFE(0x0068D040);
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ static rct_widget window_options_widgets[] = {
|
|||
|
||||
static void window_options_emptysub() { }
|
||||
static void window_options_mouseup();
|
||||
static void window_options_mousedown();
|
||||
static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* widget);
|
||||
static void window_options_dropdown();
|
||||
static void window_options_update(rct_window *w);
|
||||
static void window_options_paint();
|
||||
|
@ -290,25 +290,9 @@ static void window_options_mouseup()
|
|||
*
|
||||
* rct2: 0x006BB01B
|
||||
*/
|
||||
static void window_options_mousedown()
|
||||
static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
int num_items, i;
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
widget = &w->widgets[widgetIndex - 1];
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ 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_mousedown();
|
||||
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_update(rct_window *w);
|
||||
static void window_park_entrance_toolupdate();
|
||||
|
@ -243,7 +243,7 @@ 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_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();
|
||||
|
@ -731,31 +731,8 @@ static void window_park_entrance_resize()
|
|||
*
|
||||
* rct2: 0x006681BF
|
||||
*/
|
||||
static void window_park_entrance_mousedown()
|
||||
static void window_park_entrance_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_OPEN_OR_CLOSE) {
|
||||
gDropdownItemsFormat[0] = 1142;
|
||||
gDropdownItemsFormat[1] = 1142;
|
||||
|
@ -1617,24 +1594,9 @@ static void window_park_price_resize()
|
|||
*
|
||||
* rct2: 0x0066902C
|
||||
*/
|
||||
static void window_park_price_mousedown()
|
||||
static void window_park_price_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
int newFee;
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CLOSE:
|
||||
|
|
|
@ -68,7 +68,7 @@ static rct_widget window_ride_list_widgets[] = {
|
|||
static void window_ride_list_emptysub() { }
|
||||
static void window_ride_list_mouseup();
|
||||
static void window_ride_list_resize();
|
||||
static void window_ride_list_mousedown();
|
||||
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_update(rct_window *w);
|
||||
static void window_ride_list_scrollgetsize();
|
||||
|
@ -248,31 +248,9 @@ static void window_ride_list_resize()
|
|||
*
|
||||
* rct2: 0x006B3532
|
||||
*/
|
||||
static void window_ride_list_mousedown()
|
||||
static void window_ride_list_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
int numItems, i;
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_OPEN_CLOSE_ALL) {
|
||||
gDropdownItemsFormat[0] = STR_CLOSE_ALL;
|
||||
|
|
|
@ -45,7 +45,7 @@ static rct_widget window_title_menu_widgets[] = {
|
|||
|
||||
static void window_title_menu_emptysub() { }
|
||||
static void window_title_menu_mouseup();
|
||||
static void window_title_menu_mousedown();
|
||||
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();
|
||||
|
@ -122,31 +122,8 @@ static void window_title_menu_mouseup()
|
|||
}
|
||||
}
|
||||
|
||||
static void window_title_menu_mousedown()
|
||||
static void window_title_menu_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
rct_widget *widget;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widget, edi
|
||||
#else
|
||||
__asm__ ( "mov %[widget], edi " : [widget] "+m" (widget) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex == WIDX_SHOW_TUTORIAL) {
|
||||
gDropdownItemsFormat[0] = STR_TUTORIAL_BEGINNERS;
|
||||
gDropdownItemsFormat[1] = STR_TUTORIAL_CUSTOM_RIDES;
|
||||
|
|
|
@ -59,7 +59,7 @@ static void window_scenarioselect_init_tabs();
|
|||
|
||||
static void window_scenarioselect_emptysub() { }
|
||||
static void window_scenarioselect_mouseup();
|
||||
static void window_scenarioselect_mousedown();
|
||||
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();
|
||||
|
@ -190,24 +190,8 @@ static void window_scenarioselect_mouseup()
|
|||
window_close(w);
|
||||
}
|
||||
|
||||
static void window_scenarioselect_mousedown()
|
||||
static void window_scenarioselect_mousedown(int widgetIndex, rct_window*w, rct_widget* widget)
|
||||
{
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov widgetIndex, dx
|
||||
#else
|
||||
__asm__ ( "mov %[widgetIndex], dx " : [widgetIndex] "+m" (widgetIndex) );
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm mov w, esi
|
||||
#else
|
||||
__asm__ ( "mov %[w], esi " : [w] "+m" (w) );
|
||||
#endif
|
||||
|
||||
|
||||
if (widgetIndex >= WIDX_TAB1 && widgetIndex <= WIDX_TAB5) {
|
||||
w->selected_tab = widgetIndex - 4;
|
||||
w->var_494 = 0;
|
||||
|
|
Loading…
Reference in New Issue