#include "conf_gfx.h"
#include "conf_snd.h"
-#define IMG_EMPTY IMG_EMPTY_SPACE
-#define IMG_SP_EMPTY IMG_SP_EMPTY_SPACE
-#define IMG_CHAR_START IMG_CHAR_SPACE
+#define IMG_EMPTY IMG_EMPTY_SPACE
+#define IMG_SP_EMPTY IMG_SP_EMPTY_SPACE
+#define IMG_CHAR_START IMG_CHAR_SPACE
+#define IMG_CUSTOM_START IMG_CUSTOM_0
#define WIN_XSIZE 672
#define WIN_YSIZE 560
#define VXSIZE DXSIZE
#define VYSIZE 100
#define EXSIZE DXSIZE
-#define EYSIZE (VXSIZE + 44)
+#define EYSIZE (VYSIZE + 44)
#define FULL_SXSIZE (2 + SXSIZE + 2)
#define FULL_SYSIZE (2 + SYSIZE + 2)
#define MICROLEV_XSIZE ((STD_LEV_FIELDX + 2) * MICRO_TILEX)
#define EL_CHAR_START 120
#define EL_CHAR_ASCII0 (EL_CHAR_START - 32)
+#define EL_CHAR_ASCII0_START (EL_CHAR_ASCII0 + 32)
#define EL_CHAR_EXCLAM (EL_CHAR_ASCII0 + 33)
#define EL_CHAR_QUOTEDBL (EL_CHAR_ASCII0 + 34)
#define EL_CHAR_NUMBERSIGN (EL_CHAR_ASCII0 + 35)
#define EL_CHAR_OE (EL_CHAR_ASCII0 + 92)
#define EL_CHAR_UE (EL_CHAR_ASCII0 + 93)
#define EL_CHAR_COPYRIGHT (EL_CHAR_ASCII0 + 94)
+#define EL_CHAR_UNDERSCORE (EL_CHAR_ASCII0 + 95)
+#define EL_CHAR_EMPTY (EL_CHAR_ASCII0 + 96)
+#define EL_CHAR_DEGREE (EL_CHAR_ASCII0 + 97)
+#define EL_CHAR_TM (EL_CHAR_ASCII0 + 98)
+#define EL_CHAR_CURSOR (EL_CHAR_ASCII0 + 99)
+#define EL_CHAR_ASCII0_END (EL_CHAR_ASCII0 + 111)
#define EL_CHAR_END (EL_CHAR_START + 79)
-#define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \
- (x) == 'Ö' ? EL_CHAR_OE : \
- (x) == 'Ü' ? EL_CHAR_UE : \
+#define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \
+ (x) == 'Ö' ? EL_CHAR_OE : \
+ (x) == 'Ü' ? EL_CHAR_UE : \
+ (x) == '^' ? EL_CHAR_COPYRIGHT : \
+ (x) == '_' ? EL_CHAR_UNDERSCORE : \
+ (x) == '°' ? EL_CHAR_DEGREE : \
+ (x) == '´' ? EL_CHAR_TM : \
+ (x) == '|' ? EL_CHAR_CURSOR : \
EL_CHAR_A + (x) - 'A')
#define EL_WALL_GROWING_X 200
#define EL_TRAP 356
#define EL_DX_SUPABOMB 357
-#define NUM_FILE_ELEMENTS 358
+#define EL_UNUSED_358 358
+#define EL_UNUSED_359 359
+
+#define EL_CUSTOM_START 360
+#define EL_CUSTOM_0 (EL_CUSTOM_START + 0)
+#define EL_CUSTOM_31 (EL_CUSTOM_START + 127)
+#define EL_CUSTOM_END (EL_CUSTOM_START + 127)
+
+#define NUM_FILE_ELEMENTS 488
/* "real" (and therefore drawable) runtime elements */
#define GFX_ARG_YPOS 1
#define GFX_ARG_OFFSET 2
#define GFX_ARG_VERTICAL 3
-#define GFX_ARG_FRAMES 4
-#define GFX_ARG_START_FRAME 5
-#define GFX_ARG_DELAY 6
-#define GFX_ARG_MODE_LOOP 7
-#define GFX_ARG_MODE_LINEAR 8
-#define GFX_ARG_MODE_PINGPONG 9
-#define GFX_ARG_MODE_PINGPONG2 10
-#define GFX_ARG_MODE_REVERSE 11
-#define GFX_ARG_GLOBAL_SYNC 12
+#define GFX_ARG_XOFFSET 4
+#define GFX_ARG_YOFFSET 5
+#define GFX_ARG_FRAMES 6
+#define GFX_ARG_START_FRAME 7
+#define GFX_ARG_DELAY 8
+#define GFX_ARG_MODE_LOOP 9
+#define GFX_ARG_MODE_LINEAR 10
+#define GFX_ARG_MODE_PINGPONG 11
+#define GFX_ARG_MODE_PINGPONG2 12
+#define GFX_ARG_MODE_REVERSE 13
+#define GFX_ARG_GLOBAL_SYNC 14
-#define NUM_GFX_ARGS 13
+#define NUM_GFX_ARGS 15
+
+#define GFX_ARG_UNDEFINED "-1000000"
+#define GFX_ARG_UNDEFINED_VALUE (atoi(GFX_ARG_UNDEFINED))
/* values for sound configuration suffixes */
#define SETUP 8
#define PROGRAM_VERSION_MAJOR 2
-#define PROGRAM_VERSION_MINOR 1
-#define PROGRAM_VERSION_PATCH 2
-#define PROGRAM_VERSION_STRING "2.1.2"
+#define PROGRAM_VERSION_MINOR 2
+#define PROGRAM_VERSION_PATCH 0
+#define PROGRAM_VERSION_STRING "2.2.0rc2"
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_AUTHOR_STRING "Holger Schemel"
boolean double_speed;
boolean gravity;
boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */
+
+ boolean no_level_file;
};
struct TapeInfo
boolean recording, playing, pausing;
boolean fast_forward;
boolean index_search;
+ boolean auto_play;
+ boolean auto_play_level_solved;
boolean quick_resume;
boolean single_step;
boolean changed;
struct GlobalInfo
{
+ char *autoplay_leveldir;
+ int autoplay_level_nr;
+
float frames_per_second;
boolean fps_slowdown;
int fps_slowdown_factor;
};
extern GC tile_clip_gc;
+#if 0
extern Bitmap *pix[];
+#endif
extern Bitmap *bitmap_db_field, *bitmap_db_door;
extern Pixmap tile_clipmask[];
extern DrawBuffer *fieldbuffer;