From 41f0ca2e50666e8c742d4b7fe2a6c456879edcf5 Mon Sep 17 00:00:00 2001 From: serge_shubin Date: Tue, 24 Mar 2026 04:09:47 +0800 Subject: [PATCH] Show "Playback Paused" instead of "Connection Interrupted" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- code/cgame/cg_draw.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/cgame/cg_draw.c b/code/cgame/cg_draw.c index e29c10f..7d7126e 100644 --- a/code/cgame/cg_draw.c +++ b/code/cgame/cg_draw.c @@ -1650,6 +1650,16 @@ static void CG_DrawDisconnect( void ) { const char *s; 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 cmdNum = trap_GetCurrentCmdNumber() - CMD_BACKUP + 1; trap_GetUserCmd( cmdNum, &cmd );