#define MV_BIT_TURNING_RANDOM 16
/* values for custom move patterns */
-#define MV_HORIZONTAL (MV_LEFT | MV_RIGHT)
-#define MV_VERTICAL (MV_UP | MV_DOWN)
-#define MV_ALL_DIRECTIONS (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)
-#define MV_ANY_DIRECTION (MV_ALL_DIRECTIONS)
#define MV_TOWARDS_PLAYER (1 << MV_BIT_TOWARDS_PLAYER)
#define MV_AWAY_FROM_PLAYER (1 << MV_BIT_AWAY_FROM_PLAYER)
#define MV_ALONG_LEFT_SIDE (1 << MV_BIT_ALONG_LEFT_SIDE)
#define VY 400
#define EX DX
#define EY (VY - 44)
-#define TILEX 32
-#define TILEY 32
-#define MINI_TILEX (TILEX / 2)
-#define MINI_TILEY (TILEY / 2)
-#define MICRO_TILEX (TILEX / 8)
-#define MICRO_TILEY (TILEY / 8)
+#define TILESIZE 32
+#define TILEX TILESIZE
+#define TILEY TILESIZE
+#define MINI_TILESIZE (TILESIZE / 2)
+#define MINI_TILEX MINI_TILESIZE
+#define MINI_TILEY MINI_TILESIZE
+#define MICRO_TILESIZE (TILESIZE / 8)
+#define MICRO_TILEX MICRO_TILESIZE
+#define MICRO_TILEY MICRO_TILESIZE
#define MIDPOSX (SCR_FIELDX / 2)
#define MIDPOSY (SCR_FIELDY / 2)
#define SXSIZE (SCR_FIELDX * TILEX)
#define EL_EMC_ANDROID 680
#define EL_EMC_GRASS 681
#define EL_EMC_MAGIC_BALL 682
-#define EL_EMC_MAGIC_BALL_SWITCH 683
-#define EL_EMC_SPRING_BUMPER 684
-#define EL_EMC_PLANT 685
-#define EL_EMC_LENSES 686
-#define EL_EMC_MAGNIFIER 687
-#define EL_EMC_WALL_9 688
-#define EL_EMC_WALL_10 689
-#define EL_EMC_WALL_11 690
-#define EL_EMC_WALL_12 691
-#define EL_EMC_WALL_13 692
-#define EL_EMC_WALL_14 693
-#define EL_EMC_WALL_15 694
-#define EL_EMC_WALL_16 695
-#define EL_EMC_WALL_SLIPPERY_1 696
-#define EL_EMC_WALL_SLIPPERY_2 697
-#define EL_EMC_WALL_SLIPPERY_3 698
-#define EL_EMC_WALL_SLIPPERY_4 699
-#define EL_EMC_FAKE_GRASS 700
-#define EL_EMC_DRIPPER 701
-
-#define NUM_FILE_ELEMENTS 702
+#define EL_EMC_MAGIC_BALL_ACTIVE 683
+#define EL_EMC_MAGIC_BALL_SWITCH 684
+#define EL_EMC_MAGIC_BALL_SWITCH_ACTIVE 685
+#define EL_EMC_SPRING_BUMPER 686
+#define EL_EMC_PLANT 687
+#define EL_EMC_LENSES 688
+#define EL_EMC_MAGNIFIER 689
+#define EL_EMC_WALL_9 690
+#define EL_EMC_WALL_10 691
+#define EL_EMC_WALL_11 692
+#define EL_EMC_WALL_12 693
+#define EL_EMC_WALL_13 694
+#define EL_EMC_WALL_14 695
+#define EL_EMC_WALL_15 696
+#define EL_EMC_WALL_16 697
+#define EL_EMC_WALL_SLIPPERY_1 698
+#define EL_EMC_WALL_SLIPPERY_2 699
+#define EL_EMC_WALL_SLIPPERY_3 700
+#define EL_EMC_WALL_SLIPPERY_4 701
+#define EL_EMC_FAKE_GRASS 702
+#define EL_EMC_DRIPPER 703
+
+#define NUM_FILE_ELEMENTS 704
/* "real" (and therefore drawable) runtime elements */
#define GFX_ARG_2ND_OFFSET 12
#define GFX_ARG_2ND_XOFFSET 13
#define GFX_ARG_2ND_YOFFSET 14
-#define GFX_ARG_FRAMES 15
-#define GFX_ARG_FRAMES_PER_LINE 16
-#define GFX_ARG_START_FRAME 17
-#define GFX_ARG_DELAY 18
-#define GFX_ARG_ANIM_MODE 19
-#define GFX_ARG_GLOBAL_SYNC 20
-#define GFX_ARG_CRUMBLED_LIKE 21
-#define GFX_ARG_DIGGABLE_LIKE 22
-#define GFX_ARG_BORDER_SIZE 23
-#define GFX_ARG_STEP_OFFSET 24
-#define GFX_ARG_STEP_DELAY 25
-#define GFX_ARG_DIRECTION 26
-#define GFX_ARG_POSITION 27
-#define GFX_ARG_DRAW_XOFFSET 28
-#define GFX_ARG_DRAW_YOFFSET 29
-#define GFX_ARG_DRAW_MASKED 30
-#define GFX_ARG_ANIM_DELAY_FIXED 31
-#define GFX_ARG_ANIM_DELAY_RANDOM 32
-#define GFX_ARG_POST_DELAY_FIXED 33
-#define GFX_ARG_POST_DELAY_RANDOM 34
-#define GFX_ARG_NAME 35
-#define GFX_ARG_SCALE_UP_FACTOR 36
-
-#define NUM_GFX_ARGS 37
+#define GFX_ARG_2ND_SWAP_TILES 15
+#define GFX_ARG_FRAMES 16
+#define GFX_ARG_FRAMES_PER_LINE 17
+#define GFX_ARG_START_FRAME 18
+#define GFX_ARG_DELAY 19
+#define GFX_ARG_ANIM_MODE 20
+#define GFX_ARG_GLOBAL_SYNC 21
+#define GFX_ARG_CRUMBLED_LIKE 22
+#define GFX_ARG_DIGGABLE_LIKE 23
+#define GFX_ARG_BORDER_SIZE 24
+#define GFX_ARG_STEP_OFFSET 25
+#define GFX_ARG_STEP_DELAY 26
+#define GFX_ARG_DIRECTION 27
+#define GFX_ARG_POSITION 28
+#define GFX_ARG_DRAW_XOFFSET 29
+#define GFX_ARG_DRAW_YOFFSET 30
+#define GFX_ARG_DRAW_MASKED 31
+#define GFX_ARG_ANIM_DELAY_FIXED 32
+#define GFX_ARG_ANIM_DELAY_RANDOM 33
+#define GFX_ARG_POST_DELAY_FIXED 34
+#define GFX_ARG_POST_DELAY_RANDOM 35
+#define GFX_ARG_NAME 36
+#define GFX_ARG_SCALE_UP_FACTOR 37
+
+#define NUM_GFX_ARGS 38
/* values for sound configuration suffixes */
/* program information and versioning definitions */
#define PROGRAM_VERSION_MAJOR 3
-#define PROGRAM_VERSION_MINOR 1
-#define PROGRAM_VERSION_PATCH 1
-#define PROGRAM_VERSION_BUILD 0
+#define PROGRAM_VERSION_MINOR 2
+#define PROGRAM_VERSION_PATCH 0
+#define PROGRAM_VERSION_BUILD 1
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_AUTHOR_STRING "Holger Schemel"
int offset_x, offset_y; /* x/y offset to next animation frame */
int offset2_x, offset2_y; /* x/y offset to second movement tile */
boolean double_movement; /* animation has second movement tile */
+ int swap_double_tiles; /* explicitely force or forbid tile swapping */
int anim_frames;
int anim_frames_per_line;
int anim_start_frame;