rnd-20091211-1-src
[rocksndiamonds.git] / src / game_sp / init.c
index c1fbcc7bb222e9ecd9ad4d8ce9000784a4c25b50..b3a1acb802bfb6bc60057ebb25c70b1908976cfa 100644 (file)
@@ -7,16 +7,9 @@ Bitmap *sp_objects;
 
 Bitmap *screenBitmap;
 
-
-static void BlitScreenToBitmap_SP__Stage_Blt()
-{
-  BlitScreenToBitmap_SP(window);
-}
-
 static void init_struct_functions()
 {
-  Stage.Blt = &BlitScreenToBitmap_SP__Stage_Blt;
-
+  Stage.Blt           = &DDScrollBuffer_Blt;
   Stage.ScrollTo      = &DDScrollBuffer_ScrollTo;
   Stage.ScrollTowards = &DDScrollBuffer_ScrollTowards;
   Stage.SoftScrollTo  = &DDScrollBuffer_SoftScrollTo;
@@ -24,16 +17,35 @@ static void init_struct_functions()
   StretchedSprites.BltEx = &DDSpriteBuffer_BltEx;
 }
 
+static void init_global_values()
+{
+  menBorder.Checked = False;
+  menPanel.Checked = True;
+  menAutoScroll.Checked = True;
+
+  MainForm.picPane.Width  = picPane.Width  = SCR_FIELDX * TILEX;
+  MainForm.picPane.Height = picPane.Height = SCR_FIELDY * TILEY;
+}
+
 void sp_open_all()
 {
   init_struct_functions();
+  init_global_values();
 
   Form_Load();
 
   SetBitmaps_SP(&sp_objects);
 
+#if 0
+  /* too small for oversized levels, but too big for graphics performance */
+  /* (the whole playfield is drawn/updated, not only visible/scrolled area) */
+  /* !!! FIX THIS !!! */
+  screenBitmap = CreateBitmap(60 * TILEX, 24 * TILEY,
+                              DEFAULT_DEPTH);
+#else
   screenBitmap = CreateBitmap(MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY,
                               DEFAULT_DEPTH);
+#endif
 
   DDSpriteBuffer_CreateFromFile("[NONE]", 16, 16);
 }
@@ -41,3 +53,25 @@ void sp_open_all()
 void sp_close_all()
 {
 }
+
+unsigned int InitEngineRandom_SP(long seed)
+{
+  if (seed == NEW_RANDOMIZE)
+  {
+#if 0
+  printf("::: init.c: InitEngineRandom_SP(): subRandomize()\n");
+#endif
+
+    subRandomize();
+
+    seed = (long)RandomSeed;
+  }
+
+  RandomSeed = (short)seed;
+
+#if 0
+  printf("::: init.c: InitEngineRandom_SP(): RandomSeed == %d\n", RandomSeed);
+#endif
+
+  return (unsigned int) seed;
+}