rnd-20000718-1-src
[rocksndiamonds.git] / src / main.h
index 716ce292df1a3977ab9d39bd3196f5f10bd9d593..4c1d57d52a1191f1a44d679211a4fbfa1c06f6fa 100644 (file)
 #include "msdos.h"
 #endif  /* MSDOS */
 
+#ifdef USE_SDL_LIBRARY
+#include "sdl.h"
+#endif
+
 #ifdef DEBUG
 #define DEBUG_TIMING   0
 #endif
@@ -54,6 +58,7 @@ typedef unsigned char byte;
 
 #define WIN_XSIZE      672
 #define WIN_YSIZE      560
+#define WIN_SDL_DEPTH  16      /* !!! change this !!! */
 #ifndef MSDOS
 #define WIN_XPOS       0
 #define WIN_YPOS       0
@@ -455,6 +460,7 @@ struct GameInfo
 
 struct GlobalInfo
 {
+  int dummy;
 };
 
 extern Display        *display;
@@ -472,6 +478,14 @@ extern XpmAttributes       xpm_att[];
 extern Drawable        drawto, drawto_field, backbuffer, fieldbuffer;
 extern Colormap                cmap;
 
+#ifdef USE_SDL_LIBRARY
+extern SDL_Surface    *sdl_window;
+extern SDL_Surface    *sdl_drawto, *sdl_drawto_field;
+extern SDL_Surface    *sdl_backbuffer, *sdl_fieldbuffer;
+extern SDL_Surface    *sdl_pix[];
+extern SDL_Surface    *sdl_pix_masked[], *sdl_tile_masked[];
+#endif
+
 extern int             sound_pipe[2];
 extern int             sound_device;
 extern char           *sound_device_name;
@@ -661,7 +675,7 @@ extern char         *element_info[];
 #define EL_MORAST_VOLL         17
 #define EL_TROPFEN             18
 #define EL_BOMBE               19
-#define EL_SIEB_INAKTIV                20
+#define EL_MAGIC_WALL_OFF      20
 #define EL_SPEED_PILL          21
 #define EL_SALZSAEURE          22
 #define EL_AMOEBE_NASS         23
@@ -702,7 +716,7 @@ extern char         *element_info[];
 #define EL_ERZ_EDEL_BD         58
 #define EL_ERZ_EDEL_GELB       59
 #define EL_MAMPFER2            60
-#define EL_SIEB2_INAKTIV       61
+#define EL_MAGIC_WALL_BD_OFF   61
 #define EL_INVISIBLE_STEEL     62
 
 #define EL_UNUSED_63           63
@@ -989,12 +1003,12 @@ extern char              *element_info[];
 /* "real" (and therefore drawable) runtime elements */
 #define EL_FIRST_RUNTIME_EL    500
 
-#define EL_SIEB_LEER           500
-#define EL_SIEB2_LEER          501
-#define EL_SIEB_VOLL           502
-#define EL_SIEB2_VOLL          503
-#define EL_SIEB_TOT            504
-#define EL_SIEB2_TOT           505
+#define EL_MAGIC_WALL_EMPTY    500
+#define EL_MAGIC_WALL_BD_EMPTY 501
+#define EL_MAGIC_WALL_FULL     502
+#define EL_MAGIC_WALL_BD_FULL  503
+#define EL_MAGIC_WALL_DEAD     504
+#define EL_MAGIC_WALL_BD_DEAD  505
 #define EL_AUSGANG_ACT         506
 #define EL_SP_TERMINAL_ACTIVE  507
 #define EL_SP_BUG_ACTIVE       508
@@ -1013,6 +1027,7 @@ extern char               *element_info[];
 #define EL_PEARL_BREAKING      521
 #define EL_TRAP_ACTIVE         522
 #define EL_SPRING_MOVING       523
+#define EL_SP_MURPHY_CLONE     524
 
 /* "unreal" (and therefore not drawable) runtime elements */
 #define EL_BLOCKED             600
@@ -1145,10 +1160,10 @@ extern char             *element_info[];
 #define GFX_SOKOBAN_FELD_VOLL  123
 #define GFX_GEBLUBBER          124
 /* Zeile 8 (128) */
-#define GFX_SIEB_INAKTIV       128
-#define GFX_SIEB_LEER          GFX_SIEB_INAKTIV
-#define GFX_SIEB_VOLL          GFX_SIEB_INAKTIV
-#define GFX_SIEB_TOT           GFX_SIEB_INAKTIV
+#define GFX_MAGIC_WALL_OFF     128
+#define GFX_MAGIC_WALL_EMPTY   GFX_MAGIC_WALL_OFF
+#define GFX_MAGIC_WALL_FULL    GFX_MAGIC_WALL_OFF
+#define GFX_MAGIC_WALL_DEAD    GFX_MAGIC_WALL_OFF
 #define GFX_ERZ_EDEL           132
 #define GFX_ERZ_DIAM           133
 #define GFX_ERZ_EDEL_ROT       134
@@ -1183,10 +1198,10 @@ extern char             *element_info[];
 #define GFX_MAUER_L1           GFX_MAUER_LEFT
 #define GFX_MAUER_L            170
 #define GFX_MAUER_LEBT         171
-#define GFX_SIEB2_INAKTIV      172
-#define GFX_SIEB2_LEER         GFX_SIEB2_INAKTIV
-#define GFX_SIEB2_VOLL         GFX_SIEB2_INAKTIV
-#define GFX_SIEB2_TOT          GFX_SIEB2_INAKTIV
+#define GFX_MAGIC_WALL_BD_OFF  172
+#define GFX_MAGIC_WALL_BD_EMPTY        GFX_MAGIC_WALL_BD_OFF
+#define GFX_MAGIC_WALL_BD_FULL GFX_MAGIC_WALL_BD_OFF
+#define GFX_MAGIC_WALL_BD_DEAD GFX_MAGIC_WALL_BD_OFF
 /* Zeile 11 (176) */
 #define        GFX_AUSGANG_ZU          176
 #define        GFX_AUSGANG_ACT         177
@@ -1377,6 +1392,8 @@ extern char               *element_info[];
 #define GFX2_SP_TERMINAL       (GFX_START_ROCKSSP + 11 * SP_PER_LINE +  8)
 #define GFX2_SP_TERMINAL_ACTIVE        (GFX_START_ROCKSSP + 12 * SP_PER_LINE +  8)
 
+#define GFX_SP_MURPHY_CLONE    (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  3)
+
 /* graphics from "RocksDC" */
 #define GFX_BELT1_MIDDLE       (GFX_START_ROCKSDC +  0 * DC_PER_LINE +  0)
 #define GFX_BELT1_LEFT         (GFX_START_ROCKSDC +  1 * DC_PER_LINE +  0)
@@ -1658,7 +1675,7 @@ extern char               *element_info[];
 #define TAPES_DIRECTORY                "tapes"
 #define SCORES_DIRECTORY       "scores"
 
-#define PROGRAM_VERSION_STRING "1.3.5"
+#define PROGRAM_VERSION_STRING "1.4.0 SDL"
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
 #define WINDOW_TITLE_STRING    PROGRAM_TITLE_STRING " " PROGRAM_VERSION_STRING