rnd-20020930-2-src
[rocksndiamonds.git] / src / main.h
index a6db091175f0cf7a12959d5f1b27f95ad2ffa87d..354ec878d43882a3f22d144508942cf185c42562 100644 (file)
 
 
 /* values for animation action types */
-#define GFX_ACTION_UNKNOWN             0
-#define GFX_ACTION_DEFAULT             1
-#define GFX_ACTION_WAITING             2
-#define GFX_ACTION_FALLING             3
-#define GFX_ACTION_MOVING              4
-#define GFX_ACTION_DIGGING             5
-#define GFX_ACTION_SNAPPING            6
-#define GFX_ACTION_COLLECTING          7
-#define GFX_ACTION_PUSHING             8
-#define GFX_ACTION_PASSING             9
-#define GFX_ACTION_IMPACT              10
-#define GFX_ACTION_CRACKING            11
-#define GFX_ACTION_ACTIVATING          12
-#define GFX_ACTION_EATING              13
-#define GFX_ACTION_ATTACKING           14
-#define GFX_ACTION_GROWING             15
-#define GFX_ACTION_OTHER               16
-
-#define NUM_GFX_ACTIONS                        17
+#define GFX_ACTION_DEFAULT             0
+#define GFX_ACTION_WAITING             1
+#define GFX_ACTION_FALLING             2
+#define GFX_ACTION_MOVING              3
+#define GFX_ACTION_DIGGING             4
+#define GFX_ACTION_SNAPPING            5
+#define GFX_ACTION_COLLECTING          6
+#define GFX_ACTION_PUSHING             7
+#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 NUM_GFX_ACTIONS_MAPPED         8
 
 
 #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_MODE_LINEAR                    4
+#define GFX_ARG_MODE_PINGPONG                  5
+#define GFX_ARG_MODE_PINGPONG2                 6
+#define GFX_ARG_MODE_REVERSE                   7
+#define GFX_ARG_GLOBAL_SYNC                    8
+#define GFX_ARG_VERTICAL                       9
 
 /* 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
@@ -1564,11 +1558,11 @@ struct ElementInfo
   char *sound_class_name;      /* classification for custom sound effects */
   char *editor_description;    /* short description for level editor */
 
+                               /* default graphics for several actions */
   int graphic[NUM_GFX_ACTIONS_MAPPED];
 
                                /* special graphics for left/right/up/down */
-  int direction_graphic[NUM_GFX_ACTIONS_MAPPED][4];
-  boolean has_direction_graphic[NUM_GFX_ACTIONS_MAPPED];
+  int direction_graphic[NUM_GFX_ACTIONS_MAPPED][NUM_MV_DIRECTIONS];
 };
 
 struct GraphicInfo
@@ -1612,6 +1606,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];
@@ -1639,6 +1634,8 @@ extern int                SiebCount;
 
 extern boolean         network_player_action_received;
 
+extern int             graphics_action_mapping[];
+
 extern struct LevelInfo                level;
 extern struct PlayerInfo       stored_player[], *local_player;
 extern struct HiScore          highscore[];