moved level set info structure to game library layer
[rocksndiamonds.git] / src / libgame / system.c
index 33246588592ebf6dab8b5da904fb314f9bd97492..7321731c75110895a24c6c0380a5036cdf338ee2 100644 (file)
@@ -29,6 +29,7 @@
 /* ========================================================================= */
 
 struct ProgramInfo     program;
+struct NetworkInfo     network;
 struct OptionInfo      options;
 struct VideoSystemInfo video;
 struct AudioSystemInfo audio;
@@ -44,6 +45,7 @@ LevelDirTree         *leveldir_first = NULL;
 LevelDirTree          *leveldir_current = NULL;
 int                    level_nr;
 
+struct LevelSetInfo    levelset;
 struct LevelStats      level_stats[MAX_LEVELS];
 
 DrawWindow            *window = NULL;
@@ -103,6 +105,17 @@ void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir,
   program.headless = FALSE;
 }
 
+void InitNetworkInfo(boolean enabled, boolean connected, boolean serveronly,
+                    char *server_host, int server_port)
+{
+  network.enabled = enabled;
+  network.connected = connected;
+  network.serveronly = serveronly;
+
+  network.server_host = server_host;
+  network.server_port = server_port;
+}
+
 void InitScoresInfo()
 {
   char *global_scores_dir = getPath2(getCommonDataDir(), SCORES_DIRECTORY);
@@ -110,6 +123,7 @@ void InitScoresInfo()
   program.global_scores = directoryExists(global_scores_dir);
   program.many_scores_per_name = !program.global_scores;
 
+#if 0
   if (options.debug)
   {
     if (program.global_scores)
@@ -124,6 +138,7 @@ void InitScoresInfo()
       Error(ERR_DEBUG, "Using private, single-user scores directory.");
     }
   }
+#endif
 
   free(global_scores_dir);
 }
@@ -325,51 +340,25 @@ void InitTileCursorInfo()
 
 void InitOverlayInfo()
 {
-  static char *default_grid_button[6][2] =
-  {
-    { "      ",        "  ^^  " },
-    { "      ",        "  ^^  " },
-    { "      ",        "<<  >>" },
-    { "      ",        "<<  >>" },
-    { "111222",        "  vv  " },
-    { "111222",        "  vv  " }
-  };
-  int min_xsize, min_ysize;
-  int startx, starty;
+  int nr = GRID_ACTIVE_NR();
   int x, y;
 
-  min_xsize = MIN(6, DEFAULT_GRID_XSIZE);
-  min_ysize = MIN(6, DEFAULT_GRID_YSIZE);
-
-  startx = DEFAULT_GRID_XSIZE - min_xsize;
-  starty = DEFAULT_GRID_YSIZE - min_ysize;
-
   overlay.enabled = FALSE;
   overlay.active = FALSE;
 
   overlay.show_grid = FALSE;
-  overlay.show_grid_buttons = FALSE;
 
-  overlay.grid_xsize = DEFAULT_GRID_XSIZE;
-  overlay.grid_ysize = DEFAULT_GRID_YSIZE;
+  overlay.grid_xsize = setup.touch.grid_xsize[nr];
+  overlay.grid_ysize = setup.touch.grid_ysize[nr];
 
   for (x = 0; x < MAX_GRID_XSIZE; x++)
     for (y = 0; y < MAX_GRID_YSIZE; y++)
-      overlay.grid_button[x][y] = CHAR_GRID_BUTTON_NONE;
-
-  for (x = 0; x < min_xsize; x++)
-    for (y = 0; y < min_ysize; y++)
-      overlay.grid_button[x][starty + y] =
-       default_grid_button[y][0][x];
-
-  for (x = 0; x < min_xsize; x++)
-    for (y = 0; y < min_ysize; y++)
-      overlay.grid_button[startx + x][starty + y] =
-       default_grid_button[y][1][x];
+      overlay.grid_button[x][y] = setup.touch.grid_button[nr][x][y];
 
   overlay.grid_button_highlight = CHAR_GRID_BUTTON_NONE;
+  overlay.grid_button_action = JOY_NO_ACTION;
 
-#if defined(PLATFORM_ANDROID)
+#if defined(USE_TOUCH_INPUT_OVERLAY)
   if (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS))
     overlay.enabled = TRUE;
 #endif
@@ -429,7 +418,6 @@ void SetOverlayActive(boolean active)
 void SetOverlayShowGrid(boolean show_grid)
 {
   overlay.show_grid = show_grid;
-  overlay.show_grid_buttons = show_grid;
 
   SetOverlayActive(show_grid);