ref: 98a9f06a6704192c983f1d40100dd41714331bf2
parent: 8392232d57b4d1aba82b8005813d39854e8cf74e
author: Simon Tatham <anakin@pobox.com>
date: Sat Aug 6 06:33:46 EDT 2005
Introduce an environment variable setting (SLANT_SWAP_BUTTONS=yes) to reverse the effect of the mouse buttons. Gareth has been complaining about this for days: apparently he finds precisely the opposite control system intuitive to me. This is a horrendous hack, and pushes me one step closer to losing my temper and designing a proper preferences architecture. [originally from svn r6168]
--- a/slant.c
+++ b/slant.c
@@ -1402,6 +1402,29 @@
int v;
char buf[80];
+ /*
+ * This is an utterly awful hack which I should really sort out
+ * by means of a proper configuration mechanism. One Slant
+ * player has observed that they prefer the mouse buttons to
+ * function exactly the opposite way round, so here's a
+ * mechanism for environment-based configuration. I cache the
+ * result in a global variable - yuck! - to avoid repeated
+ * lookups.
+ */
+ {
+ static int swap_buttons = -1;
+ if (swap_buttons < 0) {
+ char *env = getenv("SLANT_SWAP_BUTTONS");
+ swap_buttons = (env && (env[0] == 'y' || env[0] == 'Y'));
+ }
+ if (swap_buttons) {
+ if (button == LEFT_BUTTON)
+ button = RIGHT_BUTTON;
+ else
+ button = LEFT_BUTTON;
+ }
+ }
+
x = FROMCOORD(x);
y = FROMCOORD(y);
if (x < 0 || y < 0 || x >= w || y >= h)