rnd-20030823-2-src
[rocksndiamonds.git] / src / main.h
index 601b0a71e6612bd549eac2b84e92f78e726d082c..cab4e71de89b87402187f46a0fdcf9192565ada2 100644 (file)
@@ -85,7 +85,7 @@
 #define EP_PASSABLE_INSIDE     20
 #define EP_PASSABLE_UNDER      21
 #define EP_DROPPABLE           22
-#define EP_UNUSED_23           23
+#define EP_CAN_EXPLODE_1X1     23
 #define EP_PUSHABLE            24
 
 /* values for special configurable properties (depending on level settings) */
 #define EP_EXPLOSION_PROOF     68
 #define EP_CAN_SMASH           69
 #define EP_CAN_EXPLODE         70
+#define EP_CAN_EXPLODE_3X3     71
 
 /* values for internal purpose only (level editor) */
-#define EP_EXPLODE_RESULT      71
-#define EP_WALK_TO_OBJECT      72
-#define EP_DEADLY              73
+#define EP_EXPLODE_RESULT      72
+#define EP_WALK_TO_OBJECT      73
+#define EP_DEADLY              74
 
-#define NUM_ELEMENT_PROPERTIES 74
+#define NUM_ELEMENT_PROPERTIES 75
 
 #define NUM_EP_BITFIELDS       ((NUM_ELEMENT_PROPERTIES + 31) / 32)
 #define EP_BITFIELD_BASE       0
                                 (PROPERTY_VAR(e,p) &= ~PROPERTY_BIT(p)))
 
 
-/* values for change events for custom elements */
+/* values for change events for custom elements (stored in level file) */
 #define CE_DELAY               0
 #define CE_TOUCHED_BY_PLAYER   1
 #define CE_PRESSED_BY_PLAYER   2
 #define CE_OTHER_GETS_COLLECTED        14
 #define CE_OTHER_GETS_DROPPED  15
 
-/* values for internal purpose only (level editor) */
+/* values for activating change events (also stored in level file!) */
 #define CE_BY_PLAYER           16
 #define CE_BY_COLLISION                17
 #define CE_BY_OTHER            18
 #define IS_PASSABLE_INSIDE(e)  HAS_PROPERTY(e, EP_PASSABLE_INSIDE)
 #define IS_PASSABLE_UNDER(e)   HAS_PROPERTY(e, EP_PASSABLE_UNDER)
 #define IS_DROPPABLE(e)                HAS_PROPERTY(e, EP_DROPPABLE)
+#define CAN_EXPLODE_1X1(e)     HAS_PROPERTY(e, EP_CAN_EXPLODE_1X1)
 #define IS_PUSHABLE(e)         HAS_PROPERTY(e, EP_PUSHABLE)
 
 /* macros for special configurable properties */
 #define IS_EXPLOSION_PROOF(e)  HAS_PROPERTY(e, EP_EXPLOSION_PROOF)
 #define CAN_SMASH(e)           HAS_PROPERTY(e, EP_CAN_SMASH)
 #define CAN_EXPLODE(e)         HAS_PROPERTY(e, EP_CAN_EXPLODE)
+#define CAN_EXPLODE_3X3(e)     HAS_PROPERTY(e, EP_CAN_EXPLODE_3X3)
 
 /* special macros used in game engine */
 #define IS_CUSTOM_ELEMENT(e)   ((e) >= EL_CUSTOM_START &&              \
 
 #include "conf_cus.h"  /* include auto-generated data structure definitions */
 
-#define EL_CUSTOM_END                  (EL_CUSTOM_START + 127)
+#define NUM_CUSTOM_ELEMENTS            256
 
-#define NUM_CUSTOM_ELEMENTS            128
-#define NUM_FILE_ELEMENTS              488
+#define EL_CUSTOM_END          (EL_CUSTOM_START + NUM_CUSTOM_ELEMENTS - 1)
+#define NUM_FILE_ELEMENTS      (EL_CUSTOM_START + NUM_CUSTOM_ELEMENTS)
 
 
 /* "real" (and therefore drawable) runtime elements */
 
 #define PROGRAM_VERSION_MAJOR  3
 #define PROGRAM_VERSION_MINOR  0
-#define PROGRAM_VERSION_PATCH  0
+#define PROGRAM_VERSION_PATCH  3
 #define PROGRAM_VERSION_RELEASE        0
-#define PROGRAM_VERSION_STRING "3.0.0"
+#define PROGRAM_VERSION_STRING "3.0.3"
 
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"