Make #wizmakemap handle unpaid items and punishment

This commit is contained in:
Pasi Kallinen
2017-06-28 00:16:11 +03:00
parent 8e8ea0566b
commit 8180310630
3 changed files with 19 additions and 3 deletions

View File

@@ -2127,6 +2127,7 @@ E void FDECL(store_savefileinfo, (int));
/* ### shk.c ### */
E void FDECL(setpaid, (struct monst *));
E long FDECL(money2mon, (struct monst *, long));
E void FDECL(money2u, (struct monst *, long));
E void FDECL(shkgone, (struct monst *));

View File

@@ -621,13 +621,29 @@ wiz_identify(VOID_ARGS)
STATIC_PTR int
wiz_makemap(VOID_ARGS)
{
/* FIXME: doesn't handle riding */
if (wizard) {
struct monst *mtmp;
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon)
if (mtmp->isshk)
setpaid(mtmp);
if (Punished) {
ballrelease(FALSE);
unplacebc();
}
check_special_room(TRUE);
dmonsfree();
savelev(-1, ledger_no(&u.uz), FREE_SAVE);
mklev();
reglyph_darkroom();
vision_reset();
vision_full_recalc = 1;
cls();
(void) safe_teleds(TRUE);
if (Punished) {
unplacebc();
placebc();
}
docrt();
flush_screen(1);
}

View File

@@ -29,7 +29,6 @@ STATIC_VAR const char and_its_contents[] = " and its contents";
STATIC_VAR const char the_contents_of[] = "the contents of ";
STATIC_DCL void FDECL(append_honorific, (char *));
STATIC_DCL void FDECL(setpaid, (struct monst *));
STATIC_DCL long FDECL(addupbill, (struct monst *));
STATIC_DCL void FDECL(pacify_shk, (struct monst *));
STATIC_DCL struct bill_x *FDECL(onbill, (struct obj *, struct monst *,
@@ -286,7 +285,7 @@ struct obj *list;
}
/* either you paid or left the shop or the shopkeeper died */
STATIC_OVL void
void
setpaid(shkp)
register struct monst *shkp;
{