minor cleanups

This commit is contained in:
Bill Currie 2004-03-31 19:14:55 +00:00
parent 8220d6d3c9
commit c1d5f230a9
2 changed files with 29 additions and 25 deletions

View file

@ -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;

View file

@ -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) {