restoring in Gehennom
When a game is restored while hero is Gehennom, give the "It is hot here. You smell smoke..." message after the welcome back message. For both entering Gehennom and restoring there, switch from "smell" to "sense" in the second part of that message if poly'd into a form that doesn't have sense of smell. Some unrelated stuff that got caught up in this diff: 1) move welcome()'s call to l_nhcore_call() to the start of the routine instead of placing that after a potential early return; 2) remove a redundant glyphmap flags reset line; the routine being called starts by setting its flags field to 0 for level change so caller doesn't need to do that; 3) look_here() is just a formatting bit.
This commit is contained in:
15
src/do.c
15
src/do.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 do.c $NHDT-Date: 1646171623 2022/03/01 21:53:43 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.296 $ */
|
||||
/* NetHack 3.7 do.c $NHDT-Date: 1652831519 2022/05/17 23:51:59 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.304 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1626,7 +1626,6 @@ goto_level(
|
||||
|
||||
/* Reset the screen. */
|
||||
vision_reset(); /* reset the blockages */
|
||||
g.glyphmap_perlevel_flags = 0L; /* force per-level map_glyphinfo() changes */
|
||||
reset_glyphmap(gm_levelchange);
|
||||
docrt(); /* does a full vision recalc */
|
||||
flush_screen(-1);
|
||||
@@ -1658,7 +1657,7 @@ goto_level(
|
||||
#endif
|
||||
You_hear("groans and moans everywhere.");
|
||||
} else
|
||||
pline("It is hot here. You smell smoke...");
|
||||
hellish_smoke_mesg(); /* "It is hot here. You smell smoke..." */
|
||||
|
||||
record_achievement(ACH_HELL); /* reached Gehennom */
|
||||
}
|
||||
@@ -1799,6 +1798,16 @@ goto_level(
|
||||
|
||||
RESTORE_WARNING_FORMAT_NONLITERAL
|
||||
|
||||
/* give a message when entering a Gehennom level other than the Valley;
|
||||
also given if restoring a game in that situation */
|
||||
void
|
||||
hellish_smoke_mesg()
|
||||
{
|
||||
if (Inhell && !Is_valley(&u.uz))
|
||||
pline("It is hot here. You %s smoke...",
|
||||
olfaction(g.youmonst.data) ? "smell" : "sense");
|
||||
}
|
||||
|
||||
/* usually called from goto_level(); might be called from Sting_effects() */
|
||||
void
|
||||
maybe_lvltport_feedback(void)
|
||||
|
||||
Reference in New Issue
Block a user