major cleanup of preprocessor hell
[rocksndiamonds.git] / src / main.c
index c1982ccf5b19128369dbfa551b4633a14eadf394..8a7279075d0450d7c4143d05fe5955dfe9881732 100644 (file)
@@ -1,15 +1,13 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2006 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* main.c                                                   *
-***********************************************************/
+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// main.c
+// ============================================================================
 
 #include "libgame/libgame.h"
 
@@ -25,9 +23,6 @@ Bitmap                       *bitmap_db_store;
 Bitmap                *bitmap_db_cross;
 Bitmap                *bitmap_db_field;
 Bitmap                *bitmap_db_panel;
-#if 0
-Bitmap                *bitmap_db_door;
-#endif
 Bitmap                *bitmap_db_door_1;
 Bitmap                *bitmap_db_door_2;
 Bitmap                *bitmap_db_toons;
@@ -45,15 +40,7 @@ SDL_Thread          *server_thread;
 
 int                    key_joystick_mapping = 0;
 
-#if 1
-#if NEW_SCROLL
 boolean                        redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2];
-#else
-boolean                        redraw[MAX_LEV_FIELDX + 2][MAX_LEV_FIELDY + 2];
-#endif
-#else
-boolean                        redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
-#endif
 int                    redraw_x1 = 0, redraw_y1 = 0;
 
 short                  Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -118,24 +105,15 @@ int                       EXSIZE = 100;
 int                    EYSIZE = 144;
 int                    TILESIZE_VAR = TILESIZE;
 
-#if 1
 int                    FX, FY;
-#else
-int                    FX = SX, FY = SY;
-#endif
 int                    ScrollStepSize;
 int                    ScreenMovDir = MV_NONE, ScreenMovPos = 0;
 int                    ScreenGfxPos = 0;
 int                    BorderElement = EL_STEELWALL;
 int                    GameFrameDelay = GAME_FRAME_DELAY;
 int                    FfwdFrameDelay = FFWD_FRAME_DELAY;
-#if 1
 int                    BX1, BY1;
 int                    BX2, BY2;
-#else
-int                    BX1 = 0, BY1 = 0;
-int                    BX2 = SCR_FIELDX - 1, BY2 = SCR_FIELDY - 1;
-#endif
 int                    SBX_Left, SBX_Right;
 int                    SBY_Upper, SBY_Lower;
 int                    ZX, ZY;
@@ -5580,6 +5558,7 @@ static void print_usage()
         "  -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"
         "      --debug-x11-sync             enable X11 synchronous mode\n"
         "  -e, --execute COMMAND            execute batch COMMAND\n"
@@ -5600,21 +5579,57 @@ static void print_usage()
         program.command_basename);
 }
 
-int main(int argc, char *argv[])
+static void print_version()
 {
-  char * window_title_string = getWindowTitleString();
+  printf("%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);
+
+    SDL_IMAGE_VERSION(&sdl_version);
+    printf("- 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);
+
+    SDL_NET_VERSION(&sdl_version);
+    printf("- SDL_net %d.%d.%d\n",
+          sdl_version.major,
+          sdl_version.minor,
+          sdl_version.patch);
+  }
+}
+
+int main(int argc, char *argv[])
+{
   InitProgramInfo(argv[0], USERDATA_DIRECTORY, USERDATA_DIRECTORY_UNIX,
-                 PROGRAM_TITLE_STRING, window_title_string, ICON_TITLE_STRING,
-                 X11_ICON_FILENAME, X11_ICONMASK_FILENAME, SDL_ICON_FILENAME,
-                 MSDOS_POINTER_FILENAME,
-                 COOKIE_PREFIX, FILENAME_PREFIX, GAME_VERSION_ACTUAL);
+                 PROGRAM_TITLE_STRING, ICON_TITLE_STRING, SDL_ICON_FILENAME,
+                 COOKIE_PREFIX, GAME_VERSION_ACTUAL);
 
+  InitWindowTitleFunction(getWindowTitleString);
   InitExitMessageFunction(DisplayExitMessage);
   InitExitFunction(CloseAllAndExit);
   InitPlatformDependentStuff();
 
-  GetOptions(argv, print_usage);
+  GetOptions(argv, print_usage, print_version);
   OpenAll();
 
   EventLoop();