diff -r e7ce559d8c94 -r 09427dbec1d8 hedgewars/GSHandlers.inc --- 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;