updated contact info in source file headers
[rocksndiamonds.git] / src / main.c
index 94c5c3ace7cdc47034b96f86ae1989d38d4545d1..65cd4ed2ad15779bc8861b45caad06a79471c958 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"
 
@@ -17,6 +15,7 @@
 #include "init.h"
 #include "game.h"
 #include "tape.h"
+#include "tools.h"
 #include "events.h"
 #include "config.h"
 
@@ -24,7 +23,11 @@ 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;
 DrawBuffer            *fieldbuffer;
 DrawBuffer            *drawto_field;
@@ -95,16 +98,22 @@ int                 scroll_x, scroll_y;
 
 int                    WIN_XSIZE = 672, WIN_YSIZE = 560;
 int                    SCR_FIELDX = 17, SCR_FIELDY = 17;
-int                    SX = 8, SY = 8;
 int                    REAL_SX = 6, REAL_SY = 6;
+int                    SX = 8, SY = 8;
 int                    DX = 566, DY = 60;
 int                    VX = 566, VY = 400;
 int                    EX = 566, EY = 356;
 int                    dDX, dDY;
-int                    SXSIZE = 17 * TILEX;    /* SCR_FIELDX * TILEX */
-int                    SYSIZE = 17 * TILEY;    /* SCR_FIELDY * TILEY */
 int                    FULL_SXSIZE = 2 + 17 * TILEX + 2; /* 2 + SXSIZE + 2 */
 int                    FULL_SYSIZE = 2 + 17 * TILEY + 2; /* 2 + SYSIZE + 2 */
+int                    SXSIZE = 17 * TILEX;    /* SCR_FIELDX * TILEX */
+int                    SYSIZE = 17 * TILEY;    /* SCR_FIELDY * TILEY */
+int                    DXSIZE = 100;
+int                    DYSIZE = 280;
+int                    VXSIZE = 100;
+int                    VYSIZE = 100;
+int                    EXSIZE = 100;
+int                    EYSIZE = 144;
 int                    TILESIZE_VAR = TILESIZE;
 
 #if 1
@@ -156,12 +165,16 @@ struct TitleMessageInfo   readme;
 struct InitInfo                init, init_last;
 struct MenuInfo                menu;
 struct DoorInfo                door_1, door_2;
+struct RequestInfo     request;
 struct PreviewInfo     preview;
+struct EditorInfo      editor;
+
 struct GraphicInfo     *graphic_info = NULL;
 struct SoundInfo       *sound_info = NULL;
 struct MusicInfo       *music_info = NULL;
 struct MusicFileInfo   *music_file_info = NULL;
 struct HelpAnimInfo    *helpanim_info = NULL;
+
 SetupFileHash          *helptext_info = NULL;
 SetupFileHash         *image_config_hash = NULL;
 SetupFileHash         *element_token_hash = NULL;
@@ -5513,6 +5526,7 @@ struct FontInfo font_info[NUM_FONTS + 1] =
   { "font.envelope_2"          },
   { "font.envelope_3"          },
   { "font.envelope_4"          },
+  { "font.request"             },
   { "font.input_1.active"      },
   { "font.input_2.active"      },
   { "font.input_1"             },
@@ -5564,6 +5578,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"
@@ -5584,20 +5599,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();