equal
deleted
inserted
replaced
602 end; |
602 end; |
603 |
603 |
604 procedure doStepHedgehog(Gear: PGear); forward; |
604 procedure doStepHedgehog(Gear: PGear); forward; |
605 //////////////////////////////////////////////////////////////////////////////// |
605 //////////////////////////////////////////////////////////////////////////////// |
606 procedure doStepHedgehogMoving(Gear: PGear); |
606 procedure doStepHedgehogMoving(Gear: PGear); |
607 var isFalling: boolean; |
607 var isFalling, isUnderwater: boolean; |
608 begin |
608 begin |
|
609 isUnderwater:= cWaterLine < hwRound(Gear^.Y) + Gear^.Radius; |
609 if Gear^.dX > _0_995 then Gear^.dX:= _0_995; |
610 if Gear^.dX > _0_995 then Gear^.dX:= _0_995; |
610 if Gear^.dY > _0_995 then Gear^.dY:= _0_995; |
611 if Gear^.dY > _0_995 then Gear^.dY:= _0_995; |
611 if PHedgehog(Gear^.Hedgehog)^.Unplaced then |
612 if PHedgehog(Gear^.Hedgehog)^.Unplaced then |
612 begin |
613 begin |
613 Gear^.dY:= _0; |
614 Gear^.dY:= _0; |
639 |
640 |
640 if ((Gear^.State and gstMoving) <> 0) then Gear^.dX:= Gear^.dX * Gear^.Friction |
641 if ((Gear^.State and gstMoving) <> 0) then Gear^.dX:= Gear^.dX * Gear^.Friction |
641 end; |
642 end; |
642 |
643 |
643 if (Gear^.State <> 0) then DeleteCI(Gear); |
644 if (Gear^.State <> 0) then DeleteCI(Gear); |
|
645 |
|
646 if isUnderwater then |
|
647 begin |
|
648 Gear^.dY:= Gear^.dY * _0_999; |
|
649 Gear^.dX:= Gear^.dX * _0_999; |
|
650 end; |
644 |
651 |
645 if (Gear^.State and gstMoving) <> 0 then |
652 if (Gear^.State and gstMoving) <> 0 then |
646 if TestCollisionXKick(Gear, hwSign(Gear^.dX)) then |
653 if TestCollisionXKick(Gear, hwSign(Gear^.dX)) then |
647 if not isFalling then |
654 if not isFalling then |
648 if hwAbs(Gear^.dX) > _0_01 then |
655 if hwAbs(Gear^.dX) > _0_01 then |