Now that we have string-encodable game parameters, let's support a

command-line argument which is either a set of parameters or a
params+seed game ID.

[originally from svn r4234]
This commit is contained in:
Simon Tatham
2004-05-20 08:22:49 +00:00
parent 350683b253
commit 61f08e7634
4 changed files with 95 additions and 33 deletions

20
gtk.c
View File

@ -762,7 +762,7 @@ static void add_menu_separator(GtkContainer *cont)
gtk_widget_show(menuitem);
}
static frontend *new_window(void)
static frontend *new_window(char *game_id, char **error)
{
frontend *fe;
GtkBox *vbox;
@ -774,6 +774,14 @@ static frontend *new_window(void)
time(&t);
fe->me = midend_new(fe, &t, sizeof(t));
if (game_id) {
*error = midend_game_id(fe->me, game_id, FALSE);
if (*error) {
midend_free(fe->me);
sfree(fe);
return NULL;
}
}
midend_new_game(fe->me);
fe->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
@ -944,8 +952,16 @@ static frontend *new_window(void)
int main(int argc, char **argv)
{
char *pname = argv[0];
char *error;
gtk_init(&argc, &argv);
(void) new_window();
if (!new_window(argc > 1 ? argv[1] : NULL, &error)) {
fprintf(stderr, "%s: %s\n", pname, error);
return 1;
}
gtk_main();
return 0;