for (int j = garea.top(); j <= garea.bottom(); j++) {
for (int i = garea.left(); i <= garea.right(); i++) {
- uint32 color = Glyphcolor(i, j);
- char32_t ch = Glyphttychar(i, j);
- unsigned special = Glyphflags(i, j);
-/* unsigned short tileidx = Glyphtileidx(i, j); */
- if (SYMHANDLING(H_IBM)) {
- ch = cp437(ch);
- }
+ uint32 color = Glyphcolor(i, j);
+ char32_t ch = Glyphttychar(i, j);
+ unsigned special = Glyphflags(i, j);
+ uint32 framecolor = GlyphFramecolor(i, j);
+/* unsigned short tileidx = Glyphtileidx(i, j); */
+ if (SYMHANDLING(H_IBM)) {
+ ch = cp437(ch);
+ }
+ if (framecolor != NO_COLOR) {
+ painter.fillRect(i*qt_settings->glyphs().width(),
+ j*qt_settings->glyphs().height(),
+ qt_settings->glyphs().width()-1,
+ qt_settings->glyphs().height()-1,
+ nhcolor_to_pen(framecolor).color());
+ }
+
#ifdef TEXTCOLOR
- painter.setPen( nhcolor_to_pen(color) );
+
+ painter.setPen( nhcolor_to_pen(color) );
#else
- painter.setPen( Qt::green );
+ painter.setPen( Qt::green );
#endif
- if (!DrawWalls(painter, i * gW, j * gH, gW, gH, ch)) {
- painter.drawText(i * gW, j * gH, gW, gH, Qt::AlignCenter,
+ if (!DrawWalls(painter, i * gW, j * gH, gW, gH, ch)) {
+ painter.drawText(i * gW, j * gH, gW, gH, Qt::AlignCenter,
QString(QChar(ch)).left(1));
- }
+ }
#ifdef TEXTCOLOR
if ((special & MG_PET) != 0 && ::iflags.hilite_pet) {
painter.drawPixmap(QPoint(i * gW, j * gH),
painter.drawPixmap(QPoint(i * gW, j * gH),
pile_annotation);
}
+ if (framecolor != NO_COLOR) {
+ painter.setPen( nhcolor_to_pen(framecolor) );
+ painter.drawRect(i*qt_settings->glyphs().width(),
+ j*qt_settings->glyphs().height(),
+ qt_settings->glyphs().width()-1,
+ qt_settings->glyphs().height()-1);
+ }
#endif
}
}
- painter.setFont(font());
+ painter.setFont(font());
} else { // tiles
for (int j = garea.top(); j <= garea.bottom(); j++) {
for (int i = garea.left(); i <= garea.right(); i++) {
unsigned short g = Glyph(i,j);
unsigned special = Glyphflags(i, j);
unsigned tileidx = Glyphtileidx(i, j);
+ uint32 framecolor = GlyphFramecolor(i, j);
glyphs.drawCell(painter, g, tileidx, i, j);
painter.drawPixmap(QPoint(i * gW, j * gH),
pile_annotation);
}
+ if (framecolor != NO_COLOR) {
+ painter.setPen( nhcolor_to_pen(framecolor) );
+ painter.drawRect(i*qt_settings->glyphs().width(),
+ j*qt_settings->glyphs().height(),
+ qt_settings->glyphs().width()-1,
+ qt_settings->glyphs().height()-1);
+ }
}
}
}
Glyph(0, j) = GLYPH_NOTHING;
Glyphttychar(0, j) = ' ';
Glyphcolor(0, j) = NO_COLOR;
+ GlyphFramecolor(0, j) = NO_COLOR;
Glyphflags(0, j) = 0U;
Glyphtileidx(0, j) = ::glyphmap[GLYPH_NOTHING].tileidx;
Glyph(i, j) = GLYPH_UNEXPLORED;
Glyphttychar(i, j) = ' ';
Glyphcolor(i, j) = NO_COLOR;
+ GlyphFramecolor(i, j) = NO_COLOR;
Glyphflags(i, j) = 0U;
Glyphtileidx(i, j) = ::glyphmap[GLYPH_UNEXPLORED].tileidx;
}
}
void NetHackQtMapViewport::PrintGlyph(int x, int y,
- const glyph_info *glyphinfo)
+ const glyph_info *glyphinfo,
+ const glyph_info *bkglyphinfo)
{
Glyph(x, y) = (unsigned short) glyphinfo->glyph;
Glyphttychar(x, y) = (char32_t) glyphinfo->ttychar;
Glyphcolor(x, y) = (uint32) glyphinfo->gm.sym.color;
+ GlyphFramecolor(x, y) = (uint32) bkglyphinfo->framecolor;
#ifdef ENHANCED_SYMBOLS
if (SYMHANDLING(H_UTF8)
&& glyphinfo->gm.u
}
void NetHackQtMapWindow2::PrintGlyph(int x,int y,
- const glyph_info *glyphinfo)
+ const glyph_info *glyphinfo,
+ const glyph_info *bkglyphinfo)
{
- m_viewport->PrintGlyph(x, y, glyphinfo);
+ m_viewport->PrintGlyph(x, y, glyphinfo, bkglyphinfo);
}
#if 0 //RLC
for (int j = 0; j < ROWNO; ++j) {
Glyph(0, j) = GLYPH_NOTHING;
Glyphcolor(0, j) = NO_COLOR;
+ GlyphFramecolor(0, j) = NO_COLOR;
Glyphttychar(0, j) = ' ';
Glyphflags(0, j) = 0;
Glyphtileidx(0, j) = ::glyphmap[GLYPH_NOTHING].tileidx;
for (int i = 1; i < COLNO; ++i) {
Glyph(i, j) = GLYPH_UNEXPLORED;
Glyphcolor(i, j) = NO_COLOR;
+ GlyphFramecolor(i, j) = NO_COLOR;
Glyphttychar(i, j) = ' ';
Glyphflags(i, j) = 0;
Glyphtileidx(i, j) = ::glyphmap[GLYPH_UNEXPLORED].tileidx;
for (int j=garea.top(); j<=garea.bottom(); j++) {
for (int i=garea.left(); i<=garea.right(); i++) {
unsigned short g=Glyph(i,j);
-#if 0
- int color;
- char32_t ch;
- unsigned special;
-#else
uint32 color = Glyphcolor(i,j);
+ uint32 framecolor = GlyphFramecolor(i,j);
char32_t ch = Glyphttychar(i,j);
unsigned special = Glyphflags(i,j);
-#endif
+
+ if (framecolor != NO_COLOR) {
+ painter.fillRect(i*qt_settings->glyphs().width(),
+ j*qt_settings->glyphs().height(),
+ qt_settings->glyphs().width()-1,
+ qt_settings->glyphs().height()-1,
+ nhcolor_to_pen(framecolor).color());
+ }
painter.setPen( Qt::green );
#ifdef TEXTCOLOR
painter.setPen( nhcolor_to_pen(color) );
pile_annotation);
}
#endif
- }
- }
+ if (framecolor != NO_COLOR) {
+ painter.setPen( nhcolor_to_pen(framecolor) );
+ painter.drawRect(i*qt_settings->glyphs().width(),
+ j*qt_settings->glyphs().height(),
+ qt_settings->glyphs().width()-1,
+ qt_settings->glyphs().height()-1);
+ }
+ }
+ }
- painter.setFont(font());
+ painter.setFont(font());
} else {
for (int j=garea.top(); j<=garea.bottom(); j++) {
for (int i=garea.left(); i<=garea.right(); i++) {
unsigned short g=Glyph(i,j);
unsigned special = Glyphflags(i,j);
unsigned short tileidx = Glyphtileidx(i,j);
+ uint32 framecolor = GlyphFramecolor(i,j);
qt_settings->glyphs().drawCell(painter, g, tileidx, i, j);
#ifdef TEXTCOLOR
pile_annotation);
}
#endif
+ if (framecolor != NO_COLOR) {
+ painter.setPen( nhcolor_to_pen(framecolor) );
+ painter.drawRect(i*qt_settings->glyphs().width(),
+ j*qt_settings->glyphs().height(),
+ qt_settings->glyphs().width()-1,
+ qt_settings->glyphs().height()-1);
+ }
}
}
}
Glyph(x,y)=glyphinfo->glyph;
Glyphttychar(x,y)=glyphinfo->ttychar;
Glyphcolor(x,y)=glyphinfo->color;
+ GlyphFramecolor(x,y)=bkglyphinfo->framecolor;
#ifdef ENHANCED_SYMBOLS
if (SYMHANDLING(H_UTF8)
&& glyphinfo->gm.u