diff --git a/src/gfx.cpp b/src/gfx.cpp index 8797c77396..f00ee53617 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -652,10 +652,11 @@ int DoDrawString(const char *string, int x, int y, uint16 real_color) switch_color:; if (real_color & IS_PALETTE_COLOR) { _string_colorremap[1] = color; - _string_colorremap[2] = 215; + _string_colorremap[2] = _use_dos_palette ? 1 : 215; } else { - _string_colorremap[1] = _string_colormap[color].text; - _string_colorremap[2] = _string_colormap[color].shadow; + uint palette = _use_dos_palette ? 1 : 0; + _string_colorremap[1] = _string_colormap[palette][color].text; + _string_colorremap[2] = _string_colormap[palette][color].shadow; } _color_remap_ptr = _string_colorremap; } diff --git a/src/table/palettes.h b/src/table/palettes.h index dd69085c76..d1bff7cb60 100644 --- a/src/table/palettes.h +++ b/src/table/palettes.h @@ -178,22 +178,43 @@ struct StringColor { byte shadow; }; -static const StringColor _string_colormap[] = { - { 150, 215 }, // BLUE - { 12, 215 }, // SILVER - { 189, 215 }, // GOLD - { 184, 215 }, // RED - { 174, 215 }, // PURPLE - { 30, 215 }, // LTBROWN - { 195, 215 }, // ORANGE - { 209, 215 }, // GREEN - { 68, 215 }, // YELLOW - { 95, 215 }, // DKGREEN - { 79, 215 }, // CREAM - { 116, 215 }, // BROWN - { 15, 215 }, // WHITE - { 152, 215 }, // LTBLUE - { 32, 215 }, // GRAY - { 133, 215 }, // DKBLUE - { 215, 0 }, // BLACK +static const StringColor _string_colormap[][17] = { + { /* Windows palette. */ + { 150, 215 }, // BLUE + { 12, 215 }, // SILVER + { 189, 215 }, // GOLD + { 184, 215 }, // RED + { 174, 215 }, // PURPLE + { 30, 215 }, // LTBROWN + { 195, 215 }, // ORANGE + { 209, 215 }, // GREEN + { 68, 215 }, // YELLOW + { 95, 215 }, // DKGREEN + { 79, 215 }, // CREAM + { 116, 215 }, // BROWN + { 15, 215 }, // WHITE + { 152, 215 }, // LTBLUE + { 32, 215 }, // GRAY + { 133, 215 }, // DKBLUE + { 215, 0 }, // BLACK + }, + { /* DOS palette. */ + { 150, 1 }, // BLUE + { 12, 1 }, // SILVER + { 189, 1 }, // GOLD + { 184, 1 }, // RED + { 174, 1 }, // PURPLE + { 30, 1 }, // LTBROWN + { 195, 1 }, // ORANGE + { 209, 1 }, // GREEN + { 68, 1 }, // YELLOW + { 95, 1 }, // DKGREEN + { 79, 1 }, // CREAM + { 116, 1 }, // BROWN + { 15, 1 }, // WHITE + { 152, 1 }, // LTBLUE + { 6, 1 }, // GRAY + { 133, 1 }, // DKBLUE + { 1, 0 }, // BLACK + } };