16"DP_CON_ALIASPARAMETERS",
25"DP_CSQC_ENTITYWORLDOBJECT",
26"DP_CSQC_ENTITYMODELLIGHT",
27"DP_CSQC_ENTITYTRANSPARENTSORTING_OFFSET",
29"DP_CSQC_MINFPS_QUALITY",
30"DP_CSQC_MULTIFRAME_INTERPOLATION",
31"DP_CSQC_BOXPARTICLES",
32"DP_CSQC_SPAWNPARTICLE",
33"DP_CSQC_QUERYRENDERENTITY",
36"DP_CSQC_V_CALCREFDEF_WIP1",
37"DP_CSQC_V_CALCREFDEF_WIP2",
41"DP_EF_DYNAMICMODELLIGHT",
50"DP_EF_RESTARTANIM_BIT",
55"DP_ENT_CUSTOMCOLORMAP",
56"DP_ENT_EXTERIORMODELTOCLIENT",
61"DP_ENT_TRAILEFFECTNUM",
63"DP_GFX_EXTERNALTEXTURES",
64"DP_GFX_EXTERNALTEXTURES_PERMAP",
66"DP_GFX_MODEL_INTERPOLATION",
67"DP_GFX_QUAKE3MODELTAGS",
71"DP_GFX_FONTS_FREETYPE",
73"DP_FONT_VARIABLEWIDTH",
75"DP_HALFLIFE_MAP_CVAR",
78"DP_LIGHTSTYLE_STATICVALUE",
82"DP_MOVETYPEBOUNCEMISSILE",
83"DP_MOVETYPEFLYWORLDONLY",
86"DP_QC_ASINACOSATANATAN2TAN",
92"DP_QC_CVAR_DEFSTRING",
93"DP_QC_CVAR_DESCRIPTION",
102"DP_QC_EXTRESPONSEPACKET",
105"DP_QC_FINDCHAINFLAGS",
106"DP_QC_FINDCHAINFLOAT",
107"DP_QC_FINDCHAIN_TOFIELD",
111"DP_QC_FS_SEARCH_PACKFILE",
114"DP_QC_GETSURFACETRIANGLE",
115"DP_QC_GETSURFACEPOINTATTRIBUTE",
117"DP_QC_GETTAGINFO_BONEPROPERTIES",
119"DP_QC_GETTIME_CDTRACK",
123"DP_QC_MULTIPLETEMPSTRINGS",
124"DP_QC_NUDGEOUTOFSOLID",
125"DP_QC_NUM_FOR_EDICT",
127"DP_QC_SINCOSSQRTPOW",
130"DP_QC_STRINGBUFFERS",
131"DP_QC_STRINGBUFFERS_CVARLIST",
132"DP_QC_STRINGBUFFERS_EXT_WIP",
133"DP_QC_STRINGCOLORFUNCTIONS",
134"DP_QC_STRING_CASE_FUNCTIONS",
136"DP_QC_TOKENIZEBYSEPARATOR",
137"DP_QC_TOKENIZE_CONSOLE",
140"DP_QC_TRACE_MOVETYPE_HITMODEL",
141"DP_QC_TRACE_MOVETYPE_WORLDONLY",
142"DP_QC_UNLIMITEDTEMPSTRINGS",
146"DP_QC_VECTOANGLES_WITH_ROLL",
147"DP_QC_VECTORVECTORS",
155"DP_SND_DIRECTIONLESSATTNNONE",
162"DP_SND_GETSOUNDTIME",
173"DP_SV_CUSTOMIZEENTITYFORCLIENT",
174"DP_SV_DISABLECLIENTPREDICTION",
175"DP_SV_DISCARDABLEDEMO",
176"DP_SV_DRAWONLYTOCLIENT",
179"DP_SV_ENTITYCONTENTSTRANSITION",
180"DP_SV_MODELFLAGS_AS_EFFECTS",
181"DP_SV_MOVETYPESTEP_LANDEVENT",
183"DP_SV_NODRAWTOCLIENT",
184"DP_SV_ONENTITYNOSPAWNFUNCTION",
185"DP_SV_ONENTITYPREPOSTSPAWNFUNCTION",
187"DP_SV_PING_PACKETLOSS",
188"DP_SV_PLAYERPHYSICS",
190"DP_SV_POINTPARTICLES",
192"DP_SV_PRECACHEANYTIME",
196"DP_SV_ROTATINGBMODEL",
200"DP_SV_SPAWNFUNC_PREFIX",
202"DP_SV_WRITEUNTERMINATEDSTRING",
215"DP_TE_STANDARDEFFECTBUILTINS",
216"DP_TRACE_HITCONTENTSMASK_SURFACEINFO"
221"FTE_CSQC_SKELETONOBJECTS",
224"KRIMZON_SV_PARSECLIENTCOMMAND",
229"PRYDON_CLIENTCURSOR",
230"TENEBRAE_GFX_DLIGHTS",
256 VM_Warning(prog,
"setorigin: can not modify world entity\n");
261 VM_Warning(prog,
"setorigin: can not modify free entity\n");
275 for (
i=0 ;
i<3 ;
i++)
277 prog->
error_cmd(
"SetMinMaxSize: backwards mins/maxs");
307 VM_Warning(prog,
"setsize: can not modify world entity\n");
312 VM_Warning(prog,
"setsize: can not modify free entity\n");
340 VM_Warning(prog,
"setmodel: can not modify world entity\n");
345 VM_Warning(prog,
"setmodel: can not modify free entity\n");
394 VM_Warning(prog,
"tried to centerprint to a non-client\n");
428 VM_Warning(prog,
"tried to centerprint to a non-client\n");
549 Con_DPrintf(
"VM_SV_sound: given only 4 parameters, expected 5, assuming attenuation = ATTN_NORMAL\n");
562 if(channel >= 8 && channel <= 15)
574 if (nvolume < 0 || nvolume > 255)
576 VM_Warning(prog,
"SV_StartSound: volume must be in range 0-1\n");
580 if (attenuation < 0 || attenuation > 4)
582 VM_Warning(prog,
"SV_StartSound: attenuation must be in range 0-4\n");
590 VM_Warning(prog,
"SV_StartSound: channel must be in range 0-127\n");
623 if (nvolume < 0 || nvolume > 255)
625 VM_Warning(prog,
"SV_StartPointSound: volume must be in range 0-1\n");
629 if (attenuation < 0 || attenuation > 4)
631 VM_Warning(prog,
"SV_StartPointSound: attenuation must be in range 0-4\n");
665 if (isnan(
v1[0]) || isnan(
v1[1]) || isnan(
v1[2]) || isnan(
v2[0]) || isnan(
v2[1]) || isnan(
v2[2]))
666 prog->
error_cmd(
"%s: NAN errors detected in traceline('%f %f %f', '%f %f %f', %i, entity %i)\n", prog->
name,
v1[0],
v1[1],
v1[2],
v2[0],
v2[1],
v2[2], move,
PRVM_EDICT_TO_PROG(ent));
704 if (isnan(
v1[0]) || isnan(
v1[1]) || isnan(
v1[2]) || isnan(
v2[0]) || isnan(
v2[1]) || isnan(
v2[2]))
705 prog->
error_cmd(
"%s: NAN errors detected in tracebox('%f %f %f', '%f %f %f', '%f %f %f', '%f %f %f', %i, entity %i)\n", prog->
name,
v1[0],
v1[1],
v1[2], m1[0], m1[1], m1[2], m2[0], m2[1], m2[2],
v2[0],
v2[1],
v2[2], move,
PRVM_EDICT_TO_PROG(ent));
716 vec3_t move, end, tossentorigin, tossentmins, tossentmaxs;
720 vec3_t original_avelocity;
733 for (
i = 0;
i < 200;
i++)
772 VM_Warning(prog,
"tracetoss: can not use world entity\n");
898 unsigned char *fatpvs =
NULL;
907 VM_Warning(prog,
"checkpvs: can not check free entity\n");
971 VM_Warning(prog,
"Can't stuffcmd to a non-client\n");
995 vec_t radius, radius2;
1009 prog->
error_cmd(
"VM_SV_findradius: %s doesnt have the specified chain field !", prog->
name);
1015 radius2 = radius * radius;
1017 mins[0] = org[0] - (radius + 1);
1018 mins[1] = org[1] - (radius + 1);
1019 mins[2] = org[2] - (radius + 1);
1020 maxs[0] = org[0] + (radius + 1);
1021 maxs[1] = org[1] + (radius + 1);
1022 maxs[2] = org[2] + (radius + 1);
1030 for (
i = 0;
i < numtouchedicts;
i++)
1032 ent = touchedicts[
i];
1072 int i, numtouchedicts;
1083 prog->
error_cmd(
"VM_SV_findbox: %s doesnt have the specified chain field !", prog->
name);
1094 for (
i = 0;
i < numtouchedicts; ++
i)
1141 VM_Warning(prog,
"walkmove: can not modify world entity\n");
1146 VM_Warning(prog,
"walkmove: can not modify free entity\n");
1156 yaw = yaw*
M_PI*2 / 360;
1158 move[0] =
cos(yaw)*dist;
1159 move[1] =
sin(yaw)*dist;
1202 VM_Warning(prog,
"droptofloor: can not modify world entity\n");
1207 VM_Warning(prog,
"droptofloor: can not modify free entity\n");
1215 VM_Warning(prog,
"droptofloor at \"%f %f %f\": sv_gameplayfix_droptofloorstartsolid_nudgetocorrect COULD NOT FIX badly placed entity \"%s\" before drop\n",
PRVM_gameedictvector(ent,
origin)[0],
PRVM_gameedictvector(ent,
origin)[1],
PRVM_gameedictvector(ent,
origin)[2],
PRVM_GetString(prog,
PRVM_gameedictstring(ent,
classname)));
1217 VM_Warning(prog,
"droptofloor at \"%f %f %f\": sv_gameplayfix_droptofloorstartsolid_nudgetocorrect FIXED badly placed entity \"%s\" before drop\n",
PRVM_gameedictvector(ent,
origin)[0],
PRVM_gameedictvector(ent,
origin)[1],
PRVM_gameedictvector(ent,
origin)[2],
PRVM_GetString(prog,
PRVM_gameedictstring(ent,
classname)));
1235 trace =
SV_TraceBox(
PRVM_serveredictvector(ent,
origin),
PRVM_serveredictvector(ent,
mins),
PRVM_serveredictvector(ent,
maxs), end,
MOVE_NORMAL, ent,
SUPERCONTENTS_SOLID, 0, 0,
collision_extendmovelength.
value);
1251 VM_Warning(prog,
"droptofloor at \"%f %f %f\": sv_gameplayfix_droptofloorstartsolid COULD NOT FIX badly placed entity \"%s\"\n",
PRVM_serveredictvector(ent,
origin)[0],
PRVM_serveredictvector(ent,
origin)[1],
PRVM_serveredictvector(ent,
origin)[2],
PRVM_GetString(prog,
PRVM_gameedictstring(ent,
classname)));
1254 VM_Warning(prog,
"droptofloor at \"%f %f %f\": sv_gameplayfix_droptofloorstartsolid FIXED badly placed entity \"%s\"\n",
PRVM_serveredictvector(ent,
origin)[0],
PRVM_serveredictvector(ent,
origin)[1],
PRVM_serveredictvector(ent,
origin)[2],
PRVM_GetString(prog,
PRVM_gameedictstring(ent,
classname)));
1263 VM_Warning(prog,
"droptofloor at \"%f %f %f\": badly placed entity \"%s\", startsolid: %d allsolid: %d\n",
PRVM_serveredictvector(ent,
origin)[0],
PRVM_serveredictvector(ent,
origin)[1],
PRVM_serveredictvector(ent,
origin)[2],
PRVM_GetString(prog,
PRVM_gameedictstring(ent,
classname)), trace.
startsolid, trace.
allsolid);
1357 float dist, bestdist;
1371 VM_Warning(prog,
"aim: can not use world entity\n");
1376 VM_Warning(prog,
"aim: can not use free entity\n");
1411 for (j=0 ; j<3 ; j++)
1417 if (dist < bestdist)
1420 if (tr.
ent == check)
1450#define MSG_BROADCAST 0
1473 VM_Warning(prog,
"WriteDest: tried to write to non-client\n");
1478 VM_Warning(prog,
"WriteDest: tried to write to a disconnected client\n");
1483 VM_Warning(prog,
"WriteDest: tried to write to a bot client\n");
1490 VM_Warning(prog,
"WriteDest: bad destination\n");
1567 const char *imgname;
1603 if (prog->
argc >= 1)
1609 VM_Warning(prog,
"makestatic: can not modify world entity\n");
1614 VM_Warning(prog,
"makestatic: can not modify free entity\n");
1643 for (
i=0 ;
i<3 ;
i++)
1672 Con_Print(
"tried to setspawnparms on a non-client\n");
1696 vec3_t ambientcolor, diffusecolor, diffusenormal;
1743 stats[
i] = s[ 0] + s[ 1] * 256 + s[ 2] * 65536 + s[ 3] * 16777216;
1744 stats[
i+1] = s[ 4] + s[ 5] * 256 + s[ 6] * 65536 + s[ 7] * 16777216;
1745 stats[
i+2] = s[ 8] + s[ 9] * 256 + s[10] * 65536 + s[11] * 16777216;
1746 stats[
i+3] = s[12] + s[13] * 256 + s[14] * 65536 + s[15] * 16777216;
1790 VM_Warning(prog,
"PF_SV_AddStat: unrecognized type %i - supported types are 1 (string up to 16 bytes, takes 4 stat slots), 2 (truncate to int32), 8 (send as float)",
type);
1802 VM_Warning(prog,
"PF_SV_AddStat: index (%i) >= MAX_CL_STATS (%i), not supported by protocol, and AddStat beyond MAX_VM_STAT (%i) conflicts with engine MOVEVARS\n",
i,
MAX_CL_STATS,
MAX_VM_STAT);
1808 VM_Warning(prog,
"PF_SV_AddStat: index (%i) > (MAX_CL_STATS (%i) - 4) with string type won't fit in the protocol, and AddStat beyond MAX_VM_STAT conflicts with engine MOVEVARS\n",
i,
MAX_CL_STATS);
1814 VM_Warning(prog,
"PF_SV_AddStat: index (%i) < MIN_VM_STAT (%i) may conflict with engine stats - allowed, but this may break things\n",
i,
MIN_VM_STAT);
1816 VM_Warning(prog,
"PF_SV_AddStat: index (%i) >= MAX_VM_STAT (%i) conflicts with engine stats - allowed, but this may break slowmo and stuff\n",
i,
MAX_VM_STAT);
1818 VM_Warning(prog,
"PF_SV_AddStat: index (%i) >= MAX_VM_STAT (%i) - 4 with string type won't fit within MAX_VM_STAT, thus conflicting with engine stats - allowed, but this may break slowmo and stuff\n",
i,
MAX_VM_STAT);
1842 VM_Warning(prog,
"copyentity: can not read world entity\n");
1847 VM_Warning(prog,
"copyentity: can not read free entity\n");
1853 VM_Warning(prog,
"copyentity: can not modify world entity\n");
1858 VM_Warning(prog,
"copyentity: can not modify free entity\n");
1887 Con_Print(
"tried to setcolor a non-client\n");
1924 VM_Warning(prog,
"effect: no model specified\n");
1931 VM_Warning(prog,
"effect: model not precached\n");
1937 VM_Warning(prog,
"effect: framecount < 1\n");
2429 Con_Print(
"PF_clientcommand: entity is not a client\n");
2451 VM_Warning(prog,
"setattachment: can not modify world entity\n");
2456 VM_Warning(prog,
"setattachment: can not modify free entity\n");
2460 if (tagentity ==
NULL)
2461 tagentity = prog->
edicts;
2465 if (tagentity !=
NULL && tagentity != prog->
edicts && tagname && tagname[0])
2521 float pitchsign = 1;
2528 Matrix4x4_CreateFromQuakeEntity(out,
PRVM_serveredictvector(ent,
origin)[0],
PRVM_serveredictvector(ent,
origin)[1],
PRVM_serveredictvector(ent,
origin)[2] +
PRVM_serveredictvector(ent,
view_ofs)[2],
PRVM_serveredictvector(ent,
v_angle)[0],
PRVM_serveredictvector(ent,
v_angle)[1],
PRVM_serveredictvector(ent,
v_angle)[2],
scale *
cl_viewmodel_scale.
value);
2532 Matrix4x4_CreateFromQuakeEntity(out,
PRVM_serveredictvector(ent,
origin)[0],
PRVM_serveredictvector(ent,
origin)[1],
PRVM_serveredictvector(ent,
origin)[2], pitchsign *
PRVM_serveredictvector(ent,
angles)[0],
PRVM_serveredictvector(ent,
angles)[1],
PRVM_serveredictvector(ent,
angles)[2],
scale);
2561 matrix4x4_t entitymatrix, tagmatrix, attachmatrix;
2586 if (attachloop >= 256)
2591 if (
ret && attachloop == 0)
2624 const char *tag_name;
2664 const char *tagname;
2697 VM_Warning(prog,
"gettagindex: can't affect world entity\n");
2700 VM_Warning(prog,
"gettagindex: can't affect free entity\n");
2723 VM_Warning(prog,
"dropclient: not a client\n");
2728 VM_Warning(prog,
"dropclient: that client slot is not connected\n");
2771 else if (
svs.
clients[clientnum].netconnection)
2804 VM_Warning(prog,
"setmodelindex: can not modify world entity\n");
2809 VM_Warning(prog,
"setmodelindex: can not modify free entity\n");
2815 VM_Warning(prog,
"setmodelindex: invalid modelindex\n");
2820 VM_Warning(prog,
"setmodelindex: model not precached\n");
2851 VM_Warning(prog,
"modelnameforindex: invalid modelindex\n");
2856 VM_Warning(prog,
"modelnameforindex: model not precached\n");
2896 int effectnum,
count;
2944 if (pauseValue != 0) {
2978 for (
i = 0;
i < skeleton->
model->num_bones;
i++)
3003 firstbone =
max(0, firstbone);
3004 lastbone =
min(lastbone,
model->num_bones - 1);
3005 lastbone =
min(lastbone, skeleton->
model->num_bones - 1);
3010 for (bonenum = firstbone;bonenum <= lastbone;bonenum++)
3012 memset(&bonematrix, 0,
sizeof(bonematrix));
3013 for (blendindex = 0;blendindex < numblends;blendindex++)
3044 if (bonenum < 0 || bonenum >= skeleton->
model->num_bones)
3058 if (bonenum < 0 || bonenum >= skeleton->
model->num_bones)
3089 if (bonenum < 0 || bonenum >= skeleton->
model->num_bones)
3114 if (bonenum < 0 || bonenum >= skeleton->
model->num_bones)
3118 while ((bonenum = skeleton->
model->data_bones[bonenum].parent) >= 0)
3140 if (bonenum < 0 || bonenum >= skeleton->
model->num_bones)
3161 if (bonenum < 0 || bonenum >= skeleton->
model->num_bones)
3190 firstbone =
max(0, firstbone);
3191 lastbone =
min(lastbone, skeleton->
model->num_bones - 1);
3192 for (bonenum = firstbone;bonenum <= lastbone;bonenum++)
3209 if (skeletonindexdst < 0 || skeletonindexdst >=
MAX_EDICTS || !(skeletondst = prog->
skeletons[skeletonindexdst]))
3211 if (skeletonindexsrc < 0 || skeletonindexsrc >=
MAX_EDICTS || !(skeletonsrc = prog->
skeletons[skeletonindexsrc]))
3213 firstbone =
max(0, firstbone);
3214 lastbone =
min(lastbone, skeletondst->
model->num_bones - 1);
3215 lastbone =
min(lastbone, skeletonsrc->
model->num_bones - 1);
3216 for (bonenum = firstbone;bonenum <= lastbone;bonenum++)
3241 for (
i = 0;
i <
model->numframes;
i++)
3243 if (!strcasecmp(
model->animscenes[
i].name,
name))
3258 if (!
model || !
model->animscenes || framenum < 0 || framenum >=
model->numframes)
3260 if (
model->animscenes[framenum].framerate)
#define SUPERCONTENTS_BODY
#define SUPERCONTENTS_SOLID
void Cmd_AddCommand(unsigned flags, const char *cmd_name, xcommand_t function, const char *description)
called by the init functions of other parts of the program to register commands and functions to call...
void Cmd_ExecuteString(cmd_state_t *cmd, const char *text, size_t textlen, cmd_source_t src, qbool lockmutex)
Parses a single line of text into arguments and tries to execute it.
cmd_state_t * cmd_serverfromclient
command interpreter for server commands received over network from clients uses cmddefs_null
@ src_client
came in over a net connection as a clc_stringcmd host_client will be valid during this state.
#define CF_SERVER
cvar/command that only the server can change/execute
cvar_t collision_extendmovelength
cvar_t collision_extendtracelinelength
cvar_t collision_extendtraceboxlength
size_t InfoString_GetValue(const char *buffer, const char *key, char *value, size_t valuesize)
Returns the number of bytes written to *value excluding the \0 terminator.
void MSG_WriteShort(sizebuf_t *sb, int c)
void MSG_WriteString(sizebuf_t *sb, const char *s)
void MSG_WriteLong(sizebuf_t *sb, int c)
void MSG_WriteCoord(sizebuf_t *sb, float f, protocolversion_t protocol)
void MSG_WriteByte(sizebuf_t *sb, int c)
void MSG_WriteVector(sizebuf_t *sb, const vec3_t v, protocolversion_t protocol)
void MSG_WriteAngle(sizebuf_t *sb, float f, protocolversion_t protocol)
void MSG_WriteUnterminatedString(sizebuf_t *sb, const char *s)
void MSG_WriteChar(sizebuf_t *sb, int c)
void SZ_Write(sizebuf_t *buf, const unsigned char *data, int length)
@ PROTOCOL_NEHAHRABJP2
same as NEHAHRABJP but with 16bit soundindex
@ PROTOCOL_NEHAHRABJP
same as QUAKEDP but with 16bit modelindex
@ PROTOCOL_NEHAHRABJP3
same as NEHAHRABJP2 but with some changes
#define dp_strlcpy(dst, src, dsize)
void Con_Print(const char *msg)
Prints to all appropriate console targets, and adds timestamps.
void Con_DPrintf(const char *fmt,...)
A Con_Printf that only shows up if the "developer" cvar is set.
void Con_Printf(const char *fmt,...)
Prints to all appropriate console targets.
float mod(float dividend, float divisor)
vector gettaginfo_forward
entity viewmodelforclient
static int(ZEXPORT *qz_inflate)(z_stream *strm
GLfloat GLfloat GLfloat v2
GLenum GLenum GLsizei count
GLuint GLuint GLintptr offset
GLenum GLuint GLenum GLsizei const GLchar * buf
qbool Image_Compress(const char *imagename, size_t maxsize, void **buf, size_t *size)
#define VectorNegate(a, b)
#define VectorNormalize(v)
#define bound(min, num, max)
#define VectorMAMAM(scale1, b1, scale2, b2, scale3, b3, out)
#define VectorSubtract(a, b, out)
#define VectorCopy(in, out)
#define VectorScale(in, scale, out)
#define VectorAdd(a, b, out)
#define VectorMA(a, scale, b, out)
void Matrix4x4_Concat(matrix4x4_t *out, const matrix4x4_t *in1, const matrix4x4_t *in2)
void Matrix4x4_CreateIdentity(matrix4x4_t *out)
void Matrix4x4_FromBonePose7s(matrix4x4_t *m, float originscale, const short *pose7s)
void Matrix4x4_CreateFromQuakeEntity(matrix4x4_t *out, double x, double y, double z, double pitch, double yaw, double roll, double scale)
void Matrix4x4_Normalize3(matrix4x4_t *out, matrix4x4_t *in1)
void Matrix4x4_Interpolate(matrix4x4_t *out, matrix4x4_t *in1, matrix4x4_t *in2, double frac)
void Matrix4x4_FromVectors(matrix4x4_t *out, const float vx[3], const float vy[3], const float vz[3], const float t[3])
void Matrix4x4_Accumulate(matrix4x4_t *out, matrix4x4_t *in, double weight)
void Matrix4x4_ToVectors(const matrix4x4_t *in, float vx[3], float vy[3], float vz[3], float t[3])
const matrix4x4_t identitymatrix
void Matrix4x4_Copy(matrix4x4_t *out, const matrix4x4_t *in)
int Mod_Alias_GetExtendedTagInfoForIndex(const model_t *model, unsigned int skin, const frameblend_t *frameblend, const skeleton_t *skeleton, int tagindex, int *parentindex, const char **tagname, matrix4x4_t *tag_localmatrix)
int Mod_Alias_GetTagMatrix(const model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, int tagindex, matrix4x4_t *outmatrix)
int Mod_Alias_GetTagIndexForName(const model_t *model, unsigned int skin, const char *tagname)
int Mod_Q1BSP_NativeContentsFromSuperContents(int supercontents)
unstickresult_t PHYS_NudgeOutOfSolid(prvm_prog_t *prog, prvm_edict_t *ent)
#define PRVM_gameedictvector(ed, fieldname)
#define PRVM_serveredictvector(ed, fieldname)
int PRVM_SetTempString(prvm_prog_t *prog, const char *s, size_t slen)
Takes an strlen (not a buffer size).
void VM_Cmd_Init(prvm_prog_t *prog)
void VM_Warning(prvm_prog_t *prog, const char *fmt,...) DP_FUNC_PRINTF(2)
#define PRVM_serverglobaledict(fieldname)
#define PRVM_serveredictedict(ed, fieldname)
void VM_UpdateEdictSkeleton(prvm_prog_t *prog, prvm_edict_t *ed, const struct model_s *edmodel, const struct frameblend_s *frameblend)
#define PRVM_E_FLOAT(e, o)
#define PRVM_EDICT_TO_PROG(e)
#define PRVM_gameedictstring(ed, fieldname)
int PRVM_SetEngineString(prvm_prog_t *prog, const char *s)
void VM_Cmd_Reset(prvm_prog_t *prog)
#define PRVM_G_EDICTNUM(o)
#define PRVM_EDICT_NUM(n)
#define PRVM_NEXT_EDICT(e)
void(* prvm_builtin_t)(struct prvm_prog_s *prog)
const char * PRVM_GetString(prvm_prog_t *prog, int num)
#define PRVM_EDICT_MARK_SETORIGIN_CAUGHT
#define PRVM_EDICTFIELDEDICT(ed, fieldoffset)
void VM_GenerateFrameGroupBlend(prvm_prog_t *prog, struct framegroupblend_s *framegroupblend, const prvm_edict_t *ed)
#define PRVM_NUM_FOR_EDICT(e)
#define PRVM_PROG_TO_EDICT(n)
#define PRVM_serverglobalfloat(fieldname)
#define PRVM_serveredictfloat(ed, fieldname)
#define PRVM_clientglobalvector(fieldname)
#define PRVM_serverglobalstring(fieldname)
#define PRVM_serveredictstring(ed, fieldname)
void VM_FrameBlendFromFrameGroupBlend(struct frameblend_s *frameblend, const struct framegroupblend_s *framegroupblend, const struct model_s *model, double curtime)
#define PRVM_EDICT_MARK_WAIT_FOR_SETORIGIN
void PRVM_ED_Free(prvm_prog_t *prog, prvm_edict_t *ed)
#define PRVM_E_STRING(e, o)
#define PRVM_serverglobalvector(fieldname)
#define svc_pointparticles1
#define svc_spawnstaticsound2
#define svc_spawnstaticsound
#define MAX_FRAMEGROUPBLENDS
#define TE_SUPERSPIKEQUAD
#define svc_pointparticles
#define svc_trailparticles
void VM_strunzone(prvm_prog_t *prog)
void VM_vectorvectors(prvm_prog_t *prog)
size_t VM_VarString(prvm_prog_t *prog, int first, char *out, size_t outsize)
Returns the length of the *out string excluding the \0 terminator.
void VM_substring(prvm_prog_t *prog)
void VM_entityfieldname(prvm_prog_t *prog)
void VM_buf_writefile(prvm_prog_t *prog)
void VM_getsoundtime(prvm_prog_t *prog)
void VM_objerror(prvm_prog_t *prog)
void VM_fabs(prvm_prog_t *prog)
void VM_isserver(prvm_prog_t *prog)
void VM_nudgeoutofsolid(prvm_prog_t *prog)
void VM_dprint(prvm_prog_t *prog)
void VM_uri_get(prvm_prog_t *prog)
void VM_chr2str(prvm_prog_t *prog)
void VM_digest_hex(prvm_prog_t *prog)
void VM_soundlength(prvm_prog_t *prog)
void VM_strncmp(prvm_prog_t *prog)
void VM_strtolower(prvm_prog_t *prog)
void VM_fgets(prvm_prog_t *prog)
void VM_physics_addtorque(prvm_prog_t *prog)
void VM_search_getsize(prvm_prog_t *prog)
void VM_tan(prvm_prog_t *prog)
void VM_modulo(prvm_prog_t *prog)
void VM_sqrt(prvm_prog_t *prog)
void VM_stov(prvm_prog_t *prog)
void VM_random(prvm_prog_t *prog)
void VM_eprint(prvm_prog_t *prog)
void VM_bitshift(prvm_prog_t *prog)
void VM_buf_getsize(prvm_prog_t *prog)
void VM_getsurfacetexture(prvm_prog_t *prog)
void VM_search_end(prvm_prog_t *prog)
void VM_getentityfieldstring(prvm_prog_t *prog)
void VM_bufstr_get(prvm_prog_t *prog)
void VM_cvar_type(prvm_prog_t *prog)
void VM_makevectors(prvm_prog_t *prog)
void VM_vlen(prvm_prog_t *prog)
void VM_physics_addforce(prvm_prog_t *prog)
void VM_search_getfilename(prvm_prog_t *prog)
void VM_coverage(prvm_prog_t *prog)
void VM_break(prvm_prog_t *prog)
void VM_strlennocol(prvm_prog_t *prog)
void VM_tokenize(prvm_prog_t *prog)
void VM_numentityfields(prvm_prog_t *prog)
void VM_SetTraceGlobals(prvm_prog_t *prog, const trace_t *trace)
void VM_vtos(prvm_prog_t *prog)
void VM_getsurfacenumpoints(prvm_prog_t *prog)
void VM_argv_start_index(prvm_prog_t *prog)
void VM_getsurfacepointattribute(prvm_prog_t *prog)
void VM_registercvar(prvm_prog_t *prog)
void VM_uri_unescape(prvm_prog_t *prog)
void VM_infoget(prvm_prog_t *prog)
void VM_randomvec(prvm_prog_t *prog)
void VM_matchpattern(prvm_prog_t *prog)
void VM_atan2(prvm_prog_t *prog)
void VM_etos(prvm_prog_t *prog)
void VM_cvar_defstring(prvm_prog_t *prog)
void VM_asin(prvm_prog_t *prog)
void VM_vectoyaw(prvm_prog_t *prog)
void VM_strlen(prvm_prog_t *prog)
void VM_strconv(prvm_prog_t *prog)
void VM_rint(prvm_prog_t *prog)
void VM_bound(prvm_prog_t *prog)
void VM_argv_end_index(prvm_prog_t *prog)
void VM_buf_implode(prvm_prog_t *prog)
void VM_precache_file(prvm_prog_t *prog)
void VM_spawn(prvm_prog_t *prog)
void VM_tokenize_console(prvm_prog_t *prog)
void VM_sprintf(prvm_prog_t *prog)
void VM_buf_cvarlist(prvm_prog_t *prog)
void VM_find(prvm_prog_t *prog)
void VM_stof(prvm_prog_t *prog)
void VM_getsurfacetriangle(prvm_prog_t *prog)
void VM_fputs(prvm_prog_t *prog)
void VM_bufstr_add(prvm_prog_t *prog)
void VM_strdecolorize(prvm_prog_t *prog)
void VM_uri_escape(prvm_prog_t *prog)
void VM_findchainflags(prvm_prog_t *prog)
void VM_writetofile(prvm_prog_t *prog)
void VM_physics_enable(prvm_prog_t *prog)
void VM_putentityfieldstring(prvm_prog_t *prog)
void VM_etof(prvm_prog_t *prog)
void VM_nextent(prvm_prog_t *prog)
void VM_parseentitydata(prvm_prog_t *prog)
void VM_fclose(prvm_prog_t *prog)
void VM_ftoe(prvm_prog_t *prog)
void VM_findfloat(prvm_prog_t *prog)
void VM_strcat(prvm_prog_t *prog)
void VM_atan(prvm_prog_t *prog)
void VM_ceil(prvm_prog_t *prog)
void VM_buf_del(prvm_prog_t *prog)
void VM_strpad(prvm_prog_t *prog)
void VM_strtoupper(prvm_prog_t *prog)
void VM_normalize(prvm_prog_t *prog)
void VM_changeyaw(prvm_prog_t *prog)
void VM_tokenizebyseparator(prvm_prog_t *prog)
void VM_strftime(prvm_prog_t *prog)
void VM_floor(prvm_prog_t *prog)
void VM_cos(prvm_prog_t *prog)
void VM_whichpack(prvm_prog_t *prog)
void VM_buf_sort(prvm_prog_t *prog)
void VM_bufstr_find(prvm_prog_t *prog)
void VM_strzone(prvm_prog_t *prog)
void VM_cvar_set(prvm_prog_t *prog)
void VM_isfunction(prvm_prog_t *prog)
void VM_bprint(prvm_prog_t *prog)
void VM_argv(prvm_prog_t *prog)
void VM_strreplace(prvm_prog_t *prog)
void VM_min(prvm_prog_t *prog)
void VM_changepitch(prvm_prog_t *prog)
qbool PRVM_ConsoleCommand(prvm_prog_t *prog, const char *text, size_t textlen, int *func, qbool preserve_self, int curself, double ptime, const char *error_message)
void VM_checkextension(prvm_prog_t *prog)
void VM_ftos(prvm_prog_t *prog)
void VM_bufstr_set(prvm_prog_t *prog)
void VM_findflags(prvm_prog_t *prog)
void VM_getsurfacenumtriangles(prvm_prog_t *prog)
void VM_acos(prvm_prog_t *prog)
void VM_loadfromfile(prvm_prog_t *prog)
void VM_gettime(prvm_prog_t *prog)
void VM_findchainfloat(prvm_prog_t *prog)
void VM_findchain(prvm_prog_t *prog)
void VM_getsurfaceclippedpoint(prvm_prog_t *prog)
void VM_traceon(prvm_prog_t *prog)
void VM_strstrofs(prvm_prog_t *prog)
void VM_fopen(prvm_prog_t *prog)
void VM_max(prvm_prog_t *prog)
void VM_bufstr_free(prvm_prog_t *prog)
void VM_getsurfacepoint(prvm_prog_t *prog)
void VM_getsurfacenearpoint(prvm_prog_t *prog)
void VM_buf_copy(prvm_prog_t *prog)
void VM_cvar_description(prvm_prog_t *prog)
void VM_search_begin(prvm_prog_t *prog)
void VM_crc16(prvm_prog_t *prog)
void VM_remove(prvm_prog_t *prog)
void VM_error(prvm_prog_t *prog)
void VM_buf_create(prvm_prog_t *prog)
void VM_str2chr(prvm_prog_t *prog)
void VM_print(prvm_prog_t *prog)
void VM_cvar(prvm_prog_t *prog)
void VM_cvar_string(prvm_prog_t *prog)
void VM_changelevel(prvm_prog_t *prog)
void VM_SV_getextresponse(prvm_prog_t *prog)
void VM_traceoff(prvm_prog_t *prog)
void VM_callfunction(prvm_prog_t *prog)
void VM_infoadd(prvm_prog_t *prog)
void VM_wasfreed(prvm_prog_t *prog)
void VM_buf_loadfile(prvm_prog_t *prog)
void VM_localcmd(prvm_prog_t *prog)
void VM_sin(prvm_prog_t *prog)
void VM_getsurfacenormal(prvm_prog_t *prog)
void VM_pow(prvm_prog_t *prog)
void VM_log(prvm_prog_t *prog)
void VM_coredump(prvm_prog_t *prog)
void VM_strireplace(prvm_prog_t *prog)
void VM_strncasecmp(prvm_prog_t *prog)
void VM_loadfromdata(prvm_prog_t *prog)
void VM_vectoangles(prvm_prog_t *prog)
void VM_entityfieldtype(prvm_prog_t *prog)
#define VM_RETURN_EDICT(e)
#define VM_TEMPSTRING_MAXSIZE
#define VM_SAFEPARMCOUNT(p, f)
#define VM_SAFEPARMCOUNTRANGE(p1, p2, f)
#define MAX_EDICTS
max number of objects in game world at once (32768 protocol limit)
#define MAX_LIGHTSTYLES
max flickering light styles in level (note: affects savegame format)
#define MAX_MODELS
max number of models loaded at once (including during level transitions)
#define MAX_VM_STAT
stat range available to VM_SV_AddStat
#define MIN_VM_STAT
stat range available to VM_SV_AddStat
cvar_t cl_viewmodel_scale
int SV_SoundIndex(const char *s, int precachemode)
cvar_t sv_gameplayfix_droptofloorstartsolid_nudgetocorrect
void SV_StartPointSound(vec3_t origin, const char *sample, int volume, float attenuation, float speed)
void SV_StartParticle(vec3_t org, vec3_t dir, int color, int count)
qbool SV_CheckBottom(prvm_edict_t *ent)
void SV_FlushBroadcastMessages(void)
void SV_StartEffect(vec3_t org, int modelindex, int startframe, int framecount, int framerate)
void SV_StartSound(prvm_edict_t *entity, int channel, const char *sample, int volume, float attenuation, qbool reliable, float speed)
int SV_ModelIndex(const char *s, int precachemode)
model_t * SV_GetModelByIndex(int modelindex)
cvar_t sv_gameplayfix_findradiusdistancetobox
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)
void VM_SV_MoveToGoal(prvm_prog_t *prog)
void SV_LinkEdict(prvm_edict_t *ent)
#define SOLID_NOT
no interaction with other objects
int SV_EntitiesInBox(const vec3_t mins, const vec3_t maxs, int maxedicts, prvm_edict_t **resultedicts)
void SV_CheckVelocity(prvm_edict_t *ent)
int SV_GetPitchSign(prvm_prog_t *prog, prvm_edict_t *ent)
void SV_DropClient(qbool leaving, const char *reason,...)
int SV_GenericHitSuperContentsMask(const prvm_edict_t *edict)
calculates hitsupercontentsmask for a generic qc entity
model_t * SV_GetModelFromEdict(prvm_edict_t *ed)
server_static_t svs
persistant server info
int SV_PointSuperContents(const vec3_t point)
cvar_t sv_gameplayfix_droptofloorstartsolid
int SV_ParticleEffectIndex(const char *name)
void SV_ClientCommands(const char *fmt,...) DP_FUNC_PRINTF(1)
void SV_ConnectClient(int clientnum, netconn_t *netconnection)
qbool SV_movestep(prvm_edict_t *ent, vec3_t move, qbool relink, qbool noenemy, qbool settrace)
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
cvar_t sv_gameplayfix_blowupfallenzombies
cvar_t sv_gameplayfix_setmodelrealbox
#define CHANNELFLAG_FORCELOOP
#define CHANNELFLAG_RELIABLE
#define CHANNELFLAG_FULLVOLUME
#define CHANNELFLAG_PAUSED
#define CHAN_USER2ENGINE(c)
qbool active
false = empty client slot
prvm_vec_t spawn_parms[NUM_SPAWN_PARMS]
spawn parms are carried from level to level
netconn_t * netconnection
communications handle
prvm_edict_t * edict
PRVM_EDICT_NUM(clientnum+1)
double realtime
the accumulated mainloop time since application started (with filtering), without any slowmo or clamp...
sizebuf_t message
writing buffer to send to peer as the next reliable message can be added to at any time,...
int mark
mark for the leak detector
union prvm_edict_t::@30 fields
qbool free
true if this edict is unused
union prvm_edict_t::@29 priv
struct edict_engineprivate_s * server
FIXME: this server pointer really means world, not server (it is used by both server qc and client qc...
prvm_edict_private_t * required
int entityfields
number of vec_t fields in progs (some variables are 3)
prvm_prog_funcoffsets_t funcoffsets
const char * name
name of the prog, e.g. "Server", "Client" or "Menu" (used for text output)
void(* error_cmd)(const char *format,...) DP_FUNC_PRINTF(1) DP_FUNC_NORETURN
[INIT]
int num_edicts
copies of some vars that were former read from sv
prvm_prog_fieldoffsets_t fieldoffsets
mempool_t * progs_mempool
all memory allocations related to this vm_prog (code, edicts, strings)
struct skeleton_s * skeletons[MAX_EDICTS]
struct client_s * clients
client slots
char serverinfo[MAX_SERVERINFO_STRING]
server infostring
int maxclients
number of svs.clients slots (updated by maxplayers command)
char lightstyles[MAX_LIGHTSTYLES][64]
world_t world
collision culling data
char model_precache[MAX_MODELS][MAX_QPATH]
server_state_t state
some actions are only valid during load
sizebuf_t reliable_datagram
sizebuf_t * writeentitiestoclient_msg
struct model_s * worldmodel
protocolversion_t protocol
one of the PROTOCOL_ values
const struct model_s * model
struct matrix4x4_s * relativetransforms
struct prvm_prog_s * prog
static void VM_SV_te_lightning1(prvm_prog_t *prog)
static void VM_SV_te_spike(prvm_prog_t *prog)
static void VM_SV_te_customflash(prvm_prog_t *prog)
static void VM_SV_WriteUnterminatedString(prvm_prog_t *prog)
static void VM_SV_centerprint(prvm_prog_t *prog)
static void VM_SV_WriteByte(prvm_prog_t *prog)
static void VM_SV_WriteEntity(prvm_prog_t *prog)
static void VM_SV_WriteCoord(prvm_prog_t *prog)
static void VM_SV_setmodel(prvm_prog_t *prog)
static void VM_SV_te_lavasplash(prvm_prog_t *prog)
static void VM_SV_te_spark(prvm_prog_t *prog)
static sizebuf_t * WriteDest(prvm_prog_t *prog)
static void VM_SV_copyentity(prvm_prog_t *prog)
static void VM_SV_WritePicture(prvm_prog_t *prog)
static void VM_SV_te_spikequad(prvm_prog_t *prog)
static void VM_SV_setcolor(prvm_prog_t *prog)
static int SV_GetTagMatrix(prvm_prog_t *prog, matrix4x4_t *out, prvm_edict_t *ent, int tagindex)
static void VM_SV_te_tarexplosion(prvm_prog_t *prog)
static trace_t SV_Trace_Toss(prvm_prog_t *prog, prvm_edict_t *tossent, prvm_edict_t *ignore)
static void VM_SV_skel_get_boneabs(prvm_prog_t *prog)
static void VM_SV_skel_find_bone(prvm_prog_t *prog)
static void VM_SV_setsize(prvm_prog_t *prog)
static void VM_SV_ambientsound(prvm_prog_t *prog)
static void VM_SV_sprint(prvm_prog_t *prog)
static void VM_SV_te_flamejet(prvm_prog_t *prog)
static void VM_SV_findradius(prvm_prog_t *prog)
static void VM_SV_setpause(prvm_prog_t *prog)
static void VM_SV_te_smallflash(prvm_prog_t *prog)
static void VM_SV_AddStat(prvm_prog_t *prog)
static void VM_SV_particle(prvm_prog_t *prog)
void VM_CustomStats_Clear(void)
static void VM_SV_pointsound(prvm_prog_t *prog)
static void VM_SV_lightstyle(prvm_prog_t *prog)
static void VM_SV_particleeffectnum(prvm_prog_t *prog)
static void VM_SV_gettaginfo(prvm_prog_t *prog)
static void VM_SV_te_explosionrgb(prvm_prog_t *prog)
static void VM_SV_findbox(prvm_prog_t *prog)
const char * vm_sv_extensions[]
client also uses this
static void VM_SV_skel_set_bone(prvm_prog_t *prog)
void VM_SV_UpdateCustomStats(client_t *client, prvm_edict_t *ent, sizebuf_t *msg, int *stats)
static void VM_SV_te_particlerain(prvm_prog_t *prog)
static void VM_SV_checkpvs(prvm_prog_t *prog)
static int vm_customstats_last
static void VM_SV_WriteAngle(prvm_prog_t *prog)
static void VM_SV_makestatic(prvm_prog_t *prog)
static int VM_SV_newcheckclient(prvm_prog_t *prog, int check)
prvm_builtin_t vm_sv_builtins[]
static void VM_SV_te_superspikequad(prvm_prog_t *prog)
static void VM_SV_frameduration(prvm_prog_t *prog)
static int SV_GetEntityLocalTagMatrix(prvm_prog_t *prog, prvm_edict_t *ent, int tagindex, matrix4x4_t *out)
static void VM_SV_skel_mul_bones(prvm_prog_t *prog)
static void VM_SV_skel_get_numbones(prvm_prog_t *prog)
static void VM_SV_clienttype(prvm_prog_t *prog)
static void VM_SV_setspawnparms(prvm_prog_t *prog)
static void VM_SV_WriteString(prvm_prog_t *prog)
static void VM_SV_te_explosionquad(prvm_prog_t *prog)
static void SetMinMaxSize(prvm_prog_t *prog, prvm_edict_t *e, float *min, float *max, qbool rotate)
static void VM_SV_getlight(prvm_prog_t *prog)
static void VM_SV_frameforname(prvm_prog_t *prog)
static void VM_SV_pointcontents(prvm_prog_t *prog)
static void VM_SV_aim(prvm_prog_t *prog)
static void VM_SV_te_gunshotquad(prvm_prog_t *prog)
static void VM_SV_effect(prvm_prog_t *prog)
static void VM_SV_skel_copybones(prvm_prog_t *prog)
static void VM_SV_skel_mul_bone(prvm_prog_t *prog)
static qbool droptofloor_bsp_failcond(trace_t *trace)
static void VM_SV_gettagindex(prvm_prog_t *prog)
static void VM_SV_skel_get_boneparent(prvm_prog_t *prog)
static void VM_SV_tracetoss(prvm_prog_t *prog)
static void VM_SV_skel_get_bonerel(prvm_prog_t *prog)
static void VM_SV_skel_get_bonename(prvm_prog_t *prog)
static void VM_SV_setattachment(prvm_prog_t *prog)
static void VM_SV_traceline(prvm_prog_t *prog)
static void VM_SV_clientcommand(prvm_prog_t *prog)
void SV_GetEntityMatrix(prvm_prog_t *prog, prvm_edict_t *ent, matrix4x4_t *out, qbool viewmatrix)
static void VM_SV_te_gunshot(prvm_prog_t *prog)
static void VM_SV_checkclient(prvm_prog_t *prog)
static void VM_SV_WriteChar(prvm_prog_t *prog)
static void VM_SV_serverkey(prvm_prog_t *prog)
void SVVM_reset_cmd(prvm_prog_t *prog)
static void VM_SV_WriteShort(prvm_prog_t *prog)
static void VM_SV_pointparticles(prvm_prog_t *prog)
static void VM_SV_te_lightning2(prvm_prog_t *prog)
static void VM_SV_skel_create(prvm_prog_t *prog)
static void VM_SV_te_blood(prvm_prog_t *prog)
static void VM_SV_setmodelindex(prvm_prog_t *prog)
void SVVM_init_cmd(prvm_prog_t *prog)
static void VM_SV_te_wizspike(prvm_prog_t *prog)
static void VM_SV_walkmove(prvm_prog_t *prog)
const int vm_sv_numbuiltins
static void VM_SV_dropclient(prvm_prog_t *prog)
static void VM_SV_setorigin(prvm_prog_t *prog)
static void VM_SV_te_particlecube(prvm_prog_t *prog)
static void VM_SV_droptofloor(prvm_prog_t *prog)
static void VM_SV_precache_model(prvm_prog_t *prog)
static void VM_SV_te_superspike(prvm_prog_t *prog)
static void VM_SV_te_particlesnow(prvm_prog_t *prog)
static void VM_SV_trailparticles(prvm_prog_t *prog)
static void VM_SV_te_beam(prvm_prog_t *prog)
static void VM_SV_WriteLong(prvm_prog_t *prog)
static void VM_SV_te_lightning3(prvm_prog_t *prog)
static void VM_SV_te_knightspike(prvm_prog_t *prog)
static unsigned char * checkpvs
static void VM_SV_stuffcmd(prvm_prog_t *prog)
static void VM_SV_te_explosion2(prvm_prog_t *prog)
static void VM_SV_tracebox(prvm_prog_t *prog)
static void VM_SV_sound(prvm_prog_t *prog)
static void VM_SV_te_plasmaburn(prvm_prog_t *prog)
static int SV_GetTagIndex(prvm_prog_t *prog, prvm_edict_t *e, const char *tagname)
static void VM_SV_skel_build(prvm_prog_t *prog)
static void VM_SV_skel_delete(prvm_prog_t *prog)
static void VM_SV_modelnameforindex(prvm_prog_t *prog)
static void VM_SV_registercommand(prvm_prog_t *prog)
static void VM_SV_precache_sound(prvm_prog_t *prog)
static void VM_SV_spawnclient(prvm_prog_t *prog)
static int SV_GetExtendedTagInfo(prvm_prog_t *prog, prvm_edict_t *e, int tagindex, int *parentindex, const char **tagname, matrix4x4_t *tag_localmatrix)
static customstat_t vm_customstats[MAX_CL_STATS]
qbool SV_VM_ConsoleCommand(const char *text, size_t textlen)
static void VM_SV_te_explosion(prvm_prog_t *prog)
static void VM_SV_te_teleport(prvm_prog_t *prog)
static void VM_SV_checkbottom(prvm_prog_t *prog)
static void VM_SV_te_bloodshower(prvm_prog_t *prog)
void World_End(world_t *world)
#define Mem_Alloc(pool, size)