me->frontend = fe;
me->ourgame = ourgame;
- me->random = random_init(randseed, randseedsize);
+ me->random = random_new(randseed, randseedsize);
me->nstates = me->statesize = me->statepos = 0;
me->states = NULL;
me->params = ourgame->default_params();
me->elapsed = 0.0F;
me->tilesize = me->winwidth = me->winheight = 0;
if (drapi)
- me->drawing = drawing_init(drapi, drhandle);
+ me->drawing = drawing_new(drapi, me, drhandle);
else
me->drawing = NULL;
sfree(me->aux_info);
me->aux_info = NULL;
- rs = random_init(me->seedstr, strlen(me->seedstr));
+ rs = random_new(me->seedstr, strlen(me->seedstr));
/*
* If this midend has been instantiated without providing a
* drawing API, it is non-interactive. This means that it's
* See if this move requires an animation.
*/
if (special(type) && !(type == SOLVE &&
- (me->ourgame->mouse_priorities & SOLVE_ANIMATES))) {
+ (me->ourgame->flags & SOLVE_ANIMATES))) {
anim_time = 0;
} else {
anim_time = me->ourgame->anim_length(oldstate,
* If the new button has lower priority than the old one,
* don't bother doing this.
*/
- if (me->ourgame->mouse_priorities &
+ if (me->ourgame->flags &
BUTTON_BEATS(me->pressed_mouse_button, button))
return ret; /* just ignore it */
float *midend_colours(midend *me, int *ncolours)
{
- game_state *state = NULL;
float *ret;
- if (me->nstates == 0) {
- char *aux = NULL;
- char *desc = me->ourgame->new_desc(me->params, me->random,
- &aux, TRUE);
- state = me->ourgame->new_game(me, me->params, desc);
- sfree(desc);
- sfree(aux);
- } else
- state = me->states[0].state;
-
- ret = me->ourgame->colours(me->frontend, state, ncolours);
+ ret = me->ourgame->colours(me->frontend, ncolours);
{
int i;
}
}
- if (me->nstates == 0)
- me->ourgame->free_game(state);
-
return ret;
}
int midend_wants_statusbar(midend *me)
{
- return me->ourgame->wants_statusbar();
+ return me->ourgame->wants_statusbar;
}
void midend_supersede_game_desc(midend *me, char *desc, char *privdesc)
me->states[me->statepos-2].state,
me->states[me->statepos-1].state);
me->dir = +1;
- if (me->ourgame->mouse_priorities & SOLVE_ANIMATES) {
+ if (me->ourgame->flags & SOLVE_ANIMATES) {
me->oldstate = me->ourgame->dup_game(me->states[me->statepos-2].state);
me->anim_time =
me->ourgame->anim_length(me->states[me->statepos-2].state,