equal
deleted
inserted
replaced
36 procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt); inline; |
36 procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt); inline; |
37 procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt; skipProximity: boolean); |
37 procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt; skipProximity: boolean); |
38 |
38 |
39 function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear; |
39 function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear; |
40 function CheckGearDrowning(Gear: PGear): boolean; |
40 function CheckGearDrowning(Gear: PGear): boolean; |
|
41 procedure CheckCollision(Gear: PGear); inline; |
|
42 procedure CheckCollisionWithLand(Gear: PGear); inline; |
41 |
43 |
42 var doStepHandlers: array[TGearType] of TGearStepProcedure; |
44 var doStepHandlers: array[TGearType] of TGearStepProcedure; |
43 |
45 |
44 |
46 |
45 implementation |
47 implementation |
661 end; |
663 end; |
662 |
664 |
663 CheckGearNear:= nil |
665 CheckGearNear:= nil |
664 end; |
666 end; |
665 |
667 |
|
668 procedure CheckCollision(Gear: PGear); inline; |
|
669 begin |
|
670 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) |
|
671 or (TestCollisionYwithGear(Gear, hwSign(Gear^.dY)) <> 0) then |
|
672 Gear^.State := Gear^.State or gstCollision |
|
673 else |
|
674 Gear^.State := Gear^.State and (not gstCollision) |
|
675 end; |
|
676 |
|
677 procedure CheckCollisionWithLand(Gear: PGear); inline; |
|
678 begin |
|
679 if TestCollisionX(Gear, hwSign(Gear^.dX)) |
|
680 or TestCollisionY(Gear, hwSign(Gear^.dY)) then |
|
681 Gear^.State := Gear^.State or gstCollision |
|
682 else |
|
683 Gear^.State := Gear^.State and (not gstCollision) |
|
684 end; |
|
685 |
666 end. |
686 end. |