wizmode level teleport menu indicates on what level you currently are
fix invisible gold symbol in status line when S_coin was set to space
fix buffer overflow in wizard mode for '#' command when 'extmenu' option is on
+"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
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository
Your("jaw gapes convulsively.");
else
make_sick(0L, (char *) 0, TRUE, SICK_VOMITABLE);
- nomul(-2);
- multi_reason = "vomiting";
- nomovemsg = You_can_move_again;
+
+ /* nomul()/You_can_move_again used to be unconditional, which was
+ viable while eating but not for Vomiting countdown where hero might
+ be immobilized for some other reason at the time vomit() is called */
+ if (multi >= -2) {
+ nomul(-2);
+ multi_reason = "vomiting";
+ nomovemsg = You_can_move_again;
+ }
}
int
exercise(A_DEX, FALSE);
}
-/* He is getting sicker and sicker prior to vomiting */
+/* hero is getting sicker and sicker prior to vomiting */
static NEARDATA const char *const vomiting_texts[] = {
"are feeling mildly nauseated.", /* 14 */
"feel slightly confused.", /* 11 */
"can't seem to think straight.", /* 8 */
"feel incredibly sick.", /* 5 */
- "suddenly vomit!" /* 2 */
+ "are about to vomit." /* 2 */
};
STATIC_OVL void
txt = vomiting_texts[4];
if (cantvomit(youmonst.data))
txt = "gag uncontrolably.";
+ else if (Hallucination)
+ /* "hurl" is short for "hurl chunks" which is slang for
+ relatively violent vomiting... */
+ txt = "are about to hurl!";
break;
case 0:
stop_occupation();
if (!cantvomit(youmonst.data))
morehungry(20);
+ /* case 2 used to be "You suddenly vomit!" but it wasn't sudden
+ since you've just been through the earlier messages of the
+ countdown, and it was still possible to move around between
+ that message and vomit() -> numul(-2) -> "You can move again." */
+ You("vomit!");
vomit();
break;
default: