fixed and enhanced screen fading and global border handling (continued)
[rocksndiamonds.git] / src / main.c
index 1e9124777cf9a13e80b6866339d075efa7b8f883..aa45c472d7e1f2909e0e405fc69c1e811bc915ad 100644 (file)
@@ -41,9 +41,6 @@ SDL_Thread           *server_thread;
 
 int                    key_joystick_mapping = 0;
 
-boolean                        redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2];
-int                    redraw_x1 = 0, redraw_y1 = 0;
-
 short                  Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -104,6 +101,10 @@ int                        FULL_SYSIZE = 2 + SYSIZE_DEFAULT + 2;
 int                    SXSIZE = SXSIZE_DEFAULT;
 int                    SYSIZE = SYSIZE_DEFAULT;
 
+int                    FADE_SX = 6, FADE_SY = 6;
+int                    FADE_SXSIZE = 2 + SXSIZE_DEFAULT + 2;
+int                    FADE_SYSIZE = 2 + SXSIZE_DEFAULT + 2;
+
 int                    DXSIZE = 100;
 int                    DYSIZE = 280;
 int                    VXSIZE = 100;
@@ -5552,76 +5553,76 @@ struct MusicPrefixInfo music_prefix_info[NUM_MUSIC_PREFIXES + 1] =
 
 static void print_usage()
 {
-  printf("\n"
-        "Usage: %s [OPTION]... [HOSTNAME [PORT]]\n"
-        "\n"
-        "Options:\n"
-        "  -d, --display HOSTNAME[:SCREEN]  specify X server display\n"
-        "  -b, --basepath DIRECTORY         alternative base DIRECTORY\n"
-        "  -l, --level DIRECTORY            alternative level DIRECTORY\n"
-        "  -g, --graphics DIRECTORY         alternative graphics DIRECTORY\n"
-        "  -s, --sounds DIRECTORY           alternative sounds DIRECTORY\n"
-        "  -m, --music DIRECTORY            alternative music DIRECTORY\n"
-        "  -n, --network                    network multiplayer game\n"
-        "      --serveronly                 only start network server\n"
-        "  -v, --verbose                    verbose mode\n"
-        "  -V, --version                    show program version\n"
-        "      --debug                      display debugging information\n"
-        "  -e, --execute COMMAND            execute batch COMMAND\n"
-        "\n"
-        "Valid commands for '--execute' option:\n"
-        "  \"print graphicsinfo.conf\"        print default graphics config\n"
-        "  \"print soundsinfo.conf\"          print default sounds config\n"
-        "  \"print musicinfo.conf\"           print default music config\n"
-        "  \"print editorsetup.conf\"         print default editor config\n"
-        "  \"print helpanim.conf\"            print default helpanim config\n"
-        "  \"print helptext.conf\"            print default helptext config\n"
-        "  \"dump level FILE\"                dump level data from FILE\n"
-        "  \"dump tape FILE\"                 dump tape data from FILE\n"
-        "  \"autoplay LEVELDIR [NR ...]\"     play level tapes for LEVELDIR\n"
-        "  \"convert LEVELDIR [NR]\"          convert levels in LEVELDIR\n"
-        "  \"create images DIRECTORY\"        write BMP images to DIRECTORY\n"
-        "  \"create CE image DIRECTORY\"      write BMP image to DIRECTORY\n"
-        "\n",
-        program.command_basename);
+  Print("\n"
+       "Usage: %s [OPTION]... [HOSTNAME [PORT]]\n"
+       "\n"
+       "Options:\n"
+       "  -d, --display HOSTNAME[:SCREEN]  specify X server display\n"
+       "  -b, --basepath DIRECTORY         alternative base DIRECTORY\n"
+       "  -l, --level DIRECTORY            alternative level DIRECTORY\n"
+       "  -g, --graphics DIRECTORY         alternative graphics DIRECTORY\n"
+       "  -s, --sounds DIRECTORY           alternative sounds DIRECTORY\n"
+       "  -m, --music DIRECTORY            alternative music DIRECTORY\n"
+       "  -n, --network                    network multiplayer game\n"
+       "      --serveronly                 only start network server\n"
+       "  -v, --verbose                    verbose mode\n"
+       "  -V, --version                    show program version\n"
+       "      --debug                      display debugging information\n"
+       "  -e, --execute COMMAND            execute batch COMMAND\n"
+       "\n"
+       "Valid commands for '--execute' option:\n"
+       "  \"print graphicsinfo.conf\"        print default graphics config\n"
+       "  \"print soundsinfo.conf\"          print default sounds config\n"
+       "  \"print musicinfo.conf\"           print default music config\n"
+       "  \"print editorsetup.conf\"         print default editor config\n"
+       "  \"print helpanim.conf\"            print default helpanim config\n"
+       "  \"print helptext.conf\"            print default helptext config\n"
+       "  \"dump level FILE\"                dump level data from FILE\n"
+       "  \"dump tape FILE\"                 dump tape data from FILE\n"
+       "  \"autoplay LEVELDIR [NR ...]\"     play level tapes for LEVELDIR\n"
+       "  \"convert LEVELDIR [NR]\"          convert levels in LEVELDIR\n"
+       "  \"create images DIRECTORY\"        write BMP images to DIRECTORY\n"
+       "  \"create CE image DIRECTORY\"      write BMP image to DIRECTORY\n"
+       "\n",
+       program.command_basename);
 }
 
 static void print_version()
 {
-  printf("%s %d.%d.%d.%d\n",
-        PROGRAM_TITLE_STRING,
-        PROGRAM_VERSION_MAJOR,
-        PROGRAM_VERSION_MINOR,
-        PROGRAM_VERSION_PATCH,
-        PROGRAM_VERSION_BUILD);
+  Print("%s %d.%d.%d.%d\n",
+       PROGRAM_TITLE_STRING,
+       PROGRAM_VERSION_MAJOR,
+       PROGRAM_VERSION_MINOR,
+       PROGRAM_VERSION_PATCH,
+       PROGRAM_VERSION_BUILD);
 
   if (options.debug)
   {
     SDL_version sdl_version;
 
     SDL_VERSION(&sdl_version);
-    printf("- SDL %d.%d.%d\n",
-          sdl_version.major,
-          sdl_version.minor,
-          sdl_version.patch);
+    Print("- SDL %d.%d.%d\n",
+         sdl_version.major,
+         sdl_version.minor,
+         sdl_version.patch);
 
     SDL_IMAGE_VERSION(&sdl_version);
-    printf("- SDL_image %d.%d.%d\n",
-          sdl_version.major,
-          sdl_version.minor,
-          sdl_version.patch);
+    Print("- SDL_image %d.%d.%d\n",
+         sdl_version.major,
+         sdl_version.minor,
+         sdl_version.patch);
 
     SDL_MIXER_VERSION(&sdl_version);
-    printf("- SDL_mixer %d.%d.%d\n",
-          sdl_version.major,
-          sdl_version.minor,
-          sdl_version.patch);
+    Print("- SDL_mixer %d.%d.%d\n",
+         sdl_version.major,
+         sdl_version.minor,
+         sdl_version.patch);
 
     SDL_NET_VERSION(&sdl_version);
-    printf("- SDL_net %d.%d.%d\n",
-          sdl_version.major,
-          sdl_version.minor,
-          sdl_version.patch);
+    Print("- SDL_net %d.%d.%d\n",
+         sdl_version.major,
+         sdl_version.minor,
+         sdl_version.patch);
   }
 }
 
