# HG changeset patch
# User nemo
# Date 1315531124 14400
# Node ID d071162d550debcfdaee55a8653766e89b9e200d
# Parent  ceb522b0f7d5e62e709cb89a0a0a9696d9fdece8
There. Push this back on to unc0rr.  This effect can still desync, 'cause it always could, but at least now the two are linked w/o argument I think.

diff -r ceb522b0f7d5 -r d071162d550d hedgewars/HHHandlers.inc
--- a/hedgewars/HHHandlers.inc	Fri Sep 09 03:04:15 2011 +0200
+++ b/hedgewars/HHHandlers.inc	Thu Sep 08 21:18:44 2011 -0400
@@ -1012,7 +1012,7 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 procedure doStepHedgehogFree(Gear: PGear);
-var prevState: Longword;
+var prevState,i: Longword;
 begin
 prevState:= Gear^.State;
 
@@ -1050,6 +1050,19 @@
             begin
             Gear^.State:= Gear^.State or gstHHGone;
             Gear^.doStep:= @doStepHedgehogGone;
+
+            with Gear^.Hedgehog^.Team^ do
+                for i:= 0 to cMaxHHIndex do
+                    if Hedgehogs[i].GearHidden <> nil then
+                        begin
+                        RestoreHog(@Hedgehogs[i]);
+                        if Hedgehogs[i].Gear <> nil then 
+                            begin
+                            Gear^.State:= Gear^.State or gstHHGone;
+                            Gear^.doStep:= @doStepHedgehogGone
+                            end
+                        end;
+
             // Gone message
             AddCaption(Format(GetEventString(eidGone), Gear^.Hedgehog^.Name), cWhiteColor, capgrpMessage);
             end
diff -r ceb522b0f7d5 -r d071162d550d hedgewars/uTeams.pas
--- a/hedgewars/uTeams.pas	Fri Sep 09 03:04:15 2011 +0200
+++ b/hedgewars/uTeams.pas	Thu Sep 08 21:18:44 2011 -0400
@@ -529,9 +529,6 @@
 with TeamsArray[t]^ do
     begin
     AddChatString('** '+ TeamName + ' is gone');
-    for i:= 0 to cMaxHHIndex do
-        if Hedgehogs[i].GearHidden <> nil then
-            RestoreHog(@Hedgehogs[i]);
     hasGone:= true
     end;