mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-22 16:32:13 -07:00
First cut at a game timer. Yet another backend function which
indicates whether a particular game state should have the timer going (for Mines the initial indeterminate state does not have this property, and neither does a dead or won state); a midend function that optionally (on request from the game) prepends a timer to the front of the status bar text; some complicated midend timing code. It's not great. It's ugly; it's probably slightly inaccurate; it's got no provision for anyone but the game author decreeing whether a game is timed or not. But Mines can't be taken seriously without a timer, so it's a start. [originally from svn r5866]
This commit is contained in:
12
windows.c
12
windows.c
@ -118,6 +118,7 @@ struct frontend {
|
||||
HFONT cfgfont;
|
||||
char *help_path;
|
||||
int help_has_contents;
|
||||
char *laststatus;
|
||||
};
|
||||
|
||||
void fatal(char *fmt, ...)
|
||||
@ -144,7 +145,14 @@ void get_random_seed(void **randseed, int *randseedsize)
|
||||
|
||||
void status_bar(frontend *fe, char *text)
|
||||
{
|
||||
SetWindowText(fe->statusbar, text);
|
||||
char *rewritten = midend_rewrite_statusbar(fe->me, text);
|
||||
if (!fe->laststatus || strcmp(rewritten, fe->laststatus)) {
|
||||
SetWindowText(fe->statusbar, rewritten);
|
||||
sfree(fe->laststatus);
|
||||
fe->laststatus = rewritten;
|
||||
} else {
|
||||
sfree(rewritten);
|
||||
}
|
||||
}
|
||||
|
||||
void frontend_default_colour(frontend *fe, float *output)
|
||||
@ -437,6 +445,8 @@ static frontend *new_window(HINSTANCE inst, char *game_id, char **error)
|
||||
fe->fonts = NULL;
|
||||
fe->nfonts = fe->fontsize = 0;
|
||||
|
||||
fe->laststatus = NULL;
|
||||
|
||||
{
|
||||
int i, ncolours;
|
||||
float *colours;
|
||||
|
Reference in New Issue
Block a user