- Unset hhdriven flag for gone hedgehog
authorunc0rr
Mon, 19 Sep 2011 23:55:52 +0400
changeset 5955 07f6fa51ea58
parent 5952 ba168fa3451a
child 5965 e529b28d10e9
- Unset hhdriven flag for gone hedgehog - Fix incorrect work with states in gstWait state handler - These two changes fix the bug with hogs of gone team not disappearing
hedgewars/HHHandlers.inc
hedgewars/uTeams.pas
--- a/hedgewars/HHHandlers.inc	Sat Sep 17 10:22:35 2011 -0400
+++ b/hedgewars/HHHandlers.inc	Mon Sep 19 23:55:52 2011 +0400
@@ -1064,13 +1064,13 @@
 if ((Gear^.State and gstWait) = 0) and
     (prevState <> Gear^.State) then
     begin
-    Gear^.State:= gstWait;
+    Gear^.State:= Gear^.State or gstWait;
     Gear^.Timer:= 150
     end else
     begin
     if Gear^.Timer = 0 then
         begin
-        Gear^.State:= 0;
+        Gear^.State:= Gear^.State and not gstWait;
         Gear^.Active:= false;
         AddGearCI(Gear);
         exit
@@ -1094,7 +1094,7 @@
 else
     begin
     with Gear^.Hedgehog^ do
-        if Team^.hasGone then 
+        if Team^.hasGone then
             TeamGoneEffect(Team^)
         else
             doStepHedgehogDriven(Gear)
--- a/hedgewars/uTeams.pas	Sat Sep 17 10:22:35 2011 -0400
+++ b/hedgewars/uTeams.pas	Mon Sep 19 23:55:52 2011 +0400
@@ -435,7 +435,7 @@
                 begin
                 Gear^.Invulnerable:= false;
                 Gear^.Damage:= Gear^.Health;
-                Gear^.State:= Gear^.State or gstHHGone
+                Gear^.State:= (Gear^.State or gstHHGone) and not gstHHDriven
                 end
             end
 end;