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;
+
+ if (cave_convert(filename) != 0)
+ return 1;
+ }
+ else /* !!! SOON OBSOLETE !!! */
+ {
+ char name[MAXNAME+2];
- name[MAXNAME] = 0;
- snprintf(name, MAXNAME+2, "%s/lev%02d", EM_LVL_DIR, player_level);
+ name[MAXNAME] = 0;
+ snprintf(name, MAXNAME+2, "%s/lev%02d", EM_LVL_DIR, player_level);
- if (name[MAXNAME])
- snprintf_overflow("read a level in cave/");
+ if (name[MAXNAME])
+ snprintf_overflow("read a level in cave/");
- if (cave_convert(name) != 0)
- return 1;
+ if (cave_convert(name) != 0)
+ return 1;
+ }
game_initscreen();
game_blitscore();
/* start playing */
em_game_status = EM_GAME_STATUS_PLAY;
- if (game_play_init(player_level) != 0)
+ if (game_play_init(player_level, NULL) != 0)
em_game_status = EM_GAME_STATUS_MENU;
}
}