hedgewars/uGearsUtils.pas
changeset 7592 cf67e58313ea
parent 7509 76e3a3fc17cd
child 7599 74db5b16a776
equal deleted inserted replaced
7591:d9ff60e0a390 7592:cf67e58313ea
    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.