rnd-20030217-1-src
[rocksndiamonds.git] / src / libgame / toons.c
index c8c71e3a96c6f7ac6323ae12dea69b10c1197a75..613d2017a7993e5aa900f371c0779faa9a261d64 100644 (file)
@@ -85,6 +85,7 @@ static int get_toon_direction(char *direction_raw)
 {
   static char *direction = NULL;
 
+  /* !!! MEMORY LEAK HERE! FIX IT! !!! */
   setString(&direction, getStringToLower(direction_raw));
 
   return (strcmp(direction, "left")  == 0 ? MV_LEFT :
@@ -317,6 +318,10 @@ void HandleAnimation(int mode)
   if (!setup.toons)
     return;
 
+  /* this may happen after reloading graphics and redefining "num_toons" */
+  if (toon_nr >= screen_info.num_toons)
+    anim_restart = TRUE;
+
   switch(mode)
   {
     case ANIM_START:
@@ -359,7 +364,7 @@ void HandleAnimation(int mode)
     toon_nr = SimpleRND(screen_info.num_toons);
   }
 
-  anim_restart = reset_delay = AnimateToon(toon_nr,anim_restart);
+  anim_restart = reset_delay = AnimateToon(toon_nr, anim_restart);
 }
 
 void InitAnimation()