break;
case 5:
- title_string(10, 1, 13, "played");
+ title_string(10, 3, 13, "played");
title_string(10, 14, 26, "score");
- title_string(10, 27, 39, "won");
+ title_string(10, 27, 37, "won");
break;
case 6:
sprintf(buffer, "%d", 0);
- title_string(11, 1, 13, buffer);
+ title_string(11, 3, 13, buffer);
sprintf(buffer, "%d", 0);
title_string(11, 14, 26, buffer);
sprintf(buffer, "%d", 0);
- title_string(11, 27, 39, buffer);
+ title_string(11, 27, 37, buffer);
break;
}
}
input_pause = 1 * 0;
}
-int game_play_init(int player_level)
+int game_play_init(int level_nr, char *filename)
{
- char name[MAXNAME+2];
+ if (filename != NULL)
+ {
+ player_level = level_nr;
- name[MAXNAME] = 0;
- snprintf(name, MAXNAME+2, "%s/lev%02d", EM_LVL_DIR, player_level);
+ if (cave_convert(filename) != 0)
+ return 1;
+ }
+ else /* !!! SOON OBSOLETE !!! */
+ {
+ char name[MAXNAME+2];
- if (name[MAXNAME])
- snprintf_overflow("read a level in cave/");
+ name[MAXNAME] = 0;
+ snprintf(name, MAXNAME+2, "%s/lev%02d", EM_LVL_DIR, player_level);
- if (cave_convert(name) != 0)
- return 1;
+ if (name[MAXNAME])
+ snprintf_overflow("read a level in cave/");
+
+ if (cave_convert(name) != 0)
+ return 1;
+ }
game_initscreen();
game_blitscore();
{
/* start playing */
- if (game_play_init(player_level) == 0)
- em_game_status = EM_GAME_STATUS_PLAY;
+ em_game_status = EM_GAME_STATUS_PLAY;
+ if (game_play_init(player_level, NULL) != 0)
+ em_game_status = EM_GAME_STATUS_MENU;
}
}
else if (em_game_status == EM_GAME_STATUS_PLAY)
{
/* stop playing */
- game_menu_init();
+ if (skip_menu)
+ return 1;
+
em_game_status = EM_GAME_STATUS_MENU;
+ game_menu_init();
}
}