saveProg = prog;
PRVM_SetProg(instance->ownerProg);
- if (prog->funcoffsets.Gecko_Query)
+ if (PRVM_clientfunction(Gecko_Query))
{
OSGK_String* paramStr, *resultStr;
if (!osgk_variant_get_string (strVal, ¶mStr)) return srFailed;
PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString (instance->name);
PRVM_G_INT(OFS_PARM1) = PRVM_SetTempString (osgk_string_get (paramStr));
- PRVM_ExecuteProgram(prog->funcoffsets.Gecko_Query,"Gecko_Query() required");
+ PRVM_ExecuteProgram(PRVM_clientfunction(Gecko_Query),"Gecko_Query() required");
resultStr = osgk_string_create (PRVM_G_STRING (OFS_RETURN));
*returnVal = osgk_variant_create_string (cl_geckoembedding, resultStr);
osgk_release (resultStr);
}
// callprofile fixing hack: do not include this time in what is counted for CSQC_UpdateView
- prog->functions[prog->funcoffsets.CSQC_UpdateView].totaltime -= Sys_DoubleTime() - t;
+ prog->functions[PRVM_clientfunction(CSQC_UpdateView)].totaltime -= Sys_DoubleTime() - t;
}
//#302 void(entity ent) addentity (EXT_CSQC)
double t = Sys_DoubleTime();
VM_SAFEPARMCOUNT(1, VM_CL_R_AddEntity);
CSQC_AddRenderEdict(PRVM_G_EDICT(OFS_PARM0), 0);
- prog->functions[prog->funcoffsets.CSQC_UpdateView].totaltime -= Sys_DoubleTime() - t;
+ prog->functions[PRVM_clientfunction(CSQC_UpdateView)].totaltime -= Sys_DoubleTime() - t;
}
//#303 float(float property, ...) setproperty (EXT_CSQC)
R_RTLight_Update(&r_refdef.scene.templights[r_refdef.scene.numlights], false, &matrix, col, style, cubemapname, castshadow, coronaintensity, coronasizescale, ambientscale, diffusescale, specularscale, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
r_refdef.scene.lights[r_refdef.scene.numlights] = &r_refdef.scene.templights[r_refdef.scene.numlights];r_refdef.scene.numlights++;
- prog->functions[prog->funcoffsets.CSQC_UpdateView].totaltime -= Sys_DoubleTime() - t;
+ prog->functions[PRVM_clientfunction(CSQC_UpdateView)].totaltime -= Sys_DoubleTime() - t;
}
//============================================================================
polys->progstarttime = prog->starttime;
// callprofile fixing hack: do not include this time in what is counted for CSQC_UpdateView
- prog->functions[prog->funcoffsets.CSQC_UpdateView].totaltime -= Sys_DoubleTime() - t;
+ prog->functions[PRVM_clientfunction(CSQC_UpdateView)].totaltime -= Sys_DoubleTime() - t;
}
static void VM_ResizePolygons(vmpolygons_t *polys)
prvm_required_field_t cl_reqfields[] =
{
- {ev_entity, "aiment"}, // client field
- {ev_entity, "enemy"}, // client field
- {ev_entity, "groundentity"}, // client field
- {ev_entity, "tag_entity"}, // client field
- {ev_float, "alpha"}, // client field
- {ev_float, "bouncefactor"}, // client field
- {ev_float, "bouncestop"}, // client field
- {ev_float, "dphitcontentsmask"}, // client field
- {ev_float, "frame1time"}, // client field
- {ev_float, "frame2time"}, // client field
- {ev_float, "frame2"}, // client field
- {ev_float, "frame3time"}, // client field
- {ev_float, "frame3"}, // client field
- {ev_float, "frame4time"}, // client field
- {ev_float, "frame4"}, // client field
- {ev_float, "frame"}, // client field
- {ev_float, "gravity"}, // client field
- {ev_float, "gravity"}, // client field
- {ev_float, "ideal_yaw"}, // client field
- {ev_float, "idealpitch"}, // client field
- {ev_float, "jointtype"}, // client field
- {ev_float, "lerpfrac3"}, // client field
- {ev_float, "lerpfrac4"}, // client field
- {ev_float, "lerpfrac"}, // client field
- {ev_float, "mass"}, // client field
- {ev_float, "modelindex"}, // client field
- {ev_float, "movetype"}, // client field
- {ev_float, "pitch_speed"}, // client field
- {ev_float, "renderflags"}, // client field
- {ev_float, "scale"}, // client field
- {ev_float, "scale"}, // client field
- {ev_float, "shadertime"}, // client field
- {ev_float, "skeletonindex"}, // client field
- {ev_float, "solid"}, // client field
- {ev_float, "tag_index"}, // client field
- {ev_float, "userwavefunc_param0"}, // client field
- {ev_float, "userwavefunc_param1"}, // client field
- {ev_float, "userwavefunc_param2"}, // client field
- {ev_float, "userwavefunc_param3"}, // client field
- {ev_float, "yaw_speed"}, // client field
- {ev_function, "camera_transform"}, // client field
- {ev_string, "classname"}, // client field
- {ev_string, "message"}, // client field
- {ev_vector, "angles"}, // client field
- {ev_vector, "avelocity"}, // client field
- {ev_vector, "colormod"}, // client field
- {ev_vector, "glowmod"}, // client field
- {ev_vector, "maxs"}, // client field
- {ev_vector, "mins"}, // client field
- {ev_vector, "movedir"}, // client field
- {ev_vector, "origin"}, // client field
- {ev_vector, "velocity"}, // client field
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x) {ev_float, #x },
+#define PRVM_DECLARE_clientfieldvector(x) {ev_vector, #x },
+#define PRVM_DECLARE_clientfieldstring(x) {ev_string, #x },
+#define PRVM_DECLARE_clientfieldedict(x) {ev_entity, #x },
+#define PRVM_DECLARE_clientfieldfunction(x) {ev_function, #x },
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x)
+#define PRVM_DECLARE_global(x)
+#define PRVM_DECLARE_function(x)
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
};
#define CL_REQGLOBALS (sizeof(cl_reqglobals) / sizeof(prvm_required_field_t))
prvm_required_field_t cl_reqglobals[] =
{
- {ev_entity, "self"}, // client global
- {ev_entity, "trace_ent"}, // client global
- {ev_float, "coop"}, // client global
- {ev_float, "deathmatch"}, // client global
- {ev_float, "dmg_save"}, // client global
- {ev_float, "dmg_take"}, // client global
- {ev_float, "drawfont"}, // client global
- {ev_float, "gettaginfo_parent"}, // client global
- {ev_float, "intermission"}, // client global
- {ev_float, "particle_airfriction"}, // client global
- {ev_float, "particle_alpha"}, // client global
- {ev_float, "particle_alphafade"}, // client global
- {ev_float, "particle_angle"}, // client global
- {ev_float, "particle_blendmode"}, // client global
- {ev_float, "particle_bounce"}, // client global
- {ev_float, "particle_delaycollision"}, // client global
- {ev_float, "particle_delayspawn"}, // client global
- {ev_float, "particle_gravity"}, // client global
- {ev_float, "particle_liquidfriction"}, // client global
- {ev_float, "particle_orientation"}, // client global
- {ev_float, "particle_originjitter"}, // client global
- {ev_float, "particle_qualityreduction"}, // client global
- {ev_float, "particle_size"}, // client global
- {ev_float, "particle_sizeincrease"}, // client global
- {ev_float, "particle_spin"}, // client global
- {ev_float, "particle_stainalpha"}, // client global
- {ev_float, "particle_stainsize"}, // client global
- {ev_float, "particle_staintex"}, // client global
- {ev_float, "particle_staintex"}, // client global
- {ev_float, "particle_stretch"}, // client global
- {ev_float, "particle_tex"}, // client global
- {ev_float, "particle_time"}, // client global
- {ev_float, "particle_type"}, // client global
- {ev_float, "particle_velocityjitter"}, // client global
- {ev_float, "particles_alphamax"}, // client global
- {ev_float, "particles_alphamin"}, // client global
- {ev_float, "require_spawnfunc_prefix"}, // client global
- {ev_float, "sb_showscores"}, // client global
- {ev_float, "serverdeltatime"}, // client global
- {ev_float, "serverprevtime"}, // client global
- {ev_float, "servertime"}, // client global
- {ev_float, "trace_allsolid"}, // client global
- {ev_float, "trace_dphitcontents"}, // client global
- {ev_float, "trace_dphitq3surfaceflags"}, // client global
- {ev_float, "trace_dpstartcontents"}, // client global
- {ev_float, "trace_fraction"}, // client global
- {ev_float, "trace_inopen"}, // client global
- {ev_float, "trace_inwater"}, // client global
- {ev_float, "trace_networkentity"}, // client global
- {ev_float, "trace_plane_dist"}, // client global
- {ev_float, "trace_startsolid"}, // client global
- {ev_float, "transparent_offset"}, // client global
- {ev_string, "gettaginfo_name"}, // client global
- {ev_string, "trace_dphittexturename"}, // client global
- {ev_vector, "dmg_origin"}, // client global
- {ev_vector, "drawfontscale"}, // client global
- {ev_vector, "gettaginfo_forward"}, // client global
- {ev_vector, "gettaginfo_offset"}, // client global
- {ev_vector, "gettaginfo_right"}, // client global
- {ev_vector, "gettaginfo_up"}, // client global
- {ev_vector, "particle_color1"}, // client global
- {ev_vector, "particle_color2"}, // client global
- {ev_vector, "particle_staincolor1"}, // client global
- {ev_vector, "particle_staincolor2"}, // client global
- {ev_vector, "particles_colormax"}, // client global
- {ev_vector, "particles_colormin"}, // client global
- {ev_vector, "pmove_inwater"}, // client global
- {ev_vector, "pmove_onground"}, // client global
- {ev_vector, "trace_endpos"}, // client global
- {ev_vector, "trace_plane_normal"}, // client global
- {ev_vector, "v_forward"}, // client global
- {ev_vector, "v_right"}, // client global
- {ev_vector, "v_up"}, // client global
- {ev_vector, "view_angles"}, // client global
- {ev_vector, "view_punchangle"}, // client global
- {ev_vector, "view_punchvector"}, // client global
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x) {ev_float, #x},
+#define PRVM_DECLARE_clientglobalvector(x) {ev_vector, #x},
+#define PRVM_DECLARE_clientglobalstring(x) {ev_string, #x},
+#define PRVM_DECLARE_clientglobaledict(x) {ev_entity, #x},
+#define PRVM_DECLARE_clientglobalfunction(x) {ev_function, #x},
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x)
+#define PRVM_DECLARE_global(x)
+#define PRVM_DECLARE_function(x)
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
};
void CL_VM_Error (const char *format, ...) DP_FUNC_PRINTF(1);
return false;
CSQC_BEGIN
- if (!prog->funcoffsets.CSQC_InputEvent)
+ if (!PRVM_clientfunction(CSQC_InputEvent))
r = false;
else
{
PRVM_G_FLOAT(OFS_PARM0) = !down; // 0 is down, 1 is up
PRVM_G_FLOAT(OFS_PARM1) = key;
PRVM_G_FLOAT(OFS_PARM2) = ascii;
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_InputEvent, "QC function CSQC_InputEvent is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_InputEvent), "QC function CSQC_InputEvent is missing");
r = CSQC_RETURNVAL != 0;
}
CSQC_END
// pass in width and height as parameters (EXT_CSQC_1)
PRVM_G_FLOAT(OFS_PARM0) = vid.width;
PRVM_G_FLOAT(OFS_PARM1) = vid.height;
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_UpdateView, "QC function CSQC_UpdateView is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_UpdateView), "QC function CSQC_UpdateView is missing");
//VectorCopy(oldangles, cl.viewangles);
// Dresk : Reset Dmg Globals Here
CL_VM_UpdateDmgGlobals(0, 0, emptyvector);
if(!cl.csqc_loaded)
return false;
CSQC_BEGIN
- if (prog->funcoffsets.CSQC_ConsoleCommand)
+ if (PRVM_clientfunction(CSQC_ConsoleCommand))
{
prog->globals.client->time = cl.time;
prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(cmd);
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_ConsoleCommand, "QC function CSQC_ConsoleCommand is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_ConsoleCommand), "QC function CSQC_ConsoleCommand is missing");
vm_tempstringsbuf.cursize = restorevm_tempstringsbuf_cursize;
r = CSQC_RETURNVAL != 0;
}
if(!cl.csqc_loaded)
return false;
CSQC_BEGIN
- if(prog->funcoffsets.CSQC_Parse_TempEntity)
+ if(PRVM_clientfunction(CSQC_Parse_TempEntity))
{
t = msg_readcount;
prog->globals.client->time = cl.time;
prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Parse_TempEntity, "QC function CSQC_Parse_TempEntity is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Parse_TempEntity), "QC function CSQC_Parse_TempEntity is missing");
r = CSQC_RETURNVAL != 0;
if(!r)
{
return;
}
CSQC_BEGIN
- if(prog->funcoffsets.CSQC_Parse_StuffCmd)
+ if(PRVM_clientfunction(CSQC_Parse_StuffCmd))
{
prog->globals.client->time = cl.time;
prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(msg);
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Parse_StuffCmd, "QC function CSQC_Parse_StuffCmd is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Parse_StuffCmd), "QC function CSQC_Parse_StuffCmd is missing");
vm_tempstringsbuf.cursize = restorevm_tempstringsbuf_cursize;
}
else
prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(msg);
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Parse_Print, "QC function CSQC_Parse_Print is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Parse_Print), "QC function CSQC_Parse_Print is missing");
vm_tempstringsbuf.cursize = restorevm_tempstringsbuf_cursize;
}
return;
}
CSQC_BEGIN
- if(prog->funcoffsets.CSQC_Parse_Print)
+ if(PRVM_clientfunction(CSQC_Parse_Print))
{
// FIXME: is this bugged?
i = strlen(msg)-1;
return;
}
CSQC_BEGIN
- if(prog->funcoffsets.CSQC_Parse_CenterPrint)
+ if(PRVM_clientfunction(CSQC_Parse_CenterPrint))
{
prog->globals.client->time = cl.time;
prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(msg);
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Parse_CenterPrint, "QC function CSQC_Parse_CenterPrint is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Parse_CenterPrint), "QC function CSQC_Parse_CenterPrint is missing");
vm_tempstringsbuf.cursize = restorevm_tempstringsbuf_cursize;
}
else
if(cl.csqc_loaded)
{
CSQC_BEGIN
- if(prog->funcoffsets.CSQC_Event_Sound)
+ if(PRVM_clientfunction(CSQC_Event_Sound))
{
prog->globals.client->time = cl.time;
prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
PRVM_G_FLOAT(OFS_PARM3) = volume;
PRVM_G_FLOAT(OFS_PARM4) = attenuation;
VectorCopy(pos, PRVM_G_VECTOR(OFS_PARM5) );
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Event_Sound, "QC function CSQC_Event_Sound is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Event_Sound), "QC function CSQC_Event_Sound is missing");
r = CSQC_RETURNVAL != 0;
}
CSQC_END
if(!cl.csqc_loaded)
return 0;
CSQC_BEGIN
- if(prog->funcoffsets.CSQC_Event)
+ if(PRVM_clientfunction(CSQC_Event))
{
prog->globals.client->time = cl.time;
prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
PRVM_G_FLOAT(OFS_PARM0) = event;
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Event, "QC function CSQC_Event is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Event), "QC function CSQC_Event is missing");
r = CSQC_RETURNVAL;
}
CSQC_END
{
if(prog->globals.client->self)
{
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Ent_Remove, "QC function CSQC_Ent_Remove is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Ent_Remove), "QC function CSQC_Ent_Remove is missing");
cl.csqc_server2csqcentitynumber[realentnum] = 0;
}
else
{
if(!prog->globals.client->self)
{
- if(!prog->funcoffsets.CSQC_Ent_Spawn)
+ if(!PRVM_clientfunction(CSQC_Ent_Spawn))
{
prvm_edict_t *ed;
ed = PRVM_ED_Alloc();
PRVM_G_FLOAT(OFS_PARM0) = (float) realentnum;
// make sure no one gets wrong ideas
prog->globals.client->self = 0;
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Ent_Spawn, "QC function CSQC_Ent_Spawn is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Ent_Spawn), "QC function CSQC_Ent_Spawn is missing");
prog->globals.client->self = cl.csqc_server2csqcentitynumber[realentnum] = PRVM_EDICT( PRVM_G_INT( OFS_RETURN ) );
}
PRVM_G_FLOAT(OFS_PARM0) = 1;
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Ent_Update, "QC function CSQC_Ent_Update is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Ent_Update), "QC function CSQC_Ent_Update is missing");
}
else {
PRVM_G_FLOAT(OFS_PARM0) = 0;
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Ent_Update, "QC function CSQC_Ent_Update is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Ent_Update), "QC function CSQC_Ent_Update is missing");
}
}
}
VectorCopy(cl.world.maxs, prog->edicts->fields.client->maxs);
// call the prog init
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Init, "QC function CSQC_Init is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Init), "QC function CSQC_Init is missing");
PRVM_End;
cl.csqc_loaded = true;
CSQC_BEGIN
prog->globals.client->time = cl.time;
prog->globals.client->self = 0;
- if (prog->funcoffsets.CSQC_Shutdown)
- PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Shutdown, "QC function CSQC_Shutdown is missing");
+ if (PRVM_clientfunction(CSQC_Shutdown))
+ PRVM_ExecuteProgram(PRVM_clientfunction(CSQC_Shutdown), "QC function CSQC_Shutdown is missing");
PRVM_ResetProg();
CSQC_END
Con_DPrint("CSQC ^1unloaded\n");
SV_VM_Begin();
World_End(&sv.world);
if(prog->loaded)
- if(prog->funcoffsets.SV_Shutdown)
+ if(PRVM_serverfunction(SV_Shutdown))
{
- func_t s = prog->funcoffsets.SV_Shutdown;
- prog->funcoffsets.SV_Shutdown = 0; // prevent it from getting called again
+ func_t s = PRVM_serverfunction(SV_Shutdown);
+ PRVM_serverfunction(SV_Shutdown) = 0; // prevent it from getting called again
PRVM_ExecuteProgram(s,"SV_Shutdown() required");
}
for (i = 0, host_client = svs.clients;i < svs.maxclients;i++, host_client++)
if (sv.paused == 1 && realtime > sv.pausedstart && sv.pausedstart > 0) {
prog->globals.generic[OFS_PARM0] = realtime - sv.pausedstart;
- PRVM_ExecuteProgram(prog->funcoffsets.SV_PausedTic, "QC function SV_PausedTic is missing");
+ PRVM_ExecuteProgram(PRVM_serverfunction(SV_PausedTic), "QC function SV_PausedTic is missing");
}
// end the server VM frame
if (cls.protocol == PROTOCOL_QUAKEWORLD)
return;
- if (host_client->edict && prog->funcoffsets.SV_ChangeTeam)
+ if (host_client->edict && PRVM_clientfunction(SV_ChangeTeam))
{
Con_DPrint("Calling SV_ChangeTeam\n");
prog->globals.server->time = sv.time;
prog->globals.generic[OFS_PARM0] = playercolor;
prog->globals.server->self = PRVM_EDICT_TO_PROG(host_client->edict);
- PRVM_ExecuteProgram(prog->funcoffsets.SV_ChangeTeam, "QC function SV_ChangeTeam is missing");
+ PRVM_ExecuteProgram(PRVM_clientfunction(SV_ChangeTeam), "QC function SV_ChangeTeam is missing");
}
else
{
if (sv.loadgame)
{
// loaded games are fully initialized already
- if (prog->funcoffsets.RestoreGame)
+ if (PRVM_serverfunction(RestoreGame))
{
Con_DPrint("Calling RestoreGame\n");
prog->globals.server->time = sv.time;
prog->globals.server->self = PRVM_EDICT_TO_PROG(host_client->edict);
- PRVM_ExecuteProgram(prog->funcoffsets.RestoreGame, "QC function RestoreGame is missing");
+ PRVM_ExecuteProgram(PRVM_serverfunction(RestoreGame), "QC function RestoreGame is missing");
}
}
else
Cmd_ForwardStringToServer(va("sentcvar %s \"%s\"", c->name, c->string));
return;
}
- if(!sv.active)// || !prog->funcoffsets.SV_ParseClientCommand)
+ if(!sv.active)// || !PRVM_serverfunction(SV_ParseClientCommand))
return;
old = host_client;
static prvm_required_field_t m_required_fields[] =
{
- {ev_string, "classname"}, // menu field
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x) {ev_float, #x},
+#define PRVM_DECLARE_menufieldvector(x) {ev_vector, #x},
+#define PRVM_DECLARE_menufieldstring(x) {ev_string, #x},
+#define PRVM_DECLARE_menufieldedict(x) {ev_entity, #x},
+#define PRVM_DECLARE_menufieldfunction(x) {ev_function, #x},
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x)
+#define PRVM_DECLARE_global(x)
+#define PRVM_DECLARE_function(x)
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
};
static int m_numrequiredfields = sizeof(m_required_fields) / sizeof(m_required_fields[0]);
static prvm_required_field_t m_required_globals[] =
{
- {ev_entity, "self"}, // menu global
- {ev_float, "drawfont"}, // menu global
- {ev_float, "require_spawnfunc_prefix"}, // menu global
- {ev_vector, "drawfontscale"}, // menu global
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x) {ev_float, #x},
+#define PRVM_DECLARE_menuglobalvector(x) {ev_vector, #x},
+#define PRVM_DECLARE_menuglobalstring(x) {ev_string, #x},
+#define PRVM_DECLARE_menuglobaledict(x) {ev_entity, #x},
+#define PRVM_DECLARE_menuglobalfunction(x) {ev_function, #x},
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x)
+#define PRVM_DECLARE_global(x)
+#define PRVM_DECLARE_function(x)
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
};
static int m_numrequiredglobals = sizeof(m_required_globals) / sizeof(m_required_globals[0]);
prog->globals.generic[OFS_PARM0] = (float) key;
prog->globals.generic[OFS_PARM1] = (float) ascii;
if (downevent)
- PRVM_ExecuteProgram(prog->funcoffsets.m_keydown,"m_keydown(float key, float ascii) required");
- else if (prog->funcoffsets.m_keyup)
- PRVM_ExecuteProgram(prog->funcoffsets.m_keyup,"m_keyup(float key, float ascii) required");
+ PRVM_ExecuteProgram(PRVM_menufunction(m_keydown),"m_keydown(float key, float ascii) required");
+ else if (PRVM_menufunction(m_keyup))
+ PRVM_ExecuteProgram(PRVM_menufunction(m_keyup),"m_keyup(float key, float ascii) required");
PRVM_End;
}
// FIXME: this really shouldnt error out lest we have a very broken refdef state...?
// or does it kill the server too?
- PRVM_ExecuteProgram(prog->funcoffsets.m_draw,"m_draw() required");
+ PRVM_ExecuteProgram(PRVM_menufunction(m_draw),"m_draw() required");
PRVM_End;
PRVM_SetProg(PRVM_MENUPROG);
prog->globals.generic[OFS_PARM0] = (float) mode;
- PRVM_ExecuteProgram(prog->funcoffsets.m_toggle,"m_toggle() required");
+ PRVM_ExecuteProgram(PRVM_menufunction(m_toggle),"m_toggle() required");
PRVM_End;
}
{
PRVM_Begin;
PRVM_SetProg(PRVM_MENUPROG);
- if (prog->funcoffsets.m_newmap)
- PRVM_ExecuteProgram(prog->funcoffsets.m_newmap,"m_newmap() required");
+ if (PRVM_menufunction(m_newmap))
+ PRVM_ExecuteProgram(PRVM_menufunction(m_newmap),"m_newmap() required");
PRVM_End;
}
PRVM_Begin;
PRVM_SetProg(PRVM_MENUPROG);
- PRVM_ExecuteProgram(prog->funcoffsets.m_shutdown,"m_shutdown() required");
+ PRVM_ExecuteProgram(PRVM_menufunction(m_shutdown),"m_shutdown() required");
// reset key_dest
key_dest = key_game;
in_client_mouse = true;
// call the prog init
- PRVM_ExecuteProgram(prog->funcoffsets.m_init,"m_init() required");
+ PRVM_ExecuteProgram(PRVM_menufunction(m_init),"m_init() required");
PRVM_End;
}
#define PRVM_allglobalstring(fieldname) (PRVM_GLOBALFIELDSTRING(prog->globaloffsets.fieldname))
#define PRVM_allglobaledict(fieldname) (PRVM_GLOBALFIELDEDICT(prog->globaloffsets.fieldname))
#define PRVM_allglobalfunction(fieldname) (PRVM_GLOBALFIELDFUNCTION(prog->globaloffsets.fieldname))
+#define PRVM_allfunction(funcname) (prog->funcoffsets.funcname)
#define PRVM_drawedictfloat(ed, fieldname) (PRVM_EDICTFIELDFLOAT(ed, prog->fieldoffsets.fieldname))
#define PRVM_drawedictvector(ed, fieldname) (PRVM_EDICTFIELDVECTOR(ed, prog->fieldoffsets.fieldname))
#define PRVM_drawglobalstring(fieldname) (PRVM_GLOBALFIELDSTRING(prog->globaloffsets.fieldname))
#define PRVM_drawglobaledict(fieldname) (PRVM_GLOBALFIELDEDICT(prog->globaloffsets.fieldname))
#define PRVM_drawglobalfunction(fieldname) (PRVM_GLOBALFIELDFUNCTION(prog->globaloffsets.fieldname))
+#define PRVM_drawfunction(funcname) (prog->funcoffsets.funcname)
#define PRVM_gameedictfloat(ed, fieldname) (PRVM_EDICTFIELDFLOAT(ed, prog->fieldoffsets.fieldname))
#define PRVM_gameedictvector(ed, fieldname) (PRVM_EDICTFIELDVECTOR(ed, prog->fieldoffsets.fieldname))
#define PRVM_gameglobalstring(fieldname) (PRVM_GLOBALFIELDSTRING(prog->globaloffsets.fieldname))
#define PRVM_gameglobaledict(fieldname) (PRVM_GLOBALFIELDEDICT(prog->globaloffsets.fieldname))
#define PRVM_gameglobalfunction(fieldname) (PRVM_GLOBALFIELDFUNCTION(prog->globaloffsets.fieldname))
+#define PRVM_gamefunction(funcname) (prog->funcoffsets.funcname)
#define PRVM_serveredictfloat(ed, fieldname) (PRVM_EDICTFIELDFLOAT(ed, prog->fieldoffsets.fieldname))
#define PRVM_serveredictvector(ed, fieldname) (PRVM_EDICTFIELDVECTOR(ed, prog->fieldoffsets.fieldname))
#define PRVM_serverglobalstring(fieldname) (PRVM_GLOBALFIELDSTRING(prog->globaloffsets.fieldname))
#define PRVM_serverglobaledict(fieldname) (PRVM_GLOBALFIELDEDICT(prog->globaloffsets.fieldname))
#define PRVM_serverglobalfunction(fieldname) (PRVM_GLOBALFIELDFUNCTION(prog->globaloffsets.fieldname))
+#define PRVM_serverfunction(funcname) (prog->funcoffsets.funcname)
#define PRVM_clientedictfloat(ed, fieldname) (PRVM_EDICTFIELDFLOAT(ed, prog->fieldoffsets.fieldname))
#define PRVM_clientedictvector(ed, fieldname) (PRVM_EDICTFIELDVECTOR(ed, prog->fieldoffsets.fieldname))
#define PRVM_clientglobalstring(fieldname) (PRVM_GLOBALFIELDSTRING(prog->globaloffsets.fieldname))
#define PRVM_clientglobaledict(fieldname) (PRVM_GLOBALFIELDEDICT(prog->globaloffsets.fieldname))
#define PRVM_clientglobalfunction(fieldname) (PRVM_GLOBALFIELDFUNCTION(prog->globaloffsets.fieldname))
-
+#define PRVM_clientfunction(funcname) (prog->funcoffsets.funcname)
+
+#define PRVM_menuedictfloat(ed, fieldname) (PRVM_EDICTFIELDFLOAT(ed, prog->fieldoffsets.fieldname))
+#define PRVM_menuedictvector(ed, fieldname) (PRVM_EDICTFIELDVECTOR(ed, prog->fieldoffsets.fieldname))
+#define PRVM_menuedictstring(ed, fieldname) (PRVM_EDICTFIELDSTRING(ed, prog->fieldoffsets.fieldname))
+#define PRVM_menuedictedict(ed, fieldname) (PRVM_EDICTFIELDEDICT(ed, prog->fieldoffsets.fieldname))
+#define PRVM_menuedictfunction(ed, fieldname) (PRVM_EDICTFIELDFUNCTION(ed, prog->fieldoffsets.fieldname))
+#define PRVM_menuglobalfloat(fieldname) (PRVM_GLOBALFIELDFLOAT(prog->globaloffsets.fieldname))
+#define PRVM_menuglobalvector(fieldname) (PRVM_GLOBALFIELDVECTOR(prog->globaloffsets.fieldname))
+#define PRVM_menuglobalstring(fieldname) (PRVM_GLOBALFIELDSTRING(prog->globaloffsets.fieldname))
+#define PRVM_menuglobaledict(fieldname) (PRVM_GLOBALFIELDEDICT(prog->globaloffsets.fieldname))
+#define PRVM_menuglobalfunction(fieldname) (PRVM_GLOBALFIELDFUNCTION(prog->globaloffsets.fieldname))
+#define PRVM_menufunction(funcname) (prog->funcoffsets.funcname)
#if 1
#define PRVM_EDICTFIELDVALUE(ed, fieldoffset) (fieldoffset < 0 ? Con_Printf("Invalid fieldoffset at %s:%i\n", __FILE__, __LINE__), &prvm_badvalue : (prvm_eval_t *)((int *)ed->fields.vp + fieldoffset))
// NOTE: field offsets use -1 for NULL
typedef struct prvm_prog_fieldoffsets_s
{
- // server and client use a lot of similar fields, so this is combined
- int SendEntity; // ssqc
- int SendFlags; // ssqc
- int Version; // ssqc (legacy)
- int alpha; // ssqc / csqc
- int ammo_cells1; // ssqc - Dissolution of Eternity mission pack
- int ammo_lava_nails; // ssqc - Dissolution of Eternity mission pack
- int ammo_multi_rockets; // ssqc - Dissolution of Eternity mission pack
- int ammo_nails1; // ssqc - Dissolution of Eternity mission pack
- int ammo_plasma; // ssqc - Dissolution of Eternity mission pack
- int ammo_rockets1; // ssqc - Dissolution of Eternity mission pack
- int ammo_shells1; // ssqc - Dissolution of Eternity mission pack
- int angles; // common - used by changeyaw/changepitch
- int button3; // ssqc
- int button4; // ssqc
- int button5; // ssqc
- int button6; // ssqc
- int button7; // ssqc
- int button8; // ssqc
- int button9; // ssqc
- int button10; // ssqc
- int button11; // ssqc
- int button12; // ssqc
- int button13; // ssqc
- int button14; // ssqc
- int button15; // ssqc
- int button16; // ssqc
- int buttonchat; // ssqc
- int buttonuse; // ssqc
- int chain; // common - used by find builtins
- int classname; // common
- int clientcamera; // ssqc
- int clientcolors; // ssqc
- int clientstatus; // ssqc
- int color; // ssqc
- int colormod; // ssqc / csqc
- int contentstransition; // ssqc
- int cursor_active; // ssqc
- int cursor_screen; // ssqc
- int cursor_trace_endpos; // ssqc
- int cursor_trace_ent; // ssqc
- int cursor_trace_start; // ssqc
- int customizeentityforclient; // ssqc
- int dimension_hit; // ssqc / csqc
- int dimension_solid; // ssqc / csqc
- int disableclientprediction; // ssqc
- int discardabledemo; // ssqc
- int dphitcontentsmask; // ssqc / csqc
- int drawonlytoclient; // ssqc
- int exteriormodeltoclient; // ssqc
- int fatness; // ssqc / csqc
- int forceshader; // csqc
- int frame1time; // csqc
- int frame2; // csqc
- int frame2time; // csqc
- int frame3; // csqc
- int frame3time; // csqc
- int frame4; // csqc
- int frame4time; // csqc
- int frame; // common - used by OP_STATE
- int fullbright; // ssqc - Nehahra support
- int glow_color; // ssqc
- int glow_size; // ssqc
- int glow_trail; // ssqc
- int glowmod; // ssqc / csqc
- int gravity; // ssqc
- int groundentity; // ssqc / csqc
- int hull; // ssqc / csqc
- int ideal_yaw; // ssqc / csqc
- int idealpitch; // ssqc / csqc
- int items2; // ssqc
- int lerpfrac3; // csqc
- int lerpfrac4; // csqc
- int lerpfrac; // csqc
- int light_lev; // ssqc
- int message; // csqc
- int modelflags; // ssqc
- int movement; // ssqc
- int movetypesteplandevent; // ssqc
- int netaddress; // ssqc
- int nextthink; // common - used by OP_STATE
- int nodrawtoclient; // ssqc
- int pflags; // ssqc
- int ping; // ssqc
- int ping_packetloss; // ssqc
- int ping_movementloss; // ssqc
- int pitch_speed; // ssqc / csqc
- int playermodel; // ssqc
- int playerskin; // ssqc
- int pmodel; // ssqc
- int punchvector; // ssqc
- int renderamt; // ssqc - HalfLife support
- int renderflags; // csqc
- int rendermode; // ssqc - HalfLife support
- int scale; // ssqc / csqc
- int shadertime; // csqc
- int skeletonindex; // csqc / ssqc FTE_CSQC_SKELETONOBJECTS / DP_SKELETONOBJECTS
- int style; // ssqc
- int tag_entity; // ssqc / csqc
- int tag_index; // ssqc / csqc
- int think; // common - used by OP_STATE
- int viewmodelforclient; // ssqc
- int viewzoom; // ssqc
- int yaw_speed; // ssqc / csqc
- int bouncefactor; // ssqc
- int bouncestop; // ssqc
- int sendcomplexanimation; // ssqc
-
- int solid; // ssqc / csqc (physics)
- int movetype; // ssqc / csqc (physics)
- int modelindex; // ssqc / csqc (physics)
- int mins; // ssqc / csqc (physics)
- int maxs; // ssqc / csqc (physics)
- int mass; // ssqc / csqc (physics)
- int origin; // ssqc / csqc (physics)
- int velocity; // ssqc / csqc (physics)
- //int axis_forward; // ssqc / csqc (physics)
- //int axis_left; // ssqc / csqc (physics)
- //int axis_up; // ssqc / csqc (physics)
- //int spinvelocity; // ssqc / csqc (physics)
- //int angles; // ssqc / csqc (physics)
- int avelocity; // ssqc / csqc (physics)
- int jointtype; // ssqc / csqc (physics)
- int enemy; // ssqc / csqc (physics)
- int aiment; // ssqc / csqc (physics)
- int movedir; // ssqc / csqc (physics)
-
- int camera_transform; // csqc (warpzones)
-
- int userwavefunc_param0; // csqc (userwavefunc)
- int userwavefunc_param1; // csqc (userwavefunc)
- int userwavefunc_param2; // csqc (userwavefunc)
- int userwavefunc_param3; // csqc (userwavefunc)
-
- int crypto_keyfp; // ssqc (DP_CRYPTO)
- int crypto_mykeyfp; // ssqc (DP_CRYPTO)
- int crypto_idfp; // ssqc (DP_CRYPTO)
- int crypto_encryptmethod; // ssqc (DP_CRYPTO)
- int crypto_signmethod; // ssqc (DP_CRYPTO)
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x) int x;
+#define PRVM_DECLARE_global(x)
+#define PRVM_DECLARE_function(x)
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
}
prvm_prog_fieldoffsets_t;
// NOTE: global offsets use -1 for NULL
typedef struct prvm_prog_globaloffsets_s
{
- // server and client use a lot of similar globals, so this is combined
- int SV_InitCmd; // ssqc
- int self; // common
- int time; // ssqc / csqc
- int v_forward; // ssqc / csqc
- int v_right; // ssqc / csqc
- int v_up; // ssqc / csqc
- int view_angles; // csqc
- int view_punchangle; // csqc
- int view_punchvector; // csqc
- int trace_allsolid; // ssqc / csqc
- int trace_startsolid; // ssqc / csqc
- int trace_fraction; // ssqc / csqc
- int trace_inwater; // ssqc / csqc
- int trace_inopen; // ssqc / csqc
- int trace_endpos; // ssqc / csqc
- int trace_plane_normal; // ssqc / csqc
- int trace_plane_dist; // ssqc / csqc
- int trace_ent; // ssqc / csqc
- int trace_networkentity; // csqc
- int trace_dphitcontents; // ssqc / csqc
- int trace_dphitq3surfaceflags; // ssqc / csqc
- int trace_dphittexturename; // ssqc / csqc
- int trace_dpstartcontents; // ssqc / csqc
- int intermission; // csqc
- int coop; // csqc
- int deathmatch; // csqc
- int dmg_take; // csqc
- int dmg_save; // csqc
- int dmg_origin; // csqc
- int sb_showscores; // csqc
- int drawfont; // csqc / menu
- int drawfontscale; // csqc / menu
- int pmove_onground; // csqc
- int pmove_inwater; // csqc
- int require_spawnfunc_prefix; // ssqc
- int worldstatus; // ssqc
- int servertime; // csqc
- int serverprevtime; // csqc
- int serverdeltatime; // csqc
- int gettaginfo_name; // ssqc / csqc
- int gettaginfo_parent; // ssqc / csqc
- int gettaginfo_offset; // ssqc / csqc
- int gettaginfo_forward; // ssqc / csqc
- int gettaginfo_right; // ssqc / csqc
- int gettaginfo_up; // ssqc / csqc
- int transparent_offset; // csqc
-
- int particles_alphamin; // csqc
- int particles_alphamax; // csqc
- int particles_colormin; // csqc
- int particles_colormax; // csqc
-
- int particle_type; // csqc
- int particle_blendmode; // csqc
- int particle_orientation; // csqc
- int particle_color1; // csqc
- int particle_color2; // csqc
- int particle_tex; // csqc
- int particle_size; // csqc
- int particle_sizeincrease; // csqc
- int particle_alpha; // csqc
- int particle_alphafade; // csqc
- int particle_time; // csqc
- int particle_gravity; // csqc
- int particle_bounce; // csqc
- int particle_airfriction; // csqc
- int particle_liquidfriction; // csqc
- int particle_originjitter; // csqc
- int particle_velocityjitter; // csqc
- int particle_qualityreduction; // csqc
- int particle_stretch; // csqc
- int particle_staincolor1; // csqc
- int particle_staincolor2; // csqc
- int particle_stainalpha; // csqc
- int particle_stainsize; // csqc
- int particle_staintex; // csqc
- int particle_delayspawn; // csqc
- int particle_delaycollision; // csqc
- int particle_angle; // csqc
- int particle_spin; // csqc
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x)
+#define PRVM_DECLARE_global(x) int x;
+#define PRVM_DECLARE_function(x)
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
}
prvm_prog_globaloffsets_t;
-// these are initialized using PRVM_ED_FindFunction
// NOTE: function offsets use 0 for NULL
typedef struct prvm_prog_funcoffsets_s
{
- func_t CSQC_ConsoleCommand; // csqc
- func_t CSQC_Ent_Remove; // csqc
- func_t CSQC_Ent_Spawn; // csqc DP_CSQC_ENT_SPAWN extension (BlackHC - TODO: needs to be added to dpextensions.qc)
- func_t CSQC_Ent_Update; // csqc
- func_t CSQC_Event; // csqc [515]: engine call this for its own needs so csqc can do some things according to what engine it's running on. example: to say about edicts increase, whatever...
- func_t CSQC_Event_Sound; // csqc : called by engine when an incoming sound packet arrives so CSQC can act on it
- func_t CSQC_Init; // csqc
- func_t CSQC_InputEvent; // csqc
- func_t CSQC_Parse_CenterPrint; // csqc
- func_t CSQC_Parse_Print; // csqc
- func_t CSQC_Parse_StuffCmd; // csqc
- func_t CSQC_Parse_TempEntity; // csqc [515]: very helpfull when you want to create your own particles/decals/etc for effects that already exist
- func_t CSQC_Shutdown; // csqc
- func_t CSQC_UpdateView; // csqc
- func_t Gecko_Query; // csqc, mqc
- func_t EndFrame; // ssqc
- func_t RestoreGame; // ssqc
- func_t SV_ChangeTeam; // ssqc
- func_t SV_ParseClientCommand; // ssqc
- func_t SV_PlayerPhysics; // ssqc
- func_t SV_OnEntityPreSpawnFunction; // ssqc
- func_t SV_OnEntityNoSpawnFunction; // ssqc
- func_t SV_OnEntityPostSpawnFunction; // ssqc
- func_t GameCommand; // any
- func_t SV_Shutdown; // ssqc
- func_t URI_Get_Callback; // any
- func_t SV_PausedTic; //ssqc
-
- // menu qc only uses some functions, nothing else
- func_t m_draw; // mqc
- func_t m_init; // mqc
- func_t m_keydown; // mqc
- func_t m_keyup; // mqc
- func_t m_shutdown; // mqc
- func_t m_toggle; // mqc
- func_t m_newmap; // mqc
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x)
+#define PRVM_DECLARE_global(x)
+#define PRVM_DECLARE_function(x) int x;
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
}
prvm_prog_funcoffsets_t;
prvm_prog_fieldoffsets_t fieldoffsets;
prvm_prog_globaloffsets_t globaloffsets;
- prvm_prog_funcoffsets_t funcoffsets;
+ prvm_prog_funcoffsets_t funcoffsets;
// allow writing to world entity fields, this is set by server init and
// cleared before first server frame
PRVM_SetProg(handle->prognr);
PRVM_Begin;
- if((prog->starttime == handle->starttime) && (prog->funcoffsets.URI_Get_Callback))
+ if((prog->starttime == handle->starttime) && (PRVM_allfunction(URI_Get_Callback)))
{
if(length_received >= sizeof(handle->buffer))
length_received = sizeof(handle->buffer) - 1;
PRVM_G_FLOAT(OFS_PARM0) = handle->id;
PRVM_G_FLOAT(OFS_PARM1) = status;
PRVM_G_INT(OFS_PARM2) = PRVM_SetTempString(handle->buffer);
- PRVM_ExecuteProgram(prog->funcoffsets.URI_Get_Callback, "QC function URI_Get_Callback is missing");
+ PRVM_ExecuteProgram(PRVM_allfunction(URI_Get_Callback), "QC function URI_Get_Callback is missing");
}
PRVM_End;
const char *query_string = NULL;
size_t lq;
- if(!prog->funcoffsets.URI_Get_Callback)
+ if(!PRVM_allfunction(URI_Get_Callback))
PRVM_ERROR("uri_get called by %s without URI_Get_Callback defined", PRVM_NAME);
VM_SAFEPARMCOUNTRANGE(2, 6, VM_uri_get);
return;
}
- if(!prog->funcoffsets.GameCommand)
+ if(!PRVM_allfunction(GameCommand))
{
Con_Printf("%s program do not support GameCommand!\n", whichprogs);
}
restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(s ? s : "");
- PRVM_ExecuteProgram (prog->funcoffsets.GameCommand, "QC function GameCommand is missing");
+ PRVM_ExecuteProgram (PRVM_allfunction(GameCommand), "QC function GameCommand is missing");
vm_tempstringsbuf.cursize = restorevm_tempstringsbuf_cursize;
}
continue;
}
- if (prog->funcoffsets.SV_OnEntityPreSpawnFunction)
+ if (PRVM_serverfunction(SV_OnEntityPreSpawnFunction))
{
// self = ent
- PRVM_allglobaledict(self) = PRVM_EDICT_TO_PROG(ent);
- PRVM_ExecuteProgram (prog->funcoffsets.SV_OnEntityPreSpawnFunction, "QC function SV_OnEntityPreSpawnFunction is missing");
+ PRVM_serverglobaledict(self) = PRVM_EDICT_TO_PROG(ent);
+ PRVM_ExecuteProgram (PRVM_serverfunction(SV_OnEntityPreSpawnFunction), "QC function SV_OnEntityPreSpawnFunction is missing");
}
if(ent->priv.required->free)
if (!func)
{
// check for OnEntityNoSpawnFunction
- if (prog->funcoffsets.SV_OnEntityNoSpawnFunction)
+ if (PRVM_serverfunction(SV_OnEntityNoSpawnFunction))
{
// self = ent
- PRVM_allglobaledict(self) = PRVM_EDICT_TO_PROG(ent);
- PRVM_ExecuteProgram (prog->funcoffsets.SV_OnEntityNoSpawnFunction, "QC function SV_OnEntityNoSpawnFunction is missing");
+ PRVM_serverglobaledict(self) = PRVM_EDICT_TO_PROG(ent);
+ PRVM_ExecuteProgram (PRVM_serverfunction(SV_OnEntityNoSpawnFunction), "QC function SV_OnEntityNoSpawnFunction is missing");
}
else
{
}
if(!ent->priv.required->free)
- if (prog->funcoffsets.SV_OnEntityPostSpawnFunction)
+ if (PRVM_serverfunction(SV_OnEntityPostSpawnFunction))
{
// self = ent
- PRVM_allglobaledict(self) = PRVM_EDICT_TO_PROG(ent);
- PRVM_ExecuteProgram (prog->funcoffsets.SV_OnEntityPostSpawnFunction, "QC function SV_OnEntityPostSpawnFunction is missing");
+ PRVM_serverglobaledict(self) = PRVM_EDICT_TO_PROG(ent);
+ PRVM_ExecuteProgram (PRVM_serverfunction(SV_OnEntityPostSpawnFunction), "QC function SV_OnEntityPostSpawnFunction is missing");
}
spawned++;
// field and global searches use -1 for NULL
memset(&prog->fieldoffsets, -1, sizeof(prog->fieldoffsets));
memset(&prog->globaloffsets, -1, sizeof(prog->globaloffsets));
- // functions use 0 for NULL
+ // function searches use 0 for NULL
memset(&prog->funcoffsets, 0, sizeof(prog->funcoffsets));
-
- // server and client qc use a lot of similar fields, so this is combined
- prog->fieldoffsets.SendEntity = PRVM_ED_FindFieldOffset("SendEntity");
- prog->fieldoffsets.SendFlags = PRVM_ED_FindFieldOffset("SendFlags");
- prog->fieldoffsets.Version = PRVM_ED_FindFieldOffset("Version");
- prog->fieldoffsets.alpha = PRVM_ED_FindFieldOffset("alpha");
- prog->fieldoffsets.ammo_cells1 = PRVM_ED_FindFieldOffset("ammo_cells1");
- prog->fieldoffsets.ammo_lava_nails = PRVM_ED_FindFieldOffset("ammo_lava_nails");
- prog->fieldoffsets.ammo_multi_rockets = PRVM_ED_FindFieldOffset("ammo_multi_rockets");
- prog->fieldoffsets.ammo_nails1 = PRVM_ED_FindFieldOffset("ammo_nails1");
- prog->fieldoffsets.ammo_plasma = PRVM_ED_FindFieldOffset("ammo_plasma");
- prog->fieldoffsets.ammo_rockets1 = PRVM_ED_FindFieldOffset("ammo_rockets1");
- prog->fieldoffsets.ammo_shells1 = PRVM_ED_FindFieldOffset("ammo_shells1");
- prog->fieldoffsets.angles = PRVM_ED_FindFieldOffset("angles");
- prog->fieldoffsets.button3 = PRVM_ED_FindFieldOffset("button3");
- prog->fieldoffsets.button4 = PRVM_ED_FindFieldOffset("button4");
- prog->fieldoffsets.button5 = PRVM_ED_FindFieldOffset("button5");
- prog->fieldoffsets.button6 = PRVM_ED_FindFieldOffset("button6");
- prog->fieldoffsets.button7 = PRVM_ED_FindFieldOffset("button7");
- prog->fieldoffsets.button8 = PRVM_ED_FindFieldOffset("button8");
- prog->fieldoffsets.button9 = PRVM_ED_FindFieldOffset("button9");
- prog->fieldoffsets.button10 = PRVM_ED_FindFieldOffset("button10");
- prog->fieldoffsets.button11 = PRVM_ED_FindFieldOffset("button11");
- prog->fieldoffsets.button12 = PRVM_ED_FindFieldOffset("button12");
- prog->fieldoffsets.button13 = PRVM_ED_FindFieldOffset("button13");
- prog->fieldoffsets.button14 = PRVM_ED_FindFieldOffset("button14");
- prog->fieldoffsets.button15 = PRVM_ED_FindFieldOffset("button15");
- prog->fieldoffsets.button16 = PRVM_ED_FindFieldOffset("button16");
- prog->fieldoffsets.buttonchat = PRVM_ED_FindFieldOffset("buttonchat");
- prog->fieldoffsets.buttonuse = PRVM_ED_FindFieldOffset("buttonuse");
- prog->fieldoffsets.chain = PRVM_ED_FindFieldOffset("chain");
- prog->fieldoffsets.classname = PRVM_ED_FindFieldOffset("classname");
- prog->fieldoffsets.clientcamera = PRVM_ED_FindFieldOffset("clientcamera");
- prog->fieldoffsets.clientcolors = PRVM_ED_FindFieldOffset("clientcolors");
- prog->fieldoffsets.clientstatus = PRVM_ED_FindFieldOffset("clientstatus");
- prog->fieldoffsets.color = PRVM_ED_FindFieldOffset("color");
- prog->fieldoffsets.colormod = PRVM_ED_FindFieldOffset("colormod");
- prog->fieldoffsets.contentstransition = PRVM_ED_FindFieldOffset("contentstransition");
- prog->fieldoffsets.cursor_active = PRVM_ED_FindFieldOffset("cursor_active");
- prog->fieldoffsets.cursor_screen = PRVM_ED_FindFieldOffset("cursor_screen");
- prog->fieldoffsets.cursor_trace_endpos = PRVM_ED_FindFieldOffset("cursor_trace_endpos");
- prog->fieldoffsets.cursor_trace_ent = PRVM_ED_FindFieldOffset("cursor_trace_ent");
- prog->fieldoffsets.cursor_trace_start = PRVM_ED_FindFieldOffset("cursor_trace_start");
- prog->fieldoffsets.customizeentityforclient = PRVM_ED_FindFieldOffset("customizeentityforclient");
- prog->fieldoffsets.dimension_hit = PRVM_ED_FindFieldOffset("dimension_hit");
- prog->fieldoffsets.dimension_solid = PRVM_ED_FindFieldOffset("dimension_solid");
- prog->fieldoffsets.disableclientprediction = PRVM_ED_FindFieldOffset("disableclientprediction");
- prog->fieldoffsets.discardabledemo = PRVM_ED_FindFieldOffset("discardabledemo");
- prog->fieldoffsets.dphitcontentsmask = PRVM_ED_FindFieldOffset("dphitcontentsmask");
- prog->fieldoffsets.drawonlytoclient = PRVM_ED_FindFieldOffset("drawonlytoclient");
- prog->fieldoffsets.exteriormodeltoclient = PRVM_ED_FindFieldOffset("exteriormodeltoclient");
- prog->fieldoffsets.fatness = PRVM_ED_FindFieldOffset("fatness");
- prog->fieldoffsets.forceshader = PRVM_ED_FindFieldOffset("forceshader");
- prog->fieldoffsets.frame = PRVM_ED_FindFieldOffset("frame");
- prog->fieldoffsets.frame1time = PRVM_ED_FindFieldOffset("frame1time");
- prog->fieldoffsets.frame2 = PRVM_ED_FindFieldOffset("frame2");
- prog->fieldoffsets.frame2time = PRVM_ED_FindFieldOffset("frame2time");
- prog->fieldoffsets.frame3 = PRVM_ED_FindFieldOffset("frame3");
- prog->fieldoffsets.frame3time = PRVM_ED_FindFieldOffset("frame3time");
- prog->fieldoffsets.frame4 = PRVM_ED_FindFieldOffset("frame4");
- prog->fieldoffsets.frame4time = PRVM_ED_FindFieldOffset("frame4time");
- prog->fieldoffsets.fullbright = PRVM_ED_FindFieldOffset("fullbright");
- prog->fieldoffsets.glow_color = PRVM_ED_FindFieldOffset("glow_color");
- prog->fieldoffsets.glow_size = PRVM_ED_FindFieldOffset("glow_size");
- prog->fieldoffsets.glow_trail = PRVM_ED_FindFieldOffset("glow_trail");
- prog->fieldoffsets.glowmod = PRVM_ED_FindFieldOffset("glowmod");
- prog->fieldoffsets.gravity = PRVM_ED_FindFieldOffset("gravity");
- prog->fieldoffsets.groundentity = PRVM_ED_FindFieldOffset("groundentity");
- prog->fieldoffsets.hull = PRVM_ED_FindFieldOffset("hull");
- prog->fieldoffsets.ideal_yaw = PRVM_ED_FindFieldOffset("ideal_yaw");
- prog->fieldoffsets.idealpitch = PRVM_ED_FindFieldOffset("idealpitch");
- prog->fieldoffsets.items2 = PRVM_ED_FindFieldOffset("items2");
- prog->fieldoffsets.lerpfrac = PRVM_ED_FindFieldOffset("lerpfrac");
- prog->fieldoffsets.lerpfrac3 = PRVM_ED_FindFieldOffset("lerpfrac3");
- prog->fieldoffsets.lerpfrac4 = PRVM_ED_FindFieldOffset("lerpfrac4");
- prog->fieldoffsets.light_lev = PRVM_ED_FindFieldOffset("light_lev");
- prog->fieldoffsets.message = PRVM_ED_FindFieldOffset("message");
- prog->fieldoffsets.modelflags = PRVM_ED_FindFieldOffset("modelflags");
- prog->fieldoffsets.movement = PRVM_ED_FindFieldOffset("movement");
- prog->fieldoffsets.movetypesteplandevent = PRVM_ED_FindFieldOffset("movetypesteplandevent");
- prog->fieldoffsets.netaddress = PRVM_ED_FindFieldOffset("netaddress");
- prog->fieldoffsets.nextthink = PRVM_ED_FindFieldOffset("nextthink");
- prog->fieldoffsets.nodrawtoclient = PRVM_ED_FindFieldOffset("nodrawtoclient");
- prog->fieldoffsets.pflags = PRVM_ED_FindFieldOffset("pflags");
- prog->fieldoffsets.ping = PRVM_ED_FindFieldOffset("ping");
- prog->fieldoffsets.ping_packetloss = PRVM_ED_FindFieldOffset("ping_packetloss");
- prog->fieldoffsets.ping_movementloss = PRVM_ED_FindFieldOffset("ping_movementloss");
- prog->fieldoffsets.pitch_speed = PRVM_ED_FindFieldOffset("pitch_speed");
- prog->fieldoffsets.playermodel = PRVM_ED_FindFieldOffset("playermodel");
- prog->fieldoffsets.playerskin = PRVM_ED_FindFieldOffset("playerskin");
- prog->fieldoffsets.pmodel = PRVM_ED_FindFieldOffset("pmodel");
- prog->fieldoffsets.punchvector = PRVM_ED_FindFieldOffset("punchvector");
- prog->fieldoffsets.renderamt = PRVM_ED_FindFieldOffset("renderamt"); // HalfLife support
- prog->fieldoffsets.renderflags = PRVM_ED_FindFieldOffset("renderflags");
- prog->fieldoffsets.rendermode = PRVM_ED_FindFieldOffset("rendermode"); // HalfLife support
- prog->fieldoffsets.scale = PRVM_ED_FindFieldOffset("scale");
- prog->fieldoffsets.shadertime = PRVM_ED_FindFieldOffset("shadertime");
- prog->fieldoffsets.skeletonindex = PRVM_ED_FindFieldOffset("skeletonindex");
- prog->fieldoffsets.style = PRVM_ED_FindFieldOffset("style");
- prog->fieldoffsets.tag_entity = PRVM_ED_FindFieldOffset("tag_entity");
- prog->fieldoffsets.tag_index = PRVM_ED_FindFieldOffset("tag_index");
- prog->fieldoffsets.think = PRVM_ED_FindFieldOffset("think");
- prog->fieldoffsets.viewmodelforclient = PRVM_ED_FindFieldOffset("viewmodelforclient");
- prog->fieldoffsets.viewzoom = PRVM_ED_FindFieldOffset("viewzoom");
- prog->fieldoffsets.yaw_speed = PRVM_ED_FindFieldOffset("yaw_speed");
- prog->fieldoffsets.bouncefactor = PRVM_ED_FindFieldOffset("bouncefactor");
- prog->fieldoffsets.bouncestop = PRVM_ED_FindFieldOffset("bouncestop");
- prog->fieldoffsets.sendcomplexanimation = PRVM_ED_FindFieldOffset("sendcomplexanimation");
-
- prog->fieldoffsets.solid = PRVM_ED_FindFieldOffset("solid");
- prog->fieldoffsets.movetype = PRVM_ED_FindFieldOffset("movetype");
- prog->fieldoffsets.modelindex = PRVM_ED_FindFieldOffset("modelindex");
- prog->fieldoffsets.mins = PRVM_ED_FindFieldOffset("mins");
- prog->fieldoffsets.maxs = PRVM_ED_FindFieldOffset("maxs");
- prog->fieldoffsets.mass = PRVM_ED_FindFieldOffset("mass");
- prog->fieldoffsets.origin = PRVM_ED_FindFieldOffset("origin");
- prog->fieldoffsets.velocity = PRVM_ED_FindFieldOffset("velocity");
- //prog->fieldoffsets.axis_forward = PRVM_ED_FindFieldOffset("axis_forward");
- //prog->fieldoffsets.axis_left = PRVM_ED_FindFieldOffset("axis_left");
- //prog->fieldoffsets.axis_up = PRVM_ED_FindFieldOffset("axis_up");
- //prog->fieldoffsets.spinvelocity = PRVM_ED_FindFieldOffset("spinvelocity");
- prog->fieldoffsets.angles = PRVM_ED_FindFieldOffset("angles");
- prog->fieldoffsets.avelocity = PRVM_ED_FindFieldOffset("avelocity");
- prog->fieldoffsets.aiment = PRVM_ED_FindFieldOffset("aiment");
- prog->fieldoffsets.enemy = PRVM_ED_FindFieldOffset("enemy");
- prog->fieldoffsets.jointtype = PRVM_ED_FindFieldOffset("jointtype");
- prog->fieldoffsets.movedir = PRVM_ED_FindFieldOffset("movedir");
-
- prog->fieldoffsets.camera_transform = PRVM_ED_FindFieldOffset("camera_transform");
- prog->fieldoffsets.userwavefunc_param0 = PRVM_ED_FindFieldOffset("userwavefunc_param0");
- prog->fieldoffsets.userwavefunc_param1 = PRVM_ED_FindFieldOffset("userwavefunc_param1");
- prog->fieldoffsets.userwavefunc_param2 = PRVM_ED_FindFieldOffset("userwavefunc_param2");
- prog->fieldoffsets.userwavefunc_param3 = PRVM_ED_FindFieldOffset("userwavefunc_param3");
-
- prog->fieldoffsets.crypto_keyfp = PRVM_ED_FindFieldOffset("crypto_keyfp");
- prog->fieldoffsets.crypto_mykeyfp = PRVM_ED_FindFieldOffset("crypto_mykeyfp");
- prog->fieldoffsets.crypto_idfp = PRVM_ED_FindFieldOffset("crypto_idfp");
- prog->fieldoffsets.crypto_encryptmethod = PRVM_ED_FindFieldOffset("crypto_encryptmethod");
- prog->fieldoffsets.crypto_signmethod = PRVM_ED_FindFieldOffset("crypto_signmethod");
-
- prog->funcoffsets.CSQC_ConsoleCommand = PRVM_ED_FindFunctionOffset("CSQC_ConsoleCommand");
- prog->funcoffsets.CSQC_Ent_Remove = PRVM_ED_FindFunctionOffset("CSQC_Ent_Remove");
- prog->funcoffsets.CSQC_Ent_Spawn = PRVM_ED_FindFunctionOffset("CSQC_Ent_Spawn");
- prog->funcoffsets.CSQC_Ent_Update = PRVM_ED_FindFunctionOffset("CSQC_Ent_Update");
- prog->funcoffsets.CSQC_Event = PRVM_ED_FindFunctionOffset("CSQC_Event");
- prog->funcoffsets.CSQC_Event_Sound = PRVM_ED_FindFunctionOffset("CSQC_Event_Sound");
- prog->funcoffsets.CSQC_Init = PRVM_ED_FindFunctionOffset("CSQC_Init");
- prog->funcoffsets.CSQC_InputEvent = PRVM_ED_FindFunctionOffset("CSQC_InputEvent");
- prog->funcoffsets.CSQC_Parse_CenterPrint = PRVM_ED_FindFunctionOffset("CSQC_Parse_CenterPrint");
- prog->funcoffsets.CSQC_Parse_Print = PRVM_ED_FindFunctionOffset("CSQC_Parse_Print");
- prog->funcoffsets.CSQC_Parse_StuffCmd = PRVM_ED_FindFunctionOffset("CSQC_Parse_StuffCmd");
- prog->funcoffsets.CSQC_Parse_TempEntity = PRVM_ED_FindFunctionOffset("CSQC_Parse_TempEntity");
- prog->funcoffsets.CSQC_Shutdown = PRVM_ED_FindFunctionOffset("CSQC_Shutdown");
- prog->funcoffsets.CSQC_UpdateView = PRVM_ED_FindFunctionOffset("CSQC_UpdateView");
- prog->funcoffsets.EndFrame = PRVM_ED_FindFunctionOffset("EndFrame");
- prog->funcoffsets.GameCommand = PRVM_ED_FindFunctionOffset("GameCommand");
- prog->funcoffsets.Gecko_Query = PRVM_ED_FindFunctionOffset("Gecko_Query");
- prog->funcoffsets.RestoreGame = PRVM_ED_FindFunctionOffset("RestoreGame");
- prog->funcoffsets.SV_ChangeTeam = PRVM_ED_FindFunctionOffset("SV_ChangeTeam");
- prog->funcoffsets.SV_OnEntityNoSpawnFunction = PRVM_ED_FindFunctionOffset("SV_OnEntityNoSpawnFunction");
- prog->funcoffsets.SV_OnEntityPostSpawnFunction = PRVM_ED_FindFunctionOffset("SV_OnEntityPostSpawnFunction");
- prog->funcoffsets.SV_OnEntityPreSpawnFunction = PRVM_ED_FindFunctionOffset("SV_OnEntityPreSpawnFunction");
- prog->funcoffsets.SV_ParseClientCommand = PRVM_ED_FindFunctionOffset("SV_ParseClientCommand");
- prog->funcoffsets.SV_PausedTic = PRVM_ED_FindFunctionOffset("SV_PausedTic");
- prog->funcoffsets.SV_PlayerPhysics = PRVM_ED_FindFunctionOffset("SV_PlayerPhysics");
- prog->funcoffsets.SV_Shutdown = PRVM_ED_FindFunctionOffset("SV_Shutdown");
- prog->funcoffsets.URI_Get_Callback = PRVM_ED_FindFunctionOffset("URI_Get_Callback");
- prog->globaloffsets.SV_InitCmd = PRVM_ED_FindGlobalOffset("SV_InitCmd");
- prog->globaloffsets.coop = PRVM_ED_FindGlobalOffset("coop");
- prog->globaloffsets.deathmatch = PRVM_ED_FindGlobalOffset("deathmatch");
- prog->globaloffsets.dmg_origin = PRVM_ED_FindGlobalOffset("dmg_origin");
- prog->globaloffsets.dmg_save = PRVM_ED_FindGlobalOffset("dmg_save");
- prog->globaloffsets.dmg_take = PRVM_ED_FindGlobalOffset("dmg_take");
- prog->globaloffsets.drawfont = PRVM_ED_FindGlobalOffset("drawfont");
- prog->globaloffsets.drawfontscale = PRVM_ED_FindGlobalOffset("drawfontscale");
- prog->globaloffsets.gettaginfo_forward = PRVM_ED_FindGlobalOffset("gettaginfo_forward");
- prog->globaloffsets.gettaginfo_name = PRVM_ED_FindGlobalOffset("gettaginfo_name");
- prog->globaloffsets.gettaginfo_offset = PRVM_ED_FindGlobalOffset("gettaginfo_offset");
- prog->globaloffsets.gettaginfo_parent = PRVM_ED_FindGlobalOffset("gettaginfo_parent");
- prog->globaloffsets.gettaginfo_right = PRVM_ED_FindGlobalOffset("gettaginfo_right");
- prog->globaloffsets.gettaginfo_up = PRVM_ED_FindGlobalOffset("gettaginfo_up");
- prog->globaloffsets.transparent_offset = PRVM_ED_FindGlobalOffset("transparent_offset");
- prog->globaloffsets.intermission = PRVM_ED_FindGlobalOffset("intermission");
- prog->globaloffsets.require_spawnfunc_prefix = PRVM_ED_FindGlobalOffset("require_spawnfunc_prefix");
- prog->globaloffsets.sb_showscores = PRVM_ED_FindGlobalOffset("sb_showscores");
- prog->globaloffsets.self = PRVM_ED_FindGlobalOffset("self");
- prog->globaloffsets.serverdeltatime = PRVM_ED_FindGlobalOffset("serverdeltatime");
- prog->globaloffsets.serverprevtime = PRVM_ED_FindGlobalOffset("serverprevtime");
- prog->globaloffsets.servertime = PRVM_ED_FindGlobalOffset("servertime");
- prog->globaloffsets.time = PRVM_ED_FindGlobalOffset("time");
- prog->globaloffsets.trace_allsolid = PRVM_ED_FindGlobalOffset("trace_allsolid");
- prog->globaloffsets.trace_dphitcontents = PRVM_ED_FindGlobalOffset("trace_dphitcontents");
- prog->globaloffsets.trace_dphitq3surfaceflags = PRVM_ED_FindGlobalOffset("trace_dphitq3surfaceflags");
- prog->globaloffsets.trace_dphittexturename = PRVM_ED_FindGlobalOffset("trace_dphittexturename");
- prog->globaloffsets.trace_dpstartcontents = PRVM_ED_FindGlobalOffset("trace_dpstartcontents");
- prog->globaloffsets.trace_endpos = PRVM_ED_FindGlobalOffset("trace_endpos");
- prog->globaloffsets.trace_ent = PRVM_ED_FindGlobalOffset("trace_ent");
- prog->globaloffsets.trace_fraction = PRVM_ED_FindGlobalOffset("trace_fraction");
- prog->globaloffsets.trace_inopen = PRVM_ED_FindGlobalOffset("trace_inopen");
- prog->globaloffsets.trace_inwater = PRVM_ED_FindGlobalOffset("trace_inwater");
- prog->globaloffsets.trace_networkentity = PRVM_ED_FindGlobalOffset("trace_networkentity");
- prog->globaloffsets.trace_plane_dist = PRVM_ED_FindGlobalOffset("trace_plane_dist");
- prog->globaloffsets.trace_plane_normal = PRVM_ED_FindGlobalOffset("trace_plane_normal");
- prog->globaloffsets.trace_startsolid = PRVM_ED_FindGlobalOffset("trace_startsolid");
- prog->globaloffsets.v_forward = PRVM_ED_FindGlobalOffset("v_forward");
- prog->globaloffsets.v_right = PRVM_ED_FindGlobalOffset("v_right");
- prog->globaloffsets.v_up = PRVM_ED_FindGlobalOffset("v_up");
- prog->globaloffsets.view_angles = PRVM_ED_FindGlobalOffset("view_angles");
- prog->globaloffsets.view_punchangle = PRVM_ED_FindGlobalOffset("view_punchangle");
- prog->globaloffsets.view_punchvector = PRVM_ED_FindGlobalOffset("view_punchvector");
- prog->globaloffsets.worldstatus = PRVM_ED_FindGlobalOffset("worldstatus");
- prog->globaloffsets.particles_alphamin = PRVM_ED_FindGlobalOffset("particles_alphamin");
- prog->globaloffsets.particles_alphamax = PRVM_ED_FindGlobalOffset("particles_alphamax");
- prog->globaloffsets.particles_colormin = PRVM_ED_FindGlobalOffset("particles_colormin");
- prog->globaloffsets.particles_colormax = PRVM_ED_FindGlobalOffset("particles_colormax");
- prog->globaloffsets.pmove_onground = PRVM_ED_FindGlobalOffset("pmove_onground");
- prog->globaloffsets.pmove_inwater = PRVM_ED_FindGlobalOffset("pmove_inwater");
-
- prog->globaloffsets.particle_type = PRVM_ED_FindGlobalOffset("particle_type");
- prog->globaloffsets.particle_blendmode = PRVM_ED_FindGlobalOffset("particle_blendmode");
- prog->globaloffsets.particle_orientation = PRVM_ED_FindGlobalOffset("particle_orientation");
- prog->globaloffsets.particle_color1 = PRVM_ED_FindGlobalOffset("particle_color1");
- prog->globaloffsets.particle_color2 = PRVM_ED_FindGlobalOffset("particle_color2");
- prog->globaloffsets.particle_tex = PRVM_ED_FindGlobalOffset("particle_tex");
- prog->globaloffsets.particle_size = PRVM_ED_FindGlobalOffset("particle_size");
- prog->globaloffsets.particle_sizeincrease = PRVM_ED_FindGlobalOffset("particle_sizeincrease");
- prog->globaloffsets.particle_alpha = PRVM_ED_FindGlobalOffset("particle_alpha");
- prog->globaloffsets.particle_alphafade = PRVM_ED_FindGlobalOffset("particle_alphafade");
- prog->globaloffsets.particle_time = PRVM_ED_FindGlobalOffset("particle_time");
- prog->globaloffsets.particle_gravity = PRVM_ED_FindGlobalOffset("particle_gravity");
- prog->globaloffsets.particle_bounce = PRVM_ED_FindGlobalOffset("particle_bounce");
- prog->globaloffsets.particle_airfriction = PRVM_ED_FindGlobalOffset("particle_airfriction");
- prog->globaloffsets.particle_liquidfriction = PRVM_ED_FindGlobalOffset("particle_liquidfriction");
- prog->globaloffsets.particle_originjitter = PRVM_ED_FindGlobalOffset("particle_originjitter");
- prog->globaloffsets.particle_velocityjitter = PRVM_ED_FindGlobalOffset("particle_velocityjitter");
- prog->globaloffsets.particle_qualityreduction = PRVM_ED_FindGlobalOffset("particle_qualityreduction");
- prog->globaloffsets.particle_stretch = PRVM_ED_FindGlobalOffset("particle_stretch");
- prog->globaloffsets.particle_staincolor1 = PRVM_ED_FindGlobalOffset("particle_staincolor1");
- prog->globaloffsets.particle_staincolor2 = PRVM_ED_FindGlobalOffset("particle_staincolor2");
- prog->globaloffsets.particle_stainalpha = PRVM_ED_FindGlobalOffset("particle_stainalpha");
- prog->globaloffsets.particle_stainsize = PRVM_ED_FindGlobalOffset("particle_stainsize");
- prog->globaloffsets.particle_staintex = PRVM_ED_FindGlobalOffset("particle_staintex");
- prog->globaloffsets.particle_staintex = PRVM_ED_FindGlobalOffset("particle_staintex");
- prog->globaloffsets.particle_delayspawn = PRVM_ED_FindGlobalOffset("particle_delayspawn");
- prog->globaloffsets.particle_delaycollision = PRVM_ED_FindGlobalOffset("particle_delaycollision");
- prog->globaloffsets.particle_angle = PRVM_ED_FindGlobalOffset("particle_angle");
- prog->globaloffsets.particle_spin = PRVM_ED_FindGlobalOffset("particle_spin");
-
- // menu qc only uses some functions, nothing else
- prog->funcoffsets.m_draw = PRVM_ED_FindFunctionOffset("m_draw");
- prog->funcoffsets.m_init = PRVM_ED_FindFunctionOffset("m_init");
- prog->funcoffsets.m_keydown = PRVM_ED_FindFunctionOffset("m_keydown");
- prog->funcoffsets.m_keyup = PRVM_ED_FindFunctionOffset("m_keyup");
- prog->funcoffsets.m_shutdown = PRVM_ED_FindFunctionOffset("m_shutdown");
- prog->funcoffsets.m_toggle = PRVM_ED_FindFunctionOffset("m_toggle");
- prog->funcoffsets.m_newmap = PRVM_ED_FindFunctionOffset("m_newmap");
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x) prog->fieldoffsets.x = PRVM_ED_FindFieldOffset(#x);
+#define PRVM_DECLARE_global(x) prog->globaloffsets.x = PRVM_ED_FindGlobalOffset(#x);
+#define PRVM_DECLARE_function(x) prog->funcoffsets.x = PRVM_ED_FindFunctionOffset(#x);
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
}
// not used
if (prog == NULL)
return;
- prog->funcoffsets.SV_Shutdown = 0; // don't call SV_Shutdown on crash
+ PRVM_serverfunction(SV_Shutdown) = 0; // don't call SV_Shutdown on crash
if( prog->depth > 0 )
{
--- /dev/null
+PRVM_DECLARE_clientfieldedict(aiment)
+PRVM_DECLARE_clientfieldedict(chain)
+PRVM_DECLARE_clientfieldedict(enemy)
+PRVM_DECLARE_clientfieldedict(groundentity)
+PRVM_DECLARE_clientfieldedict(owner)
+PRVM_DECLARE_clientfieldedict(tag_entity)
+PRVM_DECLARE_clientfieldfloat(alpha)
+PRVM_DECLARE_clientfieldfloat(bouncefactor)
+PRVM_DECLARE_clientfieldfloat(bouncestop)
+PRVM_DECLARE_clientfieldfloat(colormap)
+PRVM_DECLARE_clientfieldfloat(dphitcontentsmask)
+PRVM_DECLARE_clientfieldfloat(drawmask)
+PRVM_DECLARE_clientfieldfloat(effects)
+PRVM_DECLARE_clientfieldfloat(entnum)
+PRVM_DECLARE_clientfieldfloat(flags)
+PRVM_DECLARE_clientfieldfloat(frame)
+PRVM_DECLARE_clientfieldfloat(frame1time)
+PRVM_DECLARE_clientfieldfloat(frame2)
+PRVM_DECLARE_clientfieldfloat(frame2time)
+PRVM_DECLARE_clientfieldfloat(frame3)
+PRVM_DECLARE_clientfieldfloat(frame3time)
+PRVM_DECLARE_clientfieldfloat(frame4)
+PRVM_DECLARE_clientfieldfloat(frame4time)
+PRVM_DECLARE_clientfieldfloat(gravity)
+PRVM_DECLARE_clientfieldfloat(ideal_yaw)
+PRVM_DECLARE_clientfieldfloat(idealpitch)
+PRVM_DECLARE_clientfieldfloat(jointtype)
+PRVM_DECLARE_clientfieldfloat(lerpfrac)
+PRVM_DECLARE_clientfieldfloat(lerpfrac3)
+PRVM_DECLARE_clientfieldfloat(lerpfrac4)
+PRVM_DECLARE_clientfieldfloat(mass)
+PRVM_DECLARE_clientfieldfloat(modelindex)
+PRVM_DECLARE_clientfieldfloat(movetype)
+PRVM_DECLARE_clientfieldfloat(nextthink)
+PRVM_DECLARE_clientfieldfloat(pitch_speed)
+PRVM_DECLARE_clientfieldfloat(renderflags)
+PRVM_DECLARE_clientfieldfloat(scale)
+PRVM_DECLARE_clientfieldfloat(shadertime)
+PRVM_DECLARE_clientfieldfloat(skeletonindex)
+PRVM_DECLARE_clientfieldfloat(skin)
+PRVM_DECLARE_clientfieldfloat(solid)
+PRVM_DECLARE_clientfieldfloat(tag_index)
+PRVM_DECLARE_clientfieldfloat(userwavefunc_param0)
+PRVM_DECLARE_clientfieldfloat(userwavefunc_param1)
+PRVM_DECLARE_clientfieldfloat(userwavefunc_param2)
+PRVM_DECLARE_clientfieldfloat(userwavefunc_param3)
+PRVM_DECLARE_clientfieldfloat(yaw_speed)
+PRVM_DECLARE_clientfieldfunction(blocked)
+PRVM_DECLARE_clientfieldfunction(camera_transform)
+PRVM_DECLARE_clientfieldfunction(predraw)
+PRVM_DECLARE_clientfieldfunction(think)
+PRVM_DECLARE_clientfieldfunction(touch)
+PRVM_DECLARE_clientfieldfunction(use)
+PRVM_DECLARE_clientfieldstring(classname)
+PRVM_DECLARE_clientfieldstring(message)
+PRVM_DECLARE_clientfieldstring(model)
+PRVM_DECLARE_clientfieldstring(netname)
+PRVM_DECLARE_clientfieldvector(absmax)
+PRVM_DECLARE_clientfieldvector(absmin)
+PRVM_DECLARE_clientfieldvector(angles)
+PRVM_DECLARE_clientfieldvector(avelocity)
+PRVM_DECLARE_clientfieldvector(colormod)
+PRVM_DECLARE_clientfieldvector(glowmod)
+PRVM_DECLARE_clientfieldvector(maxs)
+PRVM_DECLARE_clientfieldvector(mins)
+PRVM_DECLARE_clientfieldvector(movedir)
+PRVM_DECLARE_clientfieldvector(oldorigin)
+PRVM_DECLARE_clientfieldvector(origin)
+PRVM_DECLARE_clientfieldvector(size)
+PRVM_DECLARE_clientfieldvector(velocity)
+PRVM_DECLARE_clientfunction(CSQC_ConsoleCommand)
+PRVM_DECLARE_clientfunction(CSQC_Ent_Remove)
+PRVM_DECLARE_clientfunction(CSQC_Ent_Spawn)
+PRVM_DECLARE_clientfunction(CSQC_Ent_Update)
+PRVM_DECLARE_clientfunction(CSQC_Event)
+PRVM_DECLARE_clientfunction(CSQC_Event_Sound)
+PRVM_DECLARE_clientfunction(CSQC_Init)
+PRVM_DECLARE_clientfunction(CSQC_InputEvent)
+PRVM_DECLARE_clientfunction(CSQC_Parse_CenterPrint)
+PRVM_DECLARE_clientfunction(CSQC_Parse_Print)
+PRVM_DECLARE_clientfunction(CSQC_Parse_StuffCmd)
+PRVM_DECLARE_clientfunction(CSQC_Parse_TempEntity)
+PRVM_DECLARE_clientfunction(CSQC_Shutdown)
+PRVM_DECLARE_clientfunction(CSQC_UpdateView)
+PRVM_DECLARE_clientfunction(GameCommand)
+PRVM_DECLARE_clientfunction(Gecko_Query)
+PRVM_DECLARE_clientfunction(URI_Get_Callback)
+PRVM_DECLARE_clientglobaledict(other)
+PRVM_DECLARE_clientglobaledict(self)
+PRVM_DECLARE_clientglobaledict(trace_ent)
+PRVM_DECLARE_clientglobaledict(world)
+PRVM_DECLARE_clientglobalfloat(clientcommandframe)
+PRVM_DECLARE_clientglobalfloat(coop)
+PRVM_DECLARE_clientglobalfloat(deathmatch)
+PRVM_DECLARE_clientglobalfloat(dmg_save)
+PRVM_DECLARE_clientglobalfloat(dmg_take)
+PRVM_DECLARE_clientglobalfloat(drawfont)
+PRVM_DECLARE_clientglobalfloat(frametime)
+PRVM_DECLARE_clientglobalfloat(gettaginfo_parent)
+PRVM_DECLARE_clientglobalfloat(input_buttons)
+PRVM_DECLARE_clientglobalfloat(input_timelength)
+PRVM_DECLARE_clientglobalfloat(intermission)
+PRVM_DECLARE_clientglobalfloat(maxclients)
+PRVM_DECLARE_clientglobalfloat(movevar_accelerate)
+PRVM_DECLARE_clientglobalfloat(movevar_airaccelerate)
+PRVM_DECLARE_clientglobalfloat(movevar_entgravity)
+PRVM_DECLARE_clientglobalfloat(movevar_friction)
+PRVM_DECLARE_clientglobalfloat(movevar_gravity)
+PRVM_DECLARE_clientglobalfloat(movevar_maxspeed)
+PRVM_DECLARE_clientglobalfloat(movevar_spectatormaxspeed)
+PRVM_DECLARE_clientglobalfloat(movevar_stopspeed)
+PRVM_DECLARE_clientglobalfloat(movevar_wateraccelerate)
+PRVM_DECLARE_clientglobalfloat(movevar_waterfriction)
+PRVM_DECLARE_clientglobalfloat(particle_airfriction)
+PRVM_DECLARE_clientglobalfloat(particle_alpha)
+PRVM_DECLARE_clientglobalfloat(particle_alphafade)
+PRVM_DECLARE_clientglobalfloat(particle_angle)
+PRVM_DECLARE_clientglobalfloat(particle_blendmode)
+PRVM_DECLARE_clientglobalfloat(particle_bounce)
+PRVM_DECLARE_clientglobalfloat(particle_delaycollision)
+PRVM_DECLARE_clientglobalfloat(particle_delayspawn)
+PRVM_DECLARE_clientglobalfloat(particle_gravity)
+PRVM_DECLARE_clientglobalfloat(particle_liquidfriction)
+PRVM_DECLARE_clientglobalfloat(particle_orientation)
+PRVM_DECLARE_clientglobalfloat(particle_originjitter)
+PRVM_DECLARE_clientglobalfloat(particle_qualityreduction)
+PRVM_DECLARE_clientglobalfloat(particle_size)
+PRVM_DECLARE_clientglobalfloat(particle_sizeincrease)
+PRVM_DECLARE_clientglobalfloat(particle_spin)
+PRVM_DECLARE_clientglobalfloat(particle_stainalpha)
+PRVM_DECLARE_clientglobalfloat(particle_stainsize)
+PRVM_DECLARE_clientglobalfloat(particle_staintex)
+PRVM_DECLARE_clientglobalfloat(particle_stretch)
+PRVM_DECLARE_clientglobalfloat(particle_tex)
+PRVM_DECLARE_clientglobalfloat(particle_time)
+PRVM_DECLARE_clientglobalfloat(particle_type)
+PRVM_DECLARE_clientglobalfloat(particle_velocityjitter)
+PRVM_DECLARE_clientglobalfloat(particles_alphamax)
+PRVM_DECLARE_clientglobalfloat(particles_alphamin)
+PRVM_DECLARE_clientglobalfloat(player_localentnum)
+PRVM_DECLARE_clientglobalfloat(player_localnum)
+PRVM_DECLARE_clientglobalfloat(require_spawnfunc_prefix)
+PRVM_DECLARE_clientglobalfloat(sb_showscores)
+PRVM_DECLARE_clientglobalfloat(servercommandframe)
+PRVM_DECLARE_clientglobalfloat(serverdeltatime)
+PRVM_DECLARE_clientglobalfloat(serverprevtime)
+PRVM_DECLARE_clientglobalfloat(servertime)
+PRVM_DECLARE_clientglobalfloat(time)
+PRVM_DECLARE_clientglobalfloat(trace_allsolid)
+PRVM_DECLARE_clientglobalfloat(trace_dphitcontents)
+PRVM_DECLARE_clientglobalfloat(trace_dphitq3surfaceflags)
+PRVM_DECLARE_clientglobalfloat(trace_dpstartcontents)
+PRVM_DECLARE_clientglobalfloat(trace_fraction)
+PRVM_DECLARE_clientglobalfloat(trace_inopen)
+PRVM_DECLARE_clientglobalfloat(trace_inwater)
+PRVM_DECLARE_clientglobalfloat(trace_networkentity)
+PRVM_DECLARE_clientglobalfloat(trace_plane_dist)
+PRVM_DECLARE_clientglobalfloat(trace_startsolid)
+PRVM_DECLARE_clientglobalfloat(transparent_offset)
+PRVM_DECLARE_clientglobalstring(gettaginfo_name)
+PRVM_DECLARE_clientglobalstring(mapname)
+PRVM_DECLARE_clientglobalstring(trace_dphittexturename)
+PRVM_DECLARE_clientglobalvector(dmg_origin)
+PRVM_DECLARE_clientglobalvector(drawfontscale)
+PRVM_DECLARE_clientglobalvector(gettaginfo_forward)
+PRVM_DECLARE_clientglobalvector(gettaginfo_offset)
+PRVM_DECLARE_clientglobalvector(gettaginfo_right)
+PRVM_DECLARE_clientglobalvector(gettaginfo_up)
+PRVM_DECLARE_clientglobalvector(input_angles)
+PRVM_DECLARE_clientglobalvector(input_movevalues)
+PRVM_DECLARE_clientglobalvector(particle_color1)
+PRVM_DECLARE_clientglobalvector(particle_color2)
+PRVM_DECLARE_clientglobalvector(particle_staincolor1)
+PRVM_DECLARE_clientglobalvector(particle_staincolor2)
+PRVM_DECLARE_clientglobalvector(particles_colormax)
+PRVM_DECLARE_clientglobalvector(particles_colormin)
+PRVM_DECLARE_clientglobalvector(pmove_inwater)
+PRVM_DECLARE_clientglobalvector(pmove_maxs)
+PRVM_DECLARE_clientglobalvector(pmove_mins)
+PRVM_DECLARE_clientglobalvector(pmove_onground)
+PRVM_DECLARE_clientglobalvector(pmove_org)
+PRVM_DECLARE_clientglobalvector(pmove_vel)
+PRVM_DECLARE_clientglobalvector(trace_endpos)
+PRVM_DECLARE_clientglobalvector(trace_plane_normal)
+PRVM_DECLARE_clientglobalvector(v_forward)
+PRVM_DECLARE_clientglobalvector(v_right)
+PRVM_DECLARE_clientglobalvector(v_up)
+PRVM_DECLARE_clientglobalvector(view_angles)
+PRVM_DECLARE_clientglobalvector(view_punchangle)
+PRVM_DECLARE_clientglobalvector(view_punchvector)
+PRVM_DECLARE_field(SendEntity)
+PRVM_DECLARE_field(SendFlags)
+PRVM_DECLARE_field(Version)
+PRVM_DECLARE_field(absmax)
+PRVM_DECLARE_field(absmin)
+PRVM_DECLARE_field(aiment)
+PRVM_DECLARE_field(alpha)
+PRVM_DECLARE_field(ammo_cells)
+PRVM_DECLARE_field(ammo_cells1)
+PRVM_DECLARE_field(ammo_lava_nails)
+PRVM_DECLARE_field(ammo_multi_rockets)
+PRVM_DECLARE_field(ammo_nails)
+PRVM_DECLARE_field(ammo_nails1)
+PRVM_DECLARE_field(ammo_plasma)
+PRVM_DECLARE_field(ammo_rockets)
+PRVM_DECLARE_field(ammo_rockets1)
+PRVM_DECLARE_field(ammo_shells)
+PRVM_DECLARE_field(ammo_shells1)
+PRVM_DECLARE_field(angles)
+PRVM_DECLARE_field(armortype)
+PRVM_DECLARE_field(armorvalue)
+PRVM_DECLARE_field(avelocity)
+PRVM_DECLARE_field(blocked)
+PRVM_DECLARE_field(bouncefactor)
+PRVM_DECLARE_field(bouncestop)
+PRVM_DECLARE_field(button0)
+PRVM_DECLARE_field(button1)
+PRVM_DECLARE_field(button2)
+PRVM_DECLARE_field(button3)
+PRVM_DECLARE_field(button4)
+PRVM_DECLARE_field(button5)
+PRVM_DECLARE_field(button6)
+PRVM_DECLARE_field(button7)
+PRVM_DECLARE_field(button8)
+PRVM_DECLARE_field(button9)
+PRVM_DECLARE_field(button10)
+PRVM_DECLARE_field(button11)
+PRVM_DECLARE_field(button12)
+PRVM_DECLARE_field(button13)
+PRVM_DECLARE_field(button14)
+PRVM_DECLARE_field(button15)
+PRVM_DECLARE_field(button16)
+PRVM_DECLARE_field(buttonchat)
+PRVM_DECLARE_field(buttonuse)
+PRVM_DECLARE_field(camera_transform)
+PRVM_DECLARE_field(chain)
+PRVM_DECLARE_field(classname)
+PRVM_DECLARE_field(clientcamera)
+PRVM_DECLARE_field(clientcolors)
+PRVM_DECLARE_field(clientstatus)
+PRVM_DECLARE_field(color)
+PRVM_DECLARE_field(colormap)
+PRVM_DECLARE_field(colormod)
+PRVM_DECLARE_field(contentstransition)
+PRVM_DECLARE_field(crypto_encryptmethod)
+PRVM_DECLARE_field(crypto_idfp)
+PRVM_DECLARE_field(crypto_keyfp)
+PRVM_DECLARE_field(crypto_mykeyfp)
+PRVM_DECLARE_field(crypto_signmethod)
+PRVM_DECLARE_field(currentammo)
+PRVM_DECLARE_field(cursor_active)
+PRVM_DECLARE_field(cursor_screen)
+PRVM_DECLARE_field(cursor_trace_endpos)
+PRVM_DECLARE_field(cursor_trace_ent)
+PRVM_DECLARE_field(cursor_trace_start)
+PRVM_DECLARE_field(customizeentityforclient)
+PRVM_DECLARE_field(deadflag)
+PRVM_DECLARE_field(disableclientprediction)
+PRVM_DECLARE_field(discardabledemo)
+PRVM_DECLARE_field(dmg_inflictor)
+PRVM_DECLARE_field(dmg_save)
+PRVM_DECLARE_field(dmg_take)
+PRVM_DECLARE_field(dphitcontentsmask)
+PRVM_DECLARE_field(drawmask)
+PRVM_DECLARE_field(drawonlytoclient)
+PRVM_DECLARE_field(effects)
+PRVM_DECLARE_field(enemy)
+PRVM_DECLARE_field(entnum)
+PRVM_DECLARE_field(exteriormodeltoclient)
+PRVM_DECLARE_field(fixangle)
+PRVM_DECLARE_field(flags)
+PRVM_DECLARE_field(frags)
+PRVM_DECLARE_field(frame)
+PRVM_DECLARE_field(frame1time)
+PRVM_DECLARE_field(frame2)
+PRVM_DECLARE_field(frame2time)
+PRVM_DECLARE_field(frame3)
+PRVM_DECLARE_field(frame3time)
+PRVM_DECLARE_field(frame4)
+PRVM_DECLARE_field(frame4time)
+PRVM_DECLARE_field(fullbright)
+PRVM_DECLARE_field(glow_color)
+PRVM_DECLARE_field(glow_size)
+PRVM_DECLARE_field(glow_trail)
+PRVM_DECLARE_field(glowmod)
+PRVM_DECLARE_field(goalentity)
+PRVM_DECLARE_field(gravity)
+PRVM_DECLARE_field(groundentity)
+PRVM_DECLARE_field(health)
+PRVM_DECLARE_field(ideal_yaw)
+PRVM_DECLARE_field(idealpitch)
+PRVM_DECLARE_field(impulse)
+PRVM_DECLARE_field(items)
+PRVM_DECLARE_field(items2)
+PRVM_DECLARE_field(jointtype)
+PRVM_DECLARE_field(lerpfrac)
+PRVM_DECLARE_field(lerpfrac3)
+PRVM_DECLARE_field(lerpfrac4)
+PRVM_DECLARE_field(light_lev)
+PRVM_DECLARE_field(ltime)
+PRVM_DECLARE_field(mass)
+PRVM_DECLARE_field(max_health)
+PRVM_DECLARE_field(maxs)
+PRVM_DECLARE_field(message)
+PRVM_DECLARE_field(mins)
+PRVM_DECLARE_field(model)
+PRVM_DECLARE_field(modelflags)
+PRVM_DECLARE_field(modelindex)
+PRVM_DECLARE_field(movedir)
+PRVM_DECLARE_field(movement)
+PRVM_DECLARE_field(movetype)
+PRVM_DECLARE_field(movetypesteplandevent)
+PRVM_DECLARE_field(netaddress)
+PRVM_DECLARE_field(netname)
+PRVM_DECLARE_field(nextthink)
+PRVM_DECLARE_field(nodrawtoclient)
+PRVM_DECLARE_field(noise)
+PRVM_DECLARE_field(noise1)
+PRVM_DECLARE_field(noise2)
+PRVM_DECLARE_field(noise3)
+PRVM_DECLARE_field(oldorigin)
+PRVM_DECLARE_field(origin)
+PRVM_DECLARE_field(owner)
+PRVM_DECLARE_field(pflags)
+PRVM_DECLARE_field(ping)
+PRVM_DECLARE_field(ping_movementloss)
+PRVM_DECLARE_field(ping_packetloss)
+PRVM_DECLARE_field(pitch_speed)
+PRVM_DECLARE_field(playermodel)
+PRVM_DECLARE_field(playerskin)
+PRVM_DECLARE_field(pmodel)
+PRVM_DECLARE_field(predraw)
+PRVM_DECLARE_field(punchangle)
+PRVM_DECLARE_field(punchvector)
+PRVM_DECLARE_field(renderamt)
+PRVM_DECLARE_field(renderflags)
+PRVM_DECLARE_field(scale)
+PRVM_DECLARE_field(sendcomplexanimation)
+PRVM_DECLARE_field(shadertime)
+PRVM_DECLARE_field(size)
+PRVM_DECLARE_field(skeletonindex)
+PRVM_DECLARE_field(skin)
+PRVM_DECLARE_field(solid)
+PRVM_DECLARE_field(sounds)
+PRVM_DECLARE_field(spawnflags)
+PRVM_DECLARE_field(style)
+PRVM_DECLARE_field(tag_entity)
+PRVM_DECLARE_field(tag_index)
+PRVM_DECLARE_field(takedamage)
+PRVM_DECLARE_field(target)
+PRVM_DECLARE_field(targetname)
+PRVM_DECLARE_field(team)
+PRVM_DECLARE_field(teleport_time)
+PRVM_DECLARE_field(think)
+PRVM_DECLARE_field(touch)
+PRVM_DECLARE_field(use)
+PRVM_DECLARE_field(userwavefunc_param0)
+PRVM_DECLARE_field(userwavefunc_param1)
+PRVM_DECLARE_field(userwavefunc_param2)
+PRVM_DECLARE_field(userwavefunc_param3)
+PRVM_DECLARE_field(v_angle)
+PRVM_DECLARE_field(velocity)
+PRVM_DECLARE_field(view_ofs)
+PRVM_DECLARE_field(viewmodelforclient)
+PRVM_DECLARE_field(viewzoom)
+PRVM_DECLARE_field(waterlevel)
+PRVM_DECLARE_field(watertype)
+PRVM_DECLARE_field(weapon)
+PRVM_DECLARE_field(weaponframe)
+PRVM_DECLARE_field(weaponmodel)
+PRVM_DECLARE_field(yaw_speed)
+PRVM_DECLARE_function(CSQC_ConsoleCommand)
+PRVM_DECLARE_function(CSQC_Ent_Remove)
+PRVM_DECLARE_function(CSQC_Ent_Spawn)
+PRVM_DECLARE_function(CSQC_Ent_Update)
+PRVM_DECLARE_function(CSQC_Event)
+PRVM_DECLARE_function(CSQC_Event_Sound)
+PRVM_DECLARE_function(CSQC_Init)
+PRVM_DECLARE_function(CSQC_InputEvent)
+PRVM_DECLARE_function(CSQC_Parse_CenterPrint)
+PRVM_DECLARE_function(CSQC_Parse_Print)
+PRVM_DECLARE_function(CSQC_Parse_StuffCmd)
+PRVM_DECLARE_function(CSQC_Parse_TempEntity)
+PRVM_DECLARE_function(CSQC_Shutdown)
+PRVM_DECLARE_function(CSQC_UpdateView)
+PRVM_DECLARE_function(ClientConnect)
+PRVM_DECLARE_function(ClientDisconnect)
+PRVM_DECLARE_function(ClientKill)
+PRVM_DECLARE_function(EndFrame)
+PRVM_DECLARE_function(GameCommand)
+PRVM_DECLARE_function(Gecko_Query)
+PRVM_DECLARE_function(PlayerPostThink)
+PRVM_DECLARE_function(PlayerPreThink)
+PRVM_DECLARE_function(PutClientInServer)
+PRVM_DECLARE_function(RestoreGame)
+PRVM_DECLARE_function(SV_ChangeTeam)
+PRVM_DECLARE_function(SV_OnEntityNoSpawnFunction)
+PRVM_DECLARE_function(SV_OnEntityPostSpawnFunction)
+PRVM_DECLARE_function(SV_OnEntityPreSpawnFunction)
+PRVM_DECLARE_function(SV_ParseClientCommand)
+PRVM_DECLARE_function(SV_PausedTic)
+PRVM_DECLARE_function(SV_PlayerPhysics)
+PRVM_DECLARE_function(SV_Shutdown)
+PRVM_DECLARE_function(SetChangeParms)
+PRVM_DECLARE_function(SetNewParms)
+PRVM_DECLARE_function(StartFrame)
+PRVM_DECLARE_function(URI_Get_Callback)
+PRVM_DECLARE_function(m_draw)
+PRVM_DECLARE_function(m_init)
+PRVM_DECLARE_function(m_keydown)
+PRVM_DECLARE_function(m_keyup)
+PRVM_DECLARE_function(m_newmap)
+PRVM_DECLARE_function(m_shutdown)
+PRVM_DECLARE_function(m_toggle)
+PRVM_DECLARE_function(main)
+PRVM_DECLARE_global(SV_InitCmd)
+PRVM_DECLARE_global(clientcommandframe)
+PRVM_DECLARE_global(coop)
+PRVM_DECLARE_global(deathmatch)
+PRVM_DECLARE_global(dmg_origin)
+PRVM_DECLARE_global(dmg_save)
+PRVM_DECLARE_global(dmg_take)
+PRVM_DECLARE_global(drawfont)
+PRVM_DECLARE_global(drawfontscale)
+PRVM_DECLARE_global(force_retouch)
+PRVM_DECLARE_global(found_secrets)
+PRVM_DECLARE_global(frametime)
+PRVM_DECLARE_global(gettaginfo_forward)
+PRVM_DECLARE_global(gettaginfo_name)
+PRVM_DECLARE_global(gettaginfo_offset)
+PRVM_DECLARE_global(gettaginfo_parent)
+PRVM_DECLARE_global(gettaginfo_right)
+PRVM_DECLARE_global(gettaginfo_up)
+PRVM_DECLARE_global(input_angles)
+PRVM_DECLARE_global(input_buttons)
+PRVM_DECLARE_global(input_movevalues)
+PRVM_DECLARE_global(input_timelength)
+PRVM_DECLARE_global(intermission)
+PRVM_DECLARE_global(killed_monsters)
+PRVM_DECLARE_global(mapname)
+PRVM_DECLARE_global(maxclients)
+PRVM_DECLARE_global(movevar_accelerate)
+PRVM_DECLARE_global(movevar_airaccelerate)
+PRVM_DECLARE_global(movevar_entgravity)
+PRVM_DECLARE_global(movevar_friction)
+PRVM_DECLARE_global(movevar_gravity)
+PRVM_DECLARE_global(movevar_maxspeed)
+PRVM_DECLARE_global(movevar_spectatormaxspeed)
+PRVM_DECLARE_global(movevar_stopspeed)
+PRVM_DECLARE_global(movevar_wateraccelerate)
+PRVM_DECLARE_global(movevar_waterfriction)
+PRVM_DECLARE_global(msg_entity)
+PRVM_DECLARE_global(other)
+PRVM_DECLARE_global(parm1)
+PRVM_DECLARE_global(parm2)
+PRVM_DECLARE_global(parm3)
+PRVM_DECLARE_global(parm4)
+PRVM_DECLARE_global(parm5)
+PRVM_DECLARE_global(parm6)
+PRVM_DECLARE_global(parm7)
+PRVM_DECLARE_global(parm8)
+PRVM_DECLARE_global(parm9)
+PRVM_DECLARE_global(parm10)
+PRVM_DECLARE_global(parm11)
+PRVM_DECLARE_global(parm12)
+PRVM_DECLARE_global(parm13)
+PRVM_DECLARE_global(parm14)
+PRVM_DECLARE_global(parm15)
+PRVM_DECLARE_global(parm16)
+PRVM_DECLARE_global(particle_airfriction)
+PRVM_DECLARE_global(particle_alpha)
+PRVM_DECLARE_global(particle_alphafade)
+PRVM_DECLARE_global(particle_angle)
+PRVM_DECLARE_global(particle_blendmode)
+PRVM_DECLARE_global(particle_bounce)
+PRVM_DECLARE_global(particle_color1)
+PRVM_DECLARE_global(particle_color2)
+PRVM_DECLARE_global(particle_delaycollision)
+PRVM_DECLARE_global(particle_delayspawn)
+PRVM_DECLARE_global(particle_gravity)
+PRVM_DECLARE_global(particle_liquidfriction)
+PRVM_DECLARE_global(particle_orientation)
+PRVM_DECLARE_global(particle_originjitter)
+PRVM_DECLARE_global(particle_qualityreduction)
+PRVM_DECLARE_global(particle_size)
+PRVM_DECLARE_global(particle_sizeincrease)
+PRVM_DECLARE_global(particle_spin)
+PRVM_DECLARE_global(particle_stainalpha)
+PRVM_DECLARE_global(particle_staincolor1)
+PRVM_DECLARE_global(particle_staincolor2)
+PRVM_DECLARE_global(particle_stainsize)
+PRVM_DECLARE_global(particle_staintex)
+PRVM_DECLARE_global(particle_stretch)
+PRVM_DECLARE_global(particle_tex)
+PRVM_DECLARE_global(particle_time)
+PRVM_DECLARE_global(particle_type)
+PRVM_DECLARE_global(particle_velocityjitter)
+PRVM_DECLARE_global(particles_alphamax)
+PRVM_DECLARE_global(particles_alphamin)
+PRVM_DECLARE_global(particles_colormax)
+PRVM_DECLARE_global(particles_colormin)
+PRVM_DECLARE_global(player_localentnum)
+PRVM_DECLARE_global(player_localnum)
+PRVM_DECLARE_global(pmove_inwater)
+PRVM_DECLARE_global(pmove_maxs)
+PRVM_DECLARE_global(pmove_mins)
+PRVM_DECLARE_global(pmove_onground)
+PRVM_DECLARE_global(pmove_org)
+PRVM_DECLARE_global(pmove_vel)
+PRVM_DECLARE_global(require_spawnfunc_prefix)
+PRVM_DECLARE_global(sb_showscores)
+PRVM_DECLARE_global(self)
+PRVM_DECLARE_global(servercommandframe)
+PRVM_DECLARE_global(serverdeltatime)
+PRVM_DECLARE_global(serverflags)
+PRVM_DECLARE_global(serverprevtime)
+PRVM_DECLARE_global(servertime)
+PRVM_DECLARE_global(teamplay)
+PRVM_DECLARE_global(time)
+PRVM_DECLARE_global(total_monsters)
+PRVM_DECLARE_global(total_secrets)
+PRVM_DECLARE_global(trace_allsolid)
+PRVM_DECLARE_global(trace_dphitcontents)
+PRVM_DECLARE_global(trace_dphitq3surfaceflags)
+PRVM_DECLARE_global(trace_dphittexturename)
+PRVM_DECLARE_global(trace_dpstartcontents)
+PRVM_DECLARE_global(trace_endpos)
+PRVM_DECLARE_global(trace_ent)
+PRVM_DECLARE_global(trace_fraction)
+PRVM_DECLARE_global(trace_inopen)
+PRVM_DECLARE_global(trace_inwater)
+PRVM_DECLARE_global(trace_networkentity)
+PRVM_DECLARE_global(trace_plane_dist)
+PRVM_DECLARE_global(trace_plane_normal)
+PRVM_DECLARE_global(trace_startsolid)
+PRVM_DECLARE_global(transparent_offset)
+PRVM_DECLARE_global(v_forward)
+PRVM_DECLARE_global(v_right)
+PRVM_DECLARE_global(v_up)
+PRVM_DECLARE_global(view_angles)
+PRVM_DECLARE_global(view_punchangle)
+PRVM_DECLARE_global(view_punchvector)
+PRVM_DECLARE_global(world)
+PRVM_DECLARE_global(worldstatus)
+PRVM_DECLARE_menufieldstring(classname)
+PRVM_DECLARE_menufunction(GameCommand)
+PRVM_DECLARE_menufunction(Gecko_Query)
+PRVM_DECLARE_menufunction(URI_Get_Callback)
+PRVM_DECLARE_menufunction(m_draw)
+PRVM_DECLARE_menufunction(m_init)
+PRVM_DECLARE_menufunction(m_keydown)
+PRVM_DECLARE_menufunction(m_keyup)
+PRVM_DECLARE_menufunction(m_newmap)
+PRVM_DECLARE_menufunction(m_shutdown)
+PRVM_DECLARE_menufunction(m_toggle)
+PRVM_DECLARE_menuglobaledict(self)
+PRVM_DECLARE_menuglobalfloat(drawfont)
+PRVM_DECLARE_menuglobalfloat(require_spawnfunc_prefix)
+PRVM_DECLARE_menuglobalvector(drawfontscale)
+PRVM_DECLARE_serverfieldedict(aiment)
+PRVM_DECLARE_serverfieldedict(chain)
+PRVM_DECLARE_serverfieldedict(clientcamera)
+PRVM_DECLARE_serverfieldedict(cursor_trace_ent)
+PRVM_DECLARE_serverfieldedict(dmg_inflictor)
+PRVM_DECLARE_serverfieldedict(drawonlytoclient)
+PRVM_DECLARE_serverfieldedict(enemy)
+PRVM_DECLARE_serverfieldedict(exteriormodeltoclient)
+PRVM_DECLARE_serverfieldedict(goalentity)
+PRVM_DECLARE_serverfieldedict(groundentity)
+PRVM_DECLARE_serverfieldedict(nodrawtoclient)
+PRVM_DECLARE_serverfieldedict(owner)
+PRVM_DECLARE_serverfieldedict(tag_entity)
+PRVM_DECLARE_serverfieldedict(viewmodelforclient)
+PRVM_DECLARE_serverfieldfloat(SendFlags)
+PRVM_DECLARE_serverfieldfloat(Version)
+PRVM_DECLARE_serverfieldfloat(alpha)
+PRVM_DECLARE_serverfieldfloat(ammo_cells)
+PRVM_DECLARE_serverfieldfloat(ammo_cells1)
+PRVM_DECLARE_serverfieldfloat(ammo_lava_nails)
+PRVM_DECLARE_serverfieldfloat(ammo_multi_rockets)
+PRVM_DECLARE_serverfieldfloat(ammo_nails)
+PRVM_DECLARE_serverfieldfloat(ammo_nails1)
+PRVM_DECLARE_serverfieldfloat(ammo_plasma)
+PRVM_DECLARE_serverfieldfloat(ammo_rockets)
+PRVM_DECLARE_serverfieldfloat(ammo_rockets1)
+PRVM_DECLARE_serverfieldfloat(ammo_shells)
+PRVM_DECLARE_serverfieldfloat(ammo_shells1)
+PRVM_DECLARE_serverfieldfloat(armortype)
+PRVM_DECLARE_serverfieldfloat(armorvalue)
+PRVM_DECLARE_serverfieldfloat(bouncefactor)
+PRVM_DECLARE_serverfieldfloat(bouncestop)
+PRVM_DECLARE_serverfieldfloat(button0)
+PRVM_DECLARE_serverfieldfloat(button1)
+PRVM_DECLARE_serverfieldfloat(button2)
+PRVM_DECLARE_serverfieldfloat(button3)
+PRVM_DECLARE_serverfieldfloat(button4)
+PRVM_DECLARE_serverfieldfloat(button5)
+PRVM_DECLARE_serverfieldfloat(button6)
+PRVM_DECLARE_serverfieldfloat(button7)
+PRVM_DECLARE_serverfieldfloat(button8)
+PRVM_DECLARE_serverfieldfloat(button9)
+PRVM_DECLARE_serverfieldfloat(button10)
+PRVM_DECLARE_serverfieldfloat(button11)
+PRVM_DECLARE_serverfieldfloat(button12)
+PRVM_DECLARE_serverfieldfloat(button13)
+PRVM_DECLARE_serverfieldfloat(button14)
+PRVM_DECLARE_serverfieldfloat(button15)
+PRVM_DECLARE_serverfieldfloat(button16)
+PRVM_DECLARE_serverfieldfloat(buttonchat)
+PRVM_DECLARE_serverfieldfloat(buttonuse)
+PRVM_DECLARE_serverfieldfloat(clientcolors)
+PRVM_DECLARE_serverfieldfloat(colormap)
+PRVM_DECLARE_serverfieldfloat(currentammo)
+PRVM_DECLARE_serverfieldfloat(cursor_active)
+PRVM_DECLARE_serverfieldfloat(deadflag)
+PRVM_DECLARE_serverfieldfloat(disableclientprediction)
+PRVM_DECLARE_serverfieldfloat(discardabledemo)
+PRVM_DECLARE_serverfieldfloat(dmg_save)
+PRVM_DECLARE_serverfieldfloat(dmg_take)
+PRVM_DECLARE_serverfieldfloat(dphitcontentsmask)
+PRVM_DECLARE_serverfieldfloat(effects)
+PRVM_DECLARE_serverfieldfloat(fixangle)
+PRVM_DECLARE_serverfieldfloat(flags)
+PRVM_DECLARE_serverfieldfloat(frags)
+PRVM_DECLARE_serverfieldfloat(frame)
+PRVM_DECLARE_serverfieldfloat(frame1time)
+PRVM_DECLARE_serverfieldfloat(frame2)
+PRVM_DECLARE_serverfieldfloat(frame2time)
+PRVM_DECLARE_serverfieldfloat(frame3)
+PRVM_DECLARE_serverfieldfloat(frame3time)
+PRVM_DECLARE_serverfieldfloat(frame4)
+PRVM_DECLARE_serverfieldfloat(frame4time)
+PRVM_DECLARE_serverfieldfloat(fullbright)
+PRVM_DECLARE_serverfieldfloat(glow_color)
+PRVM_DECLARE_serverfieldfloat(glow_size)
+PRVM_DECLARE_serverfieldfloat(glow_trail)
+PRVM_DECLARE_serverfieldfloat(gravity)
+PRVM_DECLARE_serverfieldfloat(health)
+PRVM_DECLARE_serverfieldfloat(ideal_yaw)
+PRVM_DECLARE_serverfieldfloat(idealpitch)
+PRVM_DECLARE_serverfieldfloat(impulse)
+PRVM_DECLARE_serverfieldfloat(items)
+PRVM_DECLARE_serverfieldfloat(items2)
+PRVM_DECLARE_serverfieldfloat(jointtype)
+PRVM_DECLARE_serverfieldfloat(lerpfrac)
+PRVM_DECLARE_serverfieldfloat(lerpfrac3)
+PRVM_DECLARE_serverfieldfloat(lerpfrac4)
+PRVM_DECLARE_serverfieldfloat(light_lev)
+PRVM_DECLARE_serverfieldfloat(ltime)
+PRVM_DECLARE_serverfieldfloat(mass)
+PRVM_DECLARE_serverfieldfloat(max_health)
+PRVM_DECLARE_serverfieldfloat(modelflags)
+PRVM_DECLARE_serverfieldfloat(modelindex)
+PRVM_DECLARE_serverfieldfloat(movetype)
+PRVM_DECLARE_serverfieldfloat(nextthink)
+PRVM_DECLARE_serverfieldfloat(pflags)
+PRVM_DECLARE_serverfieldfloat(ping)
+PRVM_DECLARE_serverfieldfloat(ping_movementloss)
+PRVM_DECLARE_serverfieldfloat(ping_packetloss)
+PRVM_DECLARE_serverfieldfloat(pitch_speed)
+PRVM_DECLARE_serverfieldfloat(pmodel)
+PRVM_DECLARE_serverfieldfloat(renderamt)
+PRVM_DECLARE_serverfieldfloat(scale)
+PRVM_DECLARE_serverfieldfloat(sendcomplexanimation)
+PRVM_DECLARE_serverfieldfloat(skeletonindex)
+PRVM_DECLARE_serverfieldfloat(skin)
+PRVM_DECLARE_serverfieldfloat(solid)
+PRVM_DECLARE_serverfieldfloat(sounds)
+PRVM_DECLARE_serverfieldfloat(spawnflags)
+PRVM_DECLARE_serverfieldfloat(style)
+PRVM_DECLARE_serverfieldfloat(tag_index)
+PRVM_DECLARE_serverfieldfloat(takedamage)
+PRVM_DECLARE_serverfieldfloat(team)
+PRVM_DECLARE_serverfieldfloat(teleport_time)
+PRVM_DECLARE_serverfieldfloat(viewzoom)
+PRVM_DECLARE_serverfieldfloat(waterlevel)
+PRVM_DECLARE_serverfieldfloat(watertype)
+PRVM_DECLARE_serverfieldfloat(weapon)
+PRVM_DECLARE_serverfieldfloat(weaponframe)
+PRVM_DECLARE_serverfieldfloat(yaw_speed)
+PRVM_DECLARE_serverfieldfunction(SendEntity)
+PRVM_DECLARE_serverfieldfunction(blocked)
+PRVM_DECLARE_serverfieldfunction(camera_transform)
+PRVM_DECLARE_serverfieldfunction(contentstransition)
+PRVM_DECLARE_serverfieldfunction(customizeentityforclient)
+PRVM_DECLARE_serverfieldfunction(movetypesteplandevent)
+PRVM_DECLARE_serverfieldfunction(think)
+PRVM_DECLARE_serverfieldfunction(touch)
+PRVM_DECLARE_serverfieldfunction(use)
+PRVM_DECLARE_serverfieldstring(classname)
+PRVM_DECLARE_serverfieldstring(clientstatus)
+PRVM_DECLARE_serverfieldstring(crypto_encryptmethod)
+PRVM_DECLARE_serverfieldstring(crypto_idfp)
+PRVM_DECLARE_serverfieldstring(crypto_keyfp)
+PRVM_DECLARE_serverfieldstring(crypto_mykeyfp)
+PRVM_DECLARE_serverfieldstring(crypto_signmethod)
+PRVM_DECLARE_serverfieldstring(message)
+PRVM_DECLARE_serverfieldstring(model)
+PRVM_DECLARE_serverfieldstring(netaddress)
+PRVM_DECLARE_serverfieldstring(netname)
+PRVM_DECLARE_serverfieldstring(noise)
+PRVM_DECLARE_serverfieldstring(noise1)
+PRVM_DECLARE_serverfieldstring(noise2)
+PRVM_DECLARE_serverfieldstring(noise3)
+PRVM_DECLARE_serverfieldstring(playermodel)
+PRVM_DECLARE_serverfieldstring(playerskin)
+PRVM_DECLARE_serverfieldstring(target)
+PRVM_DECLARE_serverfieldstring(targetname)
+PRVM_DECLARE_serverfieldstring(weaponmodel)
+PRVM_DECLARE_serverfieldvector(absmax)
+PRVM_DECLARE_serverfieldvector(absmin)
+PRVM_DECLARE_serverfieldvector(angles)
+PRVM_DECLARE_serverfieldvector(avelocity)
+PRVM_DECLARE_serverfieldvector(color)
+PRVM_DECLARE_serverfieldvector(colormod)
+PRVM_DECLARE_serverfieldvector(cursor_screen)
+PRVM_DECLARE_serverfieldvector(cursor_trace_endpos)
+PRVM_DECLARE_serverfieldvector(cursor_trace_start)
+PRVM_DECLARE_serverfieldvector(glowmod)
+PRVM_DECLARE_serverfieldvector(maxs)
+PRVM_DECLARE_serverfieldvector(mins)
+PRVM_DECLARE_serverfieldvector(movedir)
+PRVM_DECLARE_serverfieldvector(movement)
+PRVM_DECLARE_serverfieldvector(oldorigin)
+PRVM_DECLARE_serverfieldvector(origin)
+PRVM_DECLARE_serverfieldvector(punchangle)
+PRVM_DECLARE_serverfieldvector(punchvector)
+PRVM_DECLARE_serverfieldvector(size)
+PRVM_DECLARE_serverfieldvector(v_angle)
+PRVM_DECLARE_serverfieldvector(velocity)
+PRVM_DECLARE_serverfieldvector(view_ofs)
+PRVM_DECLARE_serverfunction(ClientConnect)
+PRVM_DECLARE_serverfunction(ClientDisconnect)
+PRVM_DECLARE_serverfunction(ClientKill)
+PRVM_DECLARE_serverfunction(EndFrame)
+PRVM_DECLARE_serverfunction(GameCommand)
+PRVM_DECLARE_serverfunction(PlayerPostThink)
+PRVM_DECLARE_serverfunction(PlayerPreThink)
+PRVM_DECLARE_serverfunction(PutClientInServer)
+PRVM_DECLARE_serverfunction(RestoreGame)
+PRVM_DECLARE_serverfunction(SV_ChangeTeam)
+PRVM_DECLARE_serverfunction(SV_OnEntityNoSpawnFunction)
+PRVM_DECLARE_serverfunction(SV_OnEntityPostSpawnFunction)
+PRVM_DECLARE_serverfunction(SV_OnEntityPreSpawnFunction)
+PRVM_DECLARE_serverfunction(SV_ParseClientCommand)
+PRVM_DECLARE_serverfunction(SV_PausedTic)
+PRVM_DECLARE_serverfunction(SV_PlayerPhysics)
+PRVM_DECLARE_serverfunction(SV_Shutdown)
+PRVM_DECLARE_serverfunction(SetChangeParms)
+PRVM_DECLARE_serverfunction(SetNewParms)
+PRVM_DECLARE_serverfunction(StartFrame)
+PRVM_DECLARE_serverfunction(URI_Get_Callback)
+PRVM_DECLARE_serverfunction(main)
+PRVM_DECLARE_serverglobaledict(msg_entity)
+PRVM_DECLARE_serverglobaledict(other)
+PRVM_DECLARE_serverglobaledict(self)
+PRVM_DECLARE_serverglobaledict(trace_ent)
+PRVM_DECLARE_serverglobaledict(world)
+PRVM_DECLARE_serverglobalfloat(coop)
+PRVM_DECLARE_serverglobalfloat(deathmatch)
+PRVM_DECLARE_serverglobalfloat(force_retouch)
+PRVM_DECLARE_serverglobalfloat(found_secrets)
+PRVM_DECLARE_serverglobalfloat(frametime)
+PRVM_DECLARE_serverglobalfloat(gettaginfo_parent)
+PRVM_DECLARE_serverglobalfloat(killed_monsters)
+PRVM_DECLARE_serverglobalfloat(parm1)
+PRVM_DECLARE_serverglobalfloat(parm2)
+PRVM_DECLARE_serverglobalfloat(parm3)
+PRVM_DECLARE_serverglobalfloat(parm4)
+PRVM_DECLARE_serverglobalfloat(parm5)
+PRVM_DECLARE_serverglobalfloat(parm6)
+PRVM_DECLARE_serverglobalfloat(parm7)
+PRVM_DECLARE_serverglobalfloat(parm8)
+PRVM_DECLARE_serverglobalfloat(parm9)
+PRVM_DECLARE_serverglobalfloat(parm10)
+PRVM_DECLARE_serverglobalfloat(parm11)
+PRVM_DECLARE_serverglobalfloat(parm12)
+PRVM_DECLARE_serverglobalfloat(parm13)
+PRVM_DECLARE_serverglobalfloat(parm14)
+PRVM_DECLARE_serverglobalfloat(parm15)
+PRVM_DECLARE_serverglobalfloat(parm16)
+PRVM_DECLARE_serverglobalfloat(require_spawnfunc_prefix)
+PRVM_DECLARE_serverglobalfloat(serverflags)
+PRVM_DECLARE_serverglobalfloat(teamplay)
+PRVM_DECLARE_serverglobalfloat(time)
+PRVM_DECLARE_serverglobalfloat(total_monsters)
+PRVM_DECLARE_serverglobalfloat(total_secrets)
+PRVM_DECLARE_serverglobalfloat(trace_allsolid)
+PRVM_DECLARE_serverglobalfloat(trace_dphitcontents)
+PRVM_DECLARE_serverglobalfloat(trace_dphitq3surfaceflags)
+PRVM_DECLARE_serverglobalfloat(trace_dpstartcontents)
+PRVM_DECLARE_serverglobalfloat(trace_fraction)
+PRVM_DECLARE_serverglobalfloat(trace_inopen)
+PRVM_DECLARE_serverglobalfloat(trace_inwater)
+PRVM_DECLARE_serverglobalfloat(trace_plane_dist)
+PRVM_DECLARE_serverglobalfloat(trace_startsolid)
+PRVM_DECLARE_serverglobalstring(SV_InitCmd)
+PRVM_DECLARE_serverglobalstring(gettaginfo_name)
+PRVM_DECLARE_serverglobalstring(mapname)
+PRVM_DECLARE_serverglobalstring(trace_dphittexturename)
+PRVM_DECLARE_serverglobalstring(worldstatus)
+PRVM_DECLARE_serverglobalvector(gettaginfo_forward)
+PRVM_DECLARE_serverglobalvector(gettaginfo_offset)
+PRVM_DECLARE_serverglobalvector(gettaginfo_right)
+PRVM_DECLARE_serverglobalvector(gettaginfo_up)
+PRVM_DECLARE_serverglobalvector(trace_endpos)
+PRVM_DECLARE_serverglobalvector(trace_plane_normal)
+PRVM_DECLARE_serverglobalvector(v_forward)
+PRVM_DECLARE_serverglobalvector(v_right)
+PRVM_DECLARE_serverglobalvector(v_up)
\ No newline at end of file
prvm_required_field_t sv_reqfields[] =
{
- {ev_entity, "aiment"}, // server field
- {ev_entity, "clientcamera"}, // server field
- {ev_entity, "cursor_trace_ent"}, // server field
- {ev_entity, "drawonlytoclient"}, // server field
- {ev_entity, "enemy"}, // server field
- {ev_entity, "exteriormodeltoclient"}, // server field
- {ev_entity, "nodrawtoclient"}, // server field
- {ev_entity, "tag_entity"}, // server field
- {ev_entity, "viewmodelforclient"}, // server field
- {ev_float, "SendFlags"}, // server field
- {ev_float, "Version"}, // server field
- {ev_float, "alpha"}, // server field
- {ev_float, "ammo_cells1"}, // server field
- {ev_float, "ammo_lava_nails"}, // server field
- {ev_float, "ammo_multi_rockets"}, // server field
- {ev_float, "ammo_nails1"}, // server field
- {ev_float, "ammo_plasma"}, // server field
- {ev_float, "ammo_rockets1"}, // server field
- {ev_float, "ammo_shells1"}, // server field
- {ev_float, "bouncefactor"}, // server field
- {ev_float, "bouncestop"}, // server field
- {ev_float, "button3"}, // server field
- {ev_float, "button4"}, // server field
- {ev_float, "button5"}, // server field
- {ev_float, "button6"}, // server field
- {ev_float, "button7"}, // server field
- {ev_float, "button8"}, // server field
- {ev_float, "button9"}, // server field
- {ev_float, "button10"}, // server field
- {ev_float, "button11"}, // server field
- {ev_float, "button12"}, // server field
- {ev_float, "button13"}, // server field
- {ev_float, "button14"}, // server field
- {ev_float, "button15"}, // server field
- {ev_float, "button16"}, // server field
- {ev_float, "buttonchat"}, // server field
- {ev_float, "buttonuse"}, // server field
- {ev_float, "clientcolors"}, // server field
- {ev_float, "cursor_active"}, // server field
- {ev_float, "disableclientprediction"}, // server field
- {ev_float, "discardabledemo"}, // server field
- {ev_float, "dphitcontentsmask"}, // server field
- {ev_float, "frame1time"}, // server field
- {ev_float, "frame1time"}, // server field
- {ev_float, "frame2time"}, // server field
- {ev_float, "frame2time"}, // server field
- {ev_float, "frame2"}, // server field
- {ev_float, "frame2"}, // server field
- {ev_float, "frame3time"}, // server field
- {ev_float, "frame3time"}, // server field
- {ev_float, "frame3"}, // server field
- {ev_float, "frame3"}, // server field
- {ev_float, "frame4time"}, // server field
- {ev_float, "frame4time"}, // server field
- {ev_float, "frame4"}, // server field
- {ev_float, "frame4"}, // server field
- {ev_float, "frame"}, // server field
- {ev_float, "fullbright"}, // server field
- {ev_float, "glow_color"}, // server field
- {ev_float, "glow_size"}, // server field
- {ev_float, "glow_trail"}, // server field
- {ev_float, "gravity"}, // server field
- {ev_float, "gravity"}, // server field
- {ev_float, "ideal_yaw"}, // server field
- {ev_float, "idealpitch"}, // server field
- {ev_float, "items2"}, // server field
- {ev_float, "jointtype"}, // server field
- {ev_float, "lerpfrac3"}, // server field
- {ev_float, "lerpfrac3"}, // server field
- {ev_float, "lerpfrac4"}, // server field
- {ev_float, "lerpfrac4"}, // server field
- {ev_float, "lerpfrac"}, // server field
- {ev_float, "lerpfrac"}, // server field
- {ev_float, "light_lev"}, // server field
- {ev_float, "mass"}, // server field
- {ev_float, "modelflags"}, // server field
- {ev_float, "modelindex"}, // server field
- {ev_float, "movetype"}, // server field
- {ev_float, "pflags"}, // server field
- {ev_float, "ping_movementloss"}, // server field
- {ev_float, "ping_packetloss"}, // server field
- {ev_float, "ping"}, // server field
- {ev_float, "pitch_speed"}, // server field
- {ev_float, "pmodel"}, // server field
- {ev_float, "renderamt"}, // server field
- {ev_float, "scale"}, // server field
- {ev_float, "scale"}, // server field
- {ev_float, "sendcomplexanimation"}, // server field
- {ev_float, "skeletonindex"}, // server field
- {ev_float, "skeletonindex"}, // server field
- {ev_float, "solid"}, // server field
- {ev_float, "style"}, // server field
- {ev_float, "tag_index"}, // server field
- {ev_float, "viewzoom"}, // server field
- {ev_float, "yaw_speed"}, // server field
- {ev_function, "SendEntity"}, // server field
- {ev_function, "camera_transform"}, // server field
- {ev_function, "contentstransition"}, // server field
- {ev_function, "customizeentityforclient"}, // server field
- {ev_function, "movetypesteplandevent"}, // server field
- {ev_string, "classname"}, // server field
- {ev_string, "clientstatus"}, // server field
- {ev_string, "crypto_encryptmethod"}, // server field
- {ev_string, "crypto_idfp"}, // server field
- {ev_string, "crypto_keyfp"}, // server field
- {ev_string, "crypto_mykeyfp"}, // server field
- {ev_string, "crypto_signmethod"}, // server field
- {ev_string, "netaddress"}, // server field
- {ev_string, "playermodel"}, // server field
- {ev_string, "playerskin"}, // server field
- {ev_vector, "angles"}, // server field
- {ev_vector, "avelocity"}, // server field
- {ev_vector, "colormod"}, // server field
- {ev_vector, "color"}, // server field
- {ev_vector, "cursor_screen"}, // server field
- {ev_vector, "cursor_trace_endpos"}, // server field
- {ev_vector, "cursor_trace_start"}, // server field
- {ev_vector, "glowmod"}, // server field
- {ev_vector, "maxs"}, // server field
- {ev_vector, "mins"}, // server field
- {ev_vector, "movedir"}, // server field
- {ev_vector, "movement"}, // server field
- {ev_vector, "origin"}, // server field
- {ev_vector, "punchvector"}, // server field
- {ev_vector, "velocity"}, // server field
+#define PRVM_DECLARE_serverglobalfloat(x)
+#define PRVM_DECLARE_serverglobalvector(x)
+#define PRVM_DECLARE_serverglobalstring(x)
+#define PRVM_DECLARE_serverglobaledict(x)
+#define PRVM_DECLARE_serverglobalfunction(x)
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x) {ev_float, #x},
+#define PRVM_DECLARE_serverfieldvector(x) {ev_vector, #x},
+#define PRVM_DECLARE_serverfieldstring(x) {ev_string, #x},
+#define PRVM_DECLARE_serverfieldedict(x) {ev_entity, #x},
+#define PRVM_DECLARE_serverfieldfunction(x) {ev_function, #x},
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x)
+#define PRVM_DECLARE_global(x)
+#define PRVM_DECLARE_function(x)
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
};
#define SV_REQGLOBALS (sizeof(sv_reqglobals) / sizeof(prvm_required_field_t))
prvm_required_field_t sv_reqglobals[] =
{
- {ev_entity, "self"}, // server global
- {ev_entity, "trace_ent"}, // server global
- {ev_float, "gettaginfo_parent"}, // server global
- {ev_float, "require_spawnfunc_prefix"}, // server global
- {ev_float, "trace_allsolid"}, // server global
- {ev_float, "trace_dphitcontents"}, // server global
- {ev_float, "trace_dphitq3surfaceflags"}, // server global
- {ev_float, "trace_dpstartcontents"}, // server global
- {ev_float, "trace_fraction"}, // server global
- {ev_float, "trace_inopen"}, // server global
- {ev_float, "trace_inwater"}, // server global
- {ev_float, "trace_plane_dist"}, // server global
- {ev_float, "trace_startsolid"}, // server global
- {ev_string, "SV_InitCmd"}, // server global
- {ev_string, "gettaginfo_name"}, // server global
- {ev_string, "trace_dphittexturename"}, // server global
- {ev_string, "worldstatus"}, // server global
- {ev_vector, "gettaginfo_forward"}, // server global
- {ev_vector, "gettaginfo_offset"}, // server global
- {ev_vector, "gettaginfo_right"}, // server global
- {ev_vector, "gettaginfo_up"}, // server global
- {ev_vector, "trace_endpos"}, // server global
- {ev_vector, "trace_plane_normal"}, // server global
- {ev_vector, "v_forward"}, // server global
- {ev_vector, "v_right"}, // server global
- {ev_vector, "v_up"}, // server global
+#define PRVM_DECLARE_serverglobalfloat(x) {ev_float, #x},
+#define PRVM_DECLARE_serverglobalvector(x) {ev_vector, #x},
+#define PRVM_DECLARE_serverglobalstring(x) {ev_string, #x},
+#define PRVM_DECLARE_serverglobaledict(x) {ev_entity, #x},
+#define PRVM_DECLARE_serverglobalfunction(x) {ev_function, #x},
+#define PRVM_DECLARE_clientglobalfloat(x)
+#define PRVM_DECLARE_clientglobalvector(x)
+#define PRVM_DECLARE_clientglobalstring(x)
+#define PRVM_DECLARE_clientglobaledict(x)
+#define PRVM_DECLARE_clientglobalfunction(x)
+#define PRVM_DECLARE_menuglobalfloat(x)
+#define PRVM_DECLARE_menuglobalvector(x)
+#define PRVM_DECLARE_menuglobalstring(x)
+#define PRVM_DECLARE_menuglobaledict(x)
+#define PRVM_DECLARE_menuglobalfunction(x)
+#define PRVM_DECLARE_serverfieldfloat(x)
+#define PRVM_DECLARE_serverfieldvector(x)
+#define PRVM_DECLARE_serverfieldstring(x)
+#define PRVM_DECLARE_serverfieldedict(x)
+#define PRVM_DECLARE_serverfieldfunction(x)
+#define PRVM_DECLARE_clientfieldfloat(x)
+#define PRVM_DECLARE_clientfieldvector(x)
+#define PRVM_DECLARE_clientfieldstring(x)
+#define PRVM_DECLARE_clientfieldedict(x)
+#define PRVM_DECLARE_clientfieldfunction(x)
+#define PRVM_DECLARE_menufieldfloat(x)
+#define PRVM_DECLARE_menufieldvector(x)
+#define PRVM_DECLARE_menufieldstring(x)
+#define PRVM_DECLARE_menufieldedict(x)
+#define PRVM_DECLARE_menufieldfunction(x)
+#define PRVM_DECLARE_serverfunction(x)
+#define PRVM_DECLARE_clientfunction(x)
+#define PRVM_DECLARE_menufunction(x)
+#define PRVM_DECLARE_field(x)
+#define PRVM_DECLARE_global(x)
+#define PRVM_DECLARE_function(x)
+#include "prvm_offsets.h"
+#undef PRVM_DECLARE_serverglobalfloat
+#undef PRVM_DECLARE_serverglobalvector
+#undef PRVM_DECLARE_serverglobalstring
+#undef PRVM_DECLARE_serverglobaledict
+#undef PRVM_DECLARE_serverglobalfunction
+#undef PRVM_DECLARE_clientglobalfloat
+#undef PRVM_DECLARE_clientglobalvector
+#undef PRVM_DECLARE_clientglobalstring
+#undef PRVM_DECLARE_clientglobaledict
+#undef PRVM_DECLARE_clientglobalfunction
+#undef PRVM_DECLARE_menuglobalfloat
+#undef PRVM_DECLARE_menuglobalvector
+#undef PRVM_DECLARE_menuglobalstring
+#undef PRVM_DECLARE_menuglobaledict
+#undef PRVM_DECLARE_menuglobalfunction
+#undef PRVM_DECLARE_serverfieldfloat
+#undef PRVM_DECLARE_serverfieldvector
+#undef PRVM_DECLARE_serverfieldstring
+#undef PRVM_DECLARE_serverfieldedict
+#undef PRVM_DECLARE_serverfieldfunction
+#undef PRVM_DECLARE_clientfieldfloat
+#undef PRVM_DECLARE_clientfieldvector
+#undef PRVM_DECLARE_clientfieldstring
+#undef PRVM_DECLARE_clientfieldedict
+#undef PRVM_DECLARE_clientfieldfunction
+#undef PRVM_DECLARE_menufieldfloat
+#undef PRVM_DECLARE_menufieldvector
+#undef PRVM_DECLARE_menufieldstring
+#undef PRVM_DECLARE_menufieldedict
+#undef PRVM_DECLARE_menufieldfunction
+#undef PRVM_DECLARE_serverfunction
+#undef PRVM_DECLARE_clientfunction
+#undef PRVM_DECLARE_menufunction
+#undef PRVM_DECLARE_field
+#undef PRVM_DECLARE_global
+#undef PRVM_DECLARE_function
};
{
SV_VM_Begin();
World_End(&sv.world);
- if(prog->funcoffsets.SV_Shutdown)
+ if(PRVM_serverfunction(SV_Shutdown))
{
- func_t s = prog->funcoffsets.SV_Shutdown;
- prog->funcoffsets.SV_Shutdown = 0; // prevent it from getting called again
+ func_t s = PRVM_serverfunction(SV_Shutdown);
+ PRVM_serverfunction(SV_Shutdown) = 0; // prevent it from getting called again
PRVM_ExecuteProgram(s,"SV_Shutdown() required");
}
SV_VM_End();
prog->globals.server->force_retouch = max(0, prog->globals.server->force_retouch - 1);
// LordHavoc: endframe support
- if (prog->funcoffsets.EndFrame)
+ if (PRVM_serverfunction(EndFrame))
{
prog->globals.server->self = PRVM_EDICT_TO_PROG(prog->edicts);
prog->globals.server->other = PRVM_EDICT_TO_PROG(prog->edicts);
prog->globals.server->time = sv.time;
- PRVM_ExecuteProgram (prog->funcoffsets.EndFrame, "QC function EndFrame is missing");
+ PRVM_ExecuteProgram (PRVM_serverfunction(EndFrame), "QC function EndFrame is missing");
}
// decrement prog->num_edicts if the highest number entities died
SV_CheckVelocity(host_client->edict);
// LordHavoc: QuakeC replacement for SV_ClientThink (player movement)
- if (prog->funcoffsets.SV_PlayerPhysics && sv_playerphysicsqc.integer)
+ if (PRVM_serverfunction(SV_PlayerPhysics) && sv_playerphysicsqc.integer)
{
prog->globals.server->time = sv.time;
prog->globals.server->self = PRVM_EDICT_TO_PROG(host_client->edict);
- PRVM_ExecuteProgram (prog->funcoffsets.SV_PlayerPhysics, "QC function SV_PlayerPhysics is missing");
+ PRVM_ExecuteProgram (PRVM_serverfunction(SV_PlayerPhysics), "QC function SV_PlayerPhysics is missing");
SV_CheckVelocity(host_client->edict);
return;
}
|| strncasecmp(s, "begin", 5) == 0
|| strncasecmp(s, "prespawn", 8) == 0)
Cmd_ExecuteString (s, src_client);
- else if (prog->funcoffsets.SV_ParseClientCommand)
+ else if (PRVM_serverfunction(SV_ParseClientCommand))
{
int restorevm_tempstringsbuf_cursize;
restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(s);
prog->globals.server->self = PRVM_EDICT_TO_PROG(host_client->edict);
- PRVM_ExecuteProgram (prog->funcoffsets.SV_ParseClientCommand, "QC function SV_ParseClientCommand is missing");
+ PRVM_ExecuteProgram (PRVM_serverfunction(SV_ParseClientCommand), "QC function SV_ParseClientCommand is missing");
vm_tempstringsbuf.cursize = restorevm_tempstringsbuf_cursize;
}
else
void VM_SV_Cmd_Reset(void)
{
World_End(&sv.world);
- if(prog->funcoffsets.SV_Shutdown)
+ if(PRVM_serverfunction(SV_Shutdown))
{
- func_t s = prog->funcoffsets.SV_Shutdown;
- prog->funcoffsets.SV_Shutdown = 0; // prevent it from getting called again
+ func_t s = PRVM_serverfunction(SV_Shutdown);
+ PRVM_serverfunction(SV_Shutdown) = 0; // prevent it from getting called again
PRVM_ExecuteProgram(s,"SV_Shutdown() required");
}