aboutsummaryrefslogtreecommitdiffstats
path: root/code/server
diff options
context:
space:
mode:
authorthilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea>2006-08-26 01:45:27 +0000
committerthilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea>2006-08-26 01:45:27 +0000
commit30a33db828a79bd9984dc2ae950c16839b8f07dc (patch)
treed061738b54e7e0b6cee7dd7153ee5864cba09999 /code/server
parenta9a340054c32478cf49294e33a1877b083085c01 (diff)
downloadioquake3-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.c2
-rw-r--r--code/server/sv_snapshot.c11
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;
}
}