# HG changeset patch # User smaxx # Date 1283470911 -7200 # Node ID 03b1af3a1c8fe1c6d2f2efe53e106029db66fb4b # Parent bc3efe1c71ab2222ea0191e8d2aa48e063f7bd70 Engine: * Fixed Hammer executing its init code each step diff -r bc3efe1c71ab -r 03b1af3a1c8f hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Fri Sep 03 01:26:58 2010 +0200 +++ b/hedgewars/GSHandlers.inc Fri Sep 03 01:41:51 2010 +0200 @@ -3953,7 +3953,7 @@ AllInactive := false; HHGear := PHedgehog(Gear^.Hedgehog)^.Gear; dec(Gear^.Timer); - if (Gear^.Timer = 0)or((Gear^.Message and gm_Destroy) <> 0) then + if (HHGear = nil) or (Gear^.Timer = 0) or ((Gear^.Message and gm_Destroy) <> 0) then begin DeleteGear(Gear); exit @@ -3995,16 +3995,6 @@ Gear^.X := Gear^.X + HHGear^.dX; HHGear^.X := Gear^.X; HHGear^.Y := Gear^.Y - int2hwFloat(cHHRadius); - - if (Gear^.Message and gm_Attack) <> 0 then - if (Gear^.State and gsttmpFlag) <> 0 then Gear^.Timer := 1 - else - else - if (Gear^.State and gsttmpFlag) = 0 then Gear^.State := Gear^.State or gsttmpFlag; - if ((Gear^.Message and gm_Left) <> 0) then Gear^.dX := - _0_3 - else - if ((Gear^.Message and gm_Right) <> 0) then Gear^.dX := _0_3 - else Gear^.dX := _0; end; procedure doStepHammerHit(Gear: PGear); @@ -4030,5 +4020,5 @@ DeleteCI(HHGear); doStepHammerHitWork(Gear); - Gear^.doStep := @doStepHammerHit + Gear^.doStep := @doStepHammerHitWork end;