Remove overview for wizmode regenerated map

The wizmakemap command throws away the current level, so don't keep
the overview data for it around.
This commit is contained in:
Pasi Kallinen
2017-09-15 14:45:51 +03:00
parent 782db48fb5
commit 52ed881b2c
3 changed files with 35 additions and 0 deletions

View File

@@ -607,6 +607,7 @@ E int NDECL(donamelevel);
E int NDECL(dooverview);
E void FDECL(show_overview, (int, int));
E void FDECL(forget_mapseen, (int));
E void FDECL(rm_mapseen, (int));
E void FDECL(init_mapseen, (d_level *));
E void NDECL(recalc_mapseen);
E void FDECL(mapseen_temple, (struct monst *));

View File

@@ -626,6 +626,7 @@ wiz_makemap(VOID_ARGS)
if (wizard) {
struct monst *mtmp;
rm_mapseen(ledger_no(&u.uz));
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon)
if (mtmp->isshk)
setpaid(mtmp);

View File

@@ -2109,6 +2109,39 @@ int ledger_num;
}
}
void
rm_mapseen(ledger_num)
int ledger_num;
{
mapseen *mptr, *mprev = (mapseen *)0;
struct cemetery *bp, *bpnext;
for (mptr = mapseenchn; mptr; mprev = mptr, mptr = mptr->next)
if (dungeons[mptr->lev.dnum].ledger_start + mptr->lev.dlevel == ledger_num)
break;
if (!mptr)
return;
if (mptr->custom)
free((genericptr_t) mptr->custom);
bp = mptr->final_resting_place;
while (bp) {
bpnext = bp->next;
free(bp);
bp = bpnext;
}
if (mprev) {
mprev->next = mptr->next;
free(mptr);
} else {
mapseenchn = mptr->next;
free(mptr);
}
}
STATIC_OVL void
save_mapseen(fd, mptr)
int fd;