rnd-20030128-1-src
[rocksndiamonds.git] / src / main.h
index 3fc93b732c3d53bb42eb0ec031db182c63505c66..31264e0345dbc73b994973a000ee2883729a853e 100644 (file)
 #define ANIM_MODE(g)           (graphic_info[g].anim_mode)
 
 #define IS_ANIMATED(g)         (ANIM_FRAMES(g) > 1)
-#define IS_NEW_FRAME(f, g)     ((f) % ANIM_DELAY(g) == 0)
+#define IS_NEW_DELAY(f, g)     ((f) % ANIM_DELAY(g) == 0)
+#define IS_NEW_FRAME(f, g)     (IS_ANIMATED(g) && IS_NEW_DELAY(f, g))
 
 #define IS_LOOP_SOUND(s)       (sound_info[s].loop)
 
 
 #define NUM_ACTIONS                            21
 
+/* values for special image configuration suffixes */
+#define GFX_SPECIAL_ARG_EDITOR                 0
+
+#define NUM_SPECIAL_GFX_ARGS                   1
+
 
 /* values for image configuration suffixes */
 #define GFX_ARG_XPOS                           0
@@ -1049,6 +1055,8 @@ struct ElementInfo
                                /* special graphics for left/right/up/down */
   int direction_graphic[NUM_ACTIONS][NUM_DIRECTIONS];
 
+  int editor_graphic;          /* graphic displayed in level editor */
+
   int sound[NUM_ACTIONS];      /* default sounds for several actions */
 };
 
@@ -1087,6 +1095,12 @@ struct ElementDirectionInfo
   int value;
 };
 
+struct SpecialSuffixInfo
+{
+  char *suffix;
+  int value;
+};
+
 
 #if 0
 extern GC                      tile_clip_gc;
@@ -1163,6 +1177,7 @@ extern struct GlobalInfo  global;
 extern struct ElementInfo      element_info[];
 extern struct ElementActionInfo        element_action_info[];
 extern struct ElementDirectionInfo element_direction_info[];
+extern struct SpecialSuffixInfo special_suffix_info[];
 extern struct GraphicInfo      *graphic_info;
 extern struct SoundInfo               *sound_info;
 extern struct ConfigInfo       image_config[], sound_config[];