allowed unselecting every object class; now 'all classes' is a choice)
distribution of monsters selected by mkclass() didn't match expected distrib
(cited example was ndemon() creating twice as many incubi as succubi)
+while inside a shop, dropping an unpaid item inside an engulfer would leave
+ that item 'unpaid' and it would remain so on shop floor after the
+ the engulfer was killed; treat dropping shop items inside an engulfer
+ as stealing them and giving them to that engulfer--hero must pay for
+ for them and shop retains ownership of them
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
-/* NetHack 3.6 do.c $NHDT-Date: 1544442710 2018/12/10 11:51:50 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.177 $ */
+/* NetHack 3.6 do.c $NHDT-Date: 1545003783 2018/12/16 23:43:03 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.178 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
if (u.uswallow) {
/* barrier between you and the floor */
if (flags.verbose) {
- char buf[BUFSZ];
+ char *onam_p, monbuf[BUFSZ];
/* doname can call s_suffix, reusing its buffer */
- Strcpy(buf, s_suffix(mon_nam(u.ustuck)));
- You("drop %s into %s %s.", doname(obj), buf,
+ Strcpy(monbuf, s_suffix(mon_nam(u.ustuck)));
+ onam_p = obj->unpaid ? Yobjnam2(obj, (char *) 0) : doname(obj);
+
+ You("drop %s into %s %s.", onam_p, monbuf,
mbodypart(u.ustuck, STOMACH));
}
} else {
could_grow = (obj->corpsenm == PM_WRAITH);
could_heal = (obj->corpsenm == PM_NURSE);
}
+ if (obj->unpaid)
+ (void) stolen_value(obj, u.ux, u.uy, TRUE, FALSE);
(void) mpickobj(u.ustuck, obj);
if (is_animal(u.ustuck->data)) {
if (could_poly || could_slime) {