diff -r 434b95f00211 -r 0fcd3fadda41 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Tue Jun 10 20:40:43 2008 +0000 +++ b/hedgewars/GSHandlers.inc Wed Jun 11 15:42:53 2008 +0000 @@ -1387,8 +1387,7 @@ //////////////////////////////////////////////////////////////////////////////// procedure doStepKamikazeWork(Gear: PGear); const upd: Longword = 0; -var i, x, y: LongWord; - oX, oY: hwFloat; +var i: LongWord; HHGear: PGear; begin AllInactive:= false; @@ -1398,8 +1397,6 @@ DeleteCI(HHGear); i:= 2; -oX:= Gear^.X; -oY:= Gear^.Y; repeat Gear^.X:= Gear^.X + HHGear^.dX; Gear^.Y:= Gear^.Y + HHGear^.dY; @@ -1418,6 +1415,8 @@ inc(upd); if upd > 3 then begin + if Gear^.Health < 1500 then Gear^.Pos:= 2; + AmmoShove(Gear, 30, 40); DrawTunnel(HHGear^.X - HHGear^.dX * 10, @@ -1443,6 +1442,17 @@ end end; +procedure doStepKamikazeIdle(Gear: PGear); +begin +AllInactive:= false; +dec(Gear^.Timer); +if Gear^.Timer = 0 then + begin + Gear^.Pos:= 1; + Gear^.doStep:= @doStepKamikazeWork + end +end; + procedure doStepKamikaze(Gear: PGear); var HHGear: PGear; begin @@ -1456,6 +1466,8 @@ Gear^.dX:= SignAs(_0_45, Gear^.dX); Gear^.dY:= - _0_9; -Gear^.doStep:= @doStepKamikazeWork +Gear^.Timer:= 550; + +Gear^.doStep:= @doStepKamikazeIdle end;