From 7d9c9d3b32bd0eef5115a1ba02aa8939f292b212 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:38:47 +1100 Subject: [PATCH] move oddly placed player input code --- source/frontend/StarMainInterface.cpp | 33 ++++++++++++++------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/source/frontend/StarMainInterface.cpp b/source/frontend/StarMainInterface.cpp index 21cba33..aa06dc7 100644 --- a/source/frontend/StarMainInterface.cpp +++ b/source/frontend/StarMainInterface.cpp @@ -345,12 +345,18 @@ bool MainInterface::handleInputEvent(InputEvent const& event) { return false; } else if (auto mouseDown = event.ptr()) { - if (mouseDown->mouseButton == MouseButton::Left || mouseDown->mouseButton == MouseButton::Right - || mouseDown->mouseButton == MouseButton::Middle) - return overlayClick(mouseDown->mousePosition, mouseDown->mouseButton); - else - return false; - + auto mouseButton = mouseDown->mouseButton; + if (mouseButton >= MouseButton::Left && mouseButton <= MouseButton::Right + && overlayClick(mouseDown->mousePosition, mouseDown->mouseButton)) { + return true; + } else { + if (mouseButton == MouseButton::Left) + player->beginPrimaryFire(); + if (mouseButton == MouseButton::Right) + player->beginAltFire(); + if (mouseButton == MouseButton::Middle) + player->beginTrigger(); + } } else if (auto mouseUp = event.ptr()) { if (mouseUp->mouseButton == MouseButton::Left) player->endPrimaryFire(); @@ -360,10 +366,12 @@ bool MainInterface::handleInputEvent(InputEvent const& event) { player->endTrigger(); } - for (auto& pair : m_canvases) - pair.second->sendEvent(event); + bool captured = false; - return true; + for (auto& pair : m_canvases) + captured |= pair.second->sendEvent(event); + + return captured; } bool MainInterface::inputFocus() const { @@ -1558,13 +1566,6 @@ bool MainInterface::overlayClick(Vec2I const& mousePos, MouseButton mouseButton) return true; } - if (mouseButton == MouseButton::Left) - m_client->mainPlayer()->beginPrimaryFire(); - if (mouseButton == MouseButton::Right) - m_client->mainPlayer()->beginAltFire(); - if (mouseButton == MouseButton::Middle) - m_client->mainPlayer()->beginTrigger(); - return false; }