changed getting global border from game status to more generic approach
[rocksndiamonds.git] / src / game_em / init.c
1 /* 2000-08-10T18:03:54Z
2  *
3  * open X11 display and sound
4  */
5
6 #include "main_em.h"
7
8 #include <signal.h>
9
10
11 Bitmap *objBitmap;
12 Bitmap *sprBitmap;
13
14 Bitmap *screenBitmap;
15
16 char play[SAMPLE_MAX];
17 int play_x[SAMPLE_MAX];
18 int play_y[SAMPLE_MAX];
19 int play_element[SAMPLE_MAX];
20
21 struct GlobalInfo_EM global_em_info;
22 struct GameInfo_EM game_em;
23
24 char *progname;
25 char *arg_basedir;
26
27 extern void tab_generate();
28 extern void tab_generate_graphics_info_em();
29
30 int open_all(void)
31 {
32   Bitmap *emc_bitmaps[2];
33
34   SetBitmaps_EM(emc_bitmaps);
35
36   objBitmap = emc_bitmaps[0];
37   sprBitmap = emc_bitmaps[1];
38
39   return 0;
40 }
41
42 void InitGfxBuffers_EM()
43 {
44   ReCreateBitmap(&screenBitmap, MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY,
45                  DEFAULT_DEPTH);
46
47   global_em_info.screenbuffer = screenBitmap;
48 }
49
50 void em_open_all()
51 {
52   /* pre-calculate some data */
53   tab_generate();
54
55   progname = "emerald mine";
56
57   if (open_all() != 0)
58     Error(ERR_EXIT, "em_open_all(): open_all() failed");
59
60   /* after "open_all()", because we need the graphic bitmaps to be defined */
61   tab_generate_graphics_info_em();
62
63   game_init_vars();
64 }
65
66 void em_close_all(void)
67 {
68 }
69
70 /* ---------------------------------------------------------------------- */
71
72 extern int screen_x;
73 extern int screen_y;
74
75 void play_element_sound(int x, int y, int sample, int element)
76 {
77   PlayLevelSound_EM(x, y, element, sample);
78 }
79
80 void play_sound(int x, int y, int sample)
81 {
82   play_element_sound(x, y, sample, -1);
83 }
84
85 void sound_play(void)
86 {
87 }
88
89 unsigned int InitEngineRandom_EM(int seed)
90 {
91   if (seed == NEW_RANDOMIZE)
92   {
93     int simple_rnd = GetSimpleRandom(1000);
94     int i;
95
96     for (i = 0; i < simple_rnd || RandomEM == NEW_RANDOMIZE; i++)
97       RandomEM = RandomEM * 129 + 1;
98
99     seed = RandomEM;
100   }
101
102   RandomEM = seed;
103
104   return (unsigned int) seed;
105 }