X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fmain.c;h=a477d1035c583fefaa526af624fe48a7ff1e1b62;hb=095207353ef58a65f5146e6ddc7eefb51bfe0f55;hp=dc29189eb85deb8e4f08e81b12de039189570564;hpb=2b65ec99f743dde3ee41083cf89623d4d9b8740e;p=rocksndiamonds.git diff --git a/src/game_em/main.c b/src/game_em/main.c index dc29189e..a477d103 100644 --- a/src/game_em/main.c +++ b/src/game_em/main.c @@ -28,68 +28,35 @@ int arg_silence; extern void tab_generate(); extern void ulaw_generate(); -int em_main_OLD(int argc, char **argv) +void em_open_all() { - int result; - int option; - extern char *optarg; - - /* pre-calculate some data */ - tab_generate(); - ulaw_generate(); - - progname = strrchr(argv[0], '/'); progname = progname ? progname + 1 : argv[0]; - - while((option = getopt(argc, argv, "b:d:g:in")) != -1) { - switch(option) { - case 'b': arg_basedir = optarg; break; - case 'd': arg_display = optarg; break; - case 'g': arg_geometry = optarg; break; - case 'i': arg_install = 1; break; - case 'n': arg_silence = 1; break; - default: - printf("Emerald Mine for X11 © 2000,2001 David Tritscher\n\n"); - printf("usage: %s [options]\n", progname); - printf("\t-b set base directory\n"); - printf("\t-d server to contact\n"); - printf("\t-g geometry\n"); - printf("\t-i install colourmap\n"); - printf("\t-n no sounds\n"); - exit(option == 'h' ? 0 : 1); - } - } - if(arg_basedir == 0) arg_basedir = getenv("EMERALD_BASE"); - - result = open_all(); if(result) goto fail; - result = game_start(); if(result) goto fail; - result = 0; -fail: - close_all(); - return(result); -} + /* pre-calculate some data */ + tab_generate(); + ulaw_generate(); -int em_main() -{ - int result; + progname = "emerald mine"; - /* pre-calculate some data */ - tab_generate(); - ulaw_generate(); + if (open_all() != 0) + Error(ERR_EXIT, "em_open_all(): open_all() failed"); +} - progname = "emerald mine"; +void em_close_all() +{ + close_all(); +} - result = open_all(); - if(result) - goto fail; +void em_main() +{ +#if 0 + em_open_all(); +#endif - result = game_start(); - if(result) - goto fail; + if (game_start() != 0) + Error(ERR_EXIT, "em_main(): game_start() failed"); - result = 0; -fail: - close_all(); - return(result); +#if 0 + em_close_all(); +#endif } /* massive kludge for buffer overflows @@ -98,9 +65,11 @@ fail: */ void snprintf_overflow(char *description) { - fprintf(stderr, "%s: %s\n", progname, "buffer overflow; check EMERALD_BASE environment variable"); - fprintf(stderr, "%s %s\n", "Fault occured while attempting to", description); - abort(); + fprintf(stderr, "%s: %s\n", progname, + "buffer overflow; check EMERALD_BASE environment variable"); + fprintf(stderr, "%s %s\n", "Fault occured while attempting to", description); + + abort(); } #else