mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-17 01:11:45 +00:00
Cache the max_edicts value in the progs struct.
Makes checks a little easier.
This commit is contained in:
parent
0aac004c98
commit
ce16750b04
3 changed files with 3 additions and 2 deletions
|
@ -1592,6 +1592,7 @@ struct progs_s {
|
|||
/// \name edicts
|
||||
//@{
|
||||
edict_t **edicts;
|
||||
int max_edicts;
|
||||
int *num_edicts;
|
||||
int *reserved_edicts; ///< alloc will start at reserved_edicts+1
|
||||
void (*unlink) (edict_t *ent);
|
||||
|
|
|
@ -85,7 +85,6 @@ ED_Alloc (progs_t *pr)
|
|||
pr_int_t i;
|
||||
edict_t *e;
|
||||
int start = pr->reserved_edicts ? *pr->reserved_edicts : 0;
|
||||
pr_int_t max_edicts = pr->pr_edictareasize / pr->pr_edict_size;
|
||||
|
||||
for (i = start + 1; i < *pr->num_edicts; i++) {
|
||||
e = EDICT_NUM (pr, i);
|
||||
|
@ -99,7 +98,7 @@ ED_Alloc (progs_t *pr)
|
|||
}
|
||||
}
|
||||
|
||||
if (i == max_edicts) {
|
||||
if (i == pr->max_edicts) {
|
||||
Sys_Printf ("WARNING: ED_Alloc: no free edicts\n");
|
||||
i--; // step on whatever is the last edict
|
||||
e = EDICT_NUM (pr, i);
|
||||
|
|
|
@ -184,6 +184,7 @@ PR_LoadProgsFile (progs_t *pr, QFile *file, int size, int max_edicts, int zone)
|
|||
pr->pr_edict_size += sizeof (void*) - 1;
|
||||
pr->pr_edict_size &= ~(sizeof (void*) - 1);
|
||||
pr->pr_edictareasize = max_edicts * pr->pr_edict_size;
|
||||
pr->max_edicts = max_edicts;
|
||||
|
||||
mem_size = pr->progs_size + pr->zone_size + pr->pr_edictareasize;
|
||||
pr->progs = pr->allocate_progs_mem (pr, mem_size + 1);
|
||||
|
|
Loading…
Reference in a new issue