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");
794 check =
bound(1, check,
svs.maxclients);
795 if (check ==
svs.maxclients)
805 if (i ==
svs.maxclients+1)
818 if (
sv.worldmodel &&
sv.worldmodel->brush.FatPVS)
850 if (
sv.time -
sv.lastchecktime >= 0.1)
853 sv.lastchecktime =
sv.time;
867 if (
sv.worldmodel &&
checkpvs && !
sv.worldmodel->brush.BoxTouchingPVS(
sv.worldmodel,
checkpvs, view, view))
898 unsigned char *fatpvs =
NULL;
907 VM_Warning(prog,
"checkpvs: can not check free entity\n");
913 if(!
sv.worldmodel || !
sv.worldmodel->brush.GetPVS || !
sv.worldmodel->brush.BoxTouchingPVS)
919 pvs =
sv.worldmodel->brush.GetPVS(
sv.worldmodel, viewpos);
931 if(!
sv.worldmodel || !
sv.worldmodel->brush.FatPVS || !
sv.worldmodel->brush.BoxTouchingPVS)
937 sv.worldmodel->brush.FatPVS(
sv.worldmodel, viewpos, 8, &fatpvs,
sv_mempool,
false);
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)
1098 chain = touchedicts[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;
1183 if (
sv.worldmodel->brush.isq3bsp ||
sv.worldmodel->brush.isq2bsp)
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)));
1221 if (
sv.worldmodel->brush.isq3bsp)
1223 else if (
sv.worldmodel->brush.isq2bsp)
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);
1308 for (j = 0, client =
svs.clients;j <
svs.maxclients;j++, client++)
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
1466 return &
sv.datagram;
1473 VM_Warning(prog,
"WriteDest: tried to write to non-client\n");
1474 return &
sv.reliable_datagram;
1478 VM_Warning(prog,
"WriteDest: tried to write to a disconnected client\n");
1479 return &
sv.reliable_datagram;
1481 else if (!
svs.clients[
entnum-1].netconnection)
1483 VM_Warning(prog,
"WriteDest: tried to write to a bot client\n");
1484 return &
sv.reliable_datagram;
1487 return &
svs.clients[
entnum-1].netconnection->message;
1490 VM_Warning(prog,
"WriteDest: bad destination\n");
1492 return &
sv.reliable_datagram;
1498 return sv.writeentitiestoclient_msg;
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++)
1670 if (i < 1 || i >
svs.maxclients || !
svs.clients[i-1].active)
1672 Con_Print(
"tried to setspawnparms on a non-client\n");
1677 client =
svs.clients + i-1;
1696 vec3_t ambientcolor, diffusecolor, diffusenormal;
1703 if (
sv.worldmodel &&
sv.worldmodel->brush.LightPoint)
1704 sv.worldmodel->brush.LightPoint(
sv.worldmodel, p, 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");
2427 if (i < 0 || i >=
svs.maxclients || !
svs.clients[i].active)
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");
2721 if (clientnum < 0 || clientnum >=
svs.maxclients)
2723 VM_Warning(prog,
"dropclient: not a client\n");
2726 if (!
svs.clients[clientnum].active)
2728 VM_Warning(prog,
"dropclient: that client slot is not connected\n");
2745 for (i = 0;i <
svs.maxclients;i++)
2747 if (!
svs.clients[i].active)
2753 svs.clients[i].clientconnectcalled =
true;
2767 if (clientnum < 0 || clientnum >=
svs.maxclients)
2769 else if (!
svs.clients[clientnum].active)
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");
2818 if (!
sv.model_precache[i][0])
2820 VM_Warning(prog,
"setmodelindex: model not precached\n");
2851 VM_Warning(prog,
"modelnameforindex: invalid modelindex\n");
2854 if (!
sv.model_precache[i][0])
2856 VM_Warning(prog,
"modelnameforindex: model not precached\n");
2896 int effectnum,
count;
2944 if (pauseValue != 0) {
2946 sv.pausedstart =
host.realtime;
2948 if (
sv.paused != 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)
const char * vm_sv_extensions[]
client also uses this
#define PRVM_G_EDICTNUM(o)
#define PRVM_EDICT_NUM(n)
#define PRVM_NEXT_EDICT(e)
prvm_builtin_t vm_sv_builtins[]
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)
const int vm_sv_numbuiltins
#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)
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
qbool free
true if this edict is unused
union prvm_edict_t::@123106147040330276163271355201011305114267000315 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...
union prvm_edict_t::@130370055076073023136252053272156300303324036224 fields
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]
const struct model_s * model
struct matrix4x4_s * relativetransforms
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)
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)
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)
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)