#define PLAYER_NR_GFX(g,i) ((g) + i * (IMG_PLAYER2 - IMG_PLAYER1))
+#define ANIM_FRAMES(g) (graphic_info[g].anim_frames)
+#define ANIM_DELAY(g) (graphic_info[g].anim_delay)
+#define ANIM_MODE(g) (graphic_info[g].anim_mode)
+
+#define IS_ANIMATED(g) (ANIM_FRAMES(g) > 1)
+#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)
+
#if 0
char *token_name; /* element token prefix used in config files */
char *sound_class_name; /* classification for custom sound effects */
char *editor_description; /* short description for level editor */
+ char *custom_description; /* custom description for level editor */
int graphic[NUM_ACTIONS]; /* default graphics for several actions */
/* special graphics for left/right/up/down */
extern unsigned long Properties2[MAX_NUM_ELEMENTS];
extern int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern short GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern int lev_fieldx, lev_fieldy;
extern int scroll_x, scroll_y;