mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-20 23:51:29 -07:00
Make encode_ui() and decode_ui() optional in back-ends
The majority of back-ends define encode_ui() to return NULL and decode_ui() to do nothing. This commit allows them to instead specify the relevant function pointers as NULL, in which case the mid-end won't try to call them. I'm planning to add a parameter to decode_ui(), and if I'm going to have to touch every back-end's version of decode_ui(), I may as well ensure that most of them never need to be touched again. And obviously encode_ui() should go the same way for symmetry.
This commit is contained in:
4
midend.c
4
midend.c
@ -2204,7 +2204,7 @@ void midend_serialise(midend *me,
|
||||
/*
|
||||
* Any required serialisation of the game_ui.
|
||||
*/
|
||||
if (me->ui) {
|
||||
if (me->ui && me->ourgame->encode_ui) {
|
||||
char *s = me->ourgame->encode_ui(me->ui);
|
||||
if (s) {
|
||||
wr("UI", s);
|
||||
@ -2541,7 +2541,7 @@ static const char *midend_deserialise_internal(
|
||||
}
|
||||
|
||||
data.ui = me->ourgame->new_ui(data.states[0].state);
|
||||
if (data.uistr)
|
||||
if (data.uistr && me->ourgame->decode_ui)
|
||||
me->ourgame->decode_ui(data.ui, data.uistr);
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user