diff --git a/src/Components/Modules/Gamepad.cpp b/src/Components/Modules/Gamepad.cpp index a511feea..364021c8 100644 --- a/src/Components/Modules/Gamepad.cpp +++ b/src/Components/Modules/Gamepad.cpp @@ -1833,13 +1833,18 @@ namespace Components return gamePads[0].inUse; } - int Gamepad::CL_MouseEvent_Hk(const int x, const int y, const int dx, const int dy) + void Gamepad::OnMouseMove([[maybe_unused]] const int x, [[maybe_unused]] const int y, const int dx, const int dy) { if (dx != 0 || dy != 0) { gamePads[0].inUse = false; gpad_in_use.setRaw(false); } + } + + int Gamepad::CL_MouseEvent_Hk(const int x, const int y, const int dx, const int dy) + { + OnMouseMove(x, y, dx, dy); // Call original function return Utils::Hook::Call(0x4D7C50)(x, y, dx, dy); diff --git a/src/Components/Modules/Gamepad.hpp b/src/Components/Modules/Gamepad.hpp index 024d0c6a..a09a4ec6 100644 --- a/src/Components/Modules/Gamepad.hpp +++ b/src/Components/Modules/Gamepad.hpp @@ -41,6 +41,8 @@ namespace Components public: Gamepad(); + static void OnMouseMove(int x, int y, int dx, int dy); + private: static Game::ButtonToCodeMap_t buttonList[]; static Game::StickToCodeMap_t analogStickList[4]; diff --git a/src/Components/Modules/RawMouse.cpp b/src/Components/Modules/RawMouse.cpp index 3f95a874..51cba280 100644 --- a/src/Components/Modules/RawMouse.cpp +++ b/src/Components/Modules/RawMouse.cpp @@ -97,6 +97,7 @@ namespace Components Game::s_wmv->oldPos = curPos; ScreenToClient(Window::GetWindow(), &curPos); + Gamepad::OnMouseMove(curPos.x, curPos.y, dx, dy); auto recenterMouse = Game::CL_MouseEvent(curPos.x, curPos.y, dx, dy); if (recenterMouse)