provide bkglyphs

Changes to be committed:
	modified:   src/display.c
This commit is contained in:
nhmall
2015-06-08 20:10:43 -04:00
parent c3a77914a9
commit 85e80f1e3e

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 display.c $NHDT-Date: 1433806584 2015/06/08 23:36:24 $ $NHDT-Branch: master $:$NHDT-Revision: 1.59 $ */
/* NetHack 3.6 display.c $NHDT-Date: 1433808638 2015/06/09 00:10:38 $ $NHDT-Branch: master $:$NHDT-Revision: 1.60 $ */
/* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */
/* and Dave Cohrs, 1990. */
/* NetHack may be freely redistributed. See license for details. */
@@ -124,6 +124,7 @@ STATIC_DCL int FDECL(swallow_to_glyph, (int, int));
STATIC_DCL void FDECL(display_warning, (struct monst *));
STATIC_DCL int FDECL(check_pos, (int, int, int));
STATIC_DCL int FDECL(get_bk_glyph, (XCHAR_P, XCHAR_P));
/*#define WA_VERBOSE*/ /* give (x,y) locations for all "bad" spots */
#ifdef WA_VERBOSE
@@ -1426,7 +1427,7 @@ int start, stop, y;
for (x = start; x <= stop; x++)
if (gbuf[y][x].glyph != cmap_to_glyph(S_stone))
print_glyph(WIN_MAP, x, y, gbuf[y][x].glyph, NO_GLYPH);
print_glyph(WIN_MAP, x, y, gbuf[y][x].glyph, get_bk_glyph(x,y));
}
void
@@ -1475,7 +1476,7 @@ int cursor_on_u;
register gbuf_entry *gptr = &gbuf[y][x = gbuf_start[y]];
for (; x <= gbuf_stop[y]; gptr++, x++)
if (gptr->new) {
print_glyph(WIN_MAP, x, y, gptr->glyph, NO_GLYPH);
print_glyph(WIN_MAP, x, y, gptr->glyph, get_bk_glyph(x, y));
gptr->new = 0;
}
}
@@ -1692,6 +1693,31 @@ xchar x, y;
return gbuf[y][x].glyph;
}
/*
* This is used to get the glyph for background to merge into
* tile ports to improve the appearance of stuff on dark room
* squares and the plane of air there.
*/
STATIC_OVL int
get_bk_glyph(x,y)
xchar x, y;
{
int retglyph = NO_GLYPH;
struct rm *lev = &levl[x][y];
retglyph = back_to_glyph(x, y); /* assumes hero can see x,y */
if (!cansee(x, y) && !lev->waslit) {
/* Floor spaces are dark if unlit. Corridors are dark if unlit. */
if (lev->typ == ROOM && retglyph == cmap_to_glyph(S_room))
retglyph = cmap_to_glyph((flags.dark_room && iflags.use_color)
? (DARKROOMSYM)
: S_stone);
else if (lev->typ == CORR && retglyph == cmap_to_glyph(S_litcorr))
retglyph = cmap_to_glyph(S_corr);
}
return retglyph;
}
/* -------------------------------------------------------------------------
*/
/* Wall Angle --------------------------------------------------------------