File: record.h

package info (click to toggle)
conquest 8.1-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 7,984 kB
  • ctags: 3,086
  • sloc: ansic: 39,393; sh: 8,540; yacc: 446; makefile: 296; lex: 146
file content (86 lines) | stat: -rw-r--r-- 2,574 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/* 
 * record.h - recording games in conquest
 *
 * $Id: record.h,v 1.6 2004/08/09 00:45:37 jon Exp $
 *
 * Copyright 1999-2004 Jon Trulson under the ARTISTIC LICENSE. (See LICENSE).
 */

#ifndef RECORD_H_INCLUDED
#define RECORD_H_INCLUDED

#include "conqdef.h"
#include "conqcom.h"

#define RECVERSION 20031004 /* recording version */

				/* recording modes */
#define RECMODE_OFF      0
#define RECMODE_STARTING 1
#define RECMODE_ON       2
#define RECMODE_PLAYING  3
#define RECMODE_PAUSED   4

				/* file header */
#define SZ_FILEHEADER (256)
#define FHEADER_PAD (SZ_FILEHEADER - (sizeof(Unsgn32) + \
                                       sizeof(Unsgn8) + \
                                       sizeof(Unsgn32) + \
                                       MAXUSERNAME + \
                                       sizeof(Unsgn32) + \
                                       sizeof(Unsgn8)))
#pragma pack(1)
typedef struct _fheader {	
  Unsgn32 vers;		/* version of this file */
  Unsgn8 samplerate;	/* recorded at samples per sec */
  Unsgn32 rectime;		/* time recorded */
  Unsgn8 user[MAXUSERNAME];	/* user that made recording */
  Unsgn32 cmnrev;               /* common block rev */
  Unsgn8 snum;                  /* ship that made rec.  0 == server record */
  Unsgn8 pad[FHEADER_PAD];	/* padding */
} fileHeader_t;
#pragma pack()

/* playback */
#ifdef REC_NOEXTERN
time_t totElapsed = 0;          /* total game time (recorded) */
time_t startTime = 0;
time_t currTime = 0;
char *rfname = NULL;        /* name of recording file for playback */
fileHeader_t fhdr;
real framedelay = -1.0;         /* delaytime between frames */
Unsgn32 frameCount = 0;
Msg_t recMsg = {};
#else
extern time_t totElapsed;          /* total game time (recorded) */
extern time_t startTime;
extern time_t currTime;
extern char *rfname;        /* name of recording file for playback */
extern fileHeader_t fhdr;
extern real framedelay;         /* delaytime between frames */
extern Unsgn32 frameCount;
extern Msg_t recMsg;            /* current recMsg */
#endif


/* function protos */
int recordOpenInput(char *fname);
void recordCloseInput(void);

int recordOpenOutput(char *fname, int logit);
void recordCloseOutput(void);
int recordInitOutput(int unum, time_t thetime, int snum);

int recordReadHeader(fileHeader_t *fhdr);
int recordReadPkt(Unsgn8 *buf, int blen);

int recordWriteBuf(Unsgn8 *buf, int len);

void recordUpdateFrame(void);
void recordWriteEvent(Unsgn8 *buf);

int initReplay(char *fname, time_t *elapsed);
void recordGenTorpLoc(void);


#endif /* RECORD_H_INCLUDED */