Fix outdated comment
[sgt/puzzles] / gtk.c
diff --git a/gtk.c b/gtk.c
index 8c6a634..d721320 100644 (file)
--- a/gtk.c
+++ b/gtk.c
@@ -913,6 +913,17 @@ static void menu_copy_event(GtkMenuItem *menuitem, gpointer data)
     }
 }
 
+static void menu_solve_event(GtkMenuItem *menuitem, gpointer data)
+{
+    frontend *fe = (frontend *)data;
+    char *msg;
+
+    msg = midend_solve(fe->me);
+
+    if (msg)
+       error_box(fe->window, msg);
+}
+
 static void menu_config_event(GtkMenuItem *menuitem, gpointer data)
 {
     frontend *fe = (frontend *)data;
@@ -1050,6 +1061,14 @@ static frontend *new_window(char *game_id, char **error)
                           GTK_SIGNAL_FUNC(menu_copy_event), fe);
        gtk_widget_show(menuitem);
     }
+    if (thegame.can_solve) {
+       add_menu_separator(GTK_CONTAINER(menu));
+       menuitem = gtk_menu_item_new_with_label("Solve");
+       gtk_container_add(GTK_CONTAINER(menu), menuitem);
+       gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
+                          GTK_SIGNAL_FUNC(menu_solve_event), fe);
+       gtk_widget_show(menuitem);
+    }
     add_menu_separator(GTK_CONTAINER(menu));
     add_menu_item_with_key(fe, GTK_CONTAINER(menu), "Exit", 'q');
 
@@ -1203,9 +1222,12 @@ int main(int argc, char **argv)
        parstr = thegame.encode_params(par);
 
        while (n-- > 0) {
-           char *seed = thegame.new_seed(par, rs);
+           game_aux_info *aux = NULL;
+           char *seed = thegame.new_seed(par, rs, &aux);
            printf("%s:%s\n", parstr, seed);
            sfree(seed);
+           if (aux)
+               thegame.free_aux_info(aux);
        }
 
        return 0;