New rule: interpret_move() is passed a pointer to the game_drawstate

basically just so that it can divide mouse coordinates by the tile
size, but is definitely not expected to _write_ to it, and it hadn't
previously occurred to me that anyone might try. Therefore,
interpret_move() now gets a pointer to a _const_ game_drawstate
instead of a writable one.

All existing puzzles cope fine with this API change (as long as the
new const qualifier is also added to a couple of subfunctions to which
interpret_move delegates work), except for the just-committed Undead,
which somehow had ds->ascii and ui->ascii the wrong way round but is
otherwise unproblematic.

[originally from svn r9657]
This commit is contained in:
Simon Tatham
2012-09-09 18:40:12 +00:00
parent 55748a60cb
commit 3b250baa02
38 changed files with 59 additions and 49 deletions

2
net.c
View File

@ -1922,7 +1922,7 @@ struct game_drawstate {
* Process a move.
*/
static char *interpret_move(game_state *state, game_ui *ui,
game_drawstate *ds, int x, int y, int button)
const game_drawstate *ds, int x, int y, int button)
{
char *nullret;
int tx = -1, ty = -1, dir = 0;