From 7bf8a4d05679572f589d9548b27a54ffb54bc63c Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Thu, 5 Nov 2020 12:37:49 -0600 Subject: [PATCH 1/8] Make `emeralds` writable. --- src/lua_script.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lua_script.c b/src/lua_script.c index 6e40cb785..98336c9bf 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -376,6 +376,8 @@ int LUA_CheckGlobals(lua_State *L, const char *word) redscore = (UINT32)luaL_checkinteger(L, 2); else if (fastcmp(word, "bluescore")) bluescore = (UINT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "emeralds")) + emeralds = (UINT16)luaL_checkinteger(L, 2); else return 0; From 69f24e34adbbaf3f5a706e649c53452c2cb98d4f Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Thu, 5 Nov 2020 12:38:47 -0600 Subject: [PATCH 2/8] Make `token` writable. --- src/lua_script.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lua_script.c b/src/lua_script.c index 98336c9bf..da348d458 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -378,6 +378,8 @@ int LUA_CheckGlobals(lua_State *L, const char *word) bluescore = (UINT32)luaL_checkinteger(L, 2); else if (fastcmp(word, "emeralds")) emeralds = (UINT16)luaL_checkinteger(L, 2); + else if (fastcmp(word, "token")) + token = (UINT32)luaL_checkinteger(L, 2); else return 0; From 4a0fd2309eff425d85e7fcd71d465b71ad97dc73 Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Thu, 5 Nov 2020 12:39:03 -0600 Subject: [PATCH 3/8] Make `gravity` writable. --- src/lua_script.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lua_script.c b/src/lua_script.c index da348d458..3e749b31b 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -380,6 +380,8 @@ int LUA_CheckGlobals(lua_State *L, const char *word) emeralds = (UINT16)luaL_checkinteger(L, 2); else if (fastcmp(word, "token")) token = (UINT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "gravity")) + gravity = (fixed_t)luaL_checkinteger(L, 2); else return 0; From 3125128be760e901ed624ecc36c436cff3600c35 Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Thu, 5 Nov 2020 13:43:33 -0600 Subject: [PATCH 4/8] Make `displayplayer` writable. --- src/lua_script.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lua_script.c b/src/lua_script.c index 3e749b31b..be33cd35b 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -382,6 +382,13 @@ int LUA_CheckGlobals(lua_State *L, const char *word) token = (UINT32)luaL_checkinteger(L, 2); else if (fastcmp(word, "gravity")) gravity = (fixed_t)luaL_checkinteger(L, 2); + else if (fastcmp(word, "displayplayer")) + { + player_t *player = *((player_t **)luaL_checkudata(L, 2, META_PLAYER)); + + if (player) + displayplayer = player - players; + } else return 0; From cf3d6eb0af9d6e10b75d7d47bdce1a2f98db078c Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Thu, 5 Nov 2020 15:22:45 -0600 Subject: [PATCH 5/8] Make `stoppedclock` writable. --- src/lua_script.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lua_script.c b/src/lua_script.c index be33cd35b..2805a969b 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -382,6 +382,8 @@ int LUA_CheckGlobals(lua_State *L, const char *word) token = (UINT32)luaL_checkinteger(L, 2); else if (fastcmp(word, "gravity")) gravity = (fixed_t)luaL_checkinteger(L, 2); + else if (fastcmp(word, "stoppedclock")) + stoppedclock = luaL_checkboolean(L, 2); else if (fastcmp(word, "displayplayer")) { player_t *player = *((player_t **)luaL_checkudata(L, 2, META_PLAYER)); From fbd20c959195e0b174359110ecf73cd73ab0c550 Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Thu, 5 Nov 2020 17:38:32 -0600 Subject: [PATCH 6/8] Make `skincolor_*` CTF color variables writable. --- src/lua_script.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/lua_script.c b/src/lua_script.c index 2805a969b..29ee094d9 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -376,6 +376,14 @@ int LUA_CheckGlobals(lua_State *L, const char *word) redscore = (UINT32)luaL_checkinteger(L, 2); else if (fastcmp(word, "bluescore")) bluescore = (UINT32)luaL_checkinteger(L, 2); + else if (fastcmp(word, "skincolor_redteam")) + skincolor_redteam = (UINT16)luaL_checkinteger(L, 2); + else if (fastcmp(word, "skincolor_blueteam")) + skincolor_blueteam = (UINT16)luaL_checkinteger(L, 2); + else if (fastcmp(word, "skincolor_redring")) + skincolor_redring = (UINT16)luaL_checkinteger(L, 2); + else if (fastcmp(word, "skincolor_bluering")) + skincolor_bluering = (UINT16)luaL_checkinteger(L, 2); else if (fastcmp(word, "emeralds")) emeralds = (UINT16)luaL_checkinteger(L, 2); else if (fastcmp(word, "token")) From 6126e8badf5f9fe0afb6180746bf490720fa8c79 Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Thu, 5 Nov 2020 18:12:35 -0600 Subject: [PATCH 7/8] Make `mapmusflags` and `mapmusname` writable. --- src/lua_script.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/lua_script.c b/src/lua_script.c index 29ee094d9..c0e31557e 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -399,6 +399,21 @@ int LUA_CheckGlobals(lua_State *L, const char *word) if (player) displayplayer = player - players; } + else if (fastcmp(word, "mapmusname")) + { + size_t strlength; + const char *str = luaL_checkstring(L, 2, &strlength); + + if (strlength > 6) + return luaL_error(L, "string length out of range (maximum 6 characters)"); + + if (strlen(str) < strlength) + return luaL_error(L, "string must not contain embedded zeros!"); + + strncpy(mapmusname, str, strlength); + } + else if (fastcmp(word, "mapmusflags")) + mapmusflags = (UINT16)luaL_checkinteger(L, 2); else return 0; From d2e8823d50b9e2b451d85b67dc9d05cfb3f205ac Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Sun, 8 Nov 2020 20:43:16 -0600 Subject: [PATCH 8/8] Add skincolor vars to the NetSave --- src/p_saveg.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/p_saveg.c b/src/p_saveg.c index 4f6f31803..9dbe5445b 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -3990,6 +3990,12 @@ static void P_NetArchiveMisc(void) WRITEINT32(save_p, sstimer); WRITEUINT32(save_p, bluescore); WRITEUINT32(save_p, redscore); + + WRITEUINT16(save_p, skincolor_redteam); + WRITEUINT16(save_p, skincolor_blueteam); + WRITEUINT16(save_p, skincolor_redring); + WRITEUINT16(save_p, skincolor_bluering); + WRITEINT32(save_p, modulothing); WRITEINT16(save_p, autobalance); @@ -4074,6 +4080,12 @@ static inline boolean P_NetUnArchiveMisc(void) sstimer = READINT32(save_p); bluescore = READUINT32(save_p); redscore = READUINT32(save_p); + + skincolor_redteam = READUINT16(save_p); + skincolor_blueteam = READUINT16(save_p); + skincolor_redring = READUINT16(save_p); + skincolor_bluering = READUINT16(save_p); + modulothing = READINT32(save_p); autobalance = READINT16(save_p);