X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=prvm_edict.c;h=998c22587661d19f3f7d706cf6357885d95009f5;hb=99baef80f7deed1618656b844cf7ed4e6214faa6;hp=43f11d9f3ce9b77adc18f27978a88c6f7e92411c;hpb=ed809b1e30ced594690116772c62cd1fe0d578e4;p=xonotic%2Fdarkplaces.git diff --git a/prvm_edict.c b/prvm_edict.c index 43f11d9f..998c2258 100644 --- a/prvm_edict.c +++ b/prvm_edict.c @@ -41,7 +41,8 @@ cvar_t prvm_traceqc = {0, "prvm_traceqc", "0", "prints every QuakeC statement as cvar_t prvm_statementprofiling = {0, "prvm_statementprofiling", "0", "counts how many times each QuakeC statement has been executed, these counts are displayed in prvm_printfunction output (if enabled)"}; cvar_t prvm_backtraceforwarnings = {0, "prvm_backtraceforwarnings", "0", "print a backtrace for warnings too"}; cvar_t prvm_leaktest = {0, "prvm_leaktest", "0", "try to detect memory leaks in strings or entities"}; -cvar_t prvm_leaktest_ignore_classnames = {0, "prvm_leaktest_ignore", "", "classnames of entities to NOT leak check because they are found by find(world, classname, ...) but are actually spawned by QC code (NOT map entities)"}; +cvar_t prvm_leaktest_ignore_classnames = {0, "prvm_leaktest_ignore_classnames", "", "classnames of entities to NOT leak check because they are found by find(world, classname, ...) but are actually spawned by QC code (NOT map entities)"}; +cvar_t prvm_errordump = {0, "prvm_errordump", "0", "write a savegame on crash to crash-server.dmp"}; extern sizebuf_t vm_tempstringsbuf; @@ -1456,6 +1457,7 @@ void PRVM_FindOffsets(void) prog->fieldoffsets.viewzoom = PRVM_ED_FindFieldOffset("viewzoom"); prog->fieldoffsets.yaw_speed = PRVM_ED_FindFieldOffset("yaw_speed"); prog->fieldoffsets.clientcamera = PRVM_ED_FindFieldOffset("clientcamera"); + prog->fieldoffsets.clientstatus = PRVM_ED_FindFieldOffset("clientstatus"); prog->funcoffsets.CSQC_ConsoleCommand = PRVM_ED_FindFunctionOffset("CSQC_ConsoleCommand"); prog->funcoffsets.CSQC_Ent_Remove = PRVM_ED_FindFunctionOffset("CSQC_Ent_Remove"); prog->funcoffsets.CSQC_Ent_Update = PRVM_ED_FindFunctionOffset("CSQC_Ent_Update"); @@ -1508,6 +1510,7 @@ void PRVM_FindOffsets(void) prog->globaloffsets.sb_showscores = PRVM_ED_FindGlobalOffset("sb_showscores"); prog->globaloffsets.drawfont = PRVM_ED_FindGlobalOffset("drawfont"); prog->globaloffsets.require_spawnfunc_prefix = PRVM_ED_FindGlobalOffset("require_spawnfunc_prefix"); + prog->globaloffsets.worldstatus = PRVM_ED_FindGlobalOffset("worldstatus"); // menu qc only uses some functions, nothing else prog->funcoffsets.m_draw = PRVM_ED_FindFunctionOffset("m_draw"); @@ -2097,6 +2100,7 @@ void PRVM_Init (void) Cvar_RegisterVariable (&prvm_backtraceforwarnings); Cvar_RegisterVariable (&prvm_leaktest); Cvar_RegisterVariable (&prvm_leaktest_ignore_classnames); + Cvar_RegisterVariable (&prvm_errordump); //VM_Cmd_Init(); } @@ -2481,6 +2485,8 @@ static qboolean PRVM_IsEdictRelevant(prvm_edict_t *edict) { // TODO someone add more stuff here cl_entvars_t *ev = edict->fields.client; + if(ev->entnum) // csqc networked + return true; if(ev->modelindex) // visible ent? return true; if(ev->effects) // particle effect?