+static char *encode_ui(game_ui *ui)
+{
+ char buf[80];
+ /*
+ * The deaths counter and completion status need preserving
+ * across a serialisation.
+ */
+ sprintf(buf, "D%d", ui->deaths);
+ if (ui->completed)
+ strcat(buf, "C");
+ return dupstr(buf);
+}
+
+static void decode_ui(game_ui *ui, char *encoding)
+{
+ int p;
+ sscanf(encoding, "D%d%n", &ui->deaths, &p);
+ if (encoding[p] == 'C')
+ ui->completed = TRUE;
+}
+