fix github issue #729 - edibility_prompts()

Issue #729 by argrath points out that one of the checks in
edibility_prompts() couldn't work.

For the next-meal effect after reading a blessed scroll of food
detection, the check whether a corpse was tainted but not dangerous
because the hero had sickness resistance could never be evaluated.
An earlier condition would cause the routine to return before
reaching that check.

Move it sooner, even though doing so violates the "order by most
to least dangerous" guideline.  It was either that or eliminate it
altogether.

edibility_prompts() had a lot of repetitive code that has now been
condensed.

Simplify acid blob corpse handling--for all of eating, not just for
edibility_prompts()--by treating that as "never rots" so that the
'rotted' variable always stays 0.  Now checks for that variable
being greater than some threshold don't need to include "and not an
acid blob corpse" as an exception.  A side-effect of this change is
that not only do they never become tainted, they'll no longer yield
the "you feel sick" outcome when they're old but not old enough to
exceed the tainted threshold.

Bug fix:  edibility testing stopped warning about green slimes.
That worked in 3.6.x, but 3.7 changed the 'cadaver' variable to
exclude them so the check for eating a glob of green slime could no
longer be reached.

Fixes #729
This commit is contained in:
PatR
2022-04-21 16:40:43 -07:00
parent 98eebb97d2
commit e584f718a8
2 changed files with 67 additions and 106 deletions
+3
View File
@@ -1160,6 +1160,9 @@ items obtained via wishing while blind were erroneously being marked as 'seen
up close' so behaving differently from items picked up off the floor
corpses of neuter monsters had random chance to be flagged as female so would
only stack with others that made the same random choice
one-shot food testing ability conferred by blessed scroll of food detection
didn't warn about globs of green slime because the relevant code was
only executed for corpses, eggs, and tins, not for globs
curses: 'msg_window' option wasn't functional for curses unless the binary
also included tty support