From c1d5f230a9a76895b543c2fe304a9097d714f243 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Wed, 31 Mar 2004 19:14:55 +0000 Subject: [PATCH] minor cleanups --- qw/include/sv_demo.h | 35 ++++++++++++++++++++--------------- qw/source/sv_send.c | 19 +++++++++---------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/qw/include/sv_demo.h b/qw/include/sv_demo.h index 59e342907..b6921b8c2 100644 --- a/qw/include/sv_demo.h +++ b/qw/include/sv_demo.h @@ -26,13 +26,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "server.h" -typedef struct { +typedef struct dbuffer_s { byte *data; int start, end, last; int maxsize; } dbuffer_t; -typedef struct { +typedef struct header_s { byte type; byte full; int to; @@ -40,7 +40,7 @@ typedef struct { byte data[1]; // gcc doesn't allow [] (?) } header_t; -typedef struct { +typedef struct demoinfo_s { vec3_t origin; vec3_t angles; int weaponframe; @@ -49,7 +49,7 @@ typedef struct { int effects; } demoinfo_t; -typedef struct { +typedef struct demo_client_s { demoinfo_t info; float sec; int parsecount; @@ -60,13 +60,13 @@ typedef struct { int frame; } demo_client_t; -typedef struct { +typedef struct demobuf_s { sizebuf_t sz; int bufsize; header_t *h; } demobuf_t; -typedef struct { +typedef struct demo_frame_s { demo_client_t clients[MAX_CLIENTS]; double time; demobuf_t buf; @@ -75,33 +75,38 @@ typedef struct { #define DEMO_FRAMES 64 #define DEMO_FRAMES_MASK (DEMO_FRAMES - 1) -typedef struct { +typedef struct demo_s { QFile *file; demobuf_t *dbuf; + dbuffer_t dbuffer; + byte buffer[20 * MAX_MSGLEN]; + sizebuf_t datagram; byte datagram_data[MAX_DATAGRAM]; + int lastto; int lasttype; double time, pingtime; - int stats[MAX_CLIENTS][MAX_CL_STATS]; // ouch! + client_t recorder; + int stats[MAX_CLIENTS][MAX_CL_STATS]; // ouch! qboolean fixangle[MAX_CLIENTS]; float fixangletime[MAX_CLIENTS]; - vec3_t angles[MAX_CLIENTS]; - struct dstring_s *name; - struct dstring_s *text; + demoinfo_t info[MAX_CLIENTS]; + demo_frame_t frames[DEMO_FRAMES]; + int parsecount; int lastwritten; - demo_frame_t frames[DEMO_FRAMES]; - demoinfo_t info[MAX_CLIENTS]; + int size; qboolean disk; void *dest; byte *mfile; - byte buffer[20 * MAX_MSGLEN]; - int bufsize; + struct dstring_s *name; + struct dstring_s *text; + int forceFrame; } demo_t; diff --git a/qw/source/sv_send.c b/qw/source/sv_send.c index 2e698e59c..226f171db 100644 --- a/qw/source/sv_send.c +++ b/qw/source/sv_send.c @@ -519,16 +519,16 @@ SV_WriteClientdataToMessage (client_t *client, sizebuf_t *msg) // a fixangle might get lost in a dropped packet. Oh well. if (SVfloat (ent, fixangle)) { + vec_t *angles = SVvector (ent, angles); MSG_WriteByte (msg, svc_setangle); - MSG_WriteAngleV (msg, SVvector (ent, angles)); - VectorCopy (SVvector (ent, angles), demo.angles[clnum]); + MSG_WriteAngleV (msg, angles); SVfloat (ent, fixangle) = 0; demo.fixangle[clnum] = true; if (sv.demorecording) { MSG_WriteByte (&demo.datagram, svc_setangle); MSG_WriteByte (&demo.datagram, clnum); - MSG_WriteAngleV (&demo.datagram, demo.angles[clnum]); + MSG_WriteAngleV (&demo.datagram, angles); } } } @@ -856,12 +856,6 @@ SV_SendDemoMessage (void) SZ_Clear (&demo.datagram); return; } - - msg.data = buf; - msg.maxsize = sizeof (buf); - msg.cursize = 0; - msg.allowoverflow = true; - msg.overflowed = false; for (i = 0, c = svs.clients; i < MAX_CLIENTS; i++, c++) { if (c->state != cs_spawned && c->state != cs_server) @@ -892,7 +886,12 @@ SV_SendDemoMessage (void) // send over all the objects that are in the PVS // this will include clients, a packetentities, and // possibly a nails update + msg.data = buf; + msg.maxsize = sizeof (buf); msg.cursize = 0; + msg.allowoverflow = true; + msg.overflowed = false; + if (!demo.recorder.delta_sequence) demo.recorder.delta_sequence = -1; SV_WriteEntitiesToClient (&demo.recorder, &msg, true); @@ -911,7 +910,7 @@ SV_SendDemoMessage (void) demo.recorder.netchan.incoming_sequence++; demo.frames[demo.parsecount & DEMO_FRAMES_MASK].time = demo.time = sv.time; - // that's a backup of 3sec in 20fps, should be enough + // that's a backup of 3sec at 20fps, should be enough // FIXME make this framerate dependent. // eg. sv_fps->int_val * sv_packetdelay->float_val if (demo.parsecount - demo.lastwritten > 60) {