fixed compiler warnings (after adding "-Wmissing-prototypes")
[rocksndiamonds.git] / src / libgame / system.c
index 139ee57a562d6c2a046d7397c9df6e4d6c445e0e..64f67a179593cbd844576d746892c5a9fc17d489 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;
@@ -87,10 +89,10 @@ void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir,
 
   program.cookie_prefix = cookie_prefix;
 
+  program.version_super = VERSION_SUPER(program_version);
   program.version_major = VERSION_MAJOR(program_version);
   program.version_minor = VERSION_MINOR(program_version);
   program.version_patch = VERSION_PATCH(program_version);
-  program.version_build = VERSION_BUILD(program_version);
   program.version_ident = program_version;
 
   program.version_string = program_version_string;
@@ -103,13 +105,25 @@ void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir,
   program.headless = FALSE;
 }
 
-void InitScoresInfo()
+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(void)
 {
   char *global_scores_dir = getPath2(getCommonDataDir(), SCORES_DIRECTORY);
 
   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,11 +138,12 @@ void InitScoresInfo()
       Error(ERR_DEBUG, "Using private, single-user scores directory.");
     }
   }
+#endif
 
   free(global_scores_dir);
 }
 
-void SetWindowTitle()
+void SetWindowTitle(void)
 {
   program.window_title = program.window_title_function();
 
@@ -292,7 +307,7 @@ void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int))
   gfx.draw_tile_cursor_function = draw_tile_cursor_function;
 }
 
-void InitGfxCustomArtworkInfo()
+void InitGfxCustomArtworkInfo(void)
 {
   gfx.override_level_graphics = FALSE;
   gfx.override_level_sounds = FALSE;
@@ -301,12 +316,12 @@ void InitGfxCustomArtworkInfo()
   gfx.draw_init_text = TRUE;
 }
 
-void InitGfxOtherSettings()
+void InitGfxOtherSettings(void)
 {
   gfx.cursor_mode = CURSOR_DEFAULT;
 }
 
-void InitTileCursorInfo()
+void InitTileCursorInfo(void)
 {
   tile_cursor.enabled = FALSE;
   tile_cursor.active = FALSE;
@@ -323,12 +338,27 @@ void InitTileCursorInfo()
   tile_cursor.sy = 0;
 }
 
-void InitOverlayInfo()
+void InitOverlayInfo(void)
 {
+  int nr = GRID_ACTIVE_NR();
+  int x, y;
+
   overlay.enabled = FALSE;
   overlay.active = FALSE;
 
-#if defined(PLATFORM_ANDROID)
+  overlay.show_grid = FALSE;
+
+  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] = setup.touch.grid_button[nr][x][y];
+
+  overlay.grid_button_highlight = CHAR_GRID_BUTTON_NONE;
+  overlay.grid_button_action = JOY_NO_ACTION;
+
+#if defined(USE_TOUCH_INPUT_OVERLAY)
   if (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS))
     overlay.enabled = TRUE;
 #endif
@@ -385,7 +415,17 @@ void SetOverlayActive(boolean active)
   overlay.active = active;
 }
 
-boolean GetOverlayActive()
+void SetOverlayShowGrid(boolean show_grid)
+{
+  overlay.show_grid = show_grid;
+
+  SetOverlayActive(show_grid);
+
+  if (show_grid)
+    SetOverlayEnabled(TRUE);
+}
+
+boolean GetOverlayActive(void)
 {
   return overlay.active;
 }
@@ -395,7 +435,7 @@ void SetDrawDeactivationMask(int draw_deactivation_mask)
   gfx.draw_deactivation_mask = draw_deactivation_mask;
 }
 
-int GetDrawDeactivationMask()
+int GetDrawDeactivationMask(void)
 {
   return gfx.draw_deactivation_mask;
 }
@@ -405,7 +445,7 @@ void SetDrawBackgroundMask(int draw_background_mask)
   gfx.draw_background_mask = draw_background_mask;
 }
 
-void SetBackgroundBitmap(Bitmap *background_bitmap_tile, int mask)
+static void SetBackgroundBitmap(Bitmap *background_bitmap_tile, int mask)
 {
   if (background_bitmap_tile != NULL)
     gfx.background_bitmap_mask |= mask;
@@ -619,9 +659,11 @@ void ReCreateBitmap(Bitmap **bitmap, int width, int height)
   }
 }
 
-void CloseWindow(DrawWindow *window)
+#if 0
+static void CloseWindow(DrawWindow *window)
 {
 }
+#endif
 
 void SetRedrawMaskFromArea(int x, int y, int width, int height)
 {
@@ -669,7 +711,7 @@ inline static boolean CheckDrawingArea(int x, int y, int width, int height,
   return FALSE;
 }
 
-boolean DrawingDeactivatedField()
+boolean DrawingDeactivatedField(void)
 {
   if (program.headless)
     return TRUE;
@@ -978,8 +1020,8 @@ void DrawSimpleWhiteLine(Bitmap *bitmap, int from_x, int from_y,
   SDLDrawSimpleLine(bitmap, from_x, from_y, to_x, to_y, WHITE_PIXEL);
 }
 
-void DrawLine(Bitmap *bitmap, int from_x, int from_y,
-             int to_x, int to_y, Pixel pixel, int line_width)
+static void DrawLine(Bitmap *bitmap, int from_x, int from_y,
+                    int to_x, int to_y, Pixel pixel, int line_width)
 {
   int x, y;
 
@@ -1080,7 +1122,7 @@ void SetVideoFrameDelay(unsigned int frame_delay_value)
   video.frame_delay_value = frame_delay_value;
 }
 
-unsigned int GetVideoFrameDelay()
+unsigned int GetVideoFrameDelay(void)
 {
   return video.frame_delay_value;
 }
@@ -1348,7 +1390,13 @@ static void CreateScaledBitmaps(Bitmap **bitmaps, int zoom_factor,
        free_old_bitmap = FALSE;
 
     if (free_old_bitmap)
+    {
+      /* copy image filename from old to new standard sized bitmap */
+      bitmaps[IMG_BITMAP_STANDARD]->source_filename =
+       getStringCopy(old_bitmap->source_filename);
+
       FreeBitmap(old_bitmap);
+    }
   }
   else
   {
@@ -1673,12 +1721,12 @@ KeyMod HandleKeyModState(Key key, int key_status)
   return current_modifiers;
 }
 
-KeyMod GetKeyModState()
+KeyMod GetKeyModState(void)
 {
   return (KeyMod)SDL_GetModState();
 }
 
-KeyMod GetKeyModStateFromEvents()
+KeyMod GetKeyModStateFromEvents(void)
 {
   /* always use key modifier state as tracked from key events (this is needed
      if the modifier key event was injected into the event queue, but the key
@@ -1705,7 +1753,7 @@ void StartTextInput(int x, int y, int width, int height)
 #endif
 }
 
-void StopTextInput()
+void StopTextInput(void)
 {
 #if defined(TARGET_SDL2)
 #if defined(HAS_SCREEN_KEYBOARD)
@@ -1734,7 +1782,7 @@ boolean CheckCloseWindowEvent(ClientMessageEvent *event)
 /* joystick functions                                                        */
 /* ========================================================================= */
 
-void InitJoysticks()
+void InitJoysticks(void)
 {
   int i;
 
@@ -1760,7 +1808,7 @@ boolean CheckJoystickOpened(int nr)
   return SDLCheckJoystickOpened(nr);
 }
 
-void ClearJoystickState()
+void ClearJoystickState(void)
 {
   SDLClearJoystickState();
 }