From 4ff7c5df989d7d0105097bc0b7fc12aaa60c777d Mon Sep 17 00:00:00 2001 From: Justin Marshall Date: Wed, 24 Jun 2020 11:23:57 -0700 Subject: [PATCH] Fixed a bug were mouse clicks flags were getting stomped when more then one click event was processed. --- code/REDALERT/io/UserInput.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/REDALERT/io/UserInput.cpp b/code/REDALERT/io/UserInput.cpp index 7c602f3..6d661bb 100644 --- a/code/REDALERT/io/UserInput.cpp +++ b/code/REDALERT/io/UserInput.cpp @@ -11,6 +11,8 @@ void UserInputClass::Process_Input(KeyNumType& key, int& flags) Keyboard->MouseQX = Mouse.X; Keyboard->MouseQY = Mouse.Y; + flags = 0; + static SDL_Event event; memset(&event, 0, sizeof(SDL_Event)); @@ -51,7 +53,7 @@ void UserInputClass::Process_Input(KeyNumType& key, int& flags) Mouse.Button_Left == MouseButtonState::MOUSE_BUTTON_DOWN; key = KN_LMOUSE; - flags = GadgetClass::LEFTPRESS; + flags |= GadgetClass::LEFTPRESS; Keyboard->Put_Element(KN_LMOUSE); @@ -64,7 +66,7 @@ void UserInputClass::Process_Input(KeyNumType& key, int& flags) Keyboard->Put_Element(KN_RMOUSE); key = KN_RMOUSE; - flags = GadgetClass::RIGHTPRESS; + flags |= GadgetClass::RIGHTPRESS; numFramesLMouse = 0; } @@ -74,13 +76,13 @@ void UserInputClass::Process_Input(KeyNumType& key, int& flags) if (event.button.button == SDL_BUTTON_LEFT) { Mouse.Button_Left == MouseButtonState::MOUSE_BUTTON_RELEASE; - flags = GadgetClass::LEFTRELEASE; + flags |= GadgetClass::LEFTRELEASE; numFramesLMouse = 0; } else if (event.button.button == SDL_BUTTON_RIGHT) { Mouse.Button_Right == MouseButtonState::MOUSE_BUTTON_RELEASE; - flags = GadgetClass::RIGHTRELEASE; + flags |= GadgetClass::RIGHTRELEASE; numFramesLMouse = 0; } break;