5 * v0.0 2000-01-06T06:43:39Z
7 * set everything up and close everything down
25 extern void tab_generate();
26 extern void ulaw_generate();
28 int em_main(int argc, char **argv)
34 /* pre-calculate some data */
38 progname = strrchr(argv[0], '/'); progname = progname ? progname + 1 : argv[0];
40 while((option = getopt(argc, argv, "b:d:g:in")) != -1) {
42 case 'b': arg_basedir = optarg; break;
43 case 'd': arg_display = optarg; break;
44 case 'g': arg_geometry = optarg; break;
45 case 'i': arg_install = 1; break;
46 case 'n': arg_silence = 1; break;
48 printf("Emerald Mine for X11 © 2000,2001 David Tritscher\n\n");
49 printf("usage: %s [options]\n", progname);
50 printf("\t-b set base directory\n");
51 printf("\t-d server to contact\n");
52 printf("\t-g geometry\n");
53 printf("\t-i install colourmap\n");
54 printf("\t-n no sounds\n");
55 exit(option == 'h' ? 0 : 1);
58 if(arg_basedir == 0) arg_basedir = getenv("EMERALD_BASE");
60 result = open_all(); if(result) goto fail;
61 result = game_start(); if(result) goto fail;
68 /* massive kludge for buffer overflows
69 * i cant think of an elegant way to handle this situation.
70 * oh wait yes i can. dynamically allocate each string. oh well
72 void snprintf_overflow(char *description)
74 fprintf(stderr, "%s: %s\n", progname, "buffer overflow; check EMERALD_BASE environment variable");
75 fprintf(stderr, "%s %s\n", "Fault occured while attempting to", description);