Show "Playback Paused" instead of "Connection Interrupted"

Suppress CG_DrawDisconnect during server demo playback — connection
can't be interrupted on a local demo. Detect pause from snapshot
serverTime (frozen time = paused) rather than configstrings, since
configstrings are OOB and may not be in sync with snapshots.
Show "Playback Paused" centered on screen when detected.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
serge_shubin 2026-03-24 04:09:47 +08:00
parent 490fcd9bde
commit 41f0ca2e50

View file

@ -1650,6 +1650,16 @@ static void CG_DrawDisconnect( void ) {
const char *s; const char *s;
int w; // bk010215 - FIXME char message[1024]; int w; // bk010215 - FIXME char message[1024];
// server demo playback: detect pause from frozen snapshot time
if ( cg.svDemoPlayback ) {
if ( cg.nextSnap && cg.nextSnap->serverTime == cg.snap->serverTime ) {
s = "Playback Paused";
w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH;
CG_DrawBigString( 320 - w/2, 100, s, 1.0F );
}
return;
}
// draw the phone jack if we are completely past our buffers // draw the phone jack if we are completely past our buffers
cmdNum = trap_GetCurrentCmdNumber() - CMD_BACKUP + 1; cmdNum = trap_GetCurrentCmdNumber() - CMD_BACKUP + 1;
trap_GetUserCmd( cmdNum, &cmd ); trap_GetUserCmd( cmdNum, &cmd );