245 Result^.Radius:= 3; |
245 Result^.Radius:= 3; |
246 Result^.Friction:= _450; |
246 Result^.Friction:= _450; |
247 RopePoints.Count:= 0; |
247 RopePoints.Count:= 0; |
248 end; |
248 end; |
249 gtExplosion: begin |
249 gtExplosion: begin |
250 Result^.X:= Result^.X - _25; |
250 Result^.X:= Result^.X; |
251 Result^.Y:= Result^.Y - _25; |
251 Result^.Y:= Result^.Y; |
252 end; |
252 end; |
253 gtMine: begin |
253 gtMine: begin |
254 Result^.State:= Result^.State or gstMoving; |
254 Result^.State:= Result^.State or gstMoving; |
255 Result^.Radius:= 2; |
255 Result^.Radius:= 2; |
256 Result^.Elasticity:= _0_55; |
256 Result^.Elasticity:= _0_55; |
709 end; |
709 end; |
710 |
710 |
711 defaultPos:= false |
711 defaultPos:= false |
712 end |
712 end |
713 end else // not gstHHDriven |
713 end else // not gstHHDriven |
714 if ((Gear^.State and gstHHJumping) <> 0) then |
714 if (Gear^.Damage > 0) |
715 begin |
715 and ((Gear^.State or gstMoving) <> 0) then |
716 if ((Gear^.State and gstHHHJump) <> 0) then |
716 begin |
717 DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, |
|
718 - hwSign(Gear^.dX), |
|
719 1, |
|
720 1, |
|
721 0) |
|
722 else |
|
723 DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, |
717 DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, |
724 hwSign(Gear^.dX), |
718 hwSign(Gear^.dX), |
|
719 2, |
725 1, |
720 1, |
726 1, |
721 Gear^.DirAngle); |
727 0); |
|
728 defaultPos:= false |
722 defaultPos:= false |
729 end; |
723 end; |
|
724 if ((Gear^.State and gstHHJumping) <> 0) then |
|
725 begin |
|
726 if ((Gear^.State and gstHHHJump) <> 0) then |
|
727 DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, |
|
728 - hwSign(Gear^.dX), |
|
729 1, |
|
730 1, |
|
731 0) |
|
732 else |
|
733 DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, |
|
734 hwSign(Gear^.dX), |
|
735 1, |
|
736 1, |
|
737 0); |
|
738 defaultPos:= false |
|
739 end; |
730 |
740 |
731 |
741 |
732 if defaultPos then |
742 if defaultPos then |
733 begin |
743 begin |
734 DrawRotatedF(sprHHIdle, |
744 DrawRotatedF(sprHHIdle, |
892 hwRound(PHedgehog(Gear^.Hedgehog)^.Gear^.X) + WorldDx, hwRound(PHedgehog(Gear^.Hedgehog)^.Gear^.Y) + WorldDy); |
902 hwRound(PHedgehog(Gear^.Hedgehog)^.Gear^.X) + WorldDx, hwRound(PHedgehog(Gear^.Hedgehog)^.Gear^.Y) + WorldDy); |
893 DrawRotated(sprRopeHook, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX)); |
903 DrawRotated(sprRopeHook, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX)); |
894 end; |
904 end; |
895 end; |
905 end; |
896 gtSmokeTrace: if Gear^.State < 8 then DrawSprite(sprSmokeTrace, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.State); |
906 gtSmokeTrace: if Gear^.State < 8 then DrawSprite(sprSmokeTrace, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.State); |
897 gtExplosion: DrawSprite(sprExplosion50, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.State); |
907 gtExplosion: DrawSprite(sprExplosion50, hwRound(Gear^.X) - 32 + WorldDx, hwRound(Gear^.Y) - 32 + WorldDy, Gear^.State); |
898 gtMine: if ((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420) |
908 gtMine: if ((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420) |
899 then DrawRotated(sprMineOff, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle) |
909 then DrawRotated(sprMineOff, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle) |
900 else DrawRotated(sprMineOn, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle); |
910 else DrawRotated(sprMineOn, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle); |
901 gtCase: case Gear^.Pos of |
911 gtCase: case Gear^.Pos of |
902 posCaseAmmo : DrawSprite(sprCase, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0); |
912 posCaseAmmo : DrawSprite(sprCase, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0); |