Introduce an environment variable setting (SLANT_SWAP_BUTTONS=yes)
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 6 Aug 2005 10:33:46 +0000 (10:33 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 6 Aug 2005 10:33:46 +0000 (10:33 +0000)
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.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@6168 cda61777-01e9-0310-a592-d414129be87e

slant.c

diff --git a/slant.c b/slant.c
index 2c9b5f4..38670e1 100644 (file)
--- a/slant.c
+++ b/slant.c
@@ -1402,6 +1402,29 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
         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)