hedgewars/GSHandlers.inc
changeset 940 769adb0ad082
parent 931 ab4d98858a40
child 945 4ead9cde4e14
equal deleted inserted replaced
939:7e6848823e26 940:769adb0ad082
   596 cc:= Gear^.dX + HHGear^.dX;
   596 cc:= Gear^.dX + HHGear^.dX;
   597 len:= _1 / Distance(cc, cs);
   597 len:= _1 / Distance(cc, cs);
   598 cc:= cc * len; // rope vector plus hedgehog direction vector normalized
   598 cc:= cc * len; // rope vector plus hedgehog direction vector normalized
   599 cs:= cs * len;
   599 cs:= cs * len;
   600 
   600 
   601 nx:= hwAbs(cs) * hwSign(HHGear^.dX) * 3; // hedgehog direction normalized with length 3
   601 nx:= hwAbs(cs) * hwSign(HHGear^.dX) * 5; // hedgehog direction normalized with length 3
   602 ny:= hwAbs(cc) * hwSign(HHGear^.dY) * 3;
   602 ny:= hwAbs(cc) * hwSign(HHGear^.dY) * 5;
   603 
   603 
   604 flCheck:= not flCheck;
   604 flCheck:= not flCheck;
   605 if flCheck then  // check whether rope needs dividing
   605 if flCheck then  // check whether rope needs dividing
   606    begin
   606    begin
   607    len:= Gear^.Elasticity - _20;
   607    len:= Gear^.Elasticity - _20;
   676    HHGear^.dX:= -_0_6 * HHGear^.dX;
   676    HHGear^.dX:= -_0_6 * HHGear^.dX;
   677 if TestCollisionYwithGear(HHGear, hwSign(HHGear^.dY)) then
   677 if TestCollisionYwithGear(HHGear, hwSign(HHGear^.dY)) then
   678    HHGear^.dY:= -_0_6 * HHGear^.dY;
   678    HHGear^.dY:= -_0_6 * HHGear^.dY;
   679 
   679 
   680 len:= Distance(HHGear^.dX, HHGear^.dY);
   680 len:= Distance(HHGear^.dX, HHGear^.dY);
   681 if len > _0_5 then
   681 if len > _0_8 then
   682    begin
   682    begin
   683    len:= _0_5 / len;
   683    len:= _0_8 / len;
   684    HHGear^.dX:= HHGear^.dX * len;
   684    HHGear^.dX:= HHGear^.dX * len;
   685    HHGear^.dY:= HHGear^.dY * len;
   685    HHGear^.dY:= HHGear^.dY * len;
   686    end;
   686    end;
   687 
   687 
   688 if (Gear^.Message and gm_Attack) <> 0 then
   688 if (Gear^.Message and gm_Attack) <> 0 then