diff --git a/src/driver/fontrenderer.cpp b/src/driver/fontrenderer.cpp index 163c8aaa0..44de21344 100644 --- a/src/driver/fontrenderer.cpp +++ b/src/driver/fontrenderer.cpp @@ -436,7 +436,10 @@ void Font::RenderString(int x, int y, const int width, const char *text, const u fb_pixel_t bgcolor = *(frameBuffer->getFrameBufferPointer() + x + y * frameBuffer->getStride() / sizeof(fb_pixel_t)); // fb_pixel_t bgcolor = frameBuffer->realcolor[color]; - fb_pixel_t fgcolor = frameBuffer->realcolor[(((((int)color) + 2) | 7) - 2)]; + uint8_t fgindex = color; /* index of font color in the palette */ + if (color > COL_BLACK0 && color < 254) /* bigger than 254 would result in > 255 */ + fgindex = ((((int)color) + 2) | 7) - 2; /* no idea what this does exactly... */ + fb_pixel_t fgcolor = frameBuffer->realcolor[fgindex]; if((oldbgcolor != bgcolor) || (oldfgcolor != fgcolor)) {