571 while i <= ei do |
571 while i <= ei do |
572 begin |
572 begin |
573 DrawExplosion(i, hwRound(Gear^.Y) + 3, 3); |
573 DrawExplosion(i, hwRound(Gear^.Y) + 3, 3); |
574 inc(i, 1) |
574 inc(i, 1) |
575 end; |
575 end; |
576 if Land[hwRound(Gear^.Y + _1_9) , hwRound(Gear^.X + Gear^.dX)] <> COLOR_INDESTRUCTIBLE then |
576 if Land[hwRound(Gear^.Y + _1_9) , hwRound(Gear^.X + Gear^.dX + SignAs(_16,Gear^.dX))] <> COLOR_INDESTRUCTIBLE then |
577 begin |
577 begin |
578 Gear^.X:= Gear^.X + Gear^.dX; |
578 Gear^.X:= Gear^.X + Gear^.dX; |
579 Gear^.Y:= Gear^.Y + _1_9; |
579 Gear^.Y:= Gear^.Y + _1_9; |
580 end; |
580 end; |
581 SetAllHHToActive; |
581 SetAllHHToActive; |
672 begin |
672 begin |
673 HHGear^.State:= HHGear^.State and not gstAttacking; |
673 HHGear^.State:= HHGear^.State and not gstAttacking; |
674 prevX:= hwRound(HHGear^.X); |
674 prevX:= hwRound(HHGear^.X); |
675 |
675 |
676 // why the call to HedgehogStep then a further increment of X? |
676 // why the call to HedgehogStep then a further increment of X? |
677 if (prevX = hwRound(HHGear^.X)) and (Land[hwRound(HHGear^.Y) , hwRound(HHGear^.X + SignAs(_1, HHGear^.dX))] <> COLOR_INDESTRUCTIBLE) then HedgehogStep(HHGear); |
677 if (prevX = hwRound(HHGear^.X)) and (Land[hwRound(HHGear^.Y) , hwRound(HHGear^.X + SignAs(_16, HHGear^.dX))] <> COLOR_INDESTRUCTIBLE) then HedgehogStep(HHGear); |
678 |
678 |
679 if (prevX = hwRound(HHGear^.X)) and (Land[hwRound(HHGear^.Y) , hwRound(HHGear^.X + SignAs(_1, HHGear^.dX))] <> COLOR_INDESTRUCTIBLE) then HHGear^.X:= HHGear^.X + SignAs(_1, HHGear^.dX); |
679 if (prevX = hwRound(HHGear^.X)) and (Land[hwRound(HHGear^.Y) , hwRound(HHGear^.X + SignAs(_16, HHGear^.dX))] <> COLOR_INDESTRUCTIBLE) then HHGear^.X:= HHGear^.X + SignAs(_1, HHGear^.dX); |
680 HHGear^.State:= HHGear^.State or gstAttacking |
680 HHGear^.State:= HHGear^.State or gstAttacking |
681 end; |
681 end; |
682 |
682 |
683 inc(BTSteps); |
683 inc(BTSteps); |
684 if BTSteps = 7 then |
684 if BTSteps = 7 then |
685 begin |
685 begin |
686 BTSteps:= 0; |
686 BTSteps:= 0; |
687 if Land[hwRound(HHGear^.Y + Gear^.dY * (cHHRadius + cBlowTorchC)) , hwRound(HHGear^.X + Gear^.dX * (cHHRadius + cBlowTorchC))] <> COLOR_INDESTRUCTIBLE then |
687 if Land[hwRound(HHGear^.Y + Gear^.dY * (cHHRadius + cBlowTorchC)) , hwRound(HHGear^.X + Gear^.dX * (cHHRadius + cBlowTorchC) + SignAs(_16,Gear^.dX) |
|
688 )] <> COLOR_INDESTRUCTIBLE then |
688 begin |
689 begin |
689 Gear^.X:= HHGear^.X + Gear^.dX * (cHHRadius + cBlowTorchC); |
690 Gear^.X:= HHGear^.X + Gear^.dX * (cHHRadius + cBlowTorchC); |
690 Gear^.Y:= HHGear^.Y + Gear^.dY * (cHHRadius + cBlowTorchC); |
691 Gear^.Y:= HHGear^.Y + Gear^.dY * (cHHRadius + cBlowTorchC); |
691 end; |
692 end; |
692 HHGear^.State:= HHGear^.State or gstNoDamage; |
693 HHGear^.State:= HHGear^.State or gstNoDamage; |