rnd-20030210-1-src
[rocksndiamonds.git] / src / libgame / toons.h
index cf267345df4cecd8b167cf09ef12ff21c799c57c..a30cbe63456786bcf9d1dc4642930d6a05487c17 100644 (file)
@@ -24,7 +24,9 @@
 #define ANIM_PINGPONG          (1 << 2)
 #define ANIM_PINGPONG2         (1 << 3)
 #define ANIM_REVERSE           (1 << 4)
+#define ANIM_RANDOM            (1 << 5)
 
+#if 0
 /* values for toon animation direction */
 #define ANIMDIR_LEFT   1
 #define ANIMDIR_RIGHT  2
 #define ANIMPOS_UP     4
 #define ANIMPOS_DOWN   8
 #define ANIMPOS_UPPER  16
+#endif
 
 
 struct ToonScreenInfo
 {
-  Bitmap **toon_bitmap_array;
   Bitmap *save_buffer;
   void (*update_function)(void);
   void (*prepare_backbuffer_function)(void);
@@ -52,23 +54,53 @@ struct ToonScreenInfo
 
   int startx, starty;
   int width, height;
+
+  int frame_delay_value;
 };
 
 struct ToonInfo
 {
-  int bitmap_nr;
+#if 0
+  int graphic;
   int width, height;
   int src_x, src_y;
-  int frames;
-  int frames_per_second;
-  int stepsize;
-  int mode;
+  int anim_frames;
+  int step_delay;
+  int step_offset;
+  int anim_mode;
   int direction;
   int position;
+
+  int anim_delay;
+  int anim_start_frame;
+  Bitmap *bitmap;      /* dynamically initialized */
+
+  char *direction_str;
+  char *position_str;
+
+#else
+
+  Bitmap *bitmap;
+  int src_x, src_y;
+  int width, height;
+  int anim_frames;
+  int anim_start_frame;
+  int anim_delay;
+  int anim_mode;
+  int step_offset;
+  int step_delay;
+  char *direction;
+  char *position;
+#endif
 };
 
 
-void InitToonScreen();
+int getAnimationFrame(int, int, int, int, int);
+
+void InitToonScreen(Bitmap *, void (*update_function)(void),
+                   void (*prepare_backbuffer_function)(void),
+                   boolean (*redraw_needed_function)(void),
+                   struct ToonInfo *, int, int, int, int, int, int);
 void InitAnimation(void);
 void StopAnimation(void);
 void DoAnimation(void);