equal
deleted
inserted
replaced
3951 HHGear: PGear; |
3951 HHGear: PGear; |
3952 begin |
3952 begin |
3953 AllInactive := false; |
3953 AllInactive := false; |
3954 HHGear := PHedgehog(Gear^.Hedgehog)^.Gear; |
3954 HHGear := PHedgehog(Gear^.Hedgehog)^.Gear; |
3955 dec(Gear^.Timer); |
3955 dec(Gear^.Timer); |
3956 if (Gear^.Timer = 0)or((Gear^.Message and gm_Destroy) <> 0) then |
3956 if (HHGear = nil) or (Gear^.Timer = 0) or ((Gear^.Message and gm_Destroy) <> 0) then |
3957 begin |
3957 begin |
3958 DeleteGear(Gear); |
3958 DeleteGear(Gear); |
3959 exit |
3959 exit |
3960 end; |
3960 end; |
3961 |
3961 |
3993 end; |
3993 end; |
3994 |
3994 |
3995 Gear^.X := Gear^.X + HHGear^.dX; |
3995 Gear^.X := Gear^.X + HHGear^.dX; |
3996 HHGear^.X := Gear^.X; |
3996 HHGear^.X := Gear^.X; |
3997 HHGear^.Y := Gear^.Y - int2hwFloat(cHHRadius); |
3997 HHGear^.Y := Gear^.Y - int2hwFloat(cHHRadius); |
3998 |
|
3999 if (Gear^.Message and gm_Attack) <> 0 then |
|
4000 if (Gear^.State and gsttmpFlag) <> 0 then Gear^.Timer := 1 |
|
4001 else |
|
4002 else |
|
4003 if (Gear^.State and gsttmpFlag) = 0 then Gear^.State := Gear^.State or gsttmpFlag; |
|
4004 if ((Gear^.Message and gm_Left) <> 0) then Gear^.dX := - _0_3 |
|
4005 else |
|
4006 if ((Gear^.Message and gm_Right) <> 0) then Gear^.dX := _0_3 |
|
4007 else Gear^.dX := _0; |
|
4008 end; |
3998 end; |
4009 |
3999 |
4010 procedure doStepHammerHit(Gear: PGear); |
4000 procedure doStepHammerHit(Gear: PGear); |
4011 var |
4001 var |
4012 i, y: LongInt; |
4002 i, y: LongInt; |
4028 DrawHLinesExplosions(@ar, 3, hwRound(Gear^.Y) - cHHRadius * 2, 2, Pred(i)); |
4018 DrawHLinesExplosions(@ar, 3, hwRound(Gear^.Y) - cHHRadius * 2, 2, Pred(i)); |
4029 Gear^.dY := HHGear^.dY; |
4019 Gear^.dY := HHGear^.dY; |
4030 DeleteCI(HHGear); |
4020 DeleteCI(HHGear); |
4031 |
4021 |
4032 doStepHammerHitWork(Gear); |
4022 doStepHammerHitWork(Gear); |
4033 Gear^.doStep := @doStepHammerHit |
4023 Gear^.doStep := @doStepHammerHitWork |
4034 end; |
4024 end; |