rnd-20030118-6-src
[rocksndiamonds.git] / src / libgame / toons.h
index cf267345df4cecd8b167cf09ef12ff21c799c57c..4ed43abe148c1e16e46db1dafaa911d809a83c26 100644 (file)
@@ -24,6 +24,7 @@
 #define ANIM_PINGPONG          (1 << 2)
 #define ANIM_PINGPONG2         (1 << 3)
 #define ANIM_REVERSE           (1 << 4)
+#define ANIM_RANDOM            (1 << 5)
 
 /* values for toon animation direction */
 #define ANIMDIR_LEFT   1
@@ -41,7 +42,6 @@
 
 struct ToonScreenInfo
 {
-  Bitmap **toon_bitmap_array;
   Bitmap *save_buffer;
   void (*update_function)(void);
   void (*prepare_backbuffer_function)(void);
@@ -52,23 +52,34 @@ struct ToonScreenInfo
 
   int startx, starty;
   int width, height;
+
+  int frame_delay_value;
 };
 
 struct ToonInfo
 {
-  int bitmap_nr;
+  int graphic;
   int width, height;
   int src_x, src_y;
-  int frames;
-  int frames_per_second;
+  int anim_frames;
+  int move_delay;
   int stepsize;
-  int mode;
+  int anim_mode;
   int direction;
   int position;
+
+  int anim_delay;
+  int start_frame;
+  Bitmap *bitmap;      /* dynamically initialized */
 };
 
 
-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);