mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Refactored the game_size() interface, which was getting really
unpleasant and requiring lots of special cases to be taken care of by every single game. The new interface exposes an integer `tile size' or `scale' parameter to the midend and provides two much simpler routines: one which computes the pixel window size given a game_params and a tile size, and one which is given a tile size and must set up a drawstate appropriately. All the rest of the complexity is handled in the midend, mostly by binary search, so grubby special cases only have to be dealt with once. [originally from svn r6059]
This commit is contained in:
@ -286,8 +286,9 @@ struct game {
|
||||
char *(*interpret_move)(game_state *state, game_ui *ui, game_drawstate *ds,
|
||||
int x, int y, int button);
|
||||
game_state *(*execute_move)(game_state *state, char *move);
|
||||
void (*size)(game_params *params, game_drawstate *ds, int *x, int *y,
|
||||
int expand);
|
||||
int preferred_tilesize;
|
||||
void (*compute_size)(game_params *params, int tilesize, int *x, int *y);
|
||||
void (*set_size)(game_drawstate *ds, game_params *params, int tilesize);
|
||||
float *(*colours)(frontend *fe, game_state *state, int *ncolours);
|
||||
game_drawstate *(*new_drawstate)(game_state *state);
|
||||
void (*free_drawstate)(game_drawstate *ds);
|
||||
|
Reference in New Issue
Block a user