3954 begin |
3954 begin |
3955 rx := rndSign(getRandomf * _0_1); |
3955 rx := rndSign(getRandomf * _0_1); |
3956 ry := rndSign(getRandomf * _0_1); |
3956 ry := rndSign(getRandomf * _0_1); |
3957 |
3957 |
3958 ball:= AddGear(gx, gy, gtBall, 0, SignAs(AngleSin(HHGear^.Angle) * _0_8, HHGear^.dX) + rx, AngleCos(HHGear^.Angle) * ( - _0_8) + ry, 0); |
3958 ball:= AddGear(gx, gy, gtBall, 0, SignAs(AngleSin(HHGear^.Angle) * _0_8, HHGear^.dX) + rx, AngleCos(HHGear^.Angle) * ( - _0_8) + ry, 0); |
3959 ball^.CollisionMask:= lfNotCurrentMask; |
3959 ball^.CollisionMask:= lfNotCurHogCrate; |
3960 |
3960 |
3961 PlaySound(sndGun); |
3961 PlaySound(sndGun); |
3962 end; |
3962 end; |
3963 |
3963 |
3964 if (Gear^.Timer = 0) or ((HHGear^.State and gstHHDriven) = 0) then |
3964 if (Gear^.Timer = 0) or ((HHGear^.State and gstHHDriven) = 0) then |
5440 speed := _0_5 * (_10 / Gear^.Tag); |
5440 speed := _0_5 * (_10 / Gear^.Tag); |
5441 |
5441 |
5442 flame:= AddGear(gx, gy, gtFlame, gstTmpFlag, |
5442 flame:= AddGear(gx, gy, gtFlame, gstTmpFlag, |
5443 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
5443 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
5444 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
5444 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
5445 flame^.CollisionMask:= lfNotCurrentMask; |
5445 flame^.CollisionMask:= lfNotCurHogCrate; |
5446 //flame^.FlightTime:= 500; use the default huge value to avoid sticky flame suddenly being damaging as opposed to other flames |
5446 //flame^.FlightTime:= 500; use the default huge value to avoid sticky flame suddenly being damaging as opposed to other flames |
5447 |
5447 |
5448 if (Gear^.Health mod 30) = 0 then |
5448 if (Gear^.Health mod 30) = 0 then |
5449 begin |
5449 begin |
5450 flame:= AddGear(gx, gy, gtFlame, 0, |
5450 flame:= AddGear(gx, gy, gtFlame, 0, |
5451 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
5451 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
5452 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
5452 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
5453 flame^.CollisionMask:= lfNotCurrentMask; |
5453 flame^.CollisionMask:= lfNotCurHogCrate; |
5454 //flame^.FlightTime:= 500; |
5454 //flame^.FlightTime:= 500; |
5455 end |
5455 end |
5456 end; |
5456 end; |
5457 Gear^.Timer:= Gear^.Tag |
5457 Gear^.Timer:= Gear^.Tag |
5458 end; |
5458 end; |
5532 speed := (_3 / Gear^.Tag); |
5532 speed := (_3 / Gear^.Tag); |
5533 |
5533 |
5534 land:= AddGear(gx, gy, gtFlake, gstTmpFlag, |
5534 land:= AddGear(gx, gy, gtFlake, gstTmpFlag, |
5535 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
5535 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
5536 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
5536 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
5537 land^.CollisionMask:= lfNotCurrentMask; |
5537 land^.CollisionMask:= lfNotCurHogCrate; |
5538 |
5538 |
5539 Gear^.Timer:= Gear^.Tag |
5539 Gear^.Timer:= Gear^.Tag |
5540 end; |
5540 end; |
5541 |
5541 |
5542 if (Gear^.Health = 0) or ((HHGear^.State and gstHHDriven) = 0) or ((HHGear^.Message and gmAttack) <> 0) then |
5542 if (Gear^.Health = 0) or ((HHGear^.State and gstHHDriven) = 0) or ((HHGear^.Message and gmAttack) <> 0) then |
6849 gY := hwRound(Gear^.Y) + GetLaunchY(amMinigun, HHGear^.Angle); |
6849 gY := hwRound(Gear^.Y) + GetLaunchY(amMinigun, HHGear^.Angle); |
6850 rx := rndSign(getRandomf * _0_2); |
6850 rx := rndSign(getRandomf * _0_2); |
6851 ry := rndSign(getRandomf * _0_2); |
6851 ry := rndSign(getRandomf * _0_2); |
6852 |
6852 |
6853 bullet:= AddGear(gx, gy, gtMinigunBullet, 0, SignAs(AngleSin(HHGear^.Angle) * _0_8, HHGear^.dX) + rx, AngleCos(HHGear^.Angle) * ( - _0_8) + ry, 0); |
6853 bullet:= AddGear(gx, gy, gtMinigunBullet, 0, SignAs(AngleSin(HHGear^.Angle) * _0_8, HHGear^.dX) + rx, AngleCos(HHGear^.Angle) * ( - _0_8) + ry, 0); |
6854 bullet^.CollisionMask:= lfNotCurrentMask; |
6854 bullet^.CollisionMask:= lfNotCurHogCrate; |
6855 bullet^.WDTimer := Gear^.WDTimer; |
6855 bullet^.WDTimer := Gear^.WDTimer; |
6856 Inc(Gear^.WDTimer); |
6856 Inc(Gear^.WDTimer); |
6857 |
6857 |
6858 CreateShellForGear(Gear, Gear^.Tag and 1); |
6858 CreateShellForGear(Gear, Gear^.Tag and 1); |
6859 end; |
6859 end; |