removed obsolete toon animation code (done by global animations now)
[rocksndiamonds.git] / src / cartoons.c
index 2e0743646589c34105146d28404cc9c217b415c8..e572b043b118bd9f0cd503a2a5450b708b88a768 100644 (file)
 
 #define ANIM_CLASS_BIT_TITLE_INITIAL   0
 #define ANIM_CLASS_BIT_TITLE           1
-#define ANIM_CLASS_BIT_SUBMENU         2
-#define ANIM_CLASS_BIT_MENU            3
-#define ANIM_CLASS_BIT_TOONS           4
+#define ANIM_CLASS_BIT_MAIN            2
+#define ANIM_CLASS_BIT_SUBMENU         3
+#define ANIM_CLASS_BIT_MENU            4
+#define ANIM_CLASS_BIT_TOONS           5
 
-#define NUM_ANIM_CLASSES               5
+#define NUM_ANIM_CLASSES               6
 
 #define ANIM_CLASS_NONE                        0
 #define ANIM_CLASS_TITLE_INITIAL       (1 << ANIM_CLASS_BIT_TITLE_INITIAL)
 #define ANIM_CLASS_TITLE               (1 << ANIM_CLASS_BIT_TITLE)
+#define ANIM_CLASS_MAIN                        (1 << ANIM_CLASS_BIT_MAIN)
 #define ANIM_CLASS_SUBMENU             (1 << ANIM_CLASS_BIT_SUBMENU)
 #define ANIM_CLASS_MENU                        (1 << ANIM_CLASS_BIT_MENU)
 #define ANIM_CLASS_TOONS               (1 << ANIM_CLASS_BIT_TOONS)
 
-#define ANIM_CLASS_TOONS_MENU          (ANIM_CLASS_TOONS |     \
-                                        ANIM_CLASS_MENU)
+#define ANIM_CLASS_TOONS_MENU_MAIN     (ANIM_CLASS_TOONS |     \
+                                        ANIM_CLASS_MENU  |     \
+                                        ANIM_CLASS_MAIN)
 
 #define ANIM_CLASS_TOONS_MENU_SUBMENU  (ANIM_CLASS_TOONS |     \
                                         ANIM_CLASS_MENU  |     \
@@ -130,7 +133,8 @@ struct GameModeAnimClass
   { GAME_MODE_LEVELNR,                 ANIM_CLASS_TOONS_MENU_SUBMENU   },
   { GAME_MODE_INFO,                    ANIM_CLASS_TOONS_MENU_SUBMENU   },
   { GAME_MODE_SETUP,                   ANIM_CLASS_TOONS_MENU_SUBMENU   },
-  { GAME_MODE_MAIN,                    ANIM_CLASS_TOONS_MENU           },
+  { GAME_MODE_PSEUDO_MAINONLY,         ANIM_CLASS_TOONS_MENU_MAIN      },
+  { GAME_MODE_PSEUDO_TYPENAME,         ANIM_CLASS_TOONS_MENU_MAIN      },
   { GAME_MODE_SCORES,                  ANIM_CLASS_TOONS                },
 
   { -1,                                        -1                              }
@@ -144,6 +148,7 @@ struct AnimClassGameMode
 {
   { ANIM_CLASS_BIT_TITLE_INITIAL,      GAME_MODE_TITLE_INITIAL         },
   { ANIM_CLASS_BIT_TITLE,              GAME_MODE_TITLE                 },
+  { ANIM_CLASS_BIT_MAIN,               GAME_MODE_MAIN                  },
   { ANIM_CLASS_BIT_SUBMENU,            GAME_MODE_PSEUDO_SUBMENU        },
   { ANIM_CLASS_BIT_MENU,               GAME_MODE_PSEUDO_MENU           },
   { ANIM_CLASS_BIT_TOONS,              GAME_MODE_PSEUDO_TOONS          },
@@ -156,11 +161,8 @@ static void HandleGlobalAnim(int, int);
 static void DoAnimationExt(void);
 
 static struct GlobalAnimControlInfo global_anim_ctrl[NUM_GAME_MODES];
-static struct ToonInfo toons[MAX_NUM_TOONS];
 
 static unsigned int anim_sync_frame = 0;
-static unsigned int anim_sync_frame_delay = 0;
-static unsigned int anim_sync_frame_delay_value = GAME_FRAME_DELAY;
 
 static int game_mode_anim_classes[NUM_GAME_MODES];
 static int anim_class_game_modes[NUM_ANIM_CLASSES];
@@ -218,59 +220,6 @@ static int compareGlobalAnimMainControlInfo(const void *obj1, const void *obj2)
   return compare_result;
 }
 
-static void PrepareBackbuffer()
-{
-  if (game_status != GAME_MODE_PLAYING)
-    return;
-
-  BlitScreenToBitmap(backbuffer);
-}
-
-boolean ToonNeedsRedraw()
-{
-  return TRUE;
-}
-
-void InitToons()
-{
-  int num_toons = MAX_NUM_TOONS;
-  int i;
-
-  if (global.num_toons >= 0 && global.num_toons < MAX_NUM_TOONS)
-    num_toons = global.num_toons;
-
-  for (i = 0; i < num_toons; i++)
-  {
-    int graphic = IMG_TOON_1 + i;
-    struct FileInfo *image = getImageListEntryFromImageID(graphic);
-
-    toons[i].bitmap = graphic_info[graphic].bitmap;
-
-    toons[i].src_x = graphic_info[graphic].src_x;
-    toons[i].src_y = graphic_info[graphic].src_y;
-
-    toons[i].width  = graphic_info[graphic].width;
-    toons[i].height = graphic_info[graphic].height;
-
-    toons[i].anim_frames      = graphic_info[graphic].anim_frames;
-    toons[i].anim_delay       = graphic_info[graphic].anim_delay;
-    toons[i].anim_mode        = graphic_info[graphic].anim_mode;
-    toons[i].anim_start_frame = graphic_info[graphic].anim_start_frame;
-
-    toons[i].step_offset = graphic_info[graphic].step_offset;
-    toons[i].step_delay  = graphic_info[graphic].step_delay;
-
-    toons[i].direction = image->parameter[GFX_ARG_DIRECTION];
-    toons[i].position = image->parameter[GFX_ARG_POSITION];
-  }
-
-  InitToonScreen(bitmap_db_toons,
-                BackToFront, PrepareBackbuffer, ToonNeedsRedraw,
-                toons, num_toons,
-                REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE,
-                GAME_FRAME_DELAY);
-}
-
 static void InitToonControls()
 {
   int mode_nr_toons = GAME_MODE_PSEUDO_TOONS;
@@ -306,12 +255,14 @@ static void InitToonControls()
   for (i = 0; i < num_toons; i++)
   {
     struct GlobalAnimPartControlInfo *part = &anim->part[part_nr];
+    int sound = SND_UNDEFINED;
     int graphic = IMG_TOON_1 + i;
     int control = graphic;
 
     part->nr = part_nr;
     part->anim_nr = anim_nr;
     part->mode_nr = mode_nr;
+    part->sound = sound;
     part->graphic = graphic;
     part->graphic_info = graphic_info[graphic];
     part->control_info = graphic_info[control];
@@ -347,8 +298,6 @@ void InitGlobalAnimControls()
 
   anim_sync_frame = 0;
 
-  ResetDelayCounter(&anim_sync_frame_delay);
-
   for (m = 0; m < NUM_GAME_MODES; m++)
   {
     mode_nr = m;
@@ -489,7 +438,7 @@ void InitGlobalAnimations()
   InitGlobalAnimControls();
 }
 
-void DrawGlobalAnimExt(int drawing_stage)
+void DrawGlobalAnimationsExt(int drawing_stage)
 {
   int mode_nr;
 
@@ -640,9 +589,9 @@ void DrawGlobalAnimExt(int drawing_stage)
   }
 }
 
-void DrawGlobalAnim(int drawing_stage)
+void DrawGlobalAnimations(int drawing_stage)
 {
-  DrawGlobalAnimExt(drawing_stage);
+  DrawGlobalAnimationsExt(drawing_stage);
 }
 
 boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part)
@@ -1104,14 +1053,6 @@ static void HandleGlobalAnim(int action, int game_mode)
   HandleGlobalAnim_Mode(&global_anim_ctrl[game_mode], action);
 }
 
-void InitAnimation()
-{
-}
-
-void StopAnimation()
-{
-}
-
 static void DoAnimationExt()
 {
   int i;
@@ -1120,13 +1061,8 @@ static void DoAnimationExt()
   printf("::: DoAnimation [%d, %d]\n", anim_sync_frame, Counter());
 #endif
 
-#if 1
-  WaitUntilDelayReached(&anim_sync_frame_delay, anim_sync_frame_delay_value);
+  // global animations now synchronized with frame delay of screen update
   anim_sync_frame++;
-#else
-  if (DelayReached(&anim_sync_frame_delay, anim_sync_frame_delay_value))
-    anim_sync_frame++;
-#endif
 
   for (i = 0; i < NUM_GAME_MODES; i++)
     HandleGlobalAnim(ANIM_CONTINUE, i);
@@ -1136,13 +1072,3 @@ static void DoAnimationExt()
   redraw_mask = REDRAW_ALL;
 #endif
 }
-
-void DoAnimation()
-{
-  // HandleAnimation(ANIM_CONTINUE);
-
-#if 1
-  // force screen redraw in next frame to continue drawing global animations
-  redraw_mask = REDRAW_ALL;
-#endif
-}