From db46d5506cba24da3342737debe2833c17b3e56a Mon Sep 17 00:00:00 2001 From: mid <> Date: Sun, 18 Jan 2026 13:43:51 +0200 Subject: [PATCH] Many bug fixes --- src/game.c | 2 +- src/k4.h | 2 ++ src/luaapi.c | 10 +++++----- src/main.c | 10 ++++++---- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/game.c b/src/game.c index 8abc5ca..54ce044 100644 --- a/src/game.c +++ b/src/game.c @@ -1017,7 +1017,7 @@ void game_killentity(uint16_t eid) { if(cr) { if(cr->cache) { if(resman_rev(cr->cache)) { - resman_unref(RESMAN_MODEL, cr->cache); + resman_unref_ptr(RESMAN_MODEL, cr->cache); } } diff --git a/src/k4.h b/src/k4.h index 3e36422..b991f84 100644 --- a/src/k4.h +++ b/src/k4.h @@ -45,3 +45,5 @@ void k4_set_texture_reduction(int); void k4_set_clipboard_text(const char *str); const char *k4_get_clipboard_text(); + +void k4_set_ui_mode(bool yes); diff --git a/src/luaapi.c b/src/luaapi.c index 1fc4b30..8a50cff 100644 --- a/src/luaapi.c +++ b/src/luaapi.c @@ -1294,7 +1294,7 @@ static int game_get(lua_State *L) { if(UiActive) { struct menuitem *item = lua_newuserdata(L, sizeof(*item)); item->type = MENUITEM_SCREEN; - item->ptr = UiActive; + item->ptr = (struct k3MObj*) UiActive; } else { lua_pushnil(L); } @@ -1317,16 +1317,16 @@ static int game_set(lua_State *L) { LuaapiFar = lua_tonumber(L, 3); } else if(!strcmp(i, "menu")) { struct menuitem *item = lua_touserdata(L, 3); - UiActive = item ? item->ptr : NULL; + UiActive = item ? (struct k3MScreen*) item->ptr : NULL; - set_ui_mode(!!UiActive); + k4_set_ui_mode(!!UiActive); if(UiActive) { UiActive->w = UiActive->wDesired = GameWndW; UiActive->h = UiActive->hDesired = GameWndH; - k3MMeasure(UiActive); - k3MArrange(UiActive); + k3MMeasure((struct k3MObj*) UiActive); + k3MArrange((struct k3MObj*) UiActive); } } else { lua_pushvalue(L, 2); diff --git a/src/main.c b/src/main.c index de1e0d6..bb6e95d 100644 --- a/src/main.c +++ b/src/main.c @@ -28,6 +28,7 @@ #include"k3font.h" #include"k3menu.h" #include"k3bloom.h" +#include"k3batch.h" #include"resman.h" @@ -37,6 +38,7 @@ #include"net_server.h" #include"net_client.h" +#include"net_hi.h" #include @@ -60,7 +62,7 @@ static double LastTime; #include"loaders.inc" -void set_ui_mode(int yes) { +void k4_set_ui_mode(bool yes) { glfwSetInputMode(GameWnd, GLFW_CURSOR, yes ? GLFW_CURSOR_NORMAL : GLFW_CURSOR_DISABLED); } @@ -130,7 +132,7 @@ static void motioncallback(GLFWwindow *GameWnd, double xpos, double ypos) { static void keycallback(GLFWwindow *GameWnd, int key, int scancode, int action, int mods) { if(action == GLFW_RELEASE && key == GLFW_KEY_ESCAPE) { luaapi_escape(); - set_ui_mode(!!UiActive); + k4_set_ui_mode(!!UiActive); } else { if(UiActive) { struct k3MEvent ev = { @@ -205,7 +207,7 @@ void k4k3LogCallback(enum k3LogLevel lvl, const char *str, size_t len) { //if(lvl == k3_ERR) raise(SIGINT); - fprintf(stderr, "%s : %s\n", prefixes[lvl], str); + fprintf(stdout, "%s : %s\n", prefixes[lvl], str); } struct k4Control { @@ -320,7 +322,7 @@ static void fix_resol() { } static void eng_ui_init() { - set_ui_mode(!!UiActive); + k4_set_ui_mode(!!UiActive); } static void fps_counter_step(double newDT) {