FTEQW
Documentation of the FTE engine source tree.
sv_mvd.c File Reference

Enumerations

enum  qtvstatus_e { QTV_ERROR = -1 , QTV_RETRY = 0 , QTV_ACCEPT = 1 }
 

Functions

void SV_MVDStop_f (void)
 
void SV_WriteMVDMessage (sizebuf_t *msg, int type, int to, float time)
 
void SV_WriteRecordMVDMessage (sizebuf_t *msg)
 
void tobase64 (unsigned char *out, int outlen, unsigned char *in, int inlen)
 
qboolean SV_MVD_Record (mvddest_t *dest)
 
char * SV_MVDName2Txt (char *name)
 
void DestFlush (qboolean compleate)
 
int SV_MVD_GotQTVRequest (vfsfile_t *clientstream, char *headerstart, char *headerend, qtvpendingstate_t *p)
 
void DemoWriteQTVTimePad (int msecs)
 
void SV_MVDPings (void)
 
void SV_MVD_FullClientUpdate (sizebuf_t *msg, client_t *player)
 
sizebuf_tMVDWrite_Begin (qbyte type, int to, int size)
 
void SV_MVD_WriteReliables (qboolean writebroadcasts)
 
float adjustangle (float current, float ideal, float fraction)
 
qboolean SV_MVDWritePackets (int num)
 
void MVD_Init (void)
 
mvddest_tSV_FindRecordFile (char *match, mvddest_t ***link_out)
 
mvddest_tSV_MVD_InitRecordFile (char *name)
 
char * SV_Demo_CurrentOutput (void)
 
void SV_Demo_PrintOutputs (void)
 
void SV_MVDStop (enum mvdclosereason_e reason, qboolean mvdonly)
 
void SV_MVD_Cancel_f (void)
 
void SV_WriteSetMVDMessage (void)
 
void SV_MVD_SendInitialGamestate (mvddest_t *dest)
 
void SV_EnableClientsCSQC (void)
 
const char * SV_GenCleanTable (void)
 
char * SV_CleanName (unsigned char *name)
 
qofs_t MVD_DemoMaxDirSize (void)
 
qboolean MVD_CheckSpace (qboolean broadcastwarnings)
 
void SV_MVD_Record_f (void)
 
void SV_MVD_AutoRecord (void)
 
void SV_MVD_CheckReverse (void)
 
void SV_MVD_QTVReverse_f (void)
 
int Dem_CountPlayers (void)
 
char * Dem_Team (int num)
 
char * Dem_PlayerName (int num)
 
char * Dem_PlayerNameTeam (char *t)
 
int Dem_CountTeamPlayers (char *t)
 
void SV_MVDEasyRecord_f (void)
 
void SV_MVDList_f (void)
 
void SV_UserCmdMVDList_f (void)
 
void SV_UserCmdMVDList_HTML (vfsfile_t *pipe)
 
const char * SV_MVDLastNum (unsigned int num)
 
char * SV_MVDNum (char *buffer, int bufferlen, int num)
 
char * SV_MVDTxTNum (char *buffer, int bufferlen, int num)
 
void SV_MVDRemove_f (void)
 
void SV_MVDRemoveNum_f (void)
 
void SV_MVDInfoAdd_f (void)
 
void SV_MVDInfoRemove_f (void)
 
void SV_UserMVDInfo_f (void)
 
void SV_MVDPlayNum_f (void)
 
void SV_MVDInit (void)
 

Variables

cvar_t sv_demoAutoRecord = CVARAD("sv_demoAutoRecord", "0", "cl_autodemo", "If set, automatically record demos.\n-1: record on client connection only.\n1+: record once there's this many active players on the server (or if connected to a remote server).")
 
cvar_t sv_demoUseCache = CVARD("sv_demoUseCache", "", "If set, demo data will be flushed only periodically")
 
cvar_t sv_demoCacheSize = CVAR("sv_demoCacheSize", "0x80000")
 
cvar_t sv_demoMaxDirSize = CVARD("sv_demoMaxDirSize", "100mb", "Maximum allowed serverside storage space for mvds. set to blank to remove the limit. New demos cannot be recorded once this size is reached.")
 
