rnd-19991024-2-src
[rocksndiamonds.git] / src / main.h
index 66c7d05f4505cd21848b5dcf472477532a69dd4f..add49d76a76f13b59fcfa5d6cd06bb7b401aee4b 100644 (file)
@@ -180,13 +180,15 @@ typedef unsigned char byte;
 #define IS_BLOCKED(x,y)                (Feld[x][y] == EL_BLOCKED)
 
 #define EL_CHANGED(e)          ((e) == EL_FELSBROCKEN    ? EL_EDELSTEIN :  \
+                                (e) == EL_BD_ROCK        ? EL_EDELSTEIN_BD : \
                                 (e) == EL_EDELSTEIN      ? EL_DIAMANT :    \
                                 (e) == EL_EDELSTEIN_GELB ? EL_DIAMANT :    \
                                 (e) == EL_EDELSTEIN_ROT  ? EL_DIAMANT :    \
                                 (e) == EL_EDELSTEIN_LILA ? EL_DIAMANT :    \
                                 EL_FELSBROCKEN)
 #define EL_CHANGED2(e)         ((e) == EL_FELSBROCKEN ? EL_EDELSTEIN_BD :  \
-                                EL_FELSBROCKEN)
+                                (e) == EL_BD_ROCK     ? EL_EDELSTEIN_BD : \
+                                EL_BD_ROCK)
 #define IS_DRAWABLE(e)         ((e) < EL_BLOCKED)
 #define IS_NOT_DRAWABLE(e)     ((e) >= EL_BLOCKED)
 #define TAPE_IS_EMPTY(x)       ((x).length == 0)
@@ -453,6 +455,7 @@ struct GameInfo
 
 struct GlobalInfo
 {
+  int dummy;
 };
 
 extern Display        *display;
@@ -659,7 +662,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
@@ -700,7 +703,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
@@ -754,14 +757,10 @@ extern char               *element_info[];
 #define EL_BADEWANNE3          102
 #define EL_BADEWANNE4          103
 #define EL_BADEWANNE5          104
-
-#define EL_UNUSED_105          105
-#define EL_UNUSED_106          106
-
+#define EL_BD_WALL             105
+#define EL_BD_ROCK             106
 #define EL_AUSGANG_AUF         107
-
 #define EL_BLACK_ORB           108
-
 #define EL_AMOEBA2DIAM         109
 #define EL_MOLE                        110
 #define EL_PINGUIN             111
@@ -986,16 +985,17 @@ extern char               *element_info[];
 #define EL_TUBE_RIGHT_DOWN     354
 #define EL_SPRING              355
 #define EL_TRAP_INACTIVE       356
+#define EL_DX_SUPABOMB         357
 
 /* "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 +1013,8 @@ extern char               *element_info[];
 #define EL_TIMEGATE_CLOSING    520
 #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 +1147,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 +1185,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 +1379,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)
@@ -1477,6 +1481,9 @@ extern char               *element_info[];
 
 #define GFX_TRAP_INACTIVE      (GFX_START_ROCKSMORE +  0 * MORE_PER_LINE +  4)
 #define GFX_TRAP_ACTIVE                (GFX_START_ROCKSMORE +  0 * MORE_PER_LINE +  7)
+#define GFX_BD_WALL            (GFX_START_ROCKSMORE +  1 * MORE_PER_LINE +  4)
+#define GFX_BD_ROCK            (GFX_START_ROCKSMORE +  2 * MORE_PER_LINE +  4)
+#define GFX_DX_SUPABOMB                (GFX_START_ROCKSMORE +  1 * MORE_PER_LINE +  7)
 
 /* graphics from "RocksFont" */
 #define GFX_CHAR_START         (GFX_START_ROCKSFONT)
@@ -1655,7 +1662,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"
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
 #define WINDOW_TITLE_STRING    PROGRAM_TITLE_STRING " " PROGRAM_VERSION_STRING