FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
/* vim: set shiftwidth=4 tabstop=8: */
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
/* vim: set shiftwidth=4 tabstop=8: */
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
the mid-end will handle them internally and never consult this
function at all. State changes as a result of Solve operations are
also not animated by default, although you can change this for a
-particular game by setting a flag in \c{mouse_priorities}
-(\k{backend-mouse-priorities}).
+particular game by setting a flag in \c{flags} (\k{backend-flags}).
The function is also passed a pointer to the local \c{game_ui}. It
may refer to information in here to help with its decision (see
freeze the timer thereafter so that the user can undo back through
their solution process without altering their time.
-\S{backend-mouse-priorities} \c{mouse_priorities}
+\S{backend-flags} \c{flags}
-\c int mouse_priorities;
+\c int flags;
-This field is badly named. It is in fact a generic flags word. It
-consists of the bitwise OR of the following flags:
+This field contains miscellaneous per-backend flags. It consists of
+the bitwise OR of some combination of the following:
\dt \cw{BUTTON_BEATS(x,y)}
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
/* vim: set shiftwidth=4 tabstop=8: */
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
#ifdef STANDALONE_SOLVER
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
TRUE, TRUE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
#ifdef STANDALONE_SOLVER
* See if this move requires an animation.
*/
if (special(type) && !(type == SOLVE &&
- (me->ourgame->mouse_priorities & SOLVE_ANIMATES))) {
+ (me->ourgame->flags & SOLVE_ANIMATES))) {
anim_time = 0;
} else {
anim_time = me->ourgame->anim_length(oldstate,
* If the new button has lower priority than the old one,
* don't bother doing this.
*/
- if (me->ourgame->mouse_priorities &
+ if (me->ourgame->flags &
BUTTON_BEATS(me->pressed_mouse_button, button))
return ret; /* just ignore it */
me->states[me->statepos-2].state,
me->states[me->statepos-1].state);
me->dir = +1;
- if (me->ourgame->mouse_priorities & SOLVE_ANIMATES) {
+ if (me->ourgame->flags & SOLVE_ANIMATES) {
me->oldstate = me->ourgame->dup_game(me->states[me->statepos-2].state);
me->anim_time =
me->ourgame->anim_length(me->states[me->statepos-2].state,
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
#ifdef STANDALONE_SOLVER
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
#define IS_MOUSE_RELEASE(m) ( (unsigned)((m) - LEFT_RELEASE) <= \
(unsigned)(RIGHT_RELEASE - LEFT_RELEASE))
+/*
+ * Flags in the back end's `flags' word.
+ */
/* Bit flags indicating mouse button priorities */
#define BUTTON_BEATS(x,y) ( 1 << (((x)-LEFT_BUTTON)*3+(y)-LEFT_BUTTON) )
-
-/* Another random flag that goes in the mouse priorities section for want
- * of a better place to put it */
+/* Flag indicating that Solve operations should be animated */
#define SOLVE_ANIMATES ( 1 << 9 )
+/* end of `flags' word definitions */
#define IGNOREARG(x) ( (x) = (x) )
int (*wants_statusbar)(void);
int is_timed;
int (*timing_state)(game_state *state, game_ui *ui);
- int mouse_priorities;
+ int flags;
};
/*
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
#ifdef STANDALONE_SOLVER
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
#ifdef STANDALONE_SOLVER
TRUE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
#ifdef STANDALONE_SOLVER
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- 0, /* mouse_priorities */
+ 0, /* flags */
};
FALSE, FALSE, game_print_size, game_print,
game_wants_statusbar,
FALSE, game_timing_state,
- SOLVE_ANIMATES, /* mouse_priorities */
+ SOLVE_ANIMATES, /* flags */
};