hedgewars/GSHandlers.inc
changeset 5926 09bbc7b88714
parent 5924 82fc26c53d2a
child 5935 c89d5065d956
equal deleted inserted replaced
5925:2a9353b800cd 5926:09bbc7b88714
  1113 end;
  1113 end;
  1114 
  1114 
  1115 procedure doStepDEagleShot(Gear: PGear);
  1115 procedure doStepDEagleShot(Gear: PGear);
  1116 begin
  1116 begin
  1117     PlaySound(sndGun);
  1117     PlaySound(sndGun);
  1118     // add 2 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths
  1118     // add 3 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just plain old weird angles
  1119     Gear^.X := Gear^.X + Gear^.dX * 2;
  1119     Gear^.X := Gear^.X + Gear^.dX * 3;
  1120     Gear^.Y := Gear^.Y + Gear^.dY * 2;
  1120     Gear^.Y := Gear^.Y + Gear^.dY * 3;
  1121     Gear^.doStep := @doStepBulletWork
  1121     Gear^.doStep := @doStepBulletWork
  1122 end;
  1122 end;
  1123 
  1123 
  1124 procedure doStepSniperRifleShot(Gear: PGear);
  1124 procedure doStepSniperRifleShot(Gear: PGear);
  1125 var 
  1125 var 
  1149         end;
  1149         end;
  1150         Gear^.State := Gear^.State or gstAnimation;
  1150         Gear^.State := Gear^.State or gstAnimation;
  1151         Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5;
  1151         Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5;
  1152         Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5;
  1152         Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5;
  1153         PlaySound(sndGun);
  1153         PlaySound(sndGun);
  1154         // add an initial step to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths
  1154         // add 3 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just weird angles
  1155         Gear^.X := Gear^.X + Gear^.dX;  
  1155         Gear^.X := Gear^.X + Gear^.dX * 3;  
  1156         Gear^.Y := Gear^.Y + Gear^.dY;
  1156         Gear^.Y := Gear^.Y + Gear^.dY * 3;
  1157         Gear^.doStep := @doStepBulletWork;
  1157         Gear^.doStep := @doStepBulletWork;
  1158     end
  1158     end
  1159     else
  1159     else
  1160         if (GameTicks mod 32) = 0 then
  1160         if (GameTicks mod 32) = 0 then
  1161             if (GameTicks mod 4096) < 2048 then
  1161             if (GameTicks mod 4096) < 2048 then