rnd-20030208-2-src
[rocksndiamonds.git] / src / libgame / toons.h
index cf267345df4cecd8b167cf09ef12ff21c799c57c..8ea41d1868fb375e51de653b2e699c5b488e50ac 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,46 @@ 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 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 */
+
+#if 0
+  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;
+#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);