diff --git a/rts/Lua/LuaDebugExtra.cpp b/rts/Lua/LuaDebugExtra.cpp index 7b840cba4c..1c1a35377d 100644 --- a/rts/Lua/LuaDebugExtra.cpp +++ b/rts/Lua/LuaDebugExtra.cpp @@ -45,6 +45,7 @@ bool LuaDebugExtra::PushEntries(lua_State* L) LuaPushNamedCFunc(L, "emulateMousePress", EmulateMousePress); LuaPushNamedCFunc(L, "emulateMouseRelease", EmulateMouseRelease); LuaPushNamedCFunc(L, "emulateMouseMove", EmulateMouseMove); + LuaPushNamedCFunc(L, "emulateMouseWheel", EmulateMouseWheel); LuaPushNamedCFunc(L, "clearEmulatedInput", ClearEmulatedInputLua); return true; @@ -138,6 +139,16 @@ int LuaDebugExtra::EmulateMousePress(lua_State* L) return 0; } +int LuaDebugExtra::EmulateMouseWheel(lua_State* L) +{ + if (mouse == nullptr) + return 0; + + // momentary tick, no persistent state to track; fire directly like a real wheel event + mouse->MouseWheel((float)luaL_checknumber(L, 1)); + return 0; +} + /*** Emulate a held mouse button being released. * diff --git a/rts/Lua/LuaDebugExtra.h b/rts/Lua/LuaDebugExtra.h index 35d3c6dba0..1d552c0861 100644 --- a/rts/Lua/LuaDebugExtra.h +++ b/rts/Lua/LuaDebugExtra.h @@ -21,6 +21,7 @@ class LuaDebugExtra { static int EmulateMousePress(lua_State* L); static int EmulateMouseRelease(lua_State* L); static int EmulateMouseMove(lua_State* L); + static int EmulateMouseWheel(lua_State* L); static int ClearEmulatedInputLua(lua_State* L); };