Blob Blame History Raw
diff -up berusky2-0.10/src/komat/Berusky3d.h.old berusky2-0.10/src/komat/Berusky3d.h
--- berusky2-0.10/src/komat/Berusky3d.h.old	2013-09-21 10:18:15.000000000 +0200
+++ berusky2-0.10/src/komat/Berusky3d.h	2015-12-30 19:07:28.264205991 +0100
@@ -181,8 +181,8 @@ typedef struct _GLOBALNI_KONT_ANIMACE
 
   int *p_flag;                  // kofoluv flag
   void *p_param;                // kofolova end funkce
-  int param;
-  int param2;
+  size_ptr param;
+  size_ptr param2;
   END_FUNKCE p_endfce;
   int konec;
 
diff --git a/src/kofola/animationk.cpp b/src/kofola/animationk.cpp
index 800eaa7..2e5d66c 100644
--- a/src/kofola/animationk.cpp
+++ b/src/kofola/animationk.cpp
@@ -901,13 +901,14 @@ void am_Do_Zhave_castice(LEVELINFO * p_Level)
               dwEplased =
                 dwTime - p_Level->KourovaStopa[pSystem->iKourStopa].dwStart;
 
-              if (dwEplased < 100)
+              if (dwEplased < 100) {
                 par_zrus_hnizdo(p_Level->KourovaStopa[pSystem->iKourStopa].
                   System,
                   p_Level->KourovaStopa[pSystem->iKourStopa].hHnizdo[j]);
-              else
-                par_vloz_hnizdo_pivot(p_Level->KourovaStopa[pSystem->
-                    iKourStopa].hHnizdo[j], NULL);
+              }
+              else {
+                par_vloz_hnizdo_pivot(p_Level->KourovaStopa[pSystem->iKourStopa].hHnizdo[j], NULL);
+              }
 
               p_Level->KourovaStopa[pSystem->iKourStopa].hHnizdo[j] = 0;
             }
@@ -1198,8 +1199,10 @@ void am_Do_Lifts(LEVELINFO * p_Level)
           par_zrus(p_Level->LiftParticles[i].System);
           p_Level->LiftParticles[i].System = (size_ptr)NULL;
         }
-        else
+        else if (p_Level->LiftParticles[i].hHnizdo[0]) {
           par_vloz_hnizdo_pivot(p_Level->LiftParticles[i].hHnizdo[0], NULL);
+          p_Level->LiftParticles[i].hHnizdo[0] = 0;
+        }
       }
       else {
         if (!p_Level->bGameResume)
@@ -1284,10 +1287,11 @@ void am_Do_Water_KolaB(LEVELINFO * p_Level)
             p_Level->VodniKolaB[i].pivot[0][1] - 0.67f,
             WATER_BOUNDARY_METHOD_SIZE_HEURISTICS);
 
-
-        par_vloz_hnizdo_clip(p_Level->VodniKolaB[i].hHnizdo[0],
-                             Boundary.Left, Boundary.Bottom, 
-                             Boundary.Right, Boundary.Top);
+		if (p_Level->VodniKolaB[i].hHnizdo[0]) {
+          par_vloz_hnizdo_clip(p_Level->VodniKolaB[i].hHnizdo[0],
+                               Boundary.Left, Boundary.Bottom, 
+                               Boundary.Right, Boundary.Top);
+        }
         pos[1] -= 0.33f;
 
         p_Level->VodniKolaB[i].pivot[0][0] = pos[0];
@@ -1326,6 +1330,7 @@ void am_Do_Water_KolaB(LEVELINFO * p_Level)
               }
               else if (p_Level->VodniKolaB[i].hHnizdo[0]) {
                 par_vloz_hnizdo_pivot(p_Level->VodniKolaB[i].hHnizdo[0], NULL);
+                p_Level->VodniKolaB[i].hHnizdo[0] = 0;
               }
             }
           }
@@ -1368,17 +1373,15 @@ void am_Do_Water(LEVELINFO * p_Level)
                 if (a <= 0)
                   a = 0;
 
-/*								if(p_Level->VodniKola[i].dwStop > 0)
-									par_vloz_hnizdo_scale(p_Level->VodniKola[i].hHnizdo[0], 0.01f, 0.01f, 
-														  pHnizdo->utlum_x, pHnizdo->utlum_y);*/
-
                 par_vloz_hnizdo_diff(p_Level->VodniKola[i].hHnizdo[0],
                   pHnizdo->r, pHnizdo->g, pHnizdo->b, a,
                   pHnizdo->dr, pHnizdo->dg, pHnizdo->db,
                   pHnizdo->da, pHnizdo->ka);
               }
-              else if (p_Level->VodniKola[i].hHnizdo[0])
+              else if (p_Level->VodniKola[i].hHnizdo[0]) {
                 par_vloz_hnizdo_pivot(p_Level->VodniKola[i].hHnizdo[0], NULL);
+                p_Level->VodniKola[i].hHnizdo[0] = 0;
+              }
             }
           }
         }
@@ -2154,6 +2157,7 @@ void am_Do_BublVybuchy(LEVELINFO * p_Level)
     if (p_Level->BublVybuch[i].System) {
       if (p_Level->BublVybuch[i].hHnizdo[0]) {
         par_vloz_hnizdo_pivot(p_Level->BublVybuch[i].hHnizdo[0], NULL);
+        p_Level->BublVybuch[i].hHnizdo[0] = 0;
 
         if (!par_get_hnizda(p_Level->BublVybuch[i].System)) {
           par_zrus(p_Level->BublVybuch[i].System);
@@ -2983,8 +2987,10 @@ void am_TurnOff_The_Teleport(ITEMDESC * pTel, LEVELINFO * p_Level)
     sdl_anim_start(hSvetlo, &p_Level->TrashFlag, 0, 0, 0);
   }
 
-  if (p_Level->TelCSparks[i].hHnizdo[0])
+  if (p_Level->TelCSparks[i].hHnizdo[0]) {
     par_vloz_hnizdo_pivot(p_Level->TelCSparks[i].hHnizdo[0], NULL);
+    p_Level->TelCSparks[i].hHnizdo[0] = 0;
+  }
 
   p_Level->TelCSparks[i].hHnizdo[1] = 0;
 
@@ -5120,12 +5126,14 @@ void am_Obsluha_Koure_Brouku(LEVELINFO * p_Level)
       dwTime = timeGetTime();
       dwEplased = dwTime - p_Level->KourUst[i].dwStart;
 
-      if (dwEplased > 1500)
-        for (j = 0; j < p_Level->KourUst[i].Sizeof; j++)
+      if (dwEplased > 1500) {
+        for (j = 0; j < p_Level->KourUst[i].Sizeof; j++) {
           if (p_Level->KourUst[i].hHnizdo[j]) {
             par_vloz_hnizdo_pivot(p_Level->KourUst[i].hHnizdo[j], NULL);
             p_Level->KourUst[i].hHnizdo[j] = 0;
           }
+        }
+      }
 
       if (!par_get_hnizda(p_Level->KourUst[i].System)) {
         par_zrus(p_Level->KourUst[i].System);