Fix more dark_room and nocolor
authorPasi Kallinen <paxed@alt.org>
Fri, 10 Jul 2015 13:03:57 +0000 (16:03 +0300)
committerPasi Kallinen <paxed@alt.org>
Fri, 10 Jul 2015 13:04:04 +0000 (16:04 +0300)
Fixes for example the case of searching while blind, as
reported by Boudewijn.

src/display.c

index b1d7277d742dc4462f658e5bcadf0c4e05908d2e..141a85db06ecd4ccb160d52f6dab28315e55bda3 100644 (file)
@@ -578,7 +578,7 @@ xchar x, y;
                 if (lev->typ != ROOM && lev->seenv) {
                     map_background(x, y, 1);
                 } else {
-                    lev->glyph = (flags.dark_room && !Is_rogue_level(&u.uz))
+                    lev->glyph = (flags.dark_room && iflags.use_color && !Is_rogue_level(&u.uz))
                                      ? cmap_to_glyph(S_darkroom)
                                      : (lev->waslit ? cmap_to_glyph(S_room)
                                                     : cmap_to_glyph(S_stone));
@@ -587,7 +587,7 @@ xchar x, y;
             } else if ((lev->glyph >= cmap_to_glyph(S_stone)
                         && lev->glyph < cmap_to_glyph(S_darkroom))
                        || glyph_is_invisible(levl[x][y].glyph)) {
-                lev->glyph = (flags.dark_room && !Is_rogue_level(&u.uz))
+                lev->glyph = (flags.dark_room && iflags.use_color && !Is_rogue_level(&u.uz))
                                  ? cmap_to_glyph(S_darkroom)
                                  : (lev->waslit ? cmap_to_glyph(S_room)
                                                 : cmap_to_glyph(S_stone));
@@ -601,7 +601,7 @@ xchar x, y;
             if (lev->typ == CORR && lev->glyph == cmap_to_glyph(S_litcorr)
                 && !lev->waslit)
                 show_glyph(x, y, lev->glyph = cmap_to_glyph(S_corr));
-            else if (lev->typ == ROOM && flags.dark_room
+            else if (lev->typ == ROOM && flags.dark_room && iflags.use_color
                      && lev->glyph == cmap_to_glyph(S_room))
                 show_glyph(x, y, lev->glyph = cmap_to_glyph(S_darkroom));
         }
@@ -632,7 +632,7 @@ xchar x, y;
 
         /* Floor spaces are dark if unlit.  Corridors are dark if unlit. */
         if (lev->typ == ROOM && lev->glyph == cmap_to_glyph(S_room)
-            && (!lev->waslit || flags.dark_room))
+            && (!lev->waslit || (flags.dark_room && iflags.use_color)))
             show_glyph(x, y, lev->glyph = cmap_to_glyph(
                                  flags.dark_room ? S_darkroom : S_stone));
         else if (lev->typ == CORR && lev->glyph == cmap_to_glyph(S_litcorr)