equal
deleted
inserted
replaced
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); |