const game *ourgame;
game_params **presets;
- char **preset_names;
+ char **preset_names, **preset_encodings;
int npresets, presetsize;
/*
me->oldstate = NULL;
me->presets = NULL;
me->preset_names = NULL;
+ me->preset_encodings = NULL;
me->npresets = me->presetsize = 0;
me->anim_time = me->anim_pos = 0.0F;
me->flash_time = me->flash_pos = 0.0F;
for (i = 0; i < me->npresets; i++) {
sfree(me->presets[i]);
sfree(me->preset_names[i]);
+ sfree(me->preset_encodings[i]);
}
sfree(me->presets);
sfree(me->preset_names);
+ sfree(me->preset_encodings);
}
if (me->ui)
me->ourgame->free_ui(me->ui);
game_params *);
me->preset_names = sresize(me->preset_names, me->presetsize,
char *);
+ me->preset_encodings = sresize(me->preset_encodings,
+ me->presetsize, char *);
}
me->presets[me->npresets] = preset;
me->preset_names[me->npresets] = name;
+ me->preset_encodings[me->npresets] =
+ me->ourgame->encode_params(preset, TRUE);;
me->npresets++;
}
}
game_params *);
me->preset_names = sresize(me->preset_names,
me->presetsize, char *);
+ me->preset_encodings = sresize(me->preset_encodings,
+ me->presetsize, char *);
}
me->presets[me->npresets] = preset;
me->preset_names[me->npresets] = dupstr(name);
+ me->preset_encodings[me->npresets] =
+ me->ourgame->encode_params(preset, TRUE);
me->npresets++;
}
}
*params = me->presets[n];
}
+int midend_which_preset(midend *me)
+{
+ char *encoding = me->ourgame->encode_params(me->params, TRUE);
+ int i, ret;
+
+ ret = -1;
+ for (i = 0; i < me->npresets; i++)
+ if (!strcmp(encoding, me->preset_encodings[i])) {
+ ret = i;
+ break;
+ }
+
+ sfree(encoding);
+ return ret;
+}
+
int midend_wants_statusbar(midend *me)
{
return me->ourgame->wants_statusbar;