"you suddenly vomit" was given two turns before actually vomiting, so you
could get that message, move a bit, then get "you can move again"
after the 2 turn freeze applied along with the actual vomit
+give an alternate message if you vomit when stomach is empty (ie, fainting)
corpses and other flammable items not subject to direct burning or fire-based
erosion which were thrown or dropped into lava remained intact
if a potion on the floor survived a land mine explosion and got propelled at
tty: long message lines which wrap when shown on the top line might be
re-displayed incorrectly by ^P for msg_window={full,combo,reverse}
tty: MSGTYPE=hide could interfere with display of prompts
+tty: treat carriage return as a newline for input text and --More-- prompts
unix/X11: in top level Makefile, some commented out definitions of VARDATND
misspelled pilemark.xbm (as pilemark.xpm)
unix: options file with CR+LF line ends and an invalid option line resulted in
win32gui: gather raw_print error messages into a single dialog window
win32tty: fix display errors when using a font with double wide or ambiguous
width characters
-tty: treat carriage return as a newline for input text and more-prompts
General New Features
void
vomit() /* A good idea from David Neves */
{
- if (cantvomit(youmonst.data))
+ if (cantvomit(youmonst.data)) {
/* doesn't cure food poisoning; message assumes that we aren't
dealing with some esoteric body_part() */
Your("jaw gapes convulsively.");
- else
+ } else {
make_sick(0L, (char *) 0, TRUE, SICK_VOMITABLE);
+ /* if not enough in stomach to actually vomit then dry heave;
+ vomiting_dialog() gives a vomit message when its countdown
+ reaches 0, but only if u.uhs < FAINTING (and !cantvomit()) */
+ if (u.uhs >= FAINTING)
+ Your("%s heaves convulsively!", body_part(STOMACH));
+ }
/* nomul()/You_can_move_again used to be unconditional, which was
viable while eating but not for Vomiting countdown where hero might
that message and "You can move again." (from vomit()'s
nomul(-2)) with no intervening message; give one here to
have more specific point at which hero became unable to move
- [vomit() issues its own message for the cantvomit() case] */
- You("%s!", !Hallucination ? "vomit" : "hurl chunks");
+ [vomit() issues its own message for the cantvomit() case
+ and for the FAINTING-or-worse case where stomach is empty] */
+ if (u.uhs < FAINTING)
+ You("%s!", !Hallucination ? "vomit" : "hurl chunks");
}
vomit();
break;