rats aren't capable of vomiting
fireproof, non-rustable weapon would be revealed as fireproof by hitting a
rust-causing target; ditto for fixed crysknife
+surviving choking while eating various foods (cockatrice egg, fortune cookie,
+ wolfsbane, others) didn't carry through to those foods' side-effects
Platform- and/or Interface-Specific Fixes
start_eating(otmp) /* called as you start to eat */
register struct obj *otmp;
{
+ const char *old_nomovemsg, *save_nomovemsg;
+
#ifdef DEBUG
debugpline("start_eating: %lx (victual = %lx)", otmp, context.victual.piece);
debugpline("reqtime = %d", context.victual.reqtime);
}
}
- if (bite()) return;
+ old_nomovemsg = nomovemsg;
+ if (bite()) {
+ /* survived choking, finish off food that's nearly done;
+ need this to handle cockatrice eggs, fortune cookies, etc */
+ if (++context.victual.usedtime >= context.victual.reqtime) {
+ /* don't want done_eating() to issue nomovemsg if it
+ is due to vomit() called by bite() */
+ save_nomovemsg = nomovemsg;
+ if (!old_nomovemsg) nomovemsg = 0;
+ done_eating(FALSE);
+ if (!old_nomovemsg) nomovemsg = save_nomovemsg;
+ }
+ return;
+ }
if (++context.victual.usedtime >= context.victual.reqtime) {
/* print "finish eating" message if they just resumed -dlc */