From: nethack.rankin Date: Thu, 20 Feb 2003 00:19:49 +0000 (+0000) Subject: fix B20003 - hallucination and warning X-Git-Tag: MOVE2GIT~2145 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7aeaeac8e3d3f8b66c1e64308e3ad51a9663a383;p=nethack fix B20003 - hallucination and warning > Why does warning work normally while hallucinating? I'd like to see > random numbers. It's just a one-liner, although it has pointed out problems in the symbol lookup code. "0" won't work at present, so this doesn't use it, but warning symbols "1" through "5" also have trouble--regardless of hallucination--if someone overloads them to represent any feature aside from warning. --- diff --git a/doc/fixes34.1 b/doc/fixes34.1 index e9437ad5c..d69aeae53 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -395,6 +395,7 @@ any object held by ghost during recorporealization would cease to exist including the Amulet of Yendor harassing monsters will be less likely to teleport to your location while they're running away from you +randomize warning symbols during hallucination Platform- and/or Interface-Specific Fixes diff --git a/src/display.c b/src/display.c index c5138f237..d23559021 100644 --- a/src/display.c +++ b/src/display.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)display.c 3.4 2002/10/03 */ +/* SCCS Id: @(#)display.c 3.4 2003/02/19 */ /* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */ /* and Dave Cohrs, 1990. */ /* NetHack may be freely redistributed. See license for details. */ @@ -460,6 +460,9 @@ display_warning(mon) if (mon_warning(mon)) { if (wl > WARNCOUNT - 1) wl = WARNCOUNT - 1; + /* 3.4.1: this really ought to be rn2(WARNCOUNT), but value "0" + isn't handled correctly by the what_is routine so avoid it */ + if (Hallucination) wl = rn1(WARNCOUNT-1,1); glyph = warning_to_glyph(wl); } else if (MATCH_WARN_OF_MON(mon)) { glyph = mon_to_glyph(mon);