diff --git a/src/modules/mouse/Mouse.h b/src/modules/mouse/Mouse.h index bbfd4dfb2..7b6fe90db 100644 --- a/src/modules/mouse/Mouse.h +++ b/src/modules/mouse/Mouse.h @@ -51,6 +51,8 @@ namespace mouse virtual int getX() const = 0; virtual int getY() const = 0; virtual void getPosition(int & x, int & y) const = 0; + virtual void setX(int x) = 0; + virtual void setY(int y) = 0; virtual void setPosition(int x, int y) = 0; virtual void setVisible(bool visible) = 0; virtual bool isDown(Button * buttonlist) const = 0; @@ -71,4 +73,4 @@ namespace mouse } // mouse } // love -#endif // LOVE_MOUSE_MOUSE_H \ No newline at end of file +#endif // LOVE_MOUSE_MOUSE_H diff --git a/src/modules/mouse/sdl/Mouse.cpp b/src/modules/mouse/sdl/Mouse.cpp index a29d4a875..6cb2837e4 100644 --- a/src/modules/mouse/sdl/Mouse.cpp +++ b/src/modules/mouse/sdl/Mouse.cpp @@ -58,6 +58,18 @@ namespace sdl SDL_WarpMouse(x, y); } + void Mouse::setX(int x) + { + int y = getY(); + setPosition(x, y); + } + + void Mouse::setY(int y) + { + int x = getX(); + setPosition(x, y); + } + void Mouse::setVisible(bool visible) { SDL_ShowCursor(visible ? SDL_ENABLE : SDL_DISABLE); diff --git a/src/modules/mouse/sdl/Mouse.h b/src/modules/mouse/sdl/Mouse.h index 8e1087828..bafd12da4 100644 --- a/src/modules/mouse/sdl/Mouse.h +++ b/src/modules/mouse/sdl/Mouse.h @@ -40,6 +40,8 @@ namespace sdl int getX() const; int getY() const; void getPosition(int & x, int & y) const; + void setX(int x); + void setY(int y); void setPosition(int x, int y); void setVisible(bool visible); bool isDown(Button * buttonlist) const; diff --git a/src/modules/mouse/wrap_Mouse.cpp b/src/modules/mouse/wrap_Mouse.cpp index fdf340c84..805b913e7 100644 --- a/src/modules/mouse/wrap_Mouse.cpp +++ b/src/modules/mouse/wrap_Mouse.cpp @@ -51,6 +51,20 @@ namespace mouse return 2; } + int w_setX(lua_State * L) + { + int x = luaL_checkint(L, 1); + instance->setX(x); + return 0; + } + + int w_setY(lua_State * L) + { + int y = luaL_checkint(L, 1); + instance->setY(y); + return 0; + } + int w_setPosition(lua_State * L) { int x = luaL_checkint(L, 1); @@ -108,6 +122,8 @@ namespace mouse static const luaL_Reg functions[] = { { "getX", w_getX }, { "getY", w_getY }, + { "setX", w_setX }, + { "setY", w_setY }, { "setPosition", w_setPosition }, { "isDown", w_isDown }, { "setVisible", w_setVisible }, diff --git a/src/modules/mouse/wrap_Mouse.h b/src/modules/mouse/wrap_Mouse.h index e261c08f3..b69223b5f 100644 --- a/src/modules/mouse/wrap_Mouse.h +++ b/src/modules/mouse/wrap_Mouse.h @@ -31,6 +31,8 @@ namespace mouse int w_getX(lua_State * L); int w_getY(lua_State * L); int w_getPosition(lua_State * L); + int w_setX(lua_State * L); + int w_setY(lua_State * L); int w_setPosition(lua_State * L); int w_isDown(lua_State * L); int w_setVisible(lua_State * L);