From 68bf62062794d7ca8b4387956495b05d446449dc Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 6 Aug 2005 10:33:46 +0000 Subject: [PATCH] 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. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@6168 cda61777-01e9-0310-a592-d414129be87e --- slant.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/slant.c b/slant.c index 2c9b5f4..38670e1 100644 --- 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) -- 2.11.0