diff --git a/Makefile.mingw b/Makefile.mingw index b887175..b0fdb76 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -14,7 +14,7 @@ CFLAGS = -O2 -fno-strict-aliasing -g -Wall -Wextra \ -Wno-unused-variable -Wno-unused-parameter \ -Wno-unused-but-set-variable \ - -Iwinlibs -Iwinlibs/SDL \ + -Iwinlibs -Iwinlibs/SDL2 \ -DGL_BGRA=0x80E1 \ $(CFLAGS_EXTRA) \ -I $(INCDIR) diff --git a/src/lua_input.h b/src/lua_input.h index a477efa..9543d93 100644 --- a/src/lua_input.h +++ b/src/lua_input.h @@ -1,87 +1,88 @@ /* - This file is part of Iceball. + This file is part of Iceball. - Iceball is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + Iceball is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Iceball is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + Iceball is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with Iceball. If not, see . + You should have received a copy of the GNU General Public License + along with Iceball. If not, see . */ // client functions int icelua_fn_client_text_input_start(lua_State *L) { #ifdef DEDI - return luaL_error(L, "EDOOFUS: why the hell is this being called in the dedi version?"); + return luaL_error(L, "EDOOFUS: why the hell is this being called in the dedi version?"); #else - SDL_StartTextInput(); + SDL_StartTextInput(); #endif - return 0; + return 0; } int icelua_fn_client_text_input_stop(lua_State *L) { #ifdef DEDI - return luaL_error(L, "EDOOFUS: why the hell is this being called in the dedi version?"); + return luaL_error(L, "EDOOFUS: why the hell is this being called in the dedi version?"); #else - SDL_StopTextInput(); + SDL_StopTextInput(); #endif - return 0; + return 0; } int icelua_fn_client_mouse_lock_set(lua_State *L) { int top = icelua_assert_stack(L, 1, 1); - + #ifdef DEDI return luaL_error(L, "EDOOFUS: why the hell is this being called in the dedi version?"); #else - // workaround for SDL2 not properly resetting state when - // alt-tabbing - SDL_SetWindowGrab(window, SDL_FALSE); - SDL_SetRelativeMouseMode(SDL_FALSE); + // workaround for SDL2 not properly resetting state when + // alt-tabbing + SDL_SetWindowGrab(window, SDL_FALSE); + SDL_SetRelativeMouseMode(SDL_FALSE); - int lock = lua_toboolean(L, 1); - if (lock) { - SDL_SetWindowGrab(window, SDL_TRUE); - SDL_SetRelativeMouseMode(SDL_TRUE); - } + int lock = lua_toboolean(L, 1); + if (lock) { + SDL_SetWindowGrab(window, SDL_TRUE); + SDL_SetRelativeMouseMode(SDL_TRUE); + } #endif - + return 0; } int icelua_fn_client_mouse_visible_set(lua_State *L) { int top = icelua_assert_stack(L, 1, 1); - + #ifdef DEDI return luaL_error(L, "EDOOFUS: why the hell is this being called in the dedi version?"); #else SDL_ShowCursor(lua_toboolean(L, 1)); #endif - + return 0; } int icelua_fn_client_mouse_warp(lua_State *L) { int top = icelua_assert_stack(L, 2, 2); - + #ifdef DEDI return luaL_error(L, "EDOOFUS: why the hell is this being called in the dedi version?"); #else - SDL_WarpMouseInWindow(window, lua_tonumber(L, 1), lua_tonumber(L, 2)); + SDL_WarpMouseInWindow(window, lua_tonumber(L, 1), lua_tonumber(L, 2)); #endif - + return 0; } + diff --git a/src/main.c b/src/main.c index ee63b26..0d74519 100644 --- a/src/main.c +++ b/src/main.c @@ -120,8 +120,6 @@ int video_init(void) SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8); - if(!gl_vsync) - SDL_GL_SetSwapInterval(1); if (screen_antialiasing_level > 0) { @@ -146,6 +144,11 @@ int video_init(void) SDL_GL_MakeCurrent(window, gl_context); + if(gl_vsync) + SDL_GL_SetSwapInterval(1); + else + SDL_GL_SetSwapInterval(0); + //screen = SDL_GetWindowSurface(window); //if(screen == NULL) @@ -453,7 +456,17 @@ static int ib_client_mouse_press_hook(SDL_Event ev) { return 0; } -static int ib_client_mouse_motion_hook(SDL_Event ev) { +static int ib_client_mouse_motion_hook(SDL_Event ev) +{ +#ifdef WIN32 + // THANKS FUCKDOWS + // TODO: make fuckdows behave + //printf("%i %i %i %i\n", ev.motion.xrel, ev.motion.yrel, ev.motion.x, ev.motion.y); + if(ev.motion.xrel < -screen_width/4) return 0; + if(ev.motion.xrel > screen_width/4) return 0; + if(ev.motion.yrel < -screen_height/4) return 0; + if(ev.motion.yrel > screen_height/4) return 0; +#endif lua_getglobal(lstate_client, "client"); lua_getfield(lstate_client, -1, "hook_mouse_motion"); lua_remove(lstate_client, -2);