From f4f6e27dda435f3f7ba10eda06a77bc66d60db93 Mon Sep 17 00:00:00 2001 From: SteelT Date: Mon, 26 Feb 2024 04:00:37 -0500 Subject: [PATCH] Fix players RRID getting wiped on join Fixes #1075 --- src/d_clisrv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 224a6d8ae..ead340d51 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -3464,6 +3464,7 @@ static void Got_AddPlayer(const UINT8 **p, INT32 playernum) UINT8 splitscreenplayer = 0; UINT8 i; player_t *newplayer; + uint8_t public_key[PUBKEYLENGTH]; if (playernum != serverplayer && !IsPlayerAdmin(playernum)) { @@ -3487,13 +3488,14 @@ static void Got_AddPlayer(const UINT8 **p, INT32 playernum) newplayer = &players[newplayernum]; READSTRINGN(*p, player_names[newplayernum], MAXPLAYERNAME); - READMEM(*p, players[newplayernum].public_key, PUBKEYLENGTH); + READMEM(*p, public_key, PUBKEYLENGTH); READMEM(*p, clientpowerlevels[newplayernum], sizeof(((serverplayer_t *)0)->powerlevels)); console = READUINT8(*p); splitscreenplayer = READUINT8(*p); G_AddPlayer(newplayernum, console); + memcpy(players[newplayernum].public_key, public_key, PUBKEYLENGTH); for (i = 0; i < MAXAVAILABILITY; i++) {