diff options
author | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2006-08-26 01:45:27 +0000 |
---|---|---|
committer | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2006-08-26 01:45:27 +0000 |
commit | 30a33db828a79bd9984dc2ae950c16839b8f07dc (patch) | |
tree | d061738b54e7e0b6cee7dd7153ee5864cba09999 /code/server | |
parent | a9a340054c32478cf49294e33a1877b083085c01 (diff) | |
download | ioquake3-aero-30a33db828a79bd9984dc2ae950c16839b8f07dc.tar.gz ioquake3-aero-30a33db828a79bd9984dc2ae950c16839b8f07dc.zip |
- compensate sv_fps for timescale value.
- Add a non-dirty-hack fix for client hanging when unpausing a game.
git-svn-id: svn://svn.icculus.org/quake3/trunk@870 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/server')
-rw-r--r-- | code/server/sv_main.c | 2 | ||||
-rw-r--r-- | code/server/sv_snapshot.c | 11 |
2 files changed, 6 insertions, 7 deletions
diff --git a/code/server/sv_main.c b/code/server/sv_main.c index 152ecbd..b6f11b6 100644 --- a/code/server/sv_main.c +++ b/code/server/sv_main.c @@ -798,7 +798,7 @@ void SV_Frame( int msec ) { if ( sv_fps->integer < 1 ) { Cvar_Set( "sv_fps", "10" ); } - frameMsec = 1000 / sv_fps->integer ; + frameMsec = 1000 / sv_fps->integer * com_timescale->value; sv.timeResidual += msec; diff --git a/code/server/sv_snapshot.c b/code/server/sv_snapshot.c index 30001a1..da69850 100644 --- a/code/server/sv_snapshot.c +++ b/code/server/sv_snapshot.c @@ -587,12 +587,12 @@ void SV_SendMessageToClient( msg_t *msg, client_t *client ) { // TTimo - https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=491 // added sv_lanForceRate check if ( client->netchan.remoteAddress.type == NA_LOOPBACK || (sv_lanForceRate->integer && Sys_IsLANAddress (client->netchan.remoteAddress)) ) { - client->nextSnapshotTime = svs.time + (1000/sv_fps->integer); + client->nextSnapshotTime = svs.time + (1000.0 / sv_fps->integer * com_timescale->value); return; } // normal rate / snapshotMsec calculation - rateMsec = SV_RateMsec( client, msg->cursize ); + rateMsec = SV_RateMsec(client, msg->cursize); if ( rateMsec < client->snapshotMsec ) { // never send more packets than this, no matter what the rate is at @@ -602,16 +602,15 @@ void SV_SendMessageToClient( msg_t *msg, client_t *client ) { client->rateDelayed = qtrue; } - client->nextSnapshotTime = svs.time + rateMsec; + client->nextSnapshotTime = svs.time + rateMsec * com_timescale->value; // don't pile up empty snapshots while connecting if ( client->state != CS_ACTIVE ) { // a gigantic connection message may have already put the nextSnapshotTime // more than a second away, so don't shorten it // do shorten if client is downloading - if ( !*client->downloadName && client->nextSnapshotTime < svs.time + 1000 ) { - client->nextSnapshotTime = svs.time + 1000; - } + if (!*client->downloadName && client->nextSnapshotTime < svs.time + 1000 * com_timescale->value) + client->nextSnapshotTime = svs.time + 1000 * com_timescale->value; } } |