aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2005-09-04 12:40:23 +0000
committerSimon Tatham <anakin@pobox.com>2005-09-04 12:40:23 +0000
commitdd7c1c983c980edab8af7e626fdbea48e04ff852 (patch)
treefc706c6dd766478330b228bdfb28510eed2b2098
parent6ee8a4d71e9f4187bf8fd2b47a966d245172d2cc (diff)
downloadpuzzles-dd7c1c983c980edab8af7e626fdbea48e04ff852.zip
puzzles-dd7c1c983c980edab8af7e626fdbea48e04ff852.tar.gz
puzzles-dd7c1c983c980edab8af7e626fdbea48e04ff852.tar.bz2
puzzles-dd7c1c983c980edab8af7e626fdbea48e04ff852.tar.xz
Another global environment-variable override across all games. This
one is <game>_TILESIZE, adjusting the game's default size. I anticipate that this will probably _mostly_ be useful for debugging. [originally from svn r6269]
-rw-r--r--midend.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/midend.c b/midend.c
index 1be8ca9..6d639eb 100644
--- a/midend.c
+++ b/midend.c
@@ -80,7 +80,7 @@ struct midend {
int pressed_mouse_button;
- int tilesize, winwidth, winheight;
+ int preferred_tilesize, tilesize, winwidth, winheight;
};
#define ensure(me) do { \
@@ -130,6 +130,26 @@ midend *midend_new(frontend *fe, const game *ourgame,
else
me->drawing = NULL;
+ me->preferred_tilesize = ourgame->preferred_tilesize;
+ {
+ /*
+ * Allow an environment-based override for the default tile
+ * size by defining a variable along the lines of
+ * `NET_TILESIZE=15'.
+ */
+
+ char buf[80], *e;
+ int j, k, ts;
+
+ sprintf(buf, "%s_TILESIZE", me->ourgame->name);
+ for (j = k = 0; buf[j]; j++)
+ if (!isspace((unsigned char)buf[j]))
+ buf[k++] = toupper((unsigned char)buf[j]);
+ buf[k] = '\0';
+ if ((e = getenv(buf)) != NULL && sscanf(e, "%d", &ts) == 1 && ts > 0)
+ me->preferred_tilesize = ts;
+ }
+
sfree(randseed);
return me;
@@ -210,7 +230,7 @@ void midend_size(midend *me, int *x, int *y, int expand)
me->ourgame->compute_size(me->params, max, &rx, &ry);
} while (rx <= *x && ry <= *y);
} else
- max = me->ourgame->preferred_tilesize + 1;
+ max = me->preferred_tilesize + 1;
min = 1;
/*