From da338b5f05fd0154b3d1aba9ae45b944bfe865f2 Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Tue, 24 Apr 2018 09:53:15 +0200 Subject: Discard players' votes when they leave. --- src/game/g_client.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/game/g_client.c') diff --git a/src/game/g_client.c b/src/game/g_client.c index a9fdb1f..b30b9c7 100644 --- a/src/game/g_client.c +++ b/src/game/g_client.c @@ -2067,7 +2067,7 @@ void ClientSpawn( gentity_t *ent, gentity_t *spawn, vec3_t origin, vec3_t angles client->pers.teamState.state = TEAM_ACTIVE; // toggle the teleport bit so the client knows to not lerp - flags = ent->client->ps.eFlags & ( EF_TELEPORT_BIT | EF_VOTED | EF_TEAMVOTED ); + flags = ent->client->ps.eFlags & EF_TELEPORT_BIT; flags ^= EF_TELEPORT_BIT; G_UnlaggedClear( ent ); @@ -2347,6 +2347,23 @@ void ClientDisconnect( int clientNum ) ent->client->pers.control = 0; } + // discard this player's vote + if( level.voteTime && level.votedHow[ clientNum ] ) + { + if( level.votedHow[ clientNum ] > 0 ) + { + level.voteYes--; + trap_SetConfigstring( CS_VOTE_YES, va( "%i", level.voteYes ) ); + } + else + { + level.voteNo--; + trap_SetConfigstring( CS_VOTE_NO, va( "%i", level.voteNo ) ); + } + + level.votedHow[ clientNum ] = 0; + } + // look through the bhist and readjust it if the referenced ent has left for( ptr = level.buildHistory; ptr; ptr = ptr->next ) { -- cgit