diff -r 9892d596693e -r 389453e1e09e share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/queen.lua --- 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