cvar_t sv_demoMaxDirCount = CVARD("sv_demoMaxDirCount", "500", "Maximum allowed serverside mvds to record. Set to 0 to remove the limit. New demos cannot be recorded once this many demos have already been recorded.")
 
cvar_t sv_demoMaxDirAge = CVARD("sv_demoMaxDirAge", "0", "Maximum allowed age for demos, any older demos will be deleted when sv_demoClearOld is set (this doesn't prevent recording new demos).")
 
cvar_t sv_demoClearOld = CVARD("sv_demoClearOld", "0", "Automatically delete demos to keep the demos count reasonable.")
 
cvar_t sv_demoDir = CVARC("sv_demoDir", "demos", SV_DemoDir_Callback)
 
cvar_t sv_demoDirAlt = CVARCD("sv_demoDirAlt", "", SV_DemoDir_Callback, "Provides a fallback directory name for demo downloads, for when sv_demoDir doesn't contain the requested demo.")
 
cvar_t sv_demofps = CVAR("sv_demofps", "30")
 
cvar_t sv_demoPings = CVARD("sv_demoPings", "10", "Interval between ping updates in mvds")
 
cvar_t sv_demoMaxSize = CVARD("sv_demoMaxSize", "", "Demos will be truncated to be no larger than this size.")
 
cvar_t sv_demoExtraNames = CVAR("sv_demoExtraNames", "")
 
cvar_t sv_demoExtensions = CVARD("sv_demoExtensions", "1", "Enables protocol extensions within MVDs. This will cause older/non-fte clients to error upon playback.\n0: off.\n1: all extensions.\n2: extensions also supported by a certain other engine.")
 
cvar_t sv_demoAutoCompress = CVARD("sv_demoAutoCompress", "", "Specifies whether to compress demos as they're recorded.\n0 = no compression.\n1 = gzip compression.")
 
cvar_t sv_demo_write_csqc = CVARD("sv_demo_write_csqc", "", "Writes a copy of the csprogs into recorded demos. This ensures that the demo can be played back despite future gamecode changes.")
 
cvar_t qtv_password = CVAR( "qtv_password", "")
 
cvar_t qtv_maxstreams
 
cvar_t sv_demoAutoPrefix = CVAR("sv_demoAutoPrefix", "auto_")
 
cvar_t sv_demoPrefix = CVAR("sv_demoPrefix", "")
 
cvar_t sv_demoSuffix = CVAR("sv_demoSuffix", "")
 
cvar_t sv_demotxt = CVAR("sv_demotxt", "1")
 
demo_t demo
 
int demomsgtype
 
int demomsgto
 

Enumeration Type Documentation

◆ qtvstatus_e

Enumerator
QTV_ERROR 
QTV_RETRY 
QTV_ACCEPT 

Function Documentation

◆ adjustangle()

float adjustangle ( float  current,
float  ideal,
float  fraction 
)

◆ Dem_CountPlayers()

int Dem_CountPlayers ( void  )

◆ Dem_CountTeamPlayers()

int Dem_CountTeamPlayers ( char *  t)

◆ Dem_PlayerName()

char * Dem_PlayerName ( int  num)

◆ Dem_PlayerNameTeam()

char * Dem_PlayerNameTeam ( char *  t)

◆ Dem_Team()

char * Dem_Team ( int  num)

◆ DemoWriteQTVTimePad()

void DemoWriteQTVTimePad ( int  msecs)

◆ DestFlush()

void DestFlush ( qboolean  compleate)

◆ MVD_CheckSpace()

qboolean MVD_CheckSpace ( qboolean  broadcastwarnings)

◆ MVD_DemoMaxDirSize()

qofs_t MVD_DemoMaxDirSize ( void  )

◆ MVD_Init()

void MVD_Init ( void  )

◆ MVDWrite_Begin()

sizebuf_t * MVDWrite_Begin ( qbyte  type,
int  to,
int  size 
)

◆ SV_CleanName()

char * SV_CleanName ( unsigned char *  name)

◆ SV_Demo_CurrentOutput()

char * SV_Demo_CurrentOutput ( void  )

◆ SV_Demo_PrintOutputs()

void SV_Demo_PrintOutputs ( void  )

◆ SV_EnableClientsCSQC()

