mirror of https://github.com/OpenRCT2/OpenRCT2.git
Added final part of input_scroll_left. Requires more testing
This commit is contained in:
parent
3cc9863fc5
commit
cbb913c8af
57
src/game.c
57
src/game.c
|
@ -528,60 +528,87 @@ static void game_handle_input_mouse(int x, int y, int state)
|
||||||
break;
|
break;
|
||||||
case INPUT_STATE_SCROLL_LEFT:
|
case INPUT_STATE_SCROLL_LEFT:
|
||||||
if (state == 0){
|
if (state == 0){
|
||||||
if (widgetIndex != RCT2_GLOBAL(0x9DE524, uint32)){
|
if (widgetIndex != RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_DOWN_WIDGETINDEX, uint32)){
|
||||||
//Jump to 2 after first part
|
//Jump to 2 after first part
|
||||||
|
goto state2;
|
||||||
}
|
}
|
||||||
if (w->classification != RCT2_GLOBAL(0x9DE51F, uint8)){
|
if (w->classification != RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_DOWN_WINDOWCLASS, uint8)){
|
||||||
//Jump to 2 after first part
|
//Jump to 2 after first part
|
||||||
|
goto state2;
|
||||||
}
|
}
|
||||||
if (w->number != RCT2_GLOBAL(0x9DE520, uint16)){
|
if (w->number != RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_DOWN_WINDOWNUMBER, uint16)){
|
||||||
//Jump to 2 after first part
|
//Jump to 2 after first part
|
||||||
|
goto state2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RCT2_GLOBAL(0x9DE548, uint16) == 5){
|
if (RCT2_GLOBAL(0x9DE548, uint16) == 5){
|
||||||
//Jump 0x6e8735
|
int temp_x = x;
|
||||||
|
x -= RCT2_GLOBAL(0x9DE538, uint16);
|
||||||
|
RCT2_GLOBAL(0x9DE538, uint16) = temp_x;
|
||||||
|
RCT2_CALLPROC_X(0x006E8676, x, temp_x, state, w->number, (int)w, (int)widget, x);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RCT2_GLOBAL(0x9DE548, uint16) == 10){
|
if (RCT2_GLOBAL(0x9DE548, uint16) == 10){
|
||||||
//Jump 0x6e874E
|
int temp_y = y;
|
||||||
|
y -= RCT2_GLOBAL(0x9DE53A, uint16);
|
||||||
|
RCT2_GLOBAL(0x9DE53A, uint16) = temp_y;
|
||||||
|
RCT2_CALLPROC_X(0x006E99A9, temp_y, y, state, w->number, (int)w, (int)widget, x);
|
||||||
}
|
}
|
||||||
int cx = sub_0x6E9F92(&x, &y, state, w, widget);
|
int cx = sub_0x6E9F92(&x, &y, state, w, widget);
|
||||||
if (cx != RCT2_GLOBAL(0x9DE548, uint16)){
|
if (cx != RCT2_GLOBAL(0x9DE548, uint16)){
|
||||||
//Jump to 2 after first part
|
//Jump to 2 after first part
|
||||||
|
goto state2;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (cx){
|
switch (cx){
|
||||||
case 0:
|
case 0:
|
||||||
//0x6E871A
|
RCT2_CALLPROC_X(w->event_handlers[WE_TOOL_DRAG], w->number / 18, y, x, y, (int)w, (int)widget, w->event_handlers);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
//0x6E9A60
|
RCT2_CALLPROC_X(0x006E9A60, x, y, cx, w->number, (int)w, (int)widget, 0);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
//0x6E9ABF
|
RCT2_CALLPROC_X(0x006E9ABF, x, y, cx, w->number, (int)w, (int)widget, 0);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
case 4:
|
case 4:
|
||||||
//0x6E87B3
|
return;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
//0x6E9C37
|
RCT2_CALLPROC_X(0x006E9C37, x, y, cx, w->number, (int)w, (int)widget, 0);
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
//0x6E9C96
|
RCT2_CALLPROC_X(0x006E9C96, x, y, cx, w->number, (int)w, (int)widget, 0);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
case 9:
|
case 9:
|
||||||
//0x6E87B3
|
return;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}else if (state==2){
|
}else if (state==2){
|
||||||
|
RCT2_GLOBAL(0x009DE51D, uint8) = 0;
|
||||||
|
state2:
|
||||||
|
widgetIndex = widgetIndex;//Purely to make the goto work
|
||||||
|
|
||||||
|
int eax = x, ebx = y, ecx, edx, esi, edi, ebp;
|
||||||
|
edx = RCT2_GLOBAL(0x9DE520, uint16);
|
||||||
|
ecx = RCT2_GLOBAL(0x9DE51F, uint8);
|
||||||
|
esi = (int)w;
|
||||||
|
edi = (int)widget;
|
||||||
|
|
||||||
|
RCT2_CALLFUNC_X(0x006EA8A0, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
|
||||||
|
if (esi == 0) return;
|
||||||
|
ebx = RCT2_GLOBAL(0x9DE54C, uint32);
|
||||||
|
edi = RCT2_GLOBAL(RCT2_ADDRESS_CURSOR_DOWN_WIDGETINDEX, uint32);
|
||||||
|
rct_widget* widg = &w->widgets[edi];
|
||||||
|
w->scrolls[ebx].flags &= 0xFF11;
|
||||||
|
eax = RCT2_GLOBAL(0x9DE524, uint8) << 8;
|
||||||
|
eax |= RCT2_GLOBAL(0x9DE51F, uint8) | 0x80;
|
||||||
|
ebx = RCT2_GLOBAL(0x9DE520, uint16);
|
||||||
|
RCT2_CALLPROC_X(0x006EA8A0, eax, ebx, ecx, edx, esi, (int)widg, ebp);
|
||||||
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
//RCT2_CALLPROC_X(0x006E8676, x, y, state, widgetIndex, (int)w, (int)widget, 0);
|
//RCT2_CALLPROC_X(0x006E8676, x, y, state, widgetIndex, (int)w, (int)widget, 0);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue