diff --git a/src/k_serverstats.c b/src/k_serverstats.c index 32e2c7074..6ebbf3594 100644 --- a/src/k_serverstats.c +++ b/src/k_serverstats.c @@ -316,6 +316,9 @@ static void SV_UpdateTempMute(player_t *player, boolean mute) { UINT8 buf[2]; + if (mute == !!(player->pflags2 & PF2_SERVERTEMPMUTE)) + return; + buf[0] = player - players; buf[1] = (UINT8)(mute); SendNetXCmd(XD_SERVERTEMPMUTEPLAYER, &buf, 2); @@ -337,18 +340,18 @@ void SV_UpdateTempMutes(void) if (PR_IsKeyGuest(player->public_key)) { - if (cv_gamestochat.value && !(player->pflags2 & PF2_SERVERTEMPMUTE)) + if (cv_gamestochat.value) SV_UpdateTempMute(player, false); continue; } serverplayer_t *stat = SV_GetStatsByPlayerIndex(i); - if (i == serverplayer || IsPlayerAdmin(i) && player->pflags2 & PF2_SERVERTEMPMUTE) + if (i == serverplayer || IsPlayerAdmin(i)) SV_UpdateTempMute(player, false); - else if (stat->finishedrounds >= (UINT32)cv_gamestochat.value && player->pflags2 & PF2_SERVERTEMPMUTE) + else if (stat->finishedrounds >= (UINT32)cv_gamestochat.value) SV_UpdateTempMute(player, false); - else if (stat->finishedrounds < (UINT32)cv_gamestochat.value && !(player->pflags2 & PF2_SERVERTEMPMUTE)) + else if (stat->finishedrounds < (UINT32)cv_gamestochat.value) SV_UpdateTempMute(player, true); } } diff --git a/src/p_saveg.cpp b/src/p_saveg.cpp index d4feebbef..97f497bba 100644 --- a/src/p_saveg.cpp +++ b/src/p_saveg.cpp @@ -245,6 +245,7 @@ static void P_NetArchivePlayers(savebuffer_t *save) WRITEUINT8(save->p, players[i].playerstate); WRITEUINT32(save->p, players[i].pflags); + WRITEUINT32(save->p, players[i].pflags2); WRITEUINT8(save->p, players[i].panim); WRITEUINT8(save->p, players[i].spectator); WRITEUINT32(save->p, players[i].spectatewait); @@ -977,6 +978,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save) players[i].playerstate = (playerstate_t)READUINT8(save->p); players[i].pflags = READUINT32(save->p); + players[i].pflags2 = READUINT32(save->p); players[i].panim = (panim_t)READUINT8(save->p); players[i].spectator = READUINT8(save->p); players[i].spectatewait = READUINT32(save->p);