From 080e619675b208a7ee4134cb3d5841e91d7d701f Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Sat, 7 May 2005 00:48:19 +0000 Subject: [PATCH] oops, accidently broke delta updates in bad pl situations --- qw/source/sv_ents.c | 10 ++++++---- qw/source/sv_recorder.c | 2 +- qw/source/sv_user.c | 1 - 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/qw/source/sv_ents.c b/qw/source/sv_ents.c index 1930d3853..9249c5433 100644 --- a/qw/source/sv_ents.c +++ b/qw/source/sv_ents.c @@ -334,7 +334,7 @@ SV_EmitPacketEntities (delta_t *delta, packet_entities_t *to, sizebuf_t *msg, // this is the frame that we are going to delta update from if (delta->delta_sequence != -1) { - fromframe = &delta->frames[delta->delta_sequence]; + fromframe = &delta->frames[delta->delta_sequence & UPDATE_MASK]; from = &fromframe->entities; oldmax = from->num_entities; @@ -371,7 +371,7 @@ SV_EmitPacketEntities (delta_t *delta, packet_entities_t *to, sizebuf_t *msg, Sys_Printf ("LOL, %d, %d, %d, %d %d %d\n", newnum, oldnum, to->num_entities, oldmax, delta->in_frame, - delta->delta_sequence); + delta->delta_sequence & UPDATE_MASK); if (!delta->client) Sys_Printf ("demo\n"); } @@ -580,11 +580,13 @@ SV_WritePlayersToClient (delta_t *delta, byte *pvs, sizebuf_t *msg) } write = write_player; - if (!clent) + if (!clent && delta->type == dt_tp_demo) write = write_demoplayer; if (delta->delta_sequence != -1) { - from_pack = &delta->frames[delta->delta_sequence].players; + client_frame_t *fromframe; + fromframe = &delta->frames[delta->delta_sequence & UPDATE_MASK]; + from_pack = &frame->players; full = 0; } diff --git a/qw/source/sv_recorder.c b/qw/source/sv_recorder.c index c22e23467..6322cf7a5 100644 --- a/qw/source/sv_recorder.c +++ b/qw/source/sv_recorder.c @@ -612,7 +612,7 @@ SVR_SetDelta (recorder_t *r, int delta, int in_frame) { r->delta.delta_sequence = -1; if (delta != -1) - r->delta.delta_sequence = delta & UPDATE_MASK; + r->delta.delta_sequence = delta; r->delta.in_frame = (r->delta.delta_sequence + 1) & UPDATE_MASK; if (in_frame != -1) r->delta.in_frame = in_frame & UPDATE_MASK; diff --git a/qw/source/sv_user.c b/qw/source/sv_user.c index 34b413833..c585dfc58 100644 --- a/qw/source/sv_user.c +++ b/qw/source/sv_user.c @@ -1865,7 +1865,6 @@ SV_ExecuteClientMessage (client_t *cl) case clc_delta: cl->delta.delta_sequence = MSG_ReadByte (net_message); - cl->delta.delta_sequence &= UPDATE_MASK; break; case clc_move: