chiark
/
gitweb
/
~ian
/
sgt-puzzles.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Patch from Lee Dowling to implement mouse control in Sokoban, along
[sgt-puzzles.git]
/
unfinished
/
sokoban.c
diff --git
a/unfinished/sokoban.c
b/unfinished/sokoban.c
index 91f02a6503ed13a1a3f33dcd40fe623cb9abc396..c9cf2dea35c9fb19bc98c91d6709e4396ca30886 100644
(file)
--- a/
unfinished/sokoban.c
+++ b/
unfinished/sokoban.c
@@
-1044,7
+1044,7
@@
int move_type(game_state *state, int dx, int dy)
static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
int x, int y, int button)
{
static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
int x, int y, int button)
{
- int dx
, dy
;
+ int dx
=0, dy=0
;
char *move;
/*
char *move;
/*
@@
-1071,9
+1071,23
@@
static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
dx = -1, dy = +1;
else if (button == (MOD_NUM_KEYPAD | '3'))
dx = +1, dy = +1;
dx = -1, dy = +1;
else if (button == (MOD_NUM_KEYPAD | '3'))
dx = +1, dy = +1;
+ else if (button == LEFT_BUTTON)
+ {
+ if(x < COORD(state->px))
+ dx = -1;
+ else if (x > COORD(state->px + 1))
+ dx = 1;
+ if(y < COORD(state->py))
+ dy = -1;
+ else if (y > COORD(state->py + 1))
+ dy = 1;
+ }
else
return NULL;
else
return NULL;
+ if((dx == 0) && (dy == 0))
+ return(NULL);
+
if (move_type(state, dx, dy) < 0)
return NULL;
if (move_type(state, dx, dy) < 0)
return NULL;