diff --git a/code/server/server.h b/code/server/server.h index 589e1c4c..b025c982 100644 --- a/code/server/server.h +++ b/code/server/server.h @@ -78,6 +78,7 @@ typedef struct { int gameClientSize; // will be > sizeof(playerState_t) due to game private data int restartTime; + int time; } server_t; diff --git a/code/server/sv_ccmds.c b/code/server/sv_ccmds.c index 03bd2c98..2d17ae96 100644 --- a/code/server/sv_ccmds.c +++ b/code/server/sv_ccmds.c @@ -272,8 +272,10 @@ static void SV_MapRestart_f( void ) { SV_RestartGameProgs(); // run a few frames to allow everything to settle - for ( i = 0 ;i < 3 ; i++ ) { - VM_Call( gvm, GAME_RUN_FRAME, svs.time ); + for (i = 0; i < 3; i++) + { + VM_Call (gvm, GAME_RUN_FRAME, sv.time); + sv.time += 100; svs.time += 100; } @@ -314,7 +316,8 @@ static void SV_MapRestart_f( void ) { } // run another frame to allow things to look at all the players - VM_Call( gvm, GAME_RUN_FRAME, svs.time ); + VM_Call (gvm, GAME_RUN_FRAME, sv.time); + sv.time += 100; svs.time += 100; } diff --git a/code/server/sv_game.c b/code/server/sv_game.c index f9212262..86b1ee18 100644 --- a/code/server/sv_game.c +++ b/code/server/sv_game.c @@ -898,7 +898,7 @@ static void SV_InitGameVM( qboolean restart ) { // use the current msec count for a random seed // init for this gamestate - VM_Call( gvm, GAME_INIT, svs.time, Com_Milliseconds(), restart ); + VM_Call (gvm, GAME_INIT, sv.time, Com_Milliseconds(), restart); } diff --git a/code/server/sv_init.c b/code/server/sv_init.c index e3a89a68..0fa69561 100644 --- a/code/server/sv_init.c +++ b/code/server/sv_init.c @@ -438,9 +438,11 @@ void SV_SpawnServer( char *server, qboolean killBots ) { sv_gametype->modified = qfalse; // run a few frames to allow everything to settle - for ( i = 0 ;i < 3 ; i++ ) { - VM_Call( gvm, GAME_RUN_FRAME, svs.time ); - SV_BotFrame( svs.time ); + for (i = 0;i < 3; i++) + { + VM_Call (gvm, GAME_RUN_FRAME, sv.time); + SV_BotFrame (sv.time); + sv.time += 100; svs.time += 100; } @@ -495,8 +497,9 @@ void SV_SpawnServer( char *server, qboolean killBots ) { } // run another frame to allow things to look at all the players - VM_Call( gvm, GAME_RUN_FRAME, svs.time ); - SV_BotFrame( svs.time ); + VM_Call (gvm, GAME_RUN_FRAME, sv.time); + SV_BotFrame (sv.time); + sv.time += 100; svs.time += 100; if ( sv_pure->integer ) { diff --git a/code/server/sv_main.c b/code/server/sv_main.c index e83ce197..0d3f96c5 100644 --- a/code/server/sv_main.c +++ b/code/server/sv_main.c @@ -785,7 +785,7 @@ void SV_Frame( int msec ) { sv.timeResidual += msec; - if (!com_dedicated->integer) SV_BotFrame( svs.time + sv.timeResidual ); + if (!com_dedicated->integer) SV_BotFrame (sv.time + sv.timeResidual); if ( com_dedicated->integer && sv.timeResidual < frameMsec ) { // NET_Sleep will give the OS time slices until either get a packet @@ -835,15 +835,16 @@ void SV_Frame( int msec ) { // update ping based on the all received frames SV_CalcPings(); - if (com_dedicated->integer) SV_BotFrame( svs.time ); + if (com_dedicated->integer) SV_BotFrame (sv.time); // run the game simulation in chunks while ( sv.timeResidual >= frameMsec ) { sv.timeResidual -= frameMsec; svs.time += frameMsec; + sv.time += frameMsec; // let everything in the world think and move - VM_Call( gvm, GAME_RUN_FRAME, svs.time ); + VM_Call (gvm, GAME_RUN_FRAME, sv.time); } if ( com_speeds->integer ) { diff --git a/code/server/sv_snapshot.c b/code/server/sv_snapshot.c index e275cf4c..4c164dac 100644 --- a/code/server/sv_snapshot.c +++ b/code/server/sv_snapshot.c @@ -160,7 +160,7 @@ static void SV_WriteSnapshotToClient( client_t *client, msg_t *msg ) { // send over the current server time so the client can drift // its view of time to try to match - MSG_WriteLong (msg, svs.time); + MSG_WriteLong (msg, sv.time); // what we are delta'ing from MSG_WriteByte (msg, lastframe);