respect tile colors in pens

develop
Myk Taylor 2022-12-30 05:35:04 -08:00
parent 83a8e9a45a
commit 7d91f9262d
No known key found for this signature in database
1 changed files with 17 additions and 10 deletions

@ -161,10 +161,18 @@ static bool doSetTile_default(const Pen &pen, int x, int y, bool map)
*flag &= 4; // keep SCREENTEXPOS_FLAG_ANCHOR_SUBORDINATE *flag &= 4; // keep SCREENTEXPOS_FLAG_ANCHOR_SUBORDINATE
} }
uint8_t fg = pen.fg | (pen.bold << 3);
uint8_t bg = pen.bg;
if (pen.tile_mode == Screen::Pen::CharColor) if (pen.tile_mode == Screen::Pen::CharColor)
*flag |= 2; // SCREENTEXPOS_FLAG_ADDCOLOR *flag |= 2; // SCREENTEXPOS_FLAG_ADDCOLOR
else if (pen.tile_mode == Screen::Pen::TileColor) else if (pen.tile_mode == Screen::Pen::TileColor) {
*flag |= 1; // SCREENTEXPOS_FLAG_GRAYSCALE *flag |= 1; // SCREENTEXPOS_FLAG_GRAYSCALE
if (pen.tile_fg)
fg = pen.tile_fg;
if (pen.tile_bg)
bg = pen.tile_bg;
}
if (pen.tile && use_graphics) { if (pen.tile && use_graphics) {
*texpos = pen.tile; *texpos = pen.tile;
@ -173,15 +181,14 @@ static bool doSetTile_default(const Pen &pen, int x, int y, bool map)
*texpos_lower = 909; *texpos_lower = 909;
} }
uint8_t fullfg = pen.fg | (pen.bold << 3); auto rgb_fg = &gps->uccolor[fg][0];
auto fg = &gps->uccolor[fullfg][0]; auto rgb_bg = &gps->uccolor[bg][0];
auto bg = &gps->uccolor[pen.bg][0]; screen[1] = rgb_fg[0];
screen[1] = fg[0]; screen[2] = rgb_fg[1];
screen[2] = fg[1]; screen[3] = rgb_fg[2];
screen[3] = fg[2]; screen[4] = rgb_bg[0];
screen[4] = bg[0]; screen[5] = rgb_bg[1];
screen[5] = bg[1]; screen[6] = rgb_bg[2];
screen[6] = bg[2];
return true; return true;
} }