4580 while i > 0 do |
4580 while i > 0 do |
4581 begin |
4581 begin |
4582 dec(i); |
4582 dec(i); |
4583 tmp:= t^.ar[i]; |
4583 tmp:= t^.ar[i]; |
4584 if (tmp^.State and gstNoDamage) = 0 then |
4584 if (tmp^.State and gstNoDamage) = 0 then |
4585 if (tmp^.Kind = gtHedgehog) then |
4585 if (tmp^.Kind = gtHedgehog) or (tmp^.Kind = gtMine) or (tmp^.Kind = gtExplosives) then |
4586 begin |
4586 begin |
4587 //tmp^.State:= tmp^.State or gstFlatened; |
4587 //tmp^.State:= tmp^.State or gstFlatened; |
4588 ApplyDamage(tmp, CurrentHedgehog, tmp^.Health div 3, dsUnknown); |
4588 ApplyDamage(tmp, CurrentHedgehog, tmp^.Health div 3, dsUnknown); |
4589 //DrawTunnel(tmp^.X, tmp^.Y - _1, _0, _0_5, cHHRadius * 6, cHHRadius * 3); |
4589 //DrawTunnel(tmp^.X, tmp^.Y - _1, _0, _0_5, cHHRadius * 6, cHHRadius * 3); |
4590 tmp2:= AddGear(hwRound(tmp^.X), hwRound(tmp^.Y), gtHammerHit, 0, _0, _0, 0); |
4590 tmp2:= AddGear(hwRound(tmp^.X), hwRound(tmp^.Y), gtHammerHit, 0, _0, _0, 0); |
4591 tmp2^.Hedgehog:= tmp^.Hedgehog; |
4591 tmp2^.IntersectGear:= tmp; |
4592 SetAllToActive |
4592 SetAllToActive |
4593 end |
4593 end |
4594 else |
4594 else |
4595 begin |
4595 begin |
4596 end |
4596 end |
4636 SetAllHHToActive; |
4636 SetAllHHToActive; |
4637 end; |
4637 end; |
4638 if TestCollisionYwithGear(Gear, 1) then |
4638 if TestCollisionYwithGear(Gear, 1) then |
4639 begin |
4639 begin |
4640 Gear^.dY := _0; |
4640 Gear^.dY := _0; |
4641 SetLittle(HHGear^.dX); |
4641 SetLittle(HitGear^.dX); |
4642 HHGear^.dY := _0; |
4642 HitGear^.dY := _0; |
4643 end |
4643 end |
4644 else |
4644 else |
4645 begin |
4645 begin |
4646 Gear^.dY := Gear^.dY + cGravity; |
4646 Gear^.dY := Gear^.dY + cGravity; |
4647 Gear^.Y := Gear^.Y + Gear^.dY; |
4647 Gear^.Y := Gear^.Y + Gear^.dY; |
4648 if hwRound(Gear^.Y) > cWaterLine then Gear^.Timer := 1 |
4648 if hwRound(Gear^.Y) > cWaterLine then Gear^.Timer := 1 |
4649 end; |
4649 end; |
4650 |
4650 |
4651 Gear^.X := Gear^.X + HHGear^.dX; |
4651 Gear^.X := Gear^.X + HitGear^.dX; |
4652 HHGear^.X := Gear^.X; |
4652 HitGear^.X := Gear^.X; |
4653 HHGear^.Y := Gear^.Y - int2hwFloat(cHHRadius); |
4653 HitGear^.Y := Gear^.Y - int2hwFloat(cHHRadius); |
4654 end; |
4654 end; |
4655 |
4655 |
4656 procedure doStepHammerHit(Gear: PGear); |
4656 procedure doStepHammerHit(Gear: PGear); |
4657 var |
4657 var |
4658 i, y: LongInt; |
4658 i, y: LongInt; |