if (prog->loaded)
prog->error_cmd("PRVM_LoadProgs: there is already a %s program loaded!", prog->name );
+ Host_LockSession(); // all progs can use the session cvar
+ Crypto_LoadKeys(); // all progs might use the keys at init time
+
dprograms = (dprograms_t *)FS_LoadFile (filename, prog->progs_mempool, false, &filesize);
if (dprograms == NULL || filesize < (fs_offset_t)sizeof(dprograms_t))
prog->error_cmd("PRVM_LoadProgs: couldn't load %s for %s", filename, prog->name);
if(!*targetname) // ""
targetname = NULL;
- for (i = 0;i < prog->numglobaldefs;i++)
+ if(mark == 0)
{
- ddef_t *d = &prog->globaldefs[i];
- if((etype_t)((int) d->type & ~DEF_SAVEGLOBAL) != ev_entity)
- continue;
- if(edictnum == PRVM_GLOBALFIELDEDICT(d->ofs))
- return true;
+ for (i = 0;i < prog->numglobaldefs;i++)
+ {
+ ddef_t *d = &prog->globaldefs[i];
+ if((etype_t)((int) d->type & ~DEF_SAVEGLOBAL) != ev_entity)
+ continue;
+ if(edictnum == PRVM_GLOBALFIELDEDICT(d->ofs))
+ return true;
+ }
}
for(j = 0; j < prog->num_edicts; ++j)
Con_Print("\n");
leaked = true;
}
+
+ ed->priv.required->mark = 0; // clear marks again when done
}
for (i = 0; i < (int)Mem_ExpandableArray_IndexRange(&prog->stringbuffersarray); ++i)