X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/1f3ee4ee0f9443910671f5e57837fa5311000b21..ebf54ec914da3b5569fbd041c2af06321ab87d88:/puzzles.h diff --git a/puzzles.h b/puzzles.h index d41d964..c5eabc2 100644 --- a/puzzles.h +++ b/puzzles.h @@ -62,6 +62,10 @@ enum { /* 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 */ +#define SOLVE_ANIMATES ( 1 << 9 ) + #define IGNOREARG(x) ( (x) = (x) ) typedef struct frontend frontend; @@ -218,6 +222,17 @@ void obfuscate_bitmap(unsigned char *bmp, int bits, int decode); char *bin2hex(const unsigned char *in, int inlen); unsigned char *hex2bin(const char *in, int outlen); +/* Sets (and possibly dims) background from frontend default colour, + * and auto-generates highlight and lowlight colours too. */ +void game_mkhighlight(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); + +/* Draw a rectangle outline, using the frontend's draw_line. */ +void draw_rect_outline(frontend *fe, int x, int y, int w, int h, + int colour); /* * version.c @@ -265,7 +280,7 @@ struct game { int can_configure; config_item *(*configure)(game_params *params); game_params *(*custom_params)(config_item *cfg); - char *(*validate_params)(game_params *params); + char *(*validate_params)(game_params *params, int full); char *(*new_desc)(game_params *params, random_state *rs, char **aux, int interactive); char *(*validate_desc)(game_params *params, char *desc); @@ -301,7 +316,7 @@ struct game { game_ui *ui); int (*wants_statusbar)(void); int is_timed; - int (*timing_state)(game_state *state); + int (*timing_state)(game_state *state, game_ui *ui); int mouse_priorities; };