diff --git a/zsnes/src/uic.c b/zsnes/src/uic.c index e85fa525..6e5b8b5c 100644 --- a/zsnes/src/uic.c +++ b/zsnes/src/uic.c @@ -452,9 +452,6 @@ unsigned short MouseMoveX[2]; unsigned short MouseMoveY[2]; unsigned short MouseButton[2]; -bool MouseWaiting[2]; -ManyMouseEvent MouseEvent[2]; - void MultiMouseShutdown() { MouseCount = 0; @@ -470,7 +467,6 @@ void MultiMouseInit() MouseMoveX[0] = MouseMoveX[1] = 0; MouseMoveY[0] = MouseMoveY[1] = 0; MouseButton[0] = MouseButton[1] = 0; - MouseWaiting[0] = MouseWaiting[1] = false; atexit(MultiMouseShutdown); printf("Using ManyMouse for:\nMouse 0: %s\nMouse 1: %s\n", ManyMouse_DeviceName(0), ManyMouse_DeviceName(1)); @@ -490,53 +486,25 @@ unsigned char mouse; void MultiMouseProcess() { ManyMouseEvent event; - event.device = ~0; - MouseMoveX[mouse] = 0; MouseMoveY[mouse] = 0; - if (MouseWaiting[mouse]) + while (ManyMouse_PollEvent(&event)) { - if (MouseEvent[mouse].type == MANYMOUSE_EVENT_RELMOTION) + if ((event.device == 0) || (event.device == 1)) { - if (MouseEvent[mouse].item == 0) { MouseMoveX[mouse] = MouseEvent[mouse].value; } - else { MouseMoveY[mouse] = MouseEvent[mouse].value; } + if (event.type == MANYMOUSE_EVENT_RELMOTION) + { + if (event.item == 0) { MouseMoveX[event.device] = event.value; } + else { MouseMoveY[event.device] = event.value; } + } + else if (event.type == MANYMOUSE_EVENT_BUTTON) + { + if (event.item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[event.device], 0, event.value); } + else if (event.item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[event.device], 1, event.value); } + } } - else if (MouseEvent[mouse].type == MANYMOUSE_EVENT_BUTTON) - { - if (MouseEvent[mouse].item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 0, MouseEvent[mouse].value); } - else if (MouseEvent[mouse].item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 1, MouseEvent[mouse].value); } - } - MouseWaiting[mouse] = false; - return; - } - - while ((event.device != 0) && (event.device != 1)) - { - if (!ManyMouse_PollEvent(&event)) - { - return; - } - - if (event.device == (mouse^1)) - { - MouseEvent[event.device] = event; - MouseWaiting[event.device] = true; - event.device = ~0; - } - } - - if (event.type == MANYMOUSE_EVENT_RELMOTION) - { - if (event.item == 0) { MouseMoveX[mouse] = event.value; } - else { MouseMoveY[mouse] = event.value; } - } - else if (event.type == MANYMOUSE_EVENT_BUTTON) - { - if (event.item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 0, event.value); } - else if (event.item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 1, event.value); } } } #endif -