share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/queen.lua
changeset 12782 389453e1e09e
parent 12570 0fb15ad40595
child 12784 f12337d90d03
--- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/queen.lua	Fri Oct 27 02:17:39 2017 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/queen.lua	Fri Oct 27 05:03:58 2017 +0200
@@ -100,6 +100,8 @@
 fleeAnim = {}
 finalAnim = {}
 leaderDeadAnim = {}
+
+nativeAwaitingDeletion = nil
 -----------------------------Animations--------------------------------
 function EmitDenseClouds(dir)
   local dif
@@ -648,7 +650,10 @@
     if GetHogName(natives[i]) == GetHogName(enemy) then
       AnimSetGearPosition(enemy, GetGearPosition(natives[i]))
       DeleteGear(natives[i])
+      -- triggers AfterSetupPlace when the gear is *actually* deleted
+      nativeAwaitingDeletion = natives[i]
       DeleteGear(cyborgs[cyborgsLeft])
+      break
     end
   end
 
@@ -762,6 +767,10 @@
 function onGameStart()
   SetupAmmo()
   SetupPlace()
+  -- Animation is setup in AfterSetupPlace
+end
+
+function AfterSetupPlace()
   AnimationSetup()
   SetupEvents()
   AddAnim(startAnim)
@@ -791,6 +800,10 @@
       end
       table.remove(natives, toRemove)
       nativesLeft = nativesLeft - 1
+      if nativeAwaitingDeletion and gear == nativeAwaitingDeletion then
+        AfterSetupPlace()
+        nativeAwaitingDeletion = nil
+      end
     end
   end
 end