'quick_farsight' option
Bite the bullet and add a special purpose boolean option to control game behavior for random clairvoyance. When objects or monsters are discovered, it normally issues "you sense your surroundings" and performs a getpos() operation which allows the player to browse the map by moving the cursor around and getting 'autodescribe' feedback. But there have been complaints that once the hero has the Amulet (which triggers random clairvoyance even though hero isn't flagged as having that attribute) the message and pause-to-browse become too intrusive. This was initially combined with the 'timed clairvoyance' fix because they both bump EDITLEVEL to invalidate existing save files, but their details don't interact so I separated them.
This commit is contained in:
18
src/detect.c
18
src/detect.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 detect.c $NHDT-Date: 1575245054 2019/12/02 00:04:14 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.100 $ */
|
||||
/* NetHack 3.6 detect.c $NHDT-Date: 1577050472 2019/12/22 21:34:32 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.110 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2018. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1314,7 +1314,8 @@ struct obj *sobj; /* scroll--actually fake spellbook--object */
|
||||
/* fake spellbook 'sobj' implies hero has cast the spell;
|
||||
when book is blessed, casting is skilled or expert level;
|
||||
if already clairvoyant, non-skilled spell acts like skilled */
|
||||
extended = (sobj && (sobj->blessed || Clairvoyant));
|
||||
extended = (sobj && (sobj->blessed || Clairvoyant)),
|
||||
random_farsight = !sobj;
|
||||
int newglyph, oldglyph,
|
||||
lo_y = ((u.uy - 5 < 0) ? 0 : u.uy - 5),
|
||||
hi_y = ((u.uy + 6 >= ROWNO) ? ROWNO - 1 : u.uy + 6),
|
||||
@@ -1391,7 +1392,18 @@ struct obj *sobj; /* scroll--actually fake spellbook--object */
|
||||
}
|
||||
}
|
||||
|
||||
if (!g.level.flags.hero_memory || unconstrained || mdetected || odetected) {
|
||||
/* when this instance of clairvoyance is random (see allmain()) and
|
||||
the only reason to browse the map is that previously undetected
|
||||
monster(s) or object(s) have been revealed, player can prevent
|
||||
the you-sense-your-surroundings message and browse operation from
|
||||
happening by setting 'quick_farsight' option; for clairvoyance
|
||||
spell, that option is ignored because the message and the pause
|
||||
for map browsing isn't as intrusive in that circumstance */
|
||||
if (random_farsight && flags.quick_farsight)
|
||||
mdetected = odetected = FALSE;
|
||||
|
||||
if (!g.level.flags.hero_memory || unconstrained
|
||||
|| mdetected || odetected) {
|
||||
flush_screen(1); /* flush temp screen */
|
||||
/* the getpos() prompt from browse_map() is only shown when
|
||||
flags.verbose is set, but make this unconditional so that
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 options.c $NHDT-Date: 1575245078 2019/12/02 00:04:38 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.391 $ */
|
||||
/* NetHack 3.7 options.c $NHDT-Date: 1577050473 2019/12/22 21:34:33 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.422 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Michael Allison, 2008. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -184,6 +184,7 @@ static const struct Bool_Opt {
|
||||
{ "popup_dialog", &iflags.wc_popup_dialog, FALSE, SET_IN_GAME }, /*WC*/
|
||||
{ "preload_tiles", &iflags.wc_preload_tiles, TRUE, DISP_IN_GAME }, /*WC*/
|
||||
{ "pushweapon", &flags.pushweapon, FALSE, SET_IN_GAME },
|
||||
{ "quick_farsight", &flags.quick_farsight, FALSE, SET_IN_GAME },
|
||||
#if defined(MICRO) && !defined(AMIGA)
|
||||
{ "rawio", &iflags.rawio, FALSE, DISP_IN_GAME },
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user