mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 16:05:44 -07:00
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:
21
gtk.c
21
gtk.c
@ -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,
|
||||||
|
Reference in New Issue
Block a user