rnd-20041127-1-src
[rocksndiamonds.git] / src / game_em / init.c
index 679993a6c24dfede2368fc82626bca38e6220f9c..9a3dadb8ebe962e9b65529cc5cf6460f656a5400 100644 (file)
@@ -6,11 +6,12 @@
 #include <signal.h>
 #include <sys/wait.h>
 
-#include "game_em.h"
+#include "main_em.h"
 
 #include "global.h"
 #include "display.h"
 #include "sample.h"
+#include "level.h"
 
 
 Bitmap *objBitmap;
@@ -121,6 +122,7 @@ char *progname;
 char *arg_basedir;
 
 extern void tab_generate();
+extern void tab_generate_graphics_info_em();
 extern void ulaw_generate();
 
 int open_all(void)
@@ -243,6 +245,9 @@ void em_open_all()
   if (open_all() != 0)
     Error(ERR_EXIT, "em_open_all(): open_all() failed");
 
+  /* after "open_all()", because we need the graphic bitmaps to be defined */
+  tab_generate_graphics_info_em();
+
   game_init_vars();
 }
 
@@ -350,3 +355,21 @@ void sound_play(void)
 
   memset(play, 0, sizeof(play));
 }
+
+unsigned int InitEngineRND_EM(long seed)
+{
+  if (seed == NEW_RANDOMIZE)
+  {
+    int simple_rnd = SimpleRND(1000);
+    int i;
+
+    for (i = 0; i < simple_rnd || Random == NEW_RANDOMIZE; i++)
+      Random = Random * 129 + 1;
+
+    seed = Random;
+  }
+
+  Random = seed;
+
+  return (unsigned int) seed;
+}