void SV_EnableClientsCSQC ( void  )

◆ SV_FindRecordFile()

mvddest_t * SV_FindRecordFile ( char *  match,
mvddest_t ***  link_out 
)

◆ SV_GenCleanTable()

const char * SV_GenCleanTable ( void  )

◆ SV_MVD_AutoRecord()

void SV_MVD_AutoRecord ( void  )

◆ SV_MVD_Cancel_f()

void SV_MVD_Cancel_f ( void  )

◆ SV_MVD_CheckReverse()

void SV_MVD_CheckReverse ( void  )

◆ SV_MVD_FullClientUpdate()

void SV_MVD_FullClientUpdate ( sizebuf_t msg,
client_t player 
)

◆ SV_MVD_GotQTVRequest()

int SV_MVD_GotQTVRequest ( vfsfile_t clientstream,
char *  headerstart,
char *  headerend,
qtvpendingstate_t p 
)

◆ SV_MVD_InitRecordFile()

mvddest_t * SV_MVD_InitRecordFile ( char *  name)

◆ SV_MVD_QTVReverse_f()

void SV_MVD_QTVReverse_f ( void  )

◆ SV_MVD_Record()

qboolean SV_MVD_Record ( mvddest_t dest)

◆ SV_MVD_Record_f()

void SV_MVD_Record_f ( void  )

◆ SV_MVD_SendInitialGamestate()

void SV_MVD_SendInitialGamestate ( mvddest_t dest)

◆ SV_MVD_WriteReliables()

void SV_MVD_WriteReliables ( qboolean  writebroadcasts)

◆ SV_MVDEasyRecord_f()

void SV_MVDEasyRecord_f ( void  )

◆ SV_MVDInfoAdd_f()

void SV_MVDInfoAdd_f ( void  )

◆ SV_MVDInfoRemove_f()

void SV_MVDInfoRemove_f ( void  )

◆ SV_MVDInit()

void SV_MVDInit ( void  )

◆ SV_MVDLastNum()

const char * SV_MVDLastNum ( unsigned int  num)

◆ SV_MVDList_f()

void SV_MVDList_f ( void  )

◆ SV_MVDName2Txt()

char * SV_MVDName2Txt ( char *  name)

◆ SV_MVDNum()

char * SV_MVDNum ( char *  buffer,
int  bufferlen,
int  num 
)

◆ SV_MVDPings()

void SV_MVDPings ( void  )

◆ SV_MVDPlayNum_f()

void SV_MVDPlayNum_f ( void  )

◆ SV_MVDRemove_f()

void SV_MVDRemove_f ( void  )

◆ SV_MVDRemoveNum_f()

void SV_MVDRemoveNum_f ( void  )

◆ SV_MVDStop()

void SV_MVDStop ( enum mvdclosereason_e  reason,
qboolean  mvdonly 
)

◆ SV_MVDStop_f()

void SV_MVDStop_f ( void  )

◆ SV_MVDTxTNum()

char * SV_MVDTxTNum ( char *  buffer,
int  bufferlen,
int  num 
)

◆ SV_MVDWritePackets()

qboolean SV_MVDWritePackets ( int  num)

◆ SV_UserCmdMVDList_f()

void SV_UserCmdMVDList_f ( void  )

◆ SV_UserCmdMVDList_HTML()

void SV_UserCmdMVDList_HTML ( vfsfile_t pipe)

◆ SV_UserMVDInfo_f()

void SV_UserMVDInfo_f ( void  )

◆ SV_WriteMVDMessage()

void SV_WriteMVDMessage ( sizebuf_t msg,
int  type,
int  to,
float  time 
)

◆ SV_WriteRecordMVDMessage()

void SV_WriteRecordMVDMessage ( sizebuf_t msg)

◆ SV_WriteSetMVDMessage()

void SV_WriteSetMVDMessage ( void  )

◆ tobase64()

void tobase64 ( unsigned char *  out,
int  outlen,
unsigned char *  in,
int  inlen 
)

Variable Documentation

◆ demo

demo_t demo

◆ demomsgto

int demomsgto

◆ demomsgtype

int demomsgtype

◆ filename

char filename[MAX_QPATH]

◆ 

struct { ... } log[DEMOLOG_LENGTH]

◆ qtv_maxstreams

cvar_t qtv_maxstreams
Initial value:
= CVARAFD( "qtv_maxstreams", "0",
"mvd_maxstreams", 0, "This is the maximum number of QTV clients/proxies that may be directly connected to the server. If empty then there is no limit. 0 disallows any streaming.")

◆ qtv_password

cvar_t qtv_password = CVAR( "qtv_password", "")

◆ sequence

unsigned int sequence

◆ sv_demo_write_csqc

cvar_t sv_demo_write_csqc = CVARD("sv_demo_write_csqc", "", "Writes a copy of the csprogs into recorded demos. This ensures that the demo can be played back despite future gamecode changes.")

◆ sv_demoAutoCompress

cvar_t sv_demoAutoCompress = CVARD("sv_demoAutoCompress", "", "Specifies whether to compress demos as they're recorded.\n0 = no compression.\n1 = gzip compression.")

◆ sv_demoAutoPrefix

cvar_t sv_demoAutoPrefix = CVAR("sv_demoAutoPrefix", "auto_")

◆ sv_demoAutoRecord

cvar_t sv_demoAutoRecord = CVARAD("sv_demoAutoRecord", "0", "cl_autodemo", "If set, automatically record demos.\n-1: record on client connection only.\n1+: record once there's this many active players on the server (or if connected to a remote server).")

◆ sv_demoCacheSize

cvar_t sv_demoCacheSize = CVAR("sv_demoCacheSize", "0x80000")

◆ sv_demoClearOld

cvar_t sv_demoClearOld = CVARD("sv_demoClearOld", "0", "Automatically delete demos to keep the demos count reasonable.")

◆ sv_demoDir

cvar_t sv_demoDir = CVARC("sv_demoDir", "demos", SV_DemoDir_Callback)

◆ sv_demoDirAlt

cvar_t sv_demoDirAlt = CVARCD("sv_demoDirAlt", "", SV_DemoDir_Callback, "Provides a fallback directory name for demo downloads, for when sv_demoDir doesn't contain the requested demo.")

◆ sv_demoExtensions

cvar_t sv_demoExtensions = CVARD("sv_demoExtensions", "1", "Enables protocol extensions within MVDs. This will cause older/non-fte clients to error upon playback.\n0: off.\n1: all extensions.\n2: extensions also supported by a certain other engine.")

◆ sv_demoExtraNames

cvar_t sv_demoExtraNames = CVAR("sv_demoExtraNames", "")

◆ sv_demofps

cvar_t sv_demofps = CVAR("sv_demofps", "30")

◆ sv_demoMaxDirAge

cvar_t sv_demoMaxDirAge = CVARD("sv_demoMaxDirAge", "0", "Maximum allowed age for demos, any older demos will be deleted when sv_demoClearOld is set (this doesn't prevent recording new demos).")

◆ sv_demoMaxDirCount

cvar_t sv_demoMaxDirCount = CVARD("sv_demoMaxDirCount", "500", "Maximum allowed serverside mvds to record. Set to 0 to remove the limit. New demos cannot be recorded once this many demos have already been recorded.")

◆ sv_demoMaxDirSize

cvar_t sv_demoMaxDirSize = CVARD("sv_demoMaxDirSize", "100mb", "Maximum allowed serverside storage space for mvds. set to blank to remove the limit. New demos cannot be recorded once this size is reached.")

◆ sv_demoMaxSize

cvar_t sv_demoMaxSize = CVARD("sv_demoMaxSize", "", "Demos will be truncated to be no larger than this size.")

◆ sv_demoPings

cvar_t sv_demoPings = CVARD("sv_demoPings", "10", "Interval between ping updates in mvds")

◆ sv_demoPrefix

cvar_t sv_demoPrefix = CVAR("sv_demoPrefix", "")

◆ sv_demoSuffix

cvar_t sv_demoSuffix = CVAR("sv_demoSuffix", "")

◆ sv_demotxt

cvar_t sv_demotxt = CVAR("sv_demotxt", "1")

◆ sv_demoUseCache

cvar_t sv_demoUseCache = CVARD("sv_demoUseCache", "", "If set, demo data will be flushed only periodically")