monsters that are frozen or sleeping cannot be grateful for untrapping
grammar of blessed-detection eating warning messages when eating 1 of N objects
message for charging for items lost in a cursed magic bag wasn't always shown
+dropping gold on an altar printed no message and didn't change gnostic conduct
Platform- and/or Interface-Specific Fixes
doaltarobj(obj) /* obj is an object dropped on an altar */
register struct obj *obj;
{
- if (Blind || obj->oclass == GOLD_CLASS)
+ if (Blind)
return;
/* KMH, conduct */
u.uconduct.gnostic++;
- if (obj->blessed || obj->cursed) {
+ if ((obj->blessed || obj->cursed) && obj->oclass != GOLD_CLASS) {
There("is %s flash as %s %s the altar.",
an(hcolor(obj->blessed ? amber : Black)),
doname(obj), otense(obj, "hit"));
#endif
if (!can_reach_floor()) {
if(flags.verbose) You("drop %s.", doname(obj));
+#ifndef GOLDOBJ
if (obj->oclass != GOLD_CLASS || obj == invent) freeinv(obj);
+#else
+ /* Ensure update when we drop gold objects */
+ if (obj->oclass == GOLD_CLASS) flags.botl = 1;
+ freeinv(obj);
+#endif
hitfloor(obj);
return(1);
}
#else
/* Ensure update when we drop gold objects */
if (obj->oclass == GOLD_CLASS) flags.botl = 1;
- /* Money is usually not in our inventory */
- /*if (obj->oclass != GOLD_CLASS || obj == invent)*/
- /* !!!! make sure we don't drop "created" gold not in inventory any more,*/
- /* or this will crash !!!! */
freeinv(obj);
#endif
if (!u.uswallow && ship_object(obj, u.ux, u.uy, FALSE)) return;