From 7aeaeac8e3d3f8b66c1e64308e3ad51a9663a383 Mon Sep 17 00:00:00 2001 From: "nethack.rankin" Date: Thu, 20 Feb 2003 00:19:49 +0000 Subject: [PATCH] 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. --- doc/fixes34.1 | 1 + src/display.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) 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); -- 2.40.0