@@ -5630,6 +5631,7 @@ static void InitProgramConfig(char *command_filename)
   char *command_basename = getBaseName(command_filename);
   char *config_filename = getProgramConfigFilename(command_filename);
   char *program_title = PROGRAM_TITLE_STRING;
+  char *program_icon_file = PROGRAM_ICON_FILENAME;
   char *userdata_subdir;
   char *userdata_subdir_unix;
 
@@ -5642,6 +5644,11 @@ static void InitProgramConfig(char *command_filename)
       strlen(setup.internal.program_title) > 0)
     program_title = getStringCopy(setup.internal.program_title);
 
+  // set program icon file from potentially redefined program icon file
+  if (setup.internal.program_icon_file != NULL &&
+      strlen(setup.internal.program_icon_file) > 0)
+    program_icon_file = getStringCopy(setup.internal.program_icon_file);
+
   // strip trailing executable suffix from command basename
   if (strSuffix(command_basename, ".exe"))
     command_basename[strlen(command_basename) - 4] = '\0';
@@ -5662,7 +5669,7 @@ static void InitProgramConfig(char *command_filename)
                  userdata_subdir_unix,
                  program_title,
                  program_title,
-                 SDL_ICON_FILENAME,
+                 program_icon_file,
                  COOKIE_PREFIX,
                  GAME_VERSION_ACTUAL);
 }