moved level set info structure to game library layer
[rocksndiamonds.git] / src / libgame / system.c
index 3363ac2b94c7cbfe976ba25c2806b403b75595f6..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,60 +340,25 @@ void InitTileCursorInfo()
 
 void InitOverlayInfo()
 {
-  static char *default_grid_button[6][2] =
-  {
-    { "      ",        "  ^^  " },
-    { "      ",        "  ^^  " },
-    { "      ",        "<<  >>" },
-    { "      ",        "<<  >>" },
-    { "111222",        "  vv  " },
-    { "111222",        "  vv  " }
-  };
   int nr = GRID_ACTIVE_NR();
-  int i, x, y;
+  int x, y;
 
   overlay.enabled = FALSE;
   overlay.active = FALSE;
 
   overlay.show_grid = FALSE;
 
-  for (i = 0; i < 2; i++)
-  {
-    int grid_xsize = DEFAULT_GRID_XSIZE(i);
-    int grid_ysize = DEFAULT_GRID_YSIZE(i);
-    int min_xsize = MIN(6, grid_xsize);
-    int min_ysize = MIN(6, grid_ysize);
-    int startx = grid_xsize - min_xsize;
-    int starty = grid_ysize - min_ysize;
-
-    overlay.grid_xsize_all[i] = grid_xsize;
-    overlay.grid_ysize_all[i] = grid_ysize;
-
-    for (x = 0; x < MAX_GRID_XSIZE; x++)
-      for (y = 0; y < MAX_GRID_YSIZE; y++)
-       overlay.grid_button_all[i][x][y] = CHAR_GRID_BUTTON_NONE;
-
-    for (x = 0; x < min_xsize; x++)
-      for (y = 0; y < min_ysize; y++)
-       overlay.grid_button_all[i][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_all[i][startx + x][starty + y] =
-         default_grid_button[y][1][x];
-  }
-
-  overlay.grid_xsize = overlay.grid_xsize_all[nr];
-  overlay.grid_ysize = overlay.grid_ysize_all[nr];
+  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] = overlay.grid_button_all[nr][x][y];
+      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