purging deleted objects

I don't think that this fixed any of the 'heaputil' complaints, but
it makes deleted object handling more consistent with dead monster
clearup.
This commit is contained in:
PatR
2025-04-17 10:17:28 -07:00
parent f307f05afd
commit b03e1ee3cb

View File

@@ -505,6 +505,9 @@ savelev_core(NHFILE *nhfp, xint8 lev)
create statue trap then immediately level teleport) */
if (iflags.purge_monsters)
dmonsfree();
/* clear objs_deleted list too */
if (go.objs_deleted)
dobjsfree(); /* really free deleted objects */
if (lev >= 0 && lev <= maxledgerno())
svl.level_info[lev].flags |= VISITED;
@@ -1197,6 +1200,7 @@ freedynamicdata(void)
/* move-specific data */
dmonsfree(); /* release dead monsters */
dobjsfree(); /* really free deleted objects */
alloc_itermonarr(0U); /* a request of 0 releases existing allocation */
/* level-specific data */
@@ -1209,8 +1213,6 @@ freedynamicdata(void)
free_light_sources(RANGE_GLOBAL);
freeobjchn(gi.invent);
freeobjchn(gm.migrating_objs);
if (go.objs_deleted)
dobjsfree(); /* really free deleted objects */
freemonchn(gm.migrating_mons);
freemonchn(gm.mydogs); /* ascension or dungeon escape */
/* freelevchn(); -- [folded into free_dungeons()] */