X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/afc306fc5098945e25027fd6bce572d44a8a139f..b83e4849db985a582f5f0cfe4a0e78218a1c594a:/puzzles.h diff --git a/puzzles.h b/puzzles.h index 129ddd1..9b69d1b 100644 --- a/puzzles.h +++ b/puzzles.h @@ -67,8 +67,20 @@ enum { #define BUTTON_BEATS(x,y) ( 1 << (((x)-LEFT_BUTTON)*3+(y)-LEFT_BUTTON) ) /* Flag indicating that Solve operations should be animated */ #define SOLVE_ANIMATES ( 1 << 9 ) +/* Pocket PC: Game requires right mouse button emulation */ +#define REQUIRE_RBUTTON ( 1 << 10 ) +/* Pocket PC: Game requires numeric input */ +#define REQUIRE_NUMPAD ( 1 << 11 ) /* end of `flags' word definitions */ +#ifdef _WIN32_WCE + /* Pocket PC devices have small, portrait screen that requires more vivid colours */ + #define SMALL_SCREEN + #define PORTRAIT_SCREEN + #define VIVID_COLOURS + #define STYLUS_BASED +#endif + #define IGNOREARG(x) ( (x) = (x) ) typedef struct frontend frontend; @@ -207,7 +219,7 @@ midend *midend_new(frontend *fe, const game *ourgame, void midend_free(midend *me); void midend_set_params(midend *me, game_params *params); game_params *midend_get_params(midend *me); -void midend_size(midend *me, int *x, int *y, int expand); +void midend_size(midend *me, int *x, int *y, int user_size); void midend_new_game(midend *me); void midend_restart_game(midend *me); void midend_stop_anim(midend *me); @@ -268,6 +280,10 @@ unsigned char *hex2bin(const char *in, int outlen); * and auto-generates highlight and lowlight colours too. */ void game_mkhighlight(frontend *fe, float *ret, int background, int highlight, int lowlight); +/* As above, but starts from a provided background colour rather + * than the frontend default. */ +void game_mkhighlight_specific(frontend *fe, float *ret, + int background, int highlight, int lowlight); /* Randomly shuffles an array of items. */ void shuffle(void *array, int nelts, int eltsize, random_state *rs); @@ -288,6 +304,7 @@ void print_dsf(int *dsf, int size); * indicating whether the canonical element is inverse to val. */ int edsf_canonify(int *dsf, int val, int *inverse); int dsf_canonify(int *dsf, int val); +int dsf_size(int *dsf, int val); /* Allow the caller to specify that two elements should be in the same * equivalence class. If 'inverse' is TRUE, the elements are actually opposite