DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
server.h
Go to the documentation of this file.
1/*
2Copyright (C) 1996-1997 Id Software, Inc.
3
4This program is free software; you can redistribute it and/or
5modify it under the terms of the GNU General Public License
6as published by the Free Software Foundation; either version 2
7of the License, or (at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19*/
20// server.h
21
22#ifndef SERVER_H
23#define SERVER_H
24
25typedef struct server_static_s
26{
28 int maxclients, maxclients_next;
30 struct client_s *clients;
36 char serverinfo[MAX_SERVERINFO_STRING];
37
38 // csqc stuff
39 unsigned char *csqc_progdata;
41 unsigned char *csqc_progdata_deflated;
42
43 // independent server thread (when running client)
44 qbool threaded; // true if server is running on separate thread
45 qbool volatile threadstop;
47 void *thread;
49
50//=============================================================================
51
52typedef enum server_state_e {ss_loading, ss_active} server_state_t;
53
54#define MAX_CONNECTFLOODADDRESSES 16
55#define MAX_GETSTATUSFLOODADDRESSES 128
56typedef struct server_floodaddress_s
57{
58 double lasttime;
60}
62
63typedef struct server_s
64{
67
72
75
76 double time;
77 double frametime;
78
79 unsigned int spawnframe; // signals SV_Frame() to reset its timers
80
81 // performance data
83 float perf_lost;
87 // temporary performance data accumulators
95
96 // used by PF_checkclient
99
100 // crc of clientside progs at time of level start
101 int csqc_progcrc; // -1 = no progs
102 int csqc_progsize; // -1 = no progs
103 char csqc_progname[MAX_QPATH]; // copied from csqc_progname at level start
104
107
108 // variants of map name
109 char worldbasename[MAX_QPATH]; // %s
110 char worldname[MAX_QPATH]; // maps/%s.bsp
111 char worldnamenoextension[MAX_QPATH]; // maps/%s
112 struct model_s *worldmodel;
113 // NULL terminated
114 // LadyHavoc: precaches are now MAX_QPATH rather than a pointer
115 // updated by SV_ModelIndex
116 char model_precache[MAX_MODELS][MAX_QPATH];
117 struct model_s *models[MAX_MODELS];
118 // NULL terminated
119 // LadyHavoc: precaches are now MAX_QPATH rather than a pointer
120 // updated by SV_SoundIndex
121 char sound_precache[MAX_SOUNDS][MAX_QPATH];
122 char lightstyles[MAX_LIGHTSTYLES][64];
125
127 unsigned char datagram_buf[NET_MAXMESSAGE];
128
129 // copied to all clients at end of frame
131 unsigned char reliable_datagram_buf[NET_MAXMESSAGE];
132
135 unsigned char signon_buf[NET_MAXMESSAGE];
136
142
145
153 vec3_t writeentitiestoclient_eyes[MAX_CLIENTNETWORKEYES];
156 const entity_state_t *writeentitiestoclient_sendstates[MAX_EDICTS];
157 unsigned short writeentitiestoclient_csqcsendstates[MAX_EDICTS];
158
161 entity_state_t *sendentitiesindex[MAX_EDICTS];
162
164 int sententities[MAX_EDICTS];
165 int sententitiesconsideration[MAX_EDICTS];
166
168 unsigned char csqcentityversion[MAX_EDICTS]; // legacy
169} server_t;
170
171#define NUM_CSQCENTITIES_PER_FRAME 256
172typedef struct csqcentityframedb_s
173{
175 int num;
176 unsigned short entno[NUM_CSQCENTITIES_PER_FRAME];
179
180#define NUM_SPAWN_PARMS 16
181
182typedef struct client_s
183{
196
198 int rate;
199
202
205
208
211
212 unsigned int movesequence;
213 signed char movement_count[NETGRAPH_PACKETS];
214 unsigned int movement_highestsequence_seen; // not the same as movesequence if prediction is off
219
222
224 float ping;
225
230
233
234 // properties that are sent across the network only when changed
236 int colors, old_colors;
237 int frags, old_frags;
238 char playermodel[MAX_QPATH], old_model[MAX_QPATH];
240
243
245 float visibletime[MAX_EDICTS];
246
247 // scope is whether an entity is currently being networked to this client
248 // sendflags is what properties have changed on the entity since the last
249 // update that was sent
251 unsigned char csqcentityscope[MAX_EDICTS];
252 unsigned int csqcentitysendflags[MAX_EDICTS];
253
254#define NUM_CSQCENTITYDB_FRAMES 256
258
260 float nametime;
261
264
268
271
275
276 // delta compression of stats
277 unsigned char statsdeltabits[(MAX_CL_STATS+7)/8];
278 int stats[MAX_CL_STATS];
279
280 unsigned char unreliablemsg_data[NET_MAXMESSAGE];
283 int unreliablemsg_splitpoint[NET_MAXMESSAGE/16];
284
285 // information on an active download if any
289 char download_name[MAX_QPATH];
291
292 // fixangle data
295
297 qfile_t *sv_demo_file;
298
299 // number of skipped entity frames
300 // if it exceeds a limit, an empty entity frame is sent
302
303 // last sent move sequence
304 // if the move sequence changed, an empty entity frame is sent
305 unsigned int lastmovesequence;
306} client_t;
307
308
309//=============================================================================
310
311// edict->movetype values
312#define MOVETYPE_NONE 0
313#define MOVETYPE_ANGLENOCLIP 1
314#define MOVETYPE_ANGLECLIP 2
315#define MOVETYPE_WALK 3
316#define MOVETYPE_STEP 4
317#define MOVETYPE_FLY 5
318#define MOVETYPE_TOSS 6
319#define MOVETYPE_PUSH 7
320#define MOVETYPE_NOCLIP 8
321#define MOVETYPE_FLYMISSILE 9
322#define MOVETYPE_BOUNCE 10
323#define MOVETYPE_BOUNCEMISSILE 11
324#define MOVETYPE_FOLLOW 12
325#define MOVETYPE_FAKEPUSH 13
326#define MOVETYPE_PHYSICS 32
327#define MOVETYPE_FLY_WORLDONLY 33
328#define MOVETYPE_USER_FIRST 128
329#define MOVETYPE_USER_LAST 191
330
331// edict->solid values
332#define SOLID_NOT 0
333#define SOLID_TRIGGER 1
334#define SOLID_BBOX 2
335#define SOLID_SLIDEBOX 3
336#define SOLID_BSP 4
337// LadyHavoc: corpse code
338#define SOLID_CORPSE 5
339// LadyHavoc: physics
340// VorteX: now these fields are deprecated, as geomtype is more flexible
341#define SOLID_PHYSICS_BOX 32
342#define SOLID_PHYSICS_SPHERE 33
343#define SOLID_PHYSICS_CAPSULE 34
344#define SOLID_PHYSICS_TRIMESH 35
345#define SOLID_PHYSICS_CYLINDER 36
346
347// edict->deadflag values
348#define DEAD_NO 0
349#define DEAD_DYING 1
350#define DEAD_DEAD 2
351
352#define DAMAGE_NO 0
353#define DAMAGE_YES 1
354#define DAMAGE_AIM 2
355
356// edict->flags
357#define FL_FLY 1
358#define FL_SWIM 2
359#define FL_CONVEYOR 4
360#define FL_CLIENT 8
361#define FL_INWATER 16
362#define FL_MONSTER 32
363#define FL_GODMODE 64
364#define FL_NOTARGET 128
365#define FL_ITEM 256
366#define FL_ONGROUND 512
367#define FL_PARTIALGROUND 1024
368#define FL_WATERJUMP 2048
369#define FL_JUMPRELEASED 4096
370
371#define SPAWNFLAG_NOT_EASY 256
372#define SPAWNFLAG_NOT_MEDIUM 512
373#define SPAWNFLAG_NOT_HARD 1024
374#define SPAWNFLAG_NOT_DEATHMATCH 2048
375
376//============================================================================
377
378extern cvar_t coop;
379extern cvar_t deathmatch;
380extern cvar_t fraglimit;
381extern cvar_t gamecfg;
382extern cvar_t noexit;
383extern cvar_t nomonsters;
384extern cvar_t pausable;
386extern cvar_t samelevel;
387extern cvar_t saved1;
388extern cvar_t saved2;
389extern cvar_t saved3;
390extern cvar_t saved4;
391extern cvar_t savedgamecfg;
392extern cvar_t scratch1;
393extern cvar_t scratch2;
394extern cvar_t scratch3;
395extern cvar_t scratch4;
396extern cvar_t skill;
398extern cvar_t sv_accelerate;
399extern cvar_t sv_aim;
407extern cvar_t sv_aircontrol;
433extern cvar_t sv_debugmove;
434extern cvar_t sv_echobprint;
436extern cvar_t sv_entpatch;
438extern cvar_t sv_friction;
469extern cvar_t sv_gravity;
471extern cvar_t sv_jumpstep;
475extern cvar_t sv_maxrate;
476extern cvar_t sv_maxspeed;
478extern cvar_t sv_nostep;
480extern cvar_t sv_progs;
484extern cvar_t sv_sound_land;
486extern cvar_t sv_stepheight;
487extern cvar_t sv_stopspeed;
491extern cvar_t sv_areadebug;
492extern cvar_t sys_ticrate;
493extern cvar_t teamplay;
494extern cvar_t temp1;
495extern cvar_t timelimit;
496
497extern mempool_t *sv_mempool;
498
500extern server_static_t svs;
502extern server_t sv;
503
504extern client_t *host_client;
505
506//===========================================================
507
508void SV_Init (void);
509double SV_Frame(double time);
510void SV_Shutdown(void);
511
512int SV_IsLocalServer(void);
513
514void SV_StartParticle (vec3_t org, vec3_t dir, int color, int count);
515void SV_StartEffect (vec3_t org, int modelindex, int startframe, int framecount, int framerate);
516void SV_StartSound (prvm_edict_t *entity, int channel, const char *sample, int volume, float attenuation, qbool reliable, float speed);
517void SV_StartPointSound (vec3_t origin, const char *sample, int volume, float attenuation, float speed);
518
519void SV_ConnectClient (int clientnum, netconn_t *netconnection);
520void SV_DropClient (qbool leaving, const char *reason, ... );
521
522void SV_ClientCommands(const char *fmt, ...) DP_FUNC_PRINTF(1);
523
524void SV_SendClientMessages(void);
525
526void SV_ReadClientMessage(void);
527
528// precachemode values:
529// 0 = fail if not precached,
530// 1 = warn if not found and precache if possible
531// 2 = precache
532int SV_ModelIndex(const char *s, int precachemode);
533int SV_SoundIndex(const char *s, int precachemode);
534
535int SV_ParticleEffectIndex(const char *name);
536
539
540void SV_SetIdealPitch (void);
541
542void SV_AddUpdates (void);
543
544void SV_PlayerPhysics (void);
545
546void SV_ClientPrint(const char *msg);
547void SV_ClientPrintf(const char *fmt, ...) DP_FUNC_PRINTF(1);
548void SV_BroadcastPrint(const char *msg);
549void SV_BroadcastPrintf(const char *fmt, ...) DP_FUNC_PRINTF(1);
550
551void SV_Physics (void);
552void SV_Physics_ClientMove (void);
553//void SV_Physics_ClientEntity (prvm_edict_t *ent);
554
557qbool SV_movestep (prvm_edict_t *ent, vec3_t move, qbool relink, qbool noenemy, qbool settrace);
558
563void SV_LinkEdict(prvm_edict_t *ent);
565void SV_LinkEdict_TouchAreaGrid_Call(prvm_edict_t *touch, prvm_edict_t *ent); // if we detected a touch from another source
566
570trace_t SV_TraceBox(const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask, float extend);
571trace_t SV_TraceLine(const vec3_t start, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask, float extend);
572trace_t SV_TracePoint(const vec3_t start, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask);
573int SV_EntitiesInBox(const vec3_t mins, const vec3_t maxs, int maxedicts, prvm_edict_t **resultedicts);
574
575qbool SV_CanSeeBox(int numsamples, vec_t eyejitter, vec_t enlarge, vec_t entboxexpand, vec3_t eye, vec3_t entboxmins, vec3_t entboxmaxs);
576
578
579void SV_SendServerinfo(client_t *client);
580void SV_WriteEntitiesToClient(client_t *client, prvm_edict_t *clent, sizebuf_t *msg, int maxsize);
581void SV_AddCameraEyes(void);
582
583int SV_PointSuperContents(const vec3_t point);
584
586void SV_WriteClientdataToMessage (client_t *client, prvm_edict_t *ent, sizebuf_t *msg, int *stats);
587
588void VM_SV_MoveToGoal(prvm_prog_t *prog);
589
590void SV_ApplyClientMove (void);
591void SV_SaveSpawnparms (void);
592
593void SV_SpawnServer (const char *map);
594
596
597void SV_SetupVM(void);
598
599const char *SV_TimingReport(char *buf, size_t buflen);
600
602void SV_GetEntityMatrix(prvm_prog_t *prog, prvm_edict_t *ent, matrix4x4_t *out, qbool viewmatrix);
603
604void SV_StartThread(void);
605void SV_StopThread(void);
606#define SV_LockThreadMutex() (void)(svs.threaded ? Thread_LockMutex(svs.threadmutex) : 0)
607#define SV_UnlockThreadMutex() (void)(svs.threaded ? Thread_UnlockMutex(svs.threadmutex) : 0)
608
609void VM_CustomStats_Clear(void);
610void VM_SV_UpdateCustomStats(client_t *client, prvm_edict_t *ent, sizebuf_t *msg, int *stats);
611void SV_Name(int clientnum);
612void SV_InitOperatorCommands(void);
613
614void SV_Savegame_to(prvm_prog_t *prog, const char *name);
617
621
622qbool SV_VM_ConsoleCommand(const char *text, size_t textlen);
623
624#endif
cvar_t csqc_progname
Definition cl_main.c:35
char particleeffectname[MAX_PARTICLEEFFECTNAME][64]
protocolversion_t
Definition common.h:132
float modelindex
vector mins
float time
vector maxs
vector origin
entity() spawn
string playerskin
string netaddress
vector color
string playermodel
GLenum GLenum GLsizei count
Definition glquake.h:656
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition glquake.h:657
const GLchar * name
Definition glquake.h:601
GLenum type
Definition glquake.h:656
void cmd(string command,...)
static memexpandablearray_t models
#define NETGRAPH_PACKETS
Definition netconn.h:222
string weaponmodel
Definition progsdefs.qc:140
#define MAX_EDICTS
max number of objects in game world at once (32768 protocol limit)
Definition qdefs.h:105
#define MAX_LIGHTSTYLES
max flickering light styles in level (note: affects savegame format)
Definition qdefs.h:108
#define NET_MAXMESSAGE
max reliable packet size (sent as multiple fragments of MAX_PACKETFRAGMENT)
Definition qdefs.h:103
#define DP_FUNC_PRINTF(n)
Definition qdefs.h:14
#define MAX_SOUNDS
max number of sounds loaded at once
Definition qdefs.h:107
#define MAX_CLIENTNETWORKEYES
max number of locations that can be added to pvs when culling network entities (must be at least 2 fo...
Definition qdefs.h:122
#define MAX_SCOREBOARDNAME
max length of player name in game
Definition qdefs.h:111
#define MAX_QPATH
max length of a quake game pathname
Definition qdefs.h:169
#define MAX_SERVERINFO_STRING
max length of server infostring for PROTOCOL_QUAKEWORLD (512 in QuakeWorld)
Definition qdefs.h:113
#define MAX_PARTICLEEFFECTNAME
maximum number of unique names of particle effects (for particleeffectnum)
Definition qdefs.h:135
#define MAX_MODELS
max number of models loaded at once (including during level transitions)
Definition qdefs.h:106
#define MAX_CL_STATS
Definition qstats.h:7
float vec_t
Definition qtypes.h:68
vec_t vec3_t[3]
Definition qtypes.h:71
bool qbool
Definition qtypes.h:9
float prvm_vec_t
Definition qtypes.h:55
cvar_t sv_progs
Definition sv_main.c:146
cvar_t saved2
Definition sv_main.c:179
cvar_t sv_cullentities_stats
Definition sv_main.c:83
void SV_StartThread(void)
Definition sv_main.c:2850
cvar_t sv_gameplayfix_swiminbmodels
Definition sv_main.c:126
void SV_PlayerPhysics(void)
Definition sv_user.c:571
cvar_t sv_waterfriction
Definition sv_main.c:157
server_t sv
local server
Definition sv_main.c:223
cvar_t noexit
Definition sv_main.c:47
int SV_SoundIndex(const char *s, int precachemode)
Definition sv_main.c:1474
cvar_t sv_airaccel_qw
Definition sv_main.c:57
void SV_SaveSpawnparms(void)
Definition sv_main.c:1761
#define MAX_GETSTATUSFLOODADDRESSES
Definition server.h:55
cvar_t sv_gameplayfix_nudgeoutofsolid_separation
Definition sv_main.c:118
cvar_t sv_gameplayfix_delayprojectiles
Definition sv_main.c:106
cvar_t sv_gameplayfix_noairborncorpse_allowsuspendeditems
Definition sv_main.c:116
cvar_t sv_gameplayfix_droptofloorstartsolid_nudgetocorrect
Definition sv_main.c:108
trace_t SV_TracePoint(const vec3_t start, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask)
Definition sv_phys.c:104
#define NUM_SPAWN_PARMS
Definition server.h:180
cvar_t sv_clmovement_maxnetfps
cvar_t sv_allowdownloads_archive
Definition sv_main.c:70
void SV_Begin_f(cmd_state_t *cmd)
Definition sv_user.c:204
cvar_t sv_gameplayfix_consistentplayerprethink
Definition sv_main.c:105
void SV_ReadClientMessage(void)
Definition sv_user.c:985
cvar_t deathmatch
Definition progsdefs.qc:29
cvar_t sv_maxairstrafespeed
Definition sv_main.c:64
void SV_BroadcastPrintf(const char *fmt,...) DP_FUNC_PRINTF(1)
Definition sv_send.c:116
cvar_t sv_areadebug
Definition sv_main.c:164
cvar_t sv_random_seed
Definition sv_main.c:149
cvar_t scratch3
Definition sv_main.c:185
cvar_t coop
Definition progsdefs.qc:30
cvar_t pr_checkextension
Definition sv_main.c:50
cvar_t sv_gameplayfix_easierwaterjump
Definition sv_main.c:109
cvar_t sv_airstopaccelerate
Definition sv_main.c:61
void SV_StartPointSound(vec3_t origin, const char *sample, int volume, float attenuation, float speed)
Definition sv_send.c:320
cvar_t sv_cullentities_trace_enlarge
Definition sv_main.c:87
cvar_t sv_maxairspeed
Definition sv_main.c:140
void SV_ApplyClientMove(void)
Definition sv_user.c:893
cvar_t saved4
Definition sv_main.c:181
cvar_t timelimit
Definition sv_main.c:173
void SV_Spawn_f(cmd_state_t *cmd)
Definition sv_user.c:62
cvar_t sv_debugmove
Definition sv_main.c:97
cvar_t gamecfg
Definition sv_main.c:46
cvar_t sv_clmovement_enable
Definition sv_main.c:77
void VM_CustomStats_Clear(void)
Definition svvm_cmds.c:1717
cvar_t sv_areagrid_link_SOLID_NOT
Definition sv_main.c:74
cvar_t sv_gameplayfix_impactbeforeonground
Definition sv_main.c:113
void SV_Loadgame_f(cmd_state_t *cmd)
Definition sv_save.c:240
void SV_StartParticle(vec3_t org, vec3_t dir, int color, int count)
Definition sv_send.c:158
qbool SV_CheckBottom(prvm_edict_t *ent)
Definition sv_move.c:36
cvar_t sv_gameplayfix_unstickplayers
Definition sv_main.c:130
cvar_t nomonsters
Definition sv_main.c:48
cvar_t sv_sound_land
Definition sv_main.c:151
cvar_t sv_cullentities_pvs
Definition sv_main.c:82
cvar_t sv_gameplayfix_nudgeoutofsolid
Definition sv_main.c:117
double SV_Frame(double time)
Definition sv_main.c:2527
void SV_FlushBroadcastMessages(void)
Definition sv_send.c:1371
void SV_StartEffect(vec3_t org, int modelindex, int startframe, int framecount, int framerate)
Definition sv_send.c:182
void SV_SetIdealPitch(void)
Definition sv_user.c:239
void SV_AddCameraEyes(void)
Definition sv_send.c:1063
void SV_StartSound(prvm_edict_t *entity, int channel, const char *sample, int volume, float attenuation, qbool reliable, float speed)
Definition sv_send.c:228
cvar_t sv_cullentities_trace_prediction
Definition sv_main.c:90
#define NUM_CSQCENTITIES_PER_FRAME
Definition server.h:171
cvar_t sv_freezenonclients
Definition sv_main.c:102
void VM_SV_UpdateCustomStats(client_t *client, prvm_edict_t *ent, sizebuf_t *msg, int *stats)
Definition svvm_cmds.c:1723
cvar_t sv_jumpvelocity
Definition sv_main.c:138
cvar_t sv_airspeedlimit_nonqw
Definition sv_main.c:62
cvar_t sv_aircontrol
Definition sv_main.c:66
cvar_t sv_aim
Definition sv_main.c:56
void SV_SpawnServer(const char *map)
Definition sv_main.c:1811
cvar_t sv_maxrate
Definition sv_main.c:141
void SV_Name(int clientnum)
Definition sv_ccmds.c:868
int SV_ModelIndex(const char *s, int precachemode)
Definition sv_main.c:1411
cvar_t sv_gameplayfix_nogravityonground
Definition sv_main.c:120
void SV_LinkEdict_TouchAreaGrid_Call(prvm_edict_t *touch, prvm_edict_t *ent)
Definition sv_phys.c:705
cvar_t sv_wateraccelerate
Definition sv_main.c:156
void SV_InitOperatorCommands(void)
Definition sv_ccmds.c:1640
model_t * SV_GetModelByIndex(int modelindex)
Definition sv_main.c:1607
cvar_t sv_gameplayfix_findradiusdistancetobox
Definition sv_main.c:110
cvar_t sv_jumpstep
Definition sv_main.c:137
void SV_AddUpdates(void)
mempool_t * sv_mempool
Definition sv_main.c:226
void SV_WriteClientdataToMessage(client_t *client, prvm_edict_t *ent, sizebuf_t *msg, int *stats)
Definition sv_send.c:1091
trace_t SV_TraceLine(const vec3_t start, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask, float extend)
Definition sv_phys.c:256
cvar_t sv_aircontrol_penalty
Definition sv_main.c:68
cvar_t sv_wallfriction
Definition sv_main.c:155
void VM_SV_MoveToGoal(prvm_prog_t *prog)
Definition sv_move.c:420
void SV_SendServerinfo(client_t *client)
Definition sv_main.c:749
cvar_t sv_allowdownloads_dlcache
Definition sv_main.c:72
cvar_t sv_cullentities_nevercullbmodels
Definition sv_main.c:81
void SV_LinkEdict(prvm_edict_t *ent)
Definition sv_phys.c:804
cvar_t sv_legacy_bbox_expand
Definition sv_main.c:139
cvar_t savedgamecfg
Definition sv_main.c:182
cvar_t sys_ticrate
Definition sv_main.c:166
qbool SV_CanSeeBox(int numsamples, vec_t eyejitter, vec_t enlarge, vec_t entboxexpand, vec3_t eye, vec3_t entboxmins, vec3_t entboxmaxs)
Definition sv_send.c:723
void SV_Savegame_to(prvm_prog_t *prog, const char *name)
Definition sv_save.c:35
cvar_t sv_maxspeed
Definition sv_main.c:142
void SV_ClientPrint(const char *msg)
Definition sv_send.c:55
void SV_GetEntityMatrix(prvm_prog_t *prog, prvm_edict_t *ent, matrix4x4_t *out, qbool viewmatrix)
Definition svvm_cmds.c:2518
cvar_t sv_sound_watersplash
Definition sv_main.c:152
const char * SV_TimingReport(char *buf, size_t buflen)
for output in SV_Status_f
Definition sv_main.c:2521
cvar_t sv_gameplayfix_noairborncorpse
Definition sv_main.c:115
server_state_t
Definition server.h:52
@ ss_active
Definition server.h:52
@ ss_loading
Definition server.h:52
#define MAX_CONNECTFLOODADDRESSES
Definition server.h:54
int SV_EntitiesInBox(const vec3_t mins, const vec3_t maxs, int maxedicts, prvm_edict_t **resultedicts)
Definition sv_phys.c:673
cvar_t sv_airstrafeaccelerate
Definition sv_main.c:63
void SV_WriteEntitiesToClient(client_t *client, prvm_edict_t *clent, sizebuf_t *msg, int maxsize)
Definition sv_ents.c:337
cvar_t sv_nostep
Definition sv_main.c:144
cvar_t sv_gameplayfix_nosquashentities
Definition sv_main.c:133
cvar_t sv_gameplayfix_gravityunaffectedbyticrate
Definition sv_main.c:111
void SV_CheckVelocity(prvm_edict_t *ent)
Definition sv_phys.c:965
cvar_t sv_gameplayfix_q2airaccelerate
Definition sv_main.c:119
cvar_t sv_aircontrol_power
Definition sv_main.c:67
cvar_t sv_areagrid_mingridsize
Definition sv_main.c:75
cvar_t sv_gameplayfix_fixedcheckwatertransition
Definition sv_main.c:132
int SV_GetPitchSign(prvm_prog_t *prog, prvm_edict_t *ent)
Definition sv_phys.c:47
cvar_t sv_idealpitchscale
Definition sv_main.c:136
void SV_StopThread(void)
Definition sv_main.c:2860
cvar_t scratch4
Definition sv_main.c:186
void SV_DropClient(qbool leaving, const char *reason,...)
Definition sv_main.c:1018
cvar_t sv_gameplayfix_slidemoveprojectiles
Definition sv_main.c:122
int SV_IsLocalServer(void)
Definition sv_main.c:1783
void SV_Savegame_f(cmd_state_t *cmd)
Definition sv_save.c:188
cvar_t temp1
Definition sv_main.c:187
cvar_t pausable
Definition sv_main.c:49
cvar_t sv_airstrafeaccel_qw
Definition sv_main.c:65
cvar_t sv_edgefriction
Definition sv_main.c:100
cvar_t sv_gameplayfix_upwardvelocityclearsongroundflag
Definition sv_main.c:127
int SV_GenericHitSuperContentsMask(const prvm_edict_t *edict)
calculates hitsupercontentsmask for a generic qc entity
Definition sv_phys.c:73
void SV_SendClientMessages(void)
Definition sv_send.c:1697
void SV_MarkWriteEntityStateToClient(entity_state_t *s, client_t *client)
Definition sv_send.c:863
model_t * SV_GetModelFromEdict(prvm_edict_t *ed)
Definition sv_main.c:1612
cvar_t sv_stepheight
Definition sv_main.c:153
void SV_SetupVM(void)
server_static_t svs
persistant server info
Definition sv_main.c:224
cvar_t host_limitlocal
Definition sv_main.c:150
cvar_t fraglimit
Definition sv_main.c:45
cvar_t sv_cullentities_trace_samples
Definition sv_main.c:93
int SV_PointSuperContents(const vec3_t point)
Definition sv_phys.c:611
cvar_t sv_gravity
Definition sv_main.c:134
cvar_t sv_gameplayfix_unstickentities
Definition sv_main.c:131
cvar_t sv_cullentities_trace
Definition sv_main.c:84
cvar_t sv_maxvelocity
Definition sv_main.c:143
cvar_t sv_entpatch
Definition sv_main.c:101
cvar_t host_timescale
Definition sv_main.c:53
cvar_t sv_gameplayfix_droptofloorstartsolid
Definition sv_main.c:107
cvar_t sv_clmovement_inputtimeout
Definition sv_main.c:80
void SV_BroadcastPrint(const char *msg)
Definition sv_send.c:91
cvar_t sv_friction
Definition sv_main.c:103
cvar_t sv_cullentities_trace_samples_extra
Definition sv_main.c:94
cvar_t scratch2
Definition sv_main.c:184
cvar_t samelevel
Definition sv_main.c:51
cvar_t scratch1
Definition sv_main.c:183
cvar_t sv_allowdownloads_config
Definition sv_main.c:71
cvar_t sv_checkforpacketsduringsleep
Definition sv_main.c:76
cvar_t sv_clmovement_minping
Definition sv_main.c:78
cvar_t sv_protocolname
Definition sv_main.c:147
cvar_t sv_allowdownloads_inarchive
Definition sv_main.c:73
void SV_Init(void)
Definition sv_main.c:504
cvar_t sv_gameplayfix_downtracesupportsongroundflag
Definition sv_main.c:128
int SV_ParticleEffectIndex(const char *name)
Definition sv_main.c:1522
void SV_Shutdown(void)
Definition sv_main.c:2128
cvar_t sv_gameplayfix_q1bsptracelinereportstexture
Definition sv_main.c:129
cvar_t sv_stopspeed
Definition sv_main.c:154
cvar_t sv_clmovement_minping_disabletime
Definition sv_main.c:79
void SV_ClientCommands(const char *fmt,...) DP_FUNC_PRINTF(1)
Definition sv_send.c:135
cvar_t sv_airaccel_sideways_friction
Definition sv_main.c:59
cvar_t sv_gameplayfix_nostepmoveonsteepslopes
Definition sv_main.c:125
cvar_t skill
Definition sv_main.c:52
#define NUM_CSQCENTITYDB_FRAMES
Definition server.h:254
client_t * host_client
Definition sv_main.c:29
cvar_t sv_airaccelerate
Definition sv_main.c:60
void SV_ConnectClient(int clientnum, netconn_t *netconnection)
Definition sv_main.c:936
qbool SV_PlayerCheckGround(prvm_edict_t *ent)
cvar_t sv_accelerate
Definition sv_main.c:55
void SV_Physics(void)
Definition sv_phys.c:3013
cvar_t sv_gameplayfix_stepmultipletimes
Definition sv_main.c:124
cvar_t sv_allowdownloads
Definition sv_main.c:69
cvar_t saved1
Definition sv_main.c:178
void SV_PreSpawn_f(cmd_state_t *cmd)
Definition sv_user.c:36
qbool SV_VM_ConsoleCommand(const char *text, size_t textlen)
Definition svvm_cmds.c:2927
cvar_t sv_cullentities_trace_delay
Definition sv_main.c:85
cvar_t sv_playerphysicsqc
Definition sv_main.c:145
qbool SV_movestep(prvm_edict_t *ent, vec3_t move, qbool relink, qbool noenemy, qbool settrace)
Definition sv_move.c:109
trace_t SV_TraceBox(const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask, float extend)
traces a box move against worldmodel and all entities in the specified area
Definition sv_phys.c:414
cvar_t sv_gameplayfix_blowupfallenzombies
Definition sv_main.c:104
cvar_t teamplay
Definition progsdefs.qc:31
cvar_t sv_gameplayfix_grenadebouncedownslopes
Definition sv_main.c:112
cvar_t sv_gameplayfix_setmodelrealbox
Definition sv_main.c:121
cvar_t saved3
Definition sv_main.c:180
cvar_t sv_echobprint
Definition sv_main.c:99
void SV_Physics_ClientMove(void)
Definition sv_phys.c:2810
cvar_t sv_gameplayfix_stepdown
Definition sv_main.c:123
cvar_t sv_gameplayfix_multiplethinksperframe
Definition sv_main.c:114
void SV_LinkEdict_TouchAreaGrid(prvm_edict_t *ent)
Definition sv_phys.c:727
void SV_ClientPrintf(const char *fmt,...) DP_FUNC_PRINTF(1)
Definition sv_send.c:72
vec2 dir
cvar_t volume
Definition snd_main.c:166
int csqcentityframe_lastreset
Definition server.h:257
float clmovement_inputtimeout
this is used by sv_clmovement_inputtimeout code
Definition server.h:229
qbool active
false = empty client slot
Definition server.h:185
int colors
Definition server.h:236
qbool begun
false = don't send datagrams
Definition server.h:193
double keepalivetime
keepalive messages must be sent periodically during signon
Definition server.h:207
entityframe_database_t * entitydatabase
Definition server.h:272
unsigned int movesequence
Definition server.h:212
qbool clientconnectcalled
false = don't do ClientDisconnect on drop
Definition server.h:187
int unreliablemsg_splitpoints
Definition server.h:282
int frags
Definition server.h:237
int csqcnumedicts
Definition server.h:250
float nametime
prevent animated names
Definition server.h:260
double clmovement_disabletimeout
this is used by sv_clmovement_minping code
Definition server.h:227
int rate
requested rate in bytes per second
Definition server.h:198
int sendsignon
1 = send svc_serverinfo and advance to 2, 2 doesn't send, then advances to 0 (allowing unlimited send...
Definition server.h:195
qbool fixangle_angles_set
Definition server.h:293
entityframe5_database_t * entitydatabase5
Definition server.h:274
qbool prespawned
false = don't allow spawn
Definition server.h:189
sizebuf_t unreliablemsg
Definition server.h:281
int weaponmodelindex
Definition server.h:267
entityframe4_database_t * entitydatabase4
Definition server.h:273
int latestframenum
latest received clc_ackframe (used to detect packet loss)
Definition server.h:263
int csqcentityframehistory_next
Definition server.h:256
int clientcamera
clientcamera (entity to use as camera)
Definition server.h:270
unsigned int lastmovesequence
Definition server.h:305
int num_skippedentityframes
Definition server.h:301
qfile_t * download_file
Definition server.h:286
netconn_t * netconnection
communications handle
Definition server.h:210
int rate_burstsize
temporarily exceed rate by this amount of bytes
Definition server.h:201
vec3_t fixangle_angles
Definition server.h:294
int download_expectedposition
next position the client should ack
Definition server.h:287
qfile_t * sv_demo_file
demo recording
Definition server.h:297
qbool spawned
false = don't allow begin
Definition server.h:191
prvm_edict_t * edict
PRVM_EDICT_NUM(clientnum+1)
Definition server.h:221
double connecttime
realtime this client connected
Definition server.h:204
unsigned int movement_highestsequence_seen
Definition server.h:214
float ping
LadyHavoc: can be used for prediction or whatever...
Definition server.h:224
qbool download_deflate
Definition server.h:290
qbool download_started
Definition server.h:288
usercmd_t cmd
movement
Definition server.h:216
vec3_t wishdir
intended motion calced from cmd
Definition server.h:218
command interpreter state - the tokenizing and execution of commands, as well as pointers to which cv...
Definition cmd.h:127
Definition cvar.h:66
lhnetaddress_t address
Definition server.h:59
unsigned char * csqc_progdata_deflated
Definition server.h:41
void * threadmutex
Definition server.h:46
struct client_s * clients
client slots
Definition server.h:30
unsigned char * csqc_progdata
Definition server.h:39
void * thread
Definition server.h:47
qbool threaded
Definition server.h:44
qbool changelevel_issued
cleared when at SV_SpawnServer
Definition server.h:34
qbool volatile threadstop
Definition server.h:45
int maxclients
number of svs.clients slots (updated by maxplayers command)
Definition server.h:28
int serverflags
episode completion information
Definition server.h:32
size_t csqc_progsize_deflated
Definition server.h:40
double pausedstart
Definition server.h:69
float perf_offset_sdev
Definition server.h:86
double time
Definition server.h:76
float perf_acc_realtime
Definition server.h:88
unsigned char * writeentitiestoclient_pvs
Definition server.h:155
double frametime
Definition server.h:77
double lastchecktime
Definition server.h:98
qbool paused
Definition server.h:68
int lastcheck
Definition server.h:97
world_t world
collision culling data
Definition server.h:106
float perf_acc_offset_max
Definition server.h:93
int writeentitiestoclient_stats_culled_pvs
Definition server.h:146
int sententitiesmark
Definition server.h:163
int writeentitiestoclient_stats_totalentities
Definition server.h:149
int perf_acc_offset_samples
Definition server.h:94
float perf_acc_lost
Definition server.h:90
qbool active
false if only a net client
Definition server.h:66
int writeentitiestoclient_cliententitynumber
Definition server.h:150
sizebuf_t signon
Definition server.h:133
sizebuf_t datagram
Definition server.h:126
int csqc_progsize
Definition server.h:102
int csqc_progcrc
Definition server.h:101
server_state_t state
some actions are only valid during load
Definition server.h:124
sizebuf_t reliable_datagram
Definition server.h:130
int writeentitiestoclient_numeyes
Definition server.h:154
float perf_lost
Definition server.h:83
unsigned int spawnframe
Definition server.h:79
qbool loadgame
handle connections specially
Definition server.h:71
float perf_acc_sleeptime
Definition server.h:89
int numsendentities
Definition server.h:159
sizebuf_t * writeentitiestoclient_msg
Definition server.h:152
int writeentitiestoclient_stats_visibleentities
Definition server.h:148
float perf_acc_offset_squared
Definition server.h:92
float perf_offset_avg
Definition server.h:84
float perf_cpuload
Definition server.h:82
float perf_acc_offset
Definition server.h:91
int writeentitiestoclient_stats_culled_trace
Definition server.h:147
struct model_s * worldmodel
Definition server.h:112
qbool particleeffectnamesloaded
Definition server.h:143
float perf_offset_max
Definition server.h:85
int writeentitiestoclient_clientnumber
Definition server.h:151
protocolversion_t protocol
one of the PROTOCOL_ values
Definition server.h:74