cleanup of EM engine initialization
[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
9 Bitmap *screenBitmap;
10
11 struct GlobalInfo_EM global_em_info;
12 struct GameInfo_EM game_em;
13
14 void InitGfxBuffers_EM(void)
15 {
16   ReCreateBitmap(&screenBitmap, MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY);
17
18   global_em_info.screenbuffer = screenBitmap;
19 }
20
21 void em_open_all(void)
22 {
23   /* pre-calculate some data */
24   tab_generate();
25
26   /* initialize graphics */
27   InitGraphicInfo_EM();
28
29   game_init_random();
30   game_init_cave_buffers();
31 }
32
33 void em_close_all(void)
34 {
35 }
36
37 /* ---------------------------------------------------------------------- */
38
39 extern int screen_x;
40 extern int screen_y;
41
42 void play_element_sound(int x, int y, int sample, int element)
43 {
44   PlayLevelSound_EM(x, y, element, sample);
45 }
46
47 void play_sound(int x, int y, int sample)
48 {
49   play_element_sound(x, y, sample, -1);
50 }
51
52 unsigned int InitEngineRandom_EM(int seed)
53 {
54   if (seed == NEW_RANDOMIZE)
55   {
56     int simple_rnd = GetSimpleRandom(1000);
57     int i;
58
59     for (i = 0; i < simple_rnd || RandomEM == NEW_RANDOMIZE; i++)
60       RandomEM = RandomEM * 129 + 1;
61
62     seed = RandomEM;
63   }
64
65   RandomEM = seed;
66
67   return (unsigned int) seed;
68 }