int arg_install;
int arg_silence;
+int em_game_status;
+boolean skip_menu = TRUE;
+
extern void tab_generate();
extern void ulaw_generate();
+extern void game_menu_init();
+
void em_open_all()
{
/* pre-calculate some data */
if (open_all() != 0)
Error(ERR_EXIT, "em_open_all(): open_all() failed");
+
+ game_init_vars();
}
void em_close_all()
close_all();
}
-void em_main()
+int em_main_init_game(int level_nr)
{
-#if 0
- em_open_all();
-#endif
+ if (skip_menu)
+ {
+ em_game_status = EM_GAME_STATUS_PLAY;
+ if (game_play_init(level_nr) != 0)
+ return 1;
+ }
+ else
+ {
+ em_game_status = EM_GAME_STATUS_MENU;
+ game_menu_init();
+ }
- if (game_start() != 0)
- Error(ERR_EXIT, "em_main(): game_start() failed");
+ return 0;
+}
-#if 0
- em_close_all();
-#endif
+int em_main_handle_game(byte action)
+{
+ return game_loop(action);
}
/* massive kludge for buffer overflows