hedgewars/uGearsHandlersMess.pas
changeset 11553 5415e9d7436f
parent 11552 9188505653d5
child 11698 e86feecadced
child 11765 10860d4bca22
equal deleted inserted replaced
11552:9188505653d5 11553:5415e9d7436f
  1341     // remember who fired this
  1341     // remember who fired this
  1342     if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) then
  1342     if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) then
  1343         Gear^.Data:= Pointer(Gear^.Hedgehog^.Gear);
  1343         Gear^.Data:= Pointer(Gear^.Hedgehog^.Gear);
  1344 
  1344 
  1345     PlaySound(sndGun);
  1345     PlaySound(sndGun);
  1346     // 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
  1346     // add 2 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just plain old weird angles
  1347     Gear^.X := Gear^.X + Gear^.dX * 2;
  1347     Gear^.X := Gear^.X + Gear^.dX * 2;
  1348     Gear^.Y := Gear^.Y + Gear^.dY * 2;
  1348     Gear^.Y := Gear^.Y + Gear^.dY * 2;
  1349     Gear^.doStep := @doStepBulletWork
  1349     Gear^.doStep := @doStepBulletWork
  1350 end;
  1350 end;
  1351 
  1351 
  1389             end;
  1389             end;
  1390         Gear^.State := Gear^.State or gstAnimation;
  1390         Gear^.State := Gear^.State or gstAnimation;
  1391         Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5;
  1391         Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5;
  1392         Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5;
  1392         Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5;
  1393         PlaySound(sndGun);
  1393         PlaySound(sndGun);
  1394         // add 3 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just weird angles
  1394         // add 2 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just weird angles
  1395         Gear^.X := Gear^.X + Gear^.dX * 3;
  1395         Gear^.X := Gear^.X + Gear^.dX * 2;
  1396         Gear^.Y := Gear^.Y + Gear^.dY * 3;
  1396         Gear^.Y := Gear^.Y + Gear^.dY * 2;
  1397         Gear^.doStep := @doStepBulletWork;
  1397         Gear^.doStep := @doStepBulletWork;
  1398         end
  1398         end
  1399     else
  1399     else
  1400         if (GameTicks mod 32) = 0 then
  1400         if (GameTicks mod 32) = 0 then
  1401             if (GameTicks mod 4096) < 2048 then
  1401             if (GameTicks mod 4096) < 2048 then