updated contact info in source file headers
[rocksndiamonds.git] / src / libgame / system.h
index 90e8bca7af8f4d39dff18f6ab32a2d26bd6e5b39..1a469a193e9f84395834ba2f034dc9b74f70fae4 100644 (file)
@@ -1,15 +1,13 @@
-/***********************************************************
-* Artsoft Retro-Game Library                               *
-*----------------------------------------------------------*
-* (c) 1994-2006 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* system.h                                                 *
-***********************************************************/
+// ============================================================================
+// Artsoft Retro-Game Library
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// system.h
+// ============================================================================
 
 #ifndef SYSTEM_H
 #define SYSTEM_H
 #include "macosx.h"
 #elif defined(PLATFORM_WIN32)
 #include "windows.h"
-#elif defined(PLATFORM_MSDOS)
-#include "msdos.h"
 #elif defined(PLATFORM_ANDROID)
 #include "android.h"
 #endif
 
-#if defined(TARGET_SDL)
 #include "sdl.h"
-#elif defined(TARGET_X11)
-#include "x11.h"
-#endif
 
 
 /* the additional 'b' is needed for Win32 to open files in binary mode */
                                 REDRAW_MICROLEVEL)
 #define REDRAW_FPS             (1 << 11)
 
-#if defined(TARGET_X11)
-/* on old-style, classic and potentially slow graphics systems, redraw single
-   tiles instead of the whole playfield unless a certain threshold is reached;
-   when using the X11 target, this method should still be fast on all systems */
-#define REDRAWTILES_THRESHOLD  (SCR_FIELDX * SCR_FIELDY / 2)
-#else
-/* on modern graphics systems and when using the SDL target, this tile redraw
+/* on modern graphics systems and when using the SDL target, the old tile redraw
    optimization can slow things down a lot due to many small blits compared to
    one single playfield-sized blit (especially observed on Mac OS X with SDL) */
 #define REDRAWTILES_THRESHOLD  0
-#endif
 
 #define IN_GFX_FIELD_PLAY(x, y)        (x >= gfx.sx && x < gfx.sx + gfx.sxsize && \
                                 y >= gfx.sy && y < gfx.sy + gfx.sysize)
 #define DOCS_DIRECTORY         "docs"
 #define CACHE_DIRECTORY                "cache"
 
-#if !defined(PLATFORM_MSDOS)
 #define GFX_CLASSIC_SUBDIR     "gfx_classic"
 #define SND_CLASSIC_SUBDIR     "snd_classic"
 #define MUS_CLASSIC_SUBDIR     "mus_classic"
-#else
-#define GFX_CLASSIC_SUBDIR     "gfx_orig"
-#define SND_CLASSIC_SUBDIR     "snd_orig"
-#define MUS_CLASSIC_SUBDIR     "mus_orig"
-#endif
 
 #if defined(CREATE_SPECIAL_EDITION_RND_JUE)
 #define GFX_DEFAULT_SUBDIR     "jue0"
 #endif
 
 /* file names and filename extensions */
-#if !defined(PLATFORM_MSDOS)
 #define LEVELSETUP_DIRECTORY   "levelsetup"
 #define SETUP_FILENAME         "setup.conf"
 #define LEVELSETUP_FILENAME    "levelsetup.conf"
 #define LEVELFILE_EXTENSION    "level"
 #define TAPEFILE_EXTENSION     "tape"
 #define SCOREFILE_EXTENSION    "score"
-#else
-#define LEVELSETUP_DIRECTORY   "lvlsetup"
-#define SETUP_FILENAME         "setup.cnf"
-#define LEVELSETUP_FILENAME    "lvlsetup.cnf"
-#define EDITORSETUP_FILENAME   "edsetup.cnf"
-#define EDITORCASCADE_FILENAME "edcascad.conf"
-#define HELPANIM_FILENAME      "helpanim.cnf"
-#define HELPTEXT_FILENAME      "helptext.cnf"
-#define LEVELINFO_FILENAME     "lvlinfo.cnf"
-#define GRAPHICSINFO_FILENAME  "gfxinfo.cnf"
-#define SOUNDSINFO_FILENAME    "sndinfo.cnf"
-#define MUSICINFO_FILENAME     "musinfo.cnf"
-#define ARTWORKINFO_CACHE_FILE "artinfo.cac"
-#define LEVELFILE_EXTENSION    "lvl"
-#define TAPEFILE_EXTENSION     "tap"
-#define SCOREFILE_EXTENSION    "sco"
-#endif
 
 #define ERROR_BASENAME         "stderr.txt"
 
 #define STRING_NEWLINE_UNIX            "\n"
 #define STRING_NEWLINE_DOS             "\r\n"
 
-#if defined(PLATFORM_WIN32) || defined(PLATFORM_MSDOS)
+#if defined(PLATFORM_WIN32)
 #define CHAR_PATH_SEPARATOR    CHAR_PATH_SEPARATOR_DOS
 #define STRING_PATH_SEPARATOR  STRING_PATH_SEPARATOR_DOS
 #define STRING_NEWLINE         STRING_NEWLINE_DOS
@@ -706,13 +667,9 @@ struct ProgramInfo
   char *window_title;
   char *icon_title;
 
-  char *x11_icon_filename;
-  char *x11_iconmask_filename;
   char *sdl_icon_filename;
-  char *msdos_cursor_filename;
 
   char *cookie_prefix;
-  char *filename_prefix;       /* prefix to cut off from DOS filenames */
 
   char *error_filename;                /* filename where to write error messages to */
   FILE *error_file;            /* (used instead of 'stderr' on some systems) */
@@ -720,6 +677,8 @@ struct ProgramInfo
   int version_major;
   int version_minor;
   int version_patch;
+  int version_build;
+  int version_ident;
 
   char *(*window_title_function)(void);
   void (*exit_message_function)(char *, va_list);
@@ -804,10 +763,6 @@ struct FontBitmapInfo
 
   int num_chars;
   int num_chars_per_line;
-
-#if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
-  Pixmap *clip_mask;           /* single-char-only clip mask array for X11 */
-#endif
 };
 
 struct GfxInfo
@@ -818,6 +773,8 @@ struct GfxInfo
   int full_sxsize, full_sysize;
   int scrollbuffer_width, scrollbuffer_height;
 
+  int game_tile_size, standard_tile_size;
+
   int dx, dy;
   int dxsize, dysize;
 
@@ -1307,13 +1264,8 @@ extern int                       FrameCounter;
 
 /* function definitions */
 
-#if 1
 void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *,
-                    char *, char *, char *, char *, int);
-#else
-void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *,
-                    char *, char *, char *, char *, char *, int);
-#endif
+                    int);
 
 void SetWindowTitle();
 
@@ -1324,6 +1276,7 @@ void InitPlatformDependentStuff(void);
 void ClosePlatformDependentStuff(void);
 
 void InitGfxFieldInfo(int, int, int, int, int, int, int, int, Bitmap *);
+void InitGfxTileSizeInfo(int, int);
 void InitGfxDoor1Info(int, int, int, int);
 void InitGfxDoor2Info(int, int, int, int);
 void InitGfxDoor3Info(int, int, int, int);
@@ -1379,7 +1332,7 @@ Bitmap *LoadCustomImage(char *);
 void ReloadCustomImage(Bitmap *, char *);
 
 Bitmap *ZoomBitmap(Bitmap *, int, int);
-void CreateBitmapWithSmallBitmaps(Bitmap *, int);
+void CreateBitmapWithSmallBitmaps(Bitmap *, int, int);
 void ScaleBitmap(Bitmap *, int);
 
 void SetMouseCursor(int);