fix issue #331 - steam clouds vs moats
Water locations on Medusa's level didn't show steam clouds. It wasn't because the location was a moat rather than a pool, it was because the moat location was unlit (and in line of sight) and tested pool locations were lit. Poison gas clouds explicitly override the lit/unlit issue but other region types weren't. Fixes #331
This commit is contained in:
+3
-1
@@ -1,4 +1,4 @@
|
|||||||
$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.184 $ $NHDT-Date: 1587110793 2020/04/17 08:06:33 $
|
$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.188 $ $NHDT-Date: 1587248920 2020/04/18 22:28:40 $
|
||||||
|
|
||||||
General Fixes and Modified Features
|
General Fixes and Modified Features
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@@ -184,6 +184,8 @@ fix crash in water_damage_chain
|
|||||||
teleport feedback "you materialize at another location" was given too soon
|
teleport feedback "you materialize at another location" was given too soon
|
||||||
'mention_decore' was repeatedly reporting "you are back on bottom" when
|
'mention_decore' was repeatedly reporting "you are back on bottom" when
|
||||||
moving around underwater
|
moving around underwater
|
||||||
|
poison gas clouds located over known but unlit pools were visible as known
|
||||||
|
clouds but steam clouds in that situation were not
|
||||||
tty: redraw unexplored locations as S_unexplored rather than <space> after
|
tty: redraw unexplored locations as S_unexplored rather than <space> after
|
||||||
map has been partially overwritten by popup menu or text display
|
map has been partially overwritten by popup menu or text display
|
||||||
tty: previous change resulted in remnants of previous level being shown on
|
tty: previous change resulted in remnants of previous level being shown on
|
||||||
|
|||||||
+10
-10
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 display.c $NHDT-Date: 1587110793 2020/04/17 08:06:33 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.129 $ */
|
/* NetHack 3.6 display.c $NHDT-Date: 1587248921 2020/04/18 22:28:41 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.131 $ */
|
||||||
/* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */
|
/* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */
|
||||||
/* and Dave Cohrs, 1990. */
|
/* and Dave Cohrs, 1990. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -124,8 +124,8 @@
|
|||||||
#include "hack.h"
|
#include "hack.h"
|
||||||
|
|
||||||
static void FDECL(show_mon_or_warn, (int, int, int));
|
static void FDECL(show_mon_or_warn, (int, int, int));
|
||||||
static void FDECL(display_monster,
|
static void FDECL(display_monster, (XCHAR_P, XCHAR_P, struct monst *, int,
|
||||||
(XCHAR_P, XCHAR_P, struct monst *, int, XCHAR_P));
|
BOOLEAN_P));
|
||||||
static int FDECL(swallow_to_glyph, (int, int));
|
static int FDECL(swallow_to_glyph, (int, int));
|
||||||
static void FDECL(display_warning, (struct monst *));
|
static void FDECL(display_warning, (struct monst *));
|
||||||
|
|
||||||
@@ -402,7 +402,7 @@ register xchar x, y; /* display position */
|
|||||||
register struct monst *mon; /* monster to display */
|
register struct monst *mon; /* monster to display */
|
||||||
int sightflags; /* 1 if the monster is physically seen;
|
int sightflags; /* 1 if the monster is physically seen;
|
||||||
2 if detected using Detect_monsters */
|
2 if detected using Detect_monsters */
|
||||||
xchar worm_tail; /* mon is actually a worm tail */
|
boolean worm_tail; /* mon is actually a worm tail */
|
||||||
{
|
{
|
||||||
boolean mon_mimic = (M_AP_TYPE(mon) != M_AP_NOTHING);
|
boolean mon_mimic = (M_AP_TYPE(mon) != M_AP_NOTHING);
|
||||||
int sensed = (mon_mimic && (Protection_from_shape_changers
|
int sensed = (mon_mimic && (Protection_from_shape_changers
|
||||||
@@ -733,10 +733,10 @@ void
|
|||||||
newsym(x, y)
|
newsym(x, y)
|
||||||
register int x, y;
|
register int x, y;
|
||||||
{
|
{
|
||||||
register struct monst *mon;
|
struct monst *mon;
|
||||||
|
int see_it;
|
||||||
|
boolean worm_tail;
|
||||||
register struct rm *lev = &(levl[x][y]);
|
register struct rm *lev = &(levl[x][y]);
|
||||||
register int see_it;
|
|
||||||
register xchar worm_tail;
|
|
||||||
|
|
||||||
if (g.in_mklev)
|
if (g.in_mklev)
|
||||||
return;
|
return;
|
||||||
@@ -780,13 +780,13 @@ register int x, y;
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Normal region shown only on accessible positions, but
|
* Normal region shown only on accessible positions, but
|
||||||
* poison clouds also shown above lava, pools and moats.
|
* poison clouds and steam clouds also shown above lava,
|
||||||
|
* pools and moats.
|
||||||
* However, sensed monsters take precedence over all regions.
|
* However, sensed monsters take precedence over all regions.
|
||||||
*/
|
*/
|
||||||
if (reg
|
if (reg
|
||||||
&& (ACCESSIBLE(lev->typ)
|
&& (ACCESSIBLE(lev->typ)
|
||||||
|| (reg->glyph == cmap_to_glyph(S_poisoncloud)
|
|| (reg->visible && is_pool_or_lava(x, y)))
|
||||||
&& is_pool_or_lava(x, y)))
|
|
||||||
&& (!mon || worm_tail || !sensemon(mon))) {
|
&& (!mon || worm_tail || !sensemon(mon))) {
|
||||||
show_region(reg, x, y);
|
show_region(reg, x, y);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user