rnd-20021211-1-src
[rocksndiamonds.git] / src / main.h
index af0b57cfd3ecf6ca0e297993b43ff2a5b9110401..b24799a61fcceadf7081f4b6aa17367e64780cfe 100644 (file)
 #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_GENERIC_START      IMG_GENERIC_0
 
 #define WIN_XSIZE      672
 #define WIN_YSIZE      560
 
 #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_GENERIC_START               360
+#define EL_GENERIC_0                   (EL_GENERIC_START + 0)
+#define EL_GENERIC_31                  (EL_GENERIC_START + 31)
+#define EL_GENERIC_END                 (EL_GENERIC_START + 31)
+
+#define NUM_FILE_ELEMENTS              392
 
 
 /* "real" (and therefore drawable) runtime elements */
 #define EL_TIMEGATE_CLOSING            (EL_FIRST_RUNTIME_REAL + 20)
 #define EL_PEARL_BREAKING              (EL_FIRST_RUNTIME_REAL + 21)
 #define EL_TRAP_ACTIVE                 (EL_FIRST_RUNTIME_REAL + 22)
-#define EL_SPRING_MOVING               (EL_FIRST_RUNTIME_REAL + 23)
-#define EL_SP_MURPHY_CLONE             (EL_FIRST_RUNTIME_REAL + 24)
-#define EL_QUICKSAND_EMPTYING          (EL_FIRST_RUNTIME_REAL + 25)
-#define EL_MAGIC_WALL_EMPTYING         (EL_FIRST_RUNTIME_REAL + 26)
-#define EL_BD_MAGIC_WALL_EMPTYING      (EL_FIRST_RUNTIME_REAL + 27)
-#define EL_AMOEBA_DRIPPING             (EL_FIRST_RUNTIME_REAL + 28)
-#define EL_SP_EXIT_OPEN                        (EL_FIRST_RUNTIME_REAL + 29)
-#define EL_INVISIBLE_STEELWALL_ACTIVE  (EL_FIRST_RUNTIME_REAL + 30)
-#define EL_INVISIBLE_SAND_ACTIVE       (EL_FIRST_RUNTIME_REAL + 31)
-#define EL_INVISIBLE_WALL_ACTIVE       (EL_FIRST_RUNTIME_REAL + 32)
-#define EL_CONVEYOR_BELT1_LEFT_ACTIVE  (EL_FIRST_RUNTIME_REAL + 33)
-#define EL_CONVEYOR_BELT1_MIDDLE_ACTIVE        (EL_FIRST_RUNTIME_REAL + 34)
-#define EL_CONVEYOR_BELT1_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 35)
-#define EL_CONVEYOR_BELT2_LEFT_ACTIVE  (EL_FIRST_RUNTIME_REAL + 36)
-#define EL_CONVEYOR_BELT2_MIDDLE_ACTIVE        (EL_FIRST_RUNTIME_REAL + 37)
-#define EL_CONVEYOR_BELT2_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 38)
-#define EL_CONVEYOR_BELT3_LEFT_ACTIVE  (EL_FIRST_RUNTIME_REAL + 39)
-#define EL_CONVEYOR_BELT3_MIDDLE_ACTIVE        (EL_FIRST_RUNTIME_REAL + 40)
-#define EL_CONVEYOR_BELT3_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 41)
-#define EL_CONVEYOR_BELT4_LEFT_ACTIVE  (EL_FIRST_RUNTIME_REAL + 42)
-#define EL_CONVEYOR_BELT4_MIDDLE_ACTIVE        (EL_FIRST_RUNTIME_REAL + 43)
-#define EL_CONVEYOR_BELT4_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 44)
+#define EL_SP_MURPHY_CLONE             (EL_FIRST_RUNTIME_REAL + 23)
+#define EL_QUICKSAND_EMPTYING          (EL_FIRST_RUNTIME_REAL + 24)
+#define EL_MAGIC_WALL_EMPTYING         (EL_FIRST_RUNTIME_REAL + 25)
+#define EL_BD_MAGIC_WALL_EMPTYING      (EL_FIRST_RUNTIME_REAL + 26)
+#define EL_AMOEBA_DRIPPING             (EL_FIRST_RUNTIME_REAL + 27)
+#define EL_SP_EXIT_OPEN                        (EL_FIRST_RUNTIME_REAL + 28)
+#define EL_INVISIBLE_STEELWALL_ACTIVE  (EL_FIRST_RUNTIME_REAL + 29)
+#define EL_INVISIBLE_SAND_ACTIVE       (EL_FIRST_RUNTIME_REAL + 30)
+#define EL_INVISIBLE_WALL_ACTIVE       (EL_FIRST_RUNTIME_REAL + 31)
+#define EL_CONVEYOR_BELT1_LEFT_ACTIVE  (EL_FIRST_RUNTIME_REAL + 32)
+#define EL_CONVEYOR_BELT1_MIDDLE_ACTIVE        (EL_FIRST_RUNTIME_REAL + 33)
+#define EL_CONVEYOR_BELT1_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 34)
+#define EL_CONVEYOR_BELT2_LEFT_ACTIVE  (EL_FIRST_RUNTIME_REAL + 35)
+#define EL_CONVEYOR_BELT2_MIDDLE_ACTIVE        (EL_FIRST_RUNTIME_REAL + 36)
+#define EL_CONVEYOR_BELT2_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 37)
+#define EL_CONVEYOR_BELT3_LEFT_ACTIVE  (EL_FIRST_RUNTIME_REAL + 38)
+#define EL_CONVEYOR_BELT3_MIDDLE_ACTIVE        (EL_FIRST_RUNTIME_REAL + 39)
+#define EL_CONVEYOR_BELT3_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 40)
+#define EL_CONVEYOR_BELT4_LEFT_ACTIVE  (EL_FIRST_RUNTIME_REAL + 41)
+#define EL_CONVEYOR_BELT4_MIDDLE_ACTIVE        (EL_FIRST_RUNTIME_REAL + 42)
+#define EL_CONVEYOR_BELT4_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 43)
 
 /* "unreal" (and therefore not drawable) runtime elements */
-#define EL_FIRST_RUNTIME_UNREAL                (EL_FIRST_RUNTIME_REAL + 45)
+#define EL_FIRST_RUNTIME_UNREAL                (EL_FIRST_RUNTIME_REAL + 44)
 
 #define EL_BLOCKED                     (EL_FIRST_RUNTIME_UNREAL + 0)
 #define EL_EXPLOSION                   (EL_FIRST_RUNTIME_UNREAL + 1)
 #define GFX_ACTION_PASSING             8
 #define GFX_ACTION_IMPACT              9
 #define GFX_ACTION_CRACKING            10
-#define GFX_ACTION_ACTIVATING          11
-#define GFX_ACTION_EATING              12
-#define GFX_ACTION_ATTACKING           13
-#define GFX_ACTION_GROWING             14
-#define GFX_ACTION_OTHER               15
-
-#define NUM_GFX_ACTIONS                        16
+#define GFX_ACTION_BREAKING            11
+#define GFX_ACTION_ACTIVATING          12
+#define GFX_ACTION_OPENING             13
+#define GFX_ACTION_CLOSING             14
+#define GFX_ACTION_EATING              15
+#define GFX_ACTION_ATTACKING           16
+#define GFX_ACTION_GROWING             17
+#define GFX_ACTION_SHRINKING           18
+#define GFX_ACTION_OTHER               19
+
+#define NUM_GFX_ACTIONS                        20
 #define NUM_GFX_ACTIONS_MAPPED         8
 
 
 #define GFX_ARG_MODE_REVERSE                   11
 #define GFX_ARG_GLOBAL_SYNC                    12
 
+#define NUM_GFX_ARGS                           13
+
+
 /* values for sound configuration suffixes */
 /* (currently none) */
 
@@ -1618,7 +1645,10 @@ struct NewGraphicInfo
 };
 
 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;
 extern DrawBuffer      *drawto_field;