From 53cd9be90a106e5de4662c6a5b24404c92d2ca61 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Wed, 13 Jan 2010 06:45:43 +0000 Subject: [PATCH] Progress on map changing with qtv clients Rename SV_DemoSendMessages to SVR_SendMessages, and make sure SVR_SendMessages and SV_qtvSendMessages get called when SV_SendMessagesToAll is called. --- libs/net/net_chan.c | 7 ++++--- qw/include/sv_recorder.h | 2 +- qw/source/sv_main.c | 2 +- qw/source/sv_pr_qwe.c | 2 +- qw/source/sv_qtv.c | 7 +++++-- qw/source/sv_recorder.c | 6 +++--- qw/source/sv_send.c | 10 ++++++++++ 7 files changed, 25 insertions(+), 11 deletions(-) diff --git a/libs/net/net_chan.c b/libs/net/net_chan.c index 3fc388bbf..c0906c11d 100644 --- a/libs/net/net_chan.c +++ b/libs/net/net_chan.c @@ -315,9 +315,10 @@ Netchan_Transmit (netchan_t *chan, int length, byte *data) chan->cleartime = *net_realtime; if (showpackets->int_val & 1) - Sys_Printf ("--> s=%i(%i) a=%i(%i) %-4i %i\n", chan->outgoing_sequence, - send_reliable, chan->incoming_sequence, - chan->incoming_reliable_sequence, send.cursize, + Sys_Printf ("--> s=%i(%i) a=%i(%i) %-4i %i\n", + chan->outgoing_sequence, send_reliable, + chan->incoming_sequence, chan->incoming_reliable_sequence, + send.cursize, chan->outgoing_sequence - chan->incoming_sequence); } diff --git a/qw/include/sv_recorder.h b/qw/include/sv_recorder.h index 34c1fcfc0..b7f123e9b 100644 --- a/qw/include/sv_recorder.h +++ b/qw/include/sv_recorder.h @@ -46,6 +46,6 @@ struct sizebuf_s *SVR_WriteBegin (byte type, int to, int size); struct sizebuf_s *SVR_Datagram (void); void SVR_ForceFrame (void); void SVR_SetDelta (recorder_t *r, int delta, int in_frame); -void SV_SendDemoMessage (void); +void SVR_SendMessages (void); #endif//__sv_recorder_h diff --git a/qw/source/sv_main.c b/qw/source/sv_main.c index 0d5762671..b0c4e58bb 100644 --- a/qw/source/sv_main.c +++ b/qw/source/sv_main.c @@ -1984,7 +1984,7 @@ SV_Frame (float time) demo_start = Sys_DoubleTime (); if (sv.recorders) - SV_SendDemoMessage (); + SVR_SendMessages (); demo_end = Sys_DoubleTime (); svs.stats.demo += demo_end - demo_start; diff --git a/qw/source/sv_pr_qwe.c b/qw/source/sv_pr_qwe.c index ca7c57047..f52d797cb 100644 --- a/qw/source/sv_pr_qwe.c +++ b/qw/source/sv_pr_qwe.c @@ -372,7 +372,7 @@ PF_forcedemoframe (progs_t *pr) { SVR_ForceFrame (); if (P_FLOAT (pr, 0) == 1) - SV_SendDemoMessage (); + SVR_SendMessages (); } diff --git a/qw/source/sv_qtv.c b/qw/source/sv_qtv.c index 994320910..690d653a1 100644 --- a/qw/source/sv_qtv.c +++ b/qw/source/sv_qtv.c @@ -331,6 +331,9 @@ qtv_parse (sv_qtv_t *proxy) proxy->netchan.outgoing_sequence = proxy->netchan.incoming_sequence; proxy->packet = true; } else { + SV_Printf ("qtv_parse: slipped sequence: %d %d\n", + proxy->netchan.incoming_sequence, + proxy->netchan.outgoing_sequence); proxy->packet = false; // don't reply, sequences have slipped return; // FIXME right thing? } @@ -338,7 +341,7 @@ qtv_parse (sv_qtv_t *proxy) SVR_SetDelta (proxy->recorder, -1, proxy->netchan.incoming_sequence); while (1) { if (net_message->badread) { - SV_Printf ("SV_ReadClientMessage: badread\n"); + SV_Printf ("qtv_parse: badread\n"); drop_proxy (proxy); return; } @@ -349,7 +352,7 @@ qtv_parse (sv_qtv_t *proxy) switch (c) { default: - SV_Printf ("SV_ReadClientMessage: unknown command char\n"); + SV_Printf ("qtv_parse: unknown command char\n"); drop_proxy (proxy); return; case qtv_nop: diff --git a/qw/source/sv_recorder.c b/qw/source/sv_recorder.c index c951bc546..a49f25e78 100644 --- a/qw/source/sv_recorder.c +++ b/qw/source/sv_recorder.c @@ -217,7 +217,7 @@ write_to_msg (int type, int to, float time, sizebuf_t *dst) size = p->size; pos += HEADER + size; - // no type means we are writing to disk everything + // no type means we are writing everything to disk if (!type || (p->type == type && p->to == to)) { if (size) { msg.data = p->data; @@ -225,7 +225,7 @@ write_to_msg (int type, int to, float time, sizebuf_t *dst) write_msg (&msg, p->type, p->to, time, dst); } - // data is written so it need to be cleard from demobuf + // data is written so it needs to be cleard from demobuf if (rec.dbuf->sz.data != (byte *) p) memmove (rec.dbuf->sz.data + size + HEADER, rec.dbuf->sz.data, (byte *) p - rec.dbuf->sz.data); @@ -553,7 +553,7 @@ demo_pings (void) } void -SV_SendDemoMessage (void) +SVR_SendMessages (void) { int i, j; client_t *c; diff --git a/qw/source/sv_send.c b/qw/source/sv_send.c index 4bfdef49a..bb8b49ec5 100644 --- a/qw/source/sv_send.c +++ b/qw/source/sv_send.c @@ -53,6 +53,7 @@ static __attribute__ ((used)) const char rcsid[] = #include "compat.h" #include "server.h" #include "sv_progs.h" +#include "sv_qtv.h" #include "sv_recorder.h" #define CHAN_AUTO 0 @@ -821,12 +822,21 @@ SV_SendMessagesToAll (void) { client_t *c; int i; + double demo_start, demo_end; for (i = 0, c = svs.clients; i < MAX_CLIENTS; i++, c++) if (c->state < cs_zombie) // FIXME: should this send to only active? c->send_message = true; SV_SendClientMessages (); + + demo_start = Sys_DoubleTime (); + if (sv.recorders) + SVR_SendMessages (); + demo_end = Sys_DoubleTime (); + svs.stats.demo += demo_end - demo_start; + + SV_qtvSendMessages (); } void