rnd-20091205-1-src
[rocksndiamonds.git] / src / libgame / system.h
index 5d26341fada842c940c809036889fd413ca389a4..73b5472f7d8201fdb99d8ded8bb06a6cf3fb4bdb 100644 (file)
@@ -48,9 +48,6 @@
 #define FULLSCREEN_NOT_AVAILABLE       FALSE
 #define FULLSCREEN_AVAILABLE           TRUE
 
-#define CREATE_SPECIAL_EDITION         FALSE
-#define CREATE_SPECIAL_EDITION_RND_JUE FALSE
-
 /* default input keys */
 #define DEFAULT_KEY_LEFT               KSYM_Left
 #define DEFAULT_KEY_RIGHT              KSYM_Right
 #define CACHE_DIRECTORY                "cache"
 
 #if !defined(PLATFORM_MSDOS)
-#if CREATE_SPECIAL_EDITION_RND_JUE
-#define GFX_CLASSIC_SUBDIR     "jue0"
-#define SND_CLASSIC_SUBDIR     "jue0"
-#define MUS_CLASSIC_SUBDIR     "jue0"
-#else
 #define GFX_CLASSIC_SUBDIR     "gfx_classic"
 #define SND_CLASSIC_SUBDIR     "snd_classic"
 #define MUS_CLASSIC_SUBDIR     "mus_classic"
-#endif
 #else
 #define GFX_CLASSIC_SUBDIR     "gfx_orig"
 #define SND_CLASSIC_SUBDIR     "snd_orig"
 #define MUS_CLASSIC_SUBDIR     "mus_orig"
 #endif
 
-#if CREATE_SPECIAL_EDITION
+#if defined(CREATE_SPECIAL_EDITION_RND_JUE)
+#define GFX_DEFAULT_SUBDIR     "jue0"
+#define SND_DEFAULT_SUBDIR     "jue0"
+#define MUS_DEFAULT_SUBDIR     "jue0"
+#else
+#define GFX_DEFAULT_SUBDIR     GFX_CLASSIC_SUBDIR
+#define SND_DEFAULT_SUBDIR     SND_CLASSIC_SUBDIR
+#define MUS_DEFAULT_SUBDIR     MUS_CLASSIC_SUBDIR
+#endif
+
+#if defined(CREATE_SPECIAL_EDITION)
 #define GFX_FALLBACK_FILENAME  "fallback.pcx"
 #define SND_FALLBACK_FILENAME  "fallback.wav"
 #define MUS_FALLBACK_FILENAME  "fallback.wav"
                                 (setup).override_level_sounds :        \
                                 (setup).override_level_music)
 
+#define GFX_OVERRIDE_ARTWORK(type)                                     \
+                               ((type) == ARTWORK_TYPE_GRAPHICS ?      \
+                                gfx.override_level_graphics :          \
+                                (type) == ARTWORK_TYPE_SOUNDS ?        \
+                                gfx.override_level_sounds :            \
+                                gfx.override_level_music)
+
 #define ARTWORK_FIRST_NODE(artwork, type)                              \
                                ((type) == ARTWORK_TYPE_GRAPHICS ?      \
                                 (artwork).gfx_first :                  \
@@ -648,6 +656,9 @@ struct OptionInfo
   boolean network;
   boolean verbose;
   boolean debug;
+  boolean debug_x11_sync;
+
+  unsigned long cmd_switches;
 };
 
 struct ScreenModeInfo
@@ -717,6 +728,8 @@ struct GfxInfo
   int vx, vy;
   int vxsize, vysize;
 
+  int win_xsize, win_ysize;
+
   int draw_deactivation_mask;
   int draw_background_mask;
 
@@ -725,6 +738,12 @@ struct GfxInfo
   Bitmap *background_bitmap;
   int background_bitmap_mask;
 
+  boolean override_level_graphics;
+  boolean override_level_sounds;
+  boolean override_level_music;
+
+  boolean draw_init_text;
+
   int num_fonts;
   struct FontBitmapInfo *font_bitmap_info;
   int (*select_font_function)(int);
@@ -832,8 +851,6 @@ struct SetupInfo
   boolean sound_music;
   boolean sound_simple;
   boolean toons;
-  boolean double_buffering;
-  boolean direct_draw;         /* !double_buffering (redundant!) */
   boolean scroll_delay;
   boolean scroll_delay_value;
   boolean soft_scrolling;
@@ -857,9 +874,9 @@ struct SetupInfo
   char *graphics_set;
   char *sounds_set;
   char *music_set;
-  boolean override_level_graphics;
-  boolean override_level_sounds;
-  boolean override_level_music;
+  int override_level_graphics;         /* not boolean -- can also be "AUTO" */
+  int override_level_sounds;           /* not boolean -- can also be "AUTO" */
+  int override_level_music;            /* not boolean -- can also be "AUTO" */
 
   struct SetupEditorInfo editor;
   struct SetupEditorCascadeInfo editor_cascade;
@@ -987,6 +1004,7 @@ struct FileInfo
 
   boolean redefined;
   boolean fallback_to_default;
+  boolean default_is_cloned;
 };
 
 struct SetupFileList
@@ -1130,8 +1148,10 @@ void ClosePlatformDependentStuff(void);
 void InitGfxFieldInfo(int, int, int, int, int, int, int, int, Bitmap *);
 void InitGfxDoor1Info(int, int, int, int);
 void InitGfxDoor2Info(int, int, int, int);
+void InitGfxWindowInfo(int, int);
 void InitGfxScrollbufferInfo(int, int);
 void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(void));
+void InitGfxCustomArtworkInfo();
 void SetDrawDeactivationMask(int);
 void SetDrawBackgroundMask(int);
 void SetWindowBackgroundBitmap(Bitmap *);