quake3live/code
serge_shubin f871cc004f Fix svdemo_play from in-game and devmap from demo playback
Multiple issues fixed for seamless transitions:

Server lifecycle:
- SV_Shutdown before devmap in SVD_Play_f: drops old clients so
  spectator doesn't land in slot 0 (recorded player collision)
- SVD_IsStarting flag prevents cleanup hooks from destroying demo
  state during our own SV_Shutdown/SV_SpawnServer calls
- SV_SpawnServer stops demo playback on non-demo map changes
  via SVD_CleanupPlayback (no disconnect, just state cleanup)
- SVD_CleanupPlayback made non-static for use from sv_init.c

Cvar handling:
- Use Cvar_Set2 with force=qtrue for CVAR_ROM sv_demoplaying
- Set cvar AFTER SV_Shutdown (old game module gone) but BEFORE
  devmap (so new G_InitGame reads correct value)
- Set CS_SVDEMO configstring after devmap as backup for cgame

Game module:
- ClientBegin: set pm_type=PM_SPECTATOR after ClientSpawn (which
  memsets ps). ClientThink_real normally sets this but is disabled
  in demo mode.
- G_WriteSessionData: skip during demo playback so forced
  TEAM_SPECTATOR doesn't persist to next normal game
- ClientThink: return early in demo mode (no server-side movement)

Removed debug prints and unused SVD_GetPlayMaxClients.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 06:32:08 +08:00
..
botlib Migrate to Visual Studio 2022: replace .vcproj with .vcxproj, add .gitignore 2026-03-18 13:36:28 +08:00
bspc Migrate to Visual Studio 2022: replace .vcproj with .vcxproj, add .gitignore 2026-03-18 13:36:28 +08:00
cgame Show "Playback Paused" instead of "Connection Interrupted" 2026-03-24 04:09:47 +08:00
client Smooth unpause: reset client time delta and entity interpolation 2026-03-24 03:59:44 +08:00
game Fix svdemo_play from in-game and devmap from demo playback 2026-03-24 06:32:08 +08:00
jpeg-6 Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
macosx Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
null Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
q3_ui Copy game/cgame/ui to missionpack/ for TA configurations 2026-03-18 16:06:35 +08:00
qcommon Client-owned camera for demo spectator 2026-03-24 03:51:51 +08:00
renderer Migrate to Visual Studio 2022: replace .vcproj with .vcxproj, add .gitignore 2026-03-18 13:36:28 +08:00
server Fix svdemo_play from in-game and devmap from demo playback 2026-03-24 06:32:08 +08:00
splines Migrate to Visual Studio 2022: replace .vcproj with .vcxproj, add .gitignore 2026-03-18 13:36:28 +08:00
ui Build system cleanup: rename to quake3live.exe, fix DLL loading, default to missionpack 2026-03-20 18:17:28 +08:00
unix Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
win32 Input sticky buttons fixed 2026-03-21 20:51:28 +08:00
cgame.lnt Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
clean.bat Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
Construct Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
game.lnt Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
installdebug.bat Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
installrelease.bat Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
installvms.bat Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
Makefile Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
opts.lnt Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
quake3.sln Build system cleanup: rename to quake3live.exe, fix DLL loading, default to missionpack 2026-03-20 18:17:28 +08:00
quake3.vcxproj Remove LZ4 compression — negligible benefit on delta data 2026-03-24 05:18:48 +08:00
quake3.vcxproj.filters Migrate to Visual Studio 2022: replace .vcproj with .vcxproj, add .gitignore 2026-03-18 13:36:28 +08:00
renderer.lnt Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
run.bat Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00
runrelease.bat Initial commit: Quake 3 1.32b GPL source 2026-03-18 13:32:24 +08:00