- game_state *s =
- me->ourgame->make_move(me->states[me->statepos-1].state,
- me->ui, me->drawstate, x, y, button);
+ game_state *s;
+ char *movestr;
+
+ movestr =
+ me->ourgame->interpret_move(me->states[me->statepos-1].state,
+ me->ui, me->drawstate, x, y, button);
+ if (!movestr)
+ s = NULL;
+ else if (!*movestr)
+ s = me->states[me->statepos-1].state;
+ else {
+ s = me->ourgame->execute_move(me->states[me->statepos-1].state,
+ movestr);
+ assert(s != NULL);
+ sfree(movestr);
+ }