rnd-20040918-1-src
[rocksndiamonds.git] / src / game_em / main.c
1 /* Emerald Mine
2  * 
3  * David Tritscher
4  * 
5  * v0.0 2000-01-06T06:43:39Z
6  *
7  * set everything up and close everything down
8  */
9
10 #include <stdlib.h>
11 #include <unistd.h>
12 #include <stdio.h>
13 #include <string.h>
14 #include <errno.h>
15
16 #include "global.h"
17
18
19 #if defined(TARGET_X11)
20
21 char *progname;
22 char *arg_basedir;
23 char *arg_display;
24 char *arg_geometry;
25 int arg_install;
26 int arg_silence;
27
28 extern void tab_generate();
29 extern void ulaw_generate();
30
31 extern void game_menu_init();
32
33 void em_open_all()
34 {
35   /* pre-calculate some data */
36   tab_generate();
37   ulaw_generate();
38
39   progname = "emerald mine";
40
41   if (open_all() != 0)
42     Error(ERR_EXIT, "em_open_all(): open_all() failed");
43
44   game_init_vars();
45 }
46
47 void em_close_all()
48 {
49   close_all();
50 }
51
52 /* massive kludge for buffer overflows
53  * i cant think of an elegant way to handle this situation.
54  * oh wait yes i can. dynamically allocate each string. oh well
55  */
56 void snprintf_overflow(char *description)
57 {
58   fprintf(stderr, "%s: %s\n", progname,
59           "buffer overflow; check EMERALD_BASE environment variable");
60   fprintf(stderr, "%s %s\n", "Fault occured while attempting to", description);
61
62   abort();
63 }
64
65 #else
66
67 int em_main()
68 {
69   /* temporary dummy until X11->SDL conversion finished */
70   return 0;
71 }
72
73 #endif