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);