mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-03-21 09:51:41 +00:00
clear not-yet allocated entities to 0xdeadbeef
This commit is contained in:
parent
fa4ee64984
commit
4be4e5ccf6
4 changed files with 21 additions and 4 deletions
|
@ -80,6 +80,7 @@ void PR_Init_Cvars (void);
|
|||
void PR_ExecuteProgram (progs_t *pr, func_t fnum);
|
||||
void PR_LoadProgs (progs_t *pr, char *progsname);
|
||||
void PR_LoadStrings (progs_t *pr);
|
||||
edict_t *PR_InitEdicts (progs_t *pr, int num_edicts);
|
||||
|
||||
void PR_Profile_f (void);
|
||||
|
||||
|
|
|
@ -1207,6 +1207,24 @@ PR_LoadProgs (progs_t * pr, char *progsname)
|
|||
}
|
||||
}
|
||||
|
||||
edict_t *
|
||||
PR_InitEdicts (progs_t *pr, int num_edicts)
|
||||
{
|
||||
edict_t *edicts;
|
||||
edict_t *e;
|
||||
int i, j;
|
||||
pr->pr_edictareasize = pr->pr_edict_size * num_edicts;
|
||||
edicts = Hunk_AllocName (pr->pr_edictareasize, "edicts");
|
||||
memset (edicts, 0, *pr->reserved_edicts * pr->pr_edict_size);
|
||||
(*pr->edicts) = edicts;
|
||||
for (j = *pr->reserved_edicts; j < num_edicts; j++) {
|
||||
e = EDICT_NUM (pr, j);
|
||||
for (i=0; i < pr->progs->entityfields; i++)
|
||||
e->v[i].int_var = 0xdeadbeef;
|
||||
}
|
||||
return edicts;
|
||||
}
|
||||
|
||||
void
|
||||
PR_Init_Cvars (void)
|
||||
{
|
||||
|
|
|
@ -1112,8 +1112,7 @@ SV_SpawnServer (char *server)
|
|||
|
||||
// allocate server memory
|
||||
sv.max_edicts = MAX_EDICTS;
|
||||
sv_pr_state.pr_edictareasize = sv_pr_state.pr_edict_size * MAX_EDICTS;
|
||||
sv.edicts = Hunk_AllocName (sv_pr_state.pr_edictareasize, "edicts");
|
||||
sv.edicts = PR_InitEdicts (&sv_pr_state, sv.max_edicts);
|
||||
|
||||
// init the data field of the edicts
|
||||
for (i = 0; i < MAX_EDICTS; i++) {
|
||||
|
|
|
@ -343,8 +343,7 @@ SV_SpawnServer (char *server)
|
|||
MAX_SERVERINFO_STRING);
|
||||
|
||||
// allocate edicts
|
||||
sv_pr_state.pr_edictareasize = sv_pr_state.pr_edict_size * MAX_EDICTS;
|
||||
sv.edicts = Hunk_AllocName (sv_pr_state.pr_edictareasize, "edicts");
|
||||
sv.edicts = PR_InitEdicts (&sv_pr_state, MAX_EDICTS);
|
||||
|
||||
// init the data field of the edicts
|
||||
for (i = 0; i < MAX_EDICTS; i++) {
|
||||
|
|
Loading…
Reference in a new issue