hedgewars/GSHandlers.inc
changeset 5874 5cd329cf2460
parent 5873 4f2d8ce3732b
child 5893 368669bf6cb3
equal deleted inserted replaced
5873:4f2d8ce3732b 5874:5cd329cf2460
   510 procedure doStepMolotov(Gear: PGear);
   510 procedure doStepMolotov(Gear: PGear);
   511 var 
   511 var 
   512     i, gX, gY: LongInt;
   512     i, gX, gY: LongInt;
   513     dX, dY: hwFloat;
   513     dX, dY: hwFloat;
   514     Fire: PGear;
   514     Fire: PGear;
   515     smoke: PVisualGear;
   515     smoke, glass: PVisualGear;
   516 begin
   516 begin
   517     AllInactive := false;
   517     AllInactive := false;
   518 
   518 
   519     doStepFallingGear(Gear);
   519     doStepFallingGear(Gear);
   520     CalcRotationDirAngle(Gear);
   520     CalcRotationDirAngle(Gear);
   532     if (Gear^.State and gstCollision) <> 0 then
   532     if (Gear^.State and gstCollision) <> 0 then
   533     begin
   533     begin
   534         PlaySound(sndMolotov);
   534         PlaySound(sndMolotov);
   535         gX := hwRound(Gear^.X);
   535         gX := hwRound(Gear^.X);
   536         gY := hwRound(Gear^.Y);
   536         gY := hwRound(Gear^.Y);
   537         //doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 5, EXPLAutoSound);
   537         for i:= 0 to 2 do
       
   538             begin
       
   539             glass:= AddVisualGear(gx+random(7)-3, gy+random(5)-2, vgtEgg);
       
   540             if glass <> nil then
       
   541                 begin
       
   542                 glass^.Frame:= 2;
       
   543                 glass^.Tint:= $41B83ED0 - i * $10081000;
       
   544                 glass^.dX:= 1/(10*(random(11)-5));
       
   545                 glass^.dY:= -1/(random(4)+5);
       
   546                 end;
       
   547             end;
   538         for i:= 0 to 24 do
   548         for i:= 0 to 24 do
   539         begin
   549         begin
   540             dX := AngleCos(i * 2) * ((_0_15*(i div 5))) * (GetRandom + _1);
   550             dX := AngleCos(i * 2) * ((_0_15*(i div 5))) * (GetRandom + _1);
   541             dY := AngleSin(i * 8) * _0_5 * (GetRandom + _1);
   551             dY := AngleSin(i * 8) * _0_5 * (GetRandom + _1);
   542             Fire := AddGear(gX, gY, gtFlame, 0, dX, dY, 0);
   552             Fire := AddGear(gX, gY, gtFlame, 0, dX, dY, 0);