From 3e936332a532c6e338ef8fe4d3060ab713714da8 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Mon, 11 Jan 2010 14:56:30 +0000 Subject: [PATCH] Don't parse mouse button release and presses with numbers outside the amount of reported buttons. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3532 --- src/ints/mouse.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/ints/mouse.cpp b/src/ints/mouse.cpp index 06357726..8ea01c71 100644 --- a/src/ints/mouse.cpp +++ b/src/ints/mouse.cpp @@ -496,18 +496,26 @@ void Mouse_CursorSet(float x,float y) { void Mouse_ButtonPressed(Bit8u button) { switch (button) { +#if (MOUSE_BUTTONS >= 1) case 0: mouse.buttons|=1; Mouse_AddEvent(MOUSE_LEFT_PRESSED); break; +#endif +#if (MOUSE_BUTTONS >= 2) case 1: mouse.buttons|=2; Mouse_AddEvent(MOUSE_RIGHT_PRESSED); break; +#endif +#if (MOUSE_BUTTONS >= 3) case 2: mouse.buttons|=4; Mouse_AddEvent(MOUSE_MIDDLE_PRESSED); break; +#endif + default: + return; } mouse.times_pressed[button]++; mouse.last_pressed_x[button]=POS_X; @@ -516,18 +524,26 @@ void Mouse_ButtonPressed(Bit8u button) { void Mouse_ButtonReleased(Bit8u button) { switch (button) { +#if (MOUSE_BUTTONS >= 1) case 0: mouse.buttons&=~1; Mouse_AddEvent(MOUSE_LEFT_RELEASED); break; +#endif +#if (MOUSE_BUTTONS >= 2) case 1: mouse.buttons&=~2; Mouse_AddEvent(MOUSE_RIGHT_RELEASED); break; +#endif +#if (MOUSE_BUTTONS >= 3) case 2: mouse.buttons&=~4; Mouse_AddEvent(MOUSE_MIDDLE_RELEASED); break; +#endif + default: + return; } mouse.times_released[button]++; mouse.last_released_x[button]=POS_X;