added random number initialization function for native BD engine
[rocksndiamonds.git] / src / game_bd / main_bd.c
index bd3b038239c244f5a039de01cdc02a478bb147be..fdc5cf0c0a6350f576ac309400ad14bb768536e7 100644 (file)
@@ -17,6 +17,39 @@ struct LevelInfo_BD native_bd_level;
 struct EngineSnapshotInfo_BD engine_snapshot_bd;
 
 
+// ============================================================================
+// initialization functions
+// ============================================================================
+
+void InitGfxBuffers_BD(void)
+{
+  ReCreateBitmap(&gd_screen_bitmap, SXSIZE, SYSIZE);
+
+  set_cell_size(TILESIZE_VAR);
+  set_play_area(SXSIZE, SYSIZE);
+}
+
+void bd_open_all(void)
+{
+  InitGraphicInfo_BD();
+
+  gd_cave_init();
+  gd_cave_db_init();
+
+  gd_c64_import_init_tables();
+
+  gd_caveset_clear();
+
+  gd_init_keystate();
+
+  gd_sound_init();
+}
+
+void bd_close_all(void)
+{
+}
+
+
 // ============================================================================
 // level file functions
 // ============================================================================
@@ -154,3 +187,16 @@ boolean checkGameRunning_BD(void)
 {
   return (game_bd.game != NULL && game_bd.game->state_counter == GAME_INT_CAVE_RUNNING);
 }
+
+unsigned int InitEngineRandom_BD(int seed)
+{
+  if (seed == NEW_RANDOMIZE)
+  {
+    // get randomly selected seed to render the cave
+    seed = g_random_int_range(0, GD_CAVE_SEED_MAX);
+  }
+
+  game_bd.random_seed = seed;
+
+  return (unsigned int)seed;
+}