rnd-20140515-1-src
[rocksndiamonds.git] / src / libgame / system.h
index b74b6fae17165e376d7da80d6a22a8752e0fc7c2..6580d083b37f3cafa6fe87a7e1a2ad64e86feb5c 100644 (file)
@@ -22,8 +22,6 @@
 #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
 
 #define SCALING_QUALITY_DEFAULT                SCALING_QUALITY_LINEAR
 
+/* values for touch control */
+#define TOUCH_CONTROL_VIRTUAL_BUTTONS  "virtual_buttons"
+#define TOUCH_CONTROL_WIPE_GESTURES    "wipe_gestures"
+
+#define TOUCH_CONTROL_DEFAULT          TOUCH_CONTROL_VIRTUAL_BUTTONS
+
+#define TOUCH_MOVE_DISTANCE_DEFAULT    2
+#define TOUCH_DROP_DISTANCE_DEFAULT    5
+
+
 /* default input keys */
 #define DEFAULT_KEY_LEFT               KSYM_Left
 #define DEFAULT_KEY_RIGHT              KSYM_Right
 
 /* default values for undefined configuration file parameters */
 #define ARG_UNDEFINED          "-1000000"
-#define ARG_UNDEFINED_VALUE    (atoi(ARG_UNDEFINED))
+#define ARG_UNDEFINED_VALUE    (-1000000)
+
+/* default value for off-screen positions */
+#define POS_OFFSCREEN          (-1000000)
 
 /* definitions for game sub-directories */
 #ifndef RO_GAME_DIR
 #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
@@ -696,7 +683,6 @@ struct ProgramInfo
   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 */
@@ -708,6 +694,7 @@ struct ProgramInfo
   int version_minor;
   int version_patch;
 
+  char *(*window_title_function)(void);
   void (*exit_message_function)(char *, va_list);
   void (*exit_function)(int);
 };
@@ -864,6 +851,13 @@ struct SetupKeyboardInfo
   Key snap, drop;
 };
 
+struct SetupTouchInfo
+{
+  char *control_type;
+  int move_distance;
+  int drop_distance;
+};
+
 struct SetupInputInfo
 {
   boolean use_joystick;
@@ -995,6 +989,7 @@ struct SetupInfo
   struct SetupEditorCascadeInfo editor_cascade;
   struct SetupShortcutInfo shortcut;
   struct SetupInputInfo input[MAX_PLAYERS];
+  struct SetupTouchInfo touch;
   struct SetupSystemInfo system;
   struct OptionInfo options;
 };
@@ -1285,9 +1280,17 @@ extern int                       FrameCounter;
 
 /* function definitions */
 
+#if 1
+void InitProgramInfo(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
+
+void SetWindowTitle();
 
+void InitWindowTitleFunction(char *(*window_title_function)(void));
 void InitExitMessageFunction(void (*exit_message_function)(char *, va_list));
 void InitExitFunction(void (*exit_function)(int));
 void InitPlatformDependentStuff(void);