From a5d5359e16e25297f0ff22ee27440a96a742abce Mon Sep 17 00:00:00 2001 From: Justin Marshall Date: Sat, 6 Jun 2020 14:40:08 -0700 Subject: [PATCH] Added left held mouse support. --- REDALERT/WINSTUB.CPP | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/REDALERT/WINSTUB.CPP b/REDALERT/WINSTUB.CPP index d3fd619..70db209 100644 --- a/REDALERT/WINSTUB.CPP +++ b/REDALERT/WINSTUB.CPP @@ -712,7 +712,9 @@ void __cdecl SetPalette(unsigned char *palette, long, unsigned long) void WWSDL_ProcessEvents(KeyNumType& key, int& flags) { + static int numFramesLMouse = 0; extern int mousex, mousey; + bool leftMouseProcessed = false; SDL_GetMouseState(&mousex, &mousey); Keyboard->MouseQX = mousex; @@ -728,9 +730,12 @@ void WWSDL_ProcessEvents(KeyNumType& key, int& flags) { case SDL_MOUSEBUTTONDOWN: if (event.button.button == SDL_BUTTON_LEFT) { flags = GadgetClass::LEFTPRESS; + leftMouseProcessed = true; + numFramesLMouse++; key = KN_LMOUSE; } else if (event.button.button == SDL_BUTTON_RIGHT) { + numFramesLMouse = 0; flags = GadgetClass::RIGHTPRESS; key = KN_RMOUSE; } @@ -739,9 +744,11 @@ void WWSDL_ProcessEvents(KeyNumType& key, int& flags) { case SDL_MOUSEBUTTONUP: if (event.button.button == SDL_BUTTON_LEFT) { flags = GadgetClass::LEFTRELEASE; + numFramesLMouse = 0; } else if (event.button.button == SDL_BUTTON_RIGHT) { flags = GadgetClass::RIGHTRELEASE; + numFramesLMouse = 0; } break; case SDL_KEYDOWN: @@ -750,6 +757,9 @@ void WWSDL_ProcessEvents(KeyNumType& key, int& flags) { } } + if (!leftMouseProcessed && numFramesLMouse != 0) + flags = GadgetClass::LEFTHELD; + Device_Present(); }