Skip to content

Commit 63ca3eb

Browse files
committed
Add sv_currentPak and sv_clientPaks to serverinfo
The former contains the map's pk3 checksum. The latter contains the checksum of cgame and ui pk3 in case they are in separate pk3s for some reason. Currently not used as the filesystem will need some reworking to support sv_clientPaks to attempt to use cgame/ui from proper pk3 when not pure.
1 parent 6dcfe5e commit 63ca3eb

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/server/sv_init.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,7 @@ void SV_SpawnServer( const char *mapname ) {
547547
qboolean isBot;
548548
const char *p, *pnames;
549549
char bspname[MAX_QPATH];
550+
int pakChecksum = 0; // checksum of pk3 map is in
550551

551552
// ydnar: broadcast a level change to all connected clients
552553
if ( svs.clients && !com_errorEntered ) {
@@ -676,6 +677,8 @@ void SV_SpawnServer( const char *mapname ) {
676677
Cvar_Set( "mapname", mapname );
677678

678679
Cvar_Set( "sv_mapChecksum", va( "%i",checksum ) );
680+
FS_FileIsInPAK( bspname, &pakChecksum, NULL );
681+
Cvar_Set( "sv_currentPak", va( "%d", pakChecksum ) );
679682

680683
// serverid should be different each time
681684
sv.serverId = com_frameTime;
@@ -780,6 +783,12 @@ void SV_SpawnServer( const char *mapname ) {
780783
// rebuild referenced paks list
781784
p = FS_ReferencedPakNames( NULL );
782785
}
786+
if( sv_pure->integer == 0 ) {
787+
int cgameChksum = 0, uiChksum = 0;
788+
FS_FileIsInPAK( SYS_DLLNAME_CGAME, &cgameChksum, NULL );
789+
FS_FileIsInPAK( SYS_DLLNAME_UI, &uiChksum, NULL );
790+
Cvar_Set( "sv_clientPaks", va("%d %d", cgameChksum, uiChksum) );
791+
}
783792
Cvar_Set( "sv_referencedPakNames", p );
784793

785794
p = FS_ReferencedPakChecksums( NULL );
@@ -950,6 +959,8 @@ void SV_Init( void )
950959
Cvar_Get( "sv_referencedPaks", "", CVAR_SYSTEMINFO | CVAR_ROM );
951960
sv_referencedPakNames = Cvar_Get( "sv_referencedPakNames", "", CVAR_SYSTEMINFO | CVAR_ROM );
952961
Cvar_SetDescription( sv_referencedPakNames, "Variable holds a list of all the pk3 files the server loaded data from" );
962+
Cvar_Get( "sv_currentPak", "0", CVAR_SERVERINFO | CVAR_ROM );
963+
Cvar_Get( "sv_clientPaks", "0 0", CVAR_SERVERINFO | CVAR_ROM );
953964

954965
// server vars
955966
sv_rconPassword = Cvar_Get( "rconPassword", "", CVAR_TEMP );
@@ -1188,6 +1199,10 @@ void SV_Shutdown( const char *finalmsg ) {
11881199
Cvar_Set( "sv_referencedPakNames", "" );
11891200
Cvar_Set( "sv_mapChecksum", "" );
11901201
Cvar_Set( "sv_serverid", "0" );
1202+
Cvar_Set( "sv_paks", "" );
1203+
Cvar_Set( "sv_pakNames", "" );
1204+
Cvar_Set( "sv_currentPak", "0" );
1205+
Cvar_Set( "sv_clientPaks", "0 0" );
11911206

11921207
Sys_SetStatus( "Server is not running" );
11931208
}

0 commit comments

Comments
 (0)