Just for Gareth: a means of overriding individual game colour

settings using environment variables. GTK frontend only, because
this is an unsupported (and unprincipled) hack.

[originally from svn r5792]
This commit is contained in:
Simon Tatham
2005-05-17 11:47:33 +00:00
parent c9f05ca3c0
commit b77d727eb4

21
gtk.c
View File

@ -1131,9 +1131,24 @@ static frontend *new_window(char *game_id, char **error)
fe->ncolours = ncolours; fe->ncolours = ncolours;
fe->colours = snewn(ncolours, GdkColor); fe->colours = snewn(ncolours, GdkColor);
for (i = 0; i < ncolours; i++) { for (i = 0; i < ncolours; i++) {
fe->colours[i].red = colours[i*3] * 0xFFFF; /*
fe->colours[i].green = colours[i*3+1] * 0xFFFF; * Just for Gareth: if you dislike any of the standard
fe->colours[i].blue = colours[i*3+2] * 0xFFFF; * colours, here's your chance to configure them in a
* really hacky way.
*/
char buf[80], *e;
unsigned int r, g, b;
sprintf(buf, "PUZZLE_COLOUR_%d", i);
if ((e = getenv(buf)) != NULL &&
sscanf(e, "%2x%2x%2x", &r, &g, &b) == 3) {
fe->colours[i].red = r * 0x101;
fe->colours[i].green = g * 0x101;
fe->colours[i].blue = b * 0x101;
} else {
fe->colours[i].red = colours[i*3] * 0xFFFF;
fe->colours[i].green = colours[i*3+1] * 0xFFFF;
fe->colours[i].blue = colours[i*3+2] * 0xFFFF;
}
} }
success = snewn(ncolours, gboolean); success = snewn(ncolours, gboolean);
gdk_colormap_alloc_colors(fe->colmap, fe->colours, ncolours, gdk_colormap_alloc_colors(fe->colmap, fe->colours, ncolours,