From 63c244b381c27d70df00b94daaea6c7b876f09bc Mon Sep 17 00:00:00 2001 From: NepDisk Date: Fri, 4 Jul 2025 03:03:43 -0400 Subject: [PATCH] Entirely remove player iterate loops from getting the dedicated server player This was very annoying for writing lua and kind of redundent when you can already get the serverplayer from server --- src/lua_playerlib.c | 39 +++++---------------------------------- src/lua_script.c | 8 -------- src/lua_script.h | 2 -- 3 files changed, 5 insertions(+), 44 deletions(-) diff --git a/src/lua_playerlib.c b/src/lua_playerlib.c index b017c97ae..36dcff2e1 100644 --- a/src/lua_playerlib.c +++ b/src/lua_playerlib.c @@ -28,43 +28,25 @@ static int lib_iteratePlayers(lua_State *L) { INT32 i = -1; - if (lua_gettop(L) < 2) { //return luaL_error(L, "Don't call players.iterate() directly, use it as 'for player in players.iterate do end'."); lua_pushcfunction(L, lib_iteratePlayers); return 1; } - lua_settop(L, 2); lua_remove(L, 1); // state is unused. - if (!lua_isnil(L, 1)) i = (INT32)(*((player_t **)luaL_checkudata(L, 1, META_PLAYER)) - players); - - i++; - - if (!lua_compatmode) - { - if (i == serverplayer) - { - return LUA_PushServerPlayer(L); - } - } - - for (; i < MAXPLAYERS; i++) + for (i++; i < MAXPLAYERS; i++) { if (!playeringame[i]) continue; - if (lua_compatmode) - { - if (!players[i].mo) - continue; - } + if (!players[i].mo) + continue; LUA_PushUserdata(L, &players[i], META_PLAYER); return 1; } - return 0; } @@ -78,21 +60,10 @@ static int lib_getPlayer(lua_State *L) if (i < 0 || i >= MAXPLAYERS) return luaL_error(L, "players[] index %d out of range (0 - %d)", i, MAXPLAYERS-1); - - if (!lua_compatmode) - { - if (i == serverplayer) - return LUA_PushServerPlayer(L); - } - if (!playeringame[i]) return 0; - - if (lua_compatmode) - { - if (!players[i].mo) - return 0; - } + if (!players[i].mo) + return 0; LUA_PushUserdata(L, &players[i], META_PLAYER); return 1; } diff --git a/src/lua_script.c b/src/lua_script.c index d5fb2bcce..740d923da 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -920,14 +920,6 @@ lpushed_t LUA_RawPushUserdata(lua_State *L, void *data) return status; } -int LUA_PushServerPlayer(lua_State *L) -{ - if ((!multiplayer || !(netgame || demo.playback)) && !playeringame[serverplayer]) - return 0; - LUA_PushUserdata(L, &players[serverplayer], META_PLAYER); - return 1; -} - // When userdata is freed, use this function to remove it from Lua. void LUA_InvalidateUserdata(void *data) { diff --git a/src/lua_script.h b/src/lua_script.h index 926498f6c..6a0ddea2c 100644 --- a/src/lua_script.h +++ b/src/lua_script.h @@ -99,8 +99,6 @@ typedef enum { void LUA_PushUserdata(lua_State *L, void *data, const char *meta); lpushed_t LUA_RawPushUserdata(lua_State *L, void *data); -int LUA_PushServerPlayer(lua_State *L); - void LUA_InvalidateUserdata(void *data); void LUA_InvalidateLevel(void);