--- a/hedgewars/GSHandlers.inc Thu Jul 19 17:14:02 2012 -0400
+++ b/hedgewars/GSHandlers.inc Thu Jul 19 17:34:18 2012 -0400
@@ -116,12 +116,12 @@
if lastGearByUID = HH^.Gear then
lastGearByUID := nil;
-
- RemoveGearFromList(HH^.Gear);
+
+ HH^.Gear^.Message:= HH^.Gear^.Message or gmRemoveFromList;
with HH^.Gear^ do
begin
Z := cHHZ;
- Active := false;
+ HH^.Gear^.Active:= false;
State:= State and (not (gstHHDriven or gstAttacking or gstAttacked));
Message := Message and (not gmAttack);
end;
@@ -2794,10 +2794,9 @@
Gear^.Message := Gear^.Message and (not gmSwitch);
State := HHGear^.State;
HHGear^.State := 0;
+ HHGear^.Z := cHHZ;
HHGear^.Active := false;
- HHGear^.Z := cHHZ;
- RemoveGearFromList(HHGear);
- InsertGearToList(HHGear);
+ HHGear^.Message:= HHGear^.Message or gmRemoveFromList or gmAddToList;
PlaySound(sndSwitchHog);
@@ -2813,8 +2812,7 @@
HHGear^.Active := true;
FollowGear := HHGear;
HHGear^.Z := cCurrHHZ;
- RemoveGearFromList(HHGear);
- InsertGearToList(HHGear);
+ HHGear^.Message:= HHGear^.Message or gmRemoveFromList or gmAddToList;
Gear^.X := HHGear^.X;
Gear^.Y := HHGear^.Y
end;