From b791040f428004ca9743ca9437a44f5599f1bae5 Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Sat, 29 Dec 2012 01:45:11 +0000 Subject: [PATCH] - Fix spectator client being switched from follow to free after map_restart if following a client with a higher client number. - Fix client unlinking issue caused by ent->s.number being set to followed client's ps->clientNum after map_restart. Reported by Ensiform. --- code/game/g_client.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/game/g_client.c b/code/game/g_client.c index 6672182d..87edfd46 100644 --- a/code/game/g_client.c +++ b/code/game/g_client.c @@ -1248,8 +1248,11 @@ void ClientSpawn(gentity_t *ent) { client->ps.commandTime = level.time - 100; ent->client->pers.cmd.serverTime = level.time; ClientThink( ent-g_entities ); - // run the presend to set anything else - ClientEndFrame( ent ); + // run the presend to set anything else, follow spectators wait + // until all clients have been reconnected after map_restart + if ( ent->client->sess.spectatorState != SPECTATOR_FOLLOW ) { + ClientEndFrame( ent ); + } // clear entity state values BG_PlayerStateToEntityState( &client->ps, &ent->s, qtrue );