mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Add a function to every game backend which indicates whether a game
state is in a solved position, and a midend function wrapping it. (Or, at least, a situation in which further play is pointless. The point is, given that game state, would it be a good idea for a front end that does that sort of thing to proactively provide the option to start a fresh game?) [originally from svn r9140]
This commit is contained in:
15
midend.c
15
midend.c
@ -1336,6 +1336,21 @@ char *midend_solve(midend *me)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int midend_is_solved(midend *me)
|
||||
{
|
||||
/*
|
||||
* We should probably never be called when the state stack has no
|
||||
* states on it at all - ideally, midends should never be left in
|
||||
* that state for long enough to get put down and forgotten about.
|
||||
* But if we are, I think we return _true_ - pedantically speaking
|
||||
* a midend in that state is 'vacuously solved', and more
|
||||
* practically, a user whose midend has been left in that state
|
||||
* probably _does_ want the 'new game' option to be prominent.
|
||||
*/
|
||||
return (me->statepos == 0 ||
|
||||
me->ourgame->is_solved(me->states[me->statepos-1].state));
|
||||
}
|
||||
|
||||
char *midend_rewrite_statusbar(midend *me, char *text)
|
||||
{
|
||||
/*
|
||||
|
Reference in New Issue
Block a user