diff --git a/code/server/sv_netdemo.c b/code/server/sv_netdemo.c index 71d39bd..01e8429 100644 --- a/code/server/sv_netdemo.c +++ b/code/server/sv_netdemo.c @@ -659,9 +659,16 @@ static qboolean SVD_ReadFrame( fileHandle_t f ) { byte frameFlags; FS_Read( &frameFlags, 1, f ); if ( frameFlags & 1 ) { - // map was restarted — toggle server bit so client - // treats next snapshot as fresh (no interpolation) + int j; + // map was restarted — toggle server bit and force all + // clients to receive a full (non-delta) snapshot so the + // client clears old entity state and doesn't interpolate svs.snapFlagServerBit ^= SNAPFLAG_SERVERCOUNT; + for ( j = 0; j < sv_maxclients->integer; j++ ) { + if ( svs.clients[j].state >= CS_PRIMED ) { + svs.clients[j].deltaMessage = -1; + } + } } }