mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r1091) Fix: Finally station names use 100% the correct color in transparent mode
This commit is contained in:
parent
b6c74c1c20
commit
af9dc1f817
4
gfx.c
4
gfx.c
|
@ -492,7 +492,7 @@ int DoDrawString(const byte *string, int x, int y, uint16 real_color) {
|
|||
|
||||
if (color != 0xFF) {
|
||||
switch_color:;
|
||||
if (real_color & 0x100) {
|
||||
if (real_color & IS_PALETTE_COLOR) {
|
||||
_string_colorremap[1] = color;
|
||||
_string_colorremap[2] = 215;
|
||||
} else {
|
||||
|
@ -1976,5 +1976,5 @@ uint16 GetDrawStringPlayerColor(byte player)
|
|||
// of the player
|
||||
if (player == OWNER_SPECTATOR || player == OWNER_SPECTATOR - 1)
|
||||
return 1;
|
||||
return (_color_list[_player_colors[player]].window_color_1b) | 0x100;
|
||||
return (_color_list[_player_colors[player]].window_color_1b) | IS_PALETTE_COLOR;
|
||||
}
|
||||
|
|
5
gfx.h
5
gfx.h
|
@ -111,4 +111,9 @@ enum { NUM_SPRITES = 0x3500 }; // 1500 + space for custom GRF sets
|
|||
extern byte _palettes[4][256 * 3];
|
||||
VARDEF byte _cur_palette[768];
|
||||
|
||||
|
||||
typedef enum StringColorFlags {
|
||||
IS_PALETTE_COLOR = 0x100, // color value is already a real palette color index, not an index of a StringColor
|
||||
} StringColorFlags;
|
||||
|
||||
#endif
|
||||
|
|
17
viewport.c
17
viewport.c
|
@ -1111,20 +1111,9 @@ static void ViewportDrawStrings(DrawPixelInfo *dpi, StringSpriteToDraw *ss)
|
|||
SetDParam(0, ss->params[0]);
|
||||
SetDParam(1, ss->params[1]);
|
||||
if (_display_opt & DO_TRANS_BUILDINGS && ss->width != 0) {
|
||||
/* This is such a frustrating mess - I need to convert
|
||||
* from real color codes to string color codes and guess
|
||||
* what, they are completely different. --pasky */
|
||||
static const byte ci2sci[17] = {
|
||||
/* 0 */ 16, /* 1 */ 0, /* 2 */ 5,
|
||||
/* 3X*/ 2, /* 4 */ 8, /* 5 */ 3,
|
||||
/* 6X*/ 14, /* 7 */ 7, /* 8 */ 9,
|
||||
/* 9 */ 13, /* 10 */ 10, /* 11 */ 15,
|
||||
/* 12 */ 4, /* 13 */ 6, /* 14 */ 11,
|
||||
/* 15 */ 1, /* 16 */ 12
|
||||
};
|
||||
byte color = ci2sci[ss->color + 1];
|
||||
|
||||
DrawString(ss->x >> zoom, (ss->y >> zoom) - (ss->width&0x8000?2:0), ss->string, color);
|
||||
/* Real colors need the IS_PALETTE_COLOR flag, otherwise colors from _string_colormap are assumed. */
|
||||
DrawString(ss->x >> zoom, (ss->y >> zoom) - (ss->width&0x8000?2:0), ss->string,
|
||||
(_color_list[ss->color].window_color_bgb | IS_PALETTE_COLOR));
|
||||
} else {
|
||||
DrawString(ss->x >> zoom, (ss->y >> zoom) - (ss->width&0x8000?2:0), ss->string, 16);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue