#include "msdos.h"
#endif /* MSDOS */
+#ifdef USE_SDL_LIBRARY
+#include "sdl.h"
+#endif
+
#ifdef DEBUG
#define DEBUG_TIMING 0
#endif
#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
struct GlobalInfo
{
+ int dummy;
};
extern Display *display;
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;
#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
#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
/* "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
#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
#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
#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
#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)
#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