rnd-20021123-1-src
[rocksndiamonds.git] / src / main.h
index a0f3ad8034a14971724d366844b7ca41afe7e83f..9448687c29c58f46dbcf37df4efc34c2013e8cfd 100644 (file)
 #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_OFFSET                         2
 #define GFX_ARG_VERTICAL                       3
 #define GFX_ARG_FRAMES                         4
-#define GFX_ARG_DELAY                          5
-#define GFX_ARG_MODE_LOOP                      6
-#define GFX_ARG_MODE_LINEAR                    7
-#define GFX_ARG_MODE_PINGPONG                  8
-#define GFX_ARG_MODE_PINGPONG2                 9
-#define GFX_ARG_MODE_REVERSE                   10
-#define GFX_ARG_GLOBAL_SYNC                    11
+#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 NUM_GFX_ARGS                           13
+
 
 /* values for sound configuration suffixes */
 /* (currently none) */
@@ -1610,6 +1617,7 @@ struct NewGraphicInfo
   int src_x, src_y;            /* derived from (tile sized) .xpos/.ypos */
   int offset_x, offset_y;      /* x/y offset to next animation frame */
   int anim_frames;
+  int anim_start_frame;
   int anim_delay;              /* important: delay of 1 means "no delay"! */
   int anim_mode;
   boolean anim_global_sync;