Skip to content

Commit

Permalink
Fixed right and center (wheel) mouse buttons chaos
Browse files Browse the repository at this point in the history
Sometimes right was recognized as center buttor and vice versa
  • Loading branch information
Xottab-DUTY committed Jul 24, 2018
1 parent 96a90c4 commit ede90c5
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 10 deletions.
8 changes: 3 additions & 5 deletions src/xrGame/Level_input.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,9 @@ void CLevel::IR_OnMouseWheel(int x, int y)
}
}

static int mouse_button_2_key[] = {SDL_NUM_SCANCODES, MOUSE_1, MOUSE_2, MOUSE_3};

void CLevel::IR_OnMousePress(int btn) {IR_OnKeyboardPress(mouse_button_2_key[btn]); }
void CLevel::IR_OnMouseRelease(int btn) {IR_OnKeyboardRelease(mouse_button_2_key[btn]); }
void CLevel::IR_OnMouseHold(int btn) {IR_OnKeyboardHold(mouse_button_2_key[btn]); }
void CLevel::IR_OnMousePress(int btn) {IR_OnKeyboardPress(MouseButtonToKey[btn]); }
void CLevel::IR_OnMouseRelease(int btn) {IR_OnKeyboardRelease(MouseButtonToKey[btn]); }
void CLevel::IR_OnMouseHold(int btn) {IR_OnKeyboardHold(MouseButtonToKey[btn]); }
void CLevel::IR_OnMouseMove(int dx, int dy)
{
if (g_bDisableAllInput)
Expand Down
7 changes: 3 additions & 4 deletions src/xrGame/MainMenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,29 +300,28 @@ bool CMainMenu::IsActive() { return !!m_Flags.test(flActive); }
bool CMainMenu::CanSkipSceneRendering() { return IsActive() && !m_Flags.test(flGameSaveScreenshot); }

// IInputReceiver
static int mouse_button_2_key[] = { MOUSE_1, MOUSE_2, MOUSE_3, MOUSE_4, MOUSE_5, MOUSE_6, MOUSE_7, MOUSE_8 };
void CMainMenu::IR_OnMousePress(int btn)
{
if (!IsActive())
return;

IR_OnKeyboardPress(mouse_button_2_key[btn]);
IR_OnKeyboardPress(MouseButtonToKey[btn]);
};

void CMainMenu::IR_OnMouseRelease(int btn)
{
if (!IsActive())
return;

IR_OnKeyboardRelease(mouse_button_2_key[btn]);
IR_OnKeyboardRelease(MouseButtonToKey[btn]);
};

void CMainMenu::IR_OnMouseHold(int btn)
{
if (!IsActive())
return;

IR_OnKeyboardHold(mouse_button_2_key[btn]);
IR_OnKeyboardHold(MouseButtonToKey[btn]);
};

void CMainMenu::IR_OnMouseMove(int x, int y)
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/UIDialogHolder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ bool CDialogHolder::IR_UIOnKeyboardPress(SDL_Scancode dik)
{
Fvector2 cp = GetUICursor().GetCursorPosition();
EUIMessages action =
(dik == MOUSE_1) ? WINDOW_LBUTTON_DOWN : (dik == MOUSE_2) ? WINDOW_CBUTTON_DOWN : WINDOW_RBUTTON_DOWN;
(dik == MOUSE_1) ? WINDOW_LBUTTON_DOWN : (dik == MOUSE_2) ? WINDOW_RBUTTON_DOWN : WINDOW_CBUTTON_DOWN;
if (TIR->OnMouseAction(cp.x, cp.y, action))
return true;
}
Expand Down
2 changes: 2 additions & 0 deletions src/xrGame/xr_level_controller.h
Original file line number Diff line number Diff line change
Expand Up @@ -172,3 +172,5 @@ extern ConsoleBindCmds bindConsoleCmds;
#define MOUSE_6 (SDL_NUM_SCANCODES + 6)
#define MOUSE_7 (SDL_NUM_SCANCODES + 7)
#define MOUSE_8 (SDL_NUM_SCANCODES + 8)

constexpr int MouseButtonToKey[] = { MOUSE_1, MOUSE_3, MOUSE_2, MOUSE_4, MOUSE_5, MOUSE_6, MOUSE_7, MOUSE_8 };

0 comments on commit ede90c5

Please sign in to comment.