rnd-20021005-1-src
[rocksndiamonds.git] / src / main.h
index 4309ddbef17a5116ccc00b71308c1255552b0b84..b3b27379d86129aed3207a1cab93ac3f2868b475 100644 (file)
@@ -30,6 +30,8 @@
 #include "conf_gfx.h"
 #include "conf_snd.h"
 
+#define IMG_EMPTY      IMG_EMPTY_SPACE
+#define IMG_SP_EMPTY   IMG_SP_EMPTY_SPACE
 
 #define WIN_XSIZE      672
 #define WIN_YSIZE      560
 #define EL_BD_AMOEBA_PART2                     (EL_FIRST_DUMMY + 14)
 #define EL_BD_AMOEBA_PART3                     (EL_FIRST_DUMMY + 15)
 #define EL_BD_AMOEBA_PART4                     (EL_FIRST_DUMMY + 16)
-#define EL_AMOEBA_PART1                                (EL_FIRST_DUMMY + 17)
-#define EL_AMOEBA_PART2                                (EL_FIRST_DUMMY + 18)
-#define EL_AMOEBA_PART3                                (EL_FIRST_DUMMY + 19)
-#define EL_AMOEBA_PART4                                (EL_FIRST_DUMMY + 20)
-#define EL_AMOEBA_DEAD_PART1                   (EL_FIRST_DUMMY + 21)
-#define EL_AMOEBA_DEAD_PART2                   (EL_FIRST_DUMMY + 22)
-#define EL_AMOEBA_DEAD_PART3                   (EL_FIRST_DUMMY + 23)
-#define EL_AMOEBA_DEAD_PART4                   (EL_FIRST_DUMMY + 24)
-#define EL_DYNABOMB_ACTIVE                     (EL_FIRST_DUMMY + 25)
-#define EL_SHIELD_NORMAL_ACTIVE                        (EL_FIRST_DUMMY + 26)
-#define EL_SHIELD_DEADLY_ACTIVE                        (EL_FIRST_DUMMY + 27)
-#define EL_ARROW_RED_LEFT                      (EL_FIRST_DUMMY + 28)
-#define EL_ARROW_RED_RIGHT                     (EL_FIRST_DUMMY + 29)
-#define EL_ARROW_RED_UP                                (EL_FIRST_DUMMY + 30)
-#define EL_ARROW_RED_DOWN                      (EL_FIRST_DUMMY + 31)
-
-#define MAX_NUM_ELEMENTS                       (EL_FIRST_DUMMY + 32)
+#define EL_AMOEBA_WET_PART1                    (EL_FIRST_DUMMY + 17)
+#define EL_AMOEBA_WET_PART2                    (EL_FIRST_DUMMY + 18)
+#define EL_AMOEBA_WET_PART3                    (EL_FIRST_DUMMY + 19)
+#define EL_AMOEBA_WET_PART4                    (EL_FIRST_DUMMY + 20)
+#define EL_AMOEBA_DRY_PART1                    (EL_FIRST_DUMMY + 21)
+#define EL_AMOEBA_DRY_PART2                    (EL_FIRST_DUMMY + 22)
+#define EL_AMOEBA_DRY_PART3                    (EL_FIRST_DUMMY + 23)
+#define EL_AMOEBA_DRY_PART4                    (EL_FIRST_DUMMY + 24)
+#define EL_AMOEBA_DEAD_PART1                   (EL_FIRST_DUMMY + 25)
+#define EL_AMOEBA_DEAD_PART2                   (EL_FIRST_DUMMY + 26)
+#define EL_AMOEBA_DEAD_PART3                   (EL_FIRST_DUMMY + 27)
+#define EL_AMOEBA_DEAD_PART4                   (EL_FIRST_DUMMY + 28)
+#define EL_DYNABOMB_ACTIVE                     (EL_FIRST_DUMMY + 29)
+#define EL_SHIELD_NORMAL_ACTIVE                        (EL_FIRST_DUMMY + 30)
+#define EL_SHIELD_DEADLY_ACTIVE                        (EL_FIRST_DUMMY + 31)
+#define EL_ARROW_RED_LEFT                      (EL_FIRST_DUMMY + 32)
+#define EL_ARROW_RED_RIGHT                     (EL_FIRST_DUMMY + 33)
+#define EL_ARROW_RED_UP                                (EL_FIRST_DUMMY + 34)
+#define EL_ARROW_RED_DOWN                      (EL_FIRST_DUMMY + 35)
+
+#define MAX_NUM_ELEMENTS                       (EL_FIRST_DUMMY + 36)
 
 
 /* game graphics:
 /* values for image configuration suffixes */
 #define GFX_ARG_XPOS                           0
 #define GFX_ARG_YPOS                           1
-#define GFX_ARG_FRAMES                         2
-#define GFX_ARG_DELAY                          3
-#define GFX_ARG_PINGPONG                       4
-#define GFX_ARG_PINGPONG2                      5
-#define GFX_ARG_REVERSE                                6
-#define GFX_ARG_GLOBAL_SYNC                    7
-#define GFX_ARG_VERTICAL                       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
 
 /* values for sound configuration suffixes */
 /* (currently none) */
                                              PROGRAM_VERSION_MINOR, \
                                              PROGRAM_VERSION_PATCH)
 
-/* for DrawGraphicAnimation() [tools.c] and AnimateToon() [cartoons.c] */
-#define ANIM_NORMAL            0
-#define ANIM_REVERSE           (1 << 0)
-#define ANIM_PINGPONG          (1 << 1)
-#define ANIM_PINGPONG2         (1 << 2)
-
 /* values for game_emulation */
 #define EMU_NONE               0
 #define EMU_BOULDERDASH                1
@@ -1579,12 +1582,12 @@ struct GraphicInfo
 struct NewGraphicInfo
 {
   Bitmap *bitmap;
-  int src_x, src_y;
+  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_delay;
+  int anim_delay;              /* important: delay of 1 means "no delay"! */
   int anim_mode;
   boolean anim_global_sync;
-  boolean anim_vertical;
 };
 
 extern GC              tile_clip_gc;
@@ -1611,6 +1614,7 @@ extern short              Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern short           Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern short           StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern short           Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern boolean         Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern short           JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern short           AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];