improved definition of constants for toon animations
[rocksndiamonds.git] / src / cartoons.c
index e588cc80747d2366ff22409202b7eb1bf3abebe8..42864403a720b9c9acd0485f8f6c45d6067b51ce 100644 (file)
 #include "tools.h"
 
 
-/* values for global animation definition */
-#define NUM_GLOBAL_ANIMS_AND_TOONS     (NUM_GLOBAL_ANIMS + 1)
+/* values for global toon animation definition */
+#define NUM_GLOBAL_TOON_ANIMS          1
+#define NUM_GLOBAL_TOON_PARTS          MAX_NUM_TOONS
+
+/* values for global animation definition (including toons) */
+#define NUM_GLOBAL_ANIMS_AND_TOONS     (NUM_GLOBAL_ANIMS +             \
+                                        NUM_GLOBAL_TOON_ANIMS)
 #define NUM_GLOBAL_ANIM_PARTS_AND_TOONS        MAX(NUM_GLOBAL_ANIM_PARTS_ALL,  \
-                                           MAX_NUM_TOONS)
+                                           NUM_GLOBAL_TOON_PARTS)
 
 struct GlobalAnimPartControlInfo
 {
@@ -35,9 +40,9 @@ struct GlobalAnimPartControlInfo
   unsigned int initial_anim_sync_frame;
   unsigned int step_delay, step_delay_value;
 
-  unsigned int init_delay, init_delay_value;
-  unsigned int anim_delay, anim_delay_value;
-  unsigned int post_delay, post_delay_value;
+  int init_delay_counter;
+  int anim_delay_counter;
+  int post_delay_counter;
 
   int state;
 };
@@ -58,7 +63,7 @@ struct GlobalAnimMainControlInfo
 
   boolean has_base;
 
-  unsigned int init_delay, init_delay_value;
+  int init_delay_counter;
 
   int state;
 };
@@ -180,8 +185,7 @@ static void InitToonControls()
 
   anim->has_base = FALSE;
 
-  anim->init_delay = 0;
-  anim->init_delay_value = 0;
+  anim->init_delay_counter = 0;
 
   anim->state = ANIM_STATE_INACTIVE;
 
@@ -262,8 +266,7 @@ void InitGlobalAnimControls()
 
       anim->has_base = FALSE;
 
-      anim->init_delay = 0;
-      anim->init_delay_value = 0;
+      anim->init_delay_counter = 0;
 
       anim->state = ANIM_STATE_INACTIVE;
 
@@ -427,14 +430,14 @@ int HandleGlobalAnim_Part(struct GlobalAnimPartControlInfo *part, int state)
   {
     ResetDelayCounterExt(&part->step_delay, anim_sync_frame);
 
-    part->init_delay_value =
+    part->init_delay_counter =
       (c->init_delay_fixed + GetSimpleRandom(c->init_delay_random));
 
-    part->anim_delay_value =
+    part->anim_delay_counter =
       (c->anim_delay_fixed + GetSimpleRandom(c->anim_delay_random));
 
     part->initial_anim_sync_frame =
-      (g->anim_global_sync ? 0 : anim_sync_frame + part->init_delay_value);
+      (g->anim_global_sync ? 0 : anim_sync_frame + part->init_delay_counter);
 
     if (c->direction & MV_HORIZONTAL)
     {
@@ -510,9 +513,9 @@ int HandleGlobalAnim_Part(struct GlobalAnimPartControlInfo *part, int state)
       part->step_yoffset = c->step_yoffset;
   }
 
-  if (part->init_delay_value > 0)
+  if (part->init_delay_counter > 0)
   {
-    part->init_delay_value--;
+    part->init_delay_counter--;
 
     return ANIM_STATE_WAITING;
   }
@@ -523,27 +526,27 @@ int HandleGlobalAnim_Part(struct GlobalAnimPartControlInfo *part, int state)
       (part->y >=  FULL_SYSIZE && part->step_yoffset >= 0))
     return ANIM_STATE_RESTART;
 
-  if (part->anim_delay_value > 0)
+  if (part->anim_delay_counter > 0)
   {
-    part->anim_delay_value--;
+    part->anim_delay_counter--;
 
-    if (part->anim_delay_value == 0)
+    if (part->anim_delay_counter == 0)
     {
-      part->post_delay_value =
+      part->post_delay_counter =
        (c->post_delay_fixed + GetSimpleRandom(c->post_delay_random));
 
-      if (part->post_delay_value > 0)
+      if (part->post_delay_counter > 0)
        return ANIM_STATE_RUNNING;
 
       return ANIM_STATE_RESTART | ANIM_STATE_RUNNING;
     }
   }
 
-  if (part->post_delay_value > 0)
+  if (part->post_delay_counter > 0)
   {
-    part->post_delay_value--;
+    part->post_delay_counter--;
 
-    if (part->post_delay_value == 0)
+    if (part->post_delay_counter == 0)
       return ANIM_STATE_RESTART;
 
     return ANIM_STATE_WAITING;