From 1785adffc2ea1e755b9cb120c6415e660ccf3eb9 Mon Sep 17 00:00:00 2001 From: james Date: Sat, 16 Feb 2019 23:25:50 -0800 Subject: [PATCH] Expose splitscreenplayer (from Got_AddPlayer) as splitscreen in player_t --- src/d_clisrv.c | 6 ++++++ src/d_clisrv.h | 2 ++ src/d_player.h | 2 ++ src/g_game.c | 3 +++ src/lua_playerlib.c | 4 ++++ src/p_saveg.c | 4 ++++ 6 files changed, 21 insertions(+) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 7516df2e..0aec7fd9 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -648,6 +648,8 @@ static inline void resynch_write_player(resynch_pak *rsp, const size_t i) rsp->jointime = (tic_t)LONG(players[i].jointime); + rsp->splitscreen = players[i].splitscreen; + rsp->hasmo = false; //Transfer important mo information if the player has a body. //This lets us resync players even if they are dead. @@ -783,6 +785,8 @@ static void resynch_read_player(resynch_pak *rsp) players[i].jointime = (tic_t)LONG(rsp->jointime); + players[i].splitscreen = rsp->splitscreen; + //We get a packet for each player in game. if (!playeringame[i]) return; @@ -3316,6 +3320,8 @@ static void Got_AddPlayer(UINT8 **p, INT32 playernum) addedtogame = true; } + players[newplayernum].splitscreen = splitscreenplayer; + if (netgame) { if (server && cv_showjoinaddress.value) diff --git a/src/d_clisrv.h b/src/d_clisrv.h index 62bd8bc1..b628606d 100644 --- a/src/d_clisrv.h +++ b/src/d_clisrv.h @@ -283,6 +283,8 @@ typedef struct tic_t jointime; + UINT8 splitscreen; + //player->mo stuff UINT8 hasmo; // Boolean diff --git a/src/d_player.h b/src/d_player.h index b430f20a..baed9a72 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -571,6 +571,8 @@ typedef struct player_s UINT8 bot; tic_t jointime; // Timer when player joins game to change skin/color + + UINT8 splitscreen; #ifdef HWRENDER fixed_t fovadd; // adjust FOV for hw rendering #endif diff --git a/src/g_game.c b/src/g_game.c index f0d221ff..eb0396c8 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2357,6 +2357,7 @@ void G_PlayerReborn(INT32 player) UINT8 skincolor; INT32 skin; tic_t jointime; + UINT8 psplitscreen; boolean spectator; INT16 bot; SINT8 pity; @@ -2380,6 +2381,7 @@ void G_PlayerReborn(INT32 player) ctfteam = players[player].ctfteam; exiting = players[player].exiting; jointime = players[player].jointime; + psplitscreen = players[player].splitscreen; spectator = players[player].spectator; pflags = (players[player].pflags & (PF_TIMEOVER|PF_FLIPCAM|PF_TAGIT|PF_TAGGED|PF_ANALOGMODE|PF_WANTSTOJOIN)); @@ -2476,6 +2478,7 @@ void G_PlayerReborn(INT32 player) p->pflags = pflags; p->ctfteam = ctfteam; p->jointime = jointime; + p->splitscreen = psplitscreen; p->spectator = spectator; // save player config truth reborn diff --git a/src/lua_playerlib.c b/src/lua_playerlib.c index 5f136fc1..0bea1e7b 100644 --- a/src/lua_playerlib.c +++ b/src/lua_playerlib.c @@ -325,6 +325,8 @@ static int player_get(lua_State *L) lua_pushinteger(L, plr->bot); else if (fastcmp(field,"jointime")) lua_pushinteger(L, plr->jointime); + else if (fastcmp(field,"splitscreen")) + lua_pushinteger(L, plr->splitscreen); #ifdef HWRENDER else if (fastcmp(field,"fovadd")) lua_pushfixed(L, plr->fovadd); @@ -613,6 +615,8 @@ static int player_set(lua_State *L) return NOSET; else if (fastcmp(field,"jointime")) plr->jointime = (tic_t)luaL_checkinteger(L, 3); + else if (fastcmp(field,"splitscreen")) + return NOSET; #ifdef HWRENDER else if (fastcmp(field,"fovadd")) plr->fovadd = luaL_checkfixed(L, 3); diff --git a/src/p_saveg.c b/src/p_saveg.c index 975a4a5d..a2ae8f17 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -249,6 +249,8 @@ static void P_NetArchivePlayers(void) WRITEUINT32(save_p, players[i].jointime); + WRITEUINT8(save_p, players[i].splitscreen); + WRITEUINT16(save_p, flags); if (flags & CAPSULE) @@ -426,6 +428,8 @@ static void P_NetUnArchivePlayers(void) players[i].jointime = READUINT32(save_p); + players[i].splitscreen = READUINT8(save_p); + flags = READUINT16(save_p); if (flags & CAPSULE)