--- a/hedgewars/GSHandlers.inc Mon Aug 02 00:48:15 2010 +0200
+++ b/hedgewars/GSHandlers.inc Mon Aug 02 01:07:51 2010 +0200
@@ -3594,7 +3594,7 @@
doMakeExplosion(hwRound(Gear^.X) - 30 - r0, hwRound(Gear^.Y) + 40, 40 + r1, 0);
doMakeExplosion(hwRound(Gear^.X) + 30 + r1, hwRound(Gear^.Y) + 40, 40 + r0, 0);
doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 80 + r0, EXPLAutoSound);
- for r0:= 0 to 10 do
+ for r0:= 0 to 4 do
AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtNote);
Gear^.dY := -_1;
Gear^.Pos := Gear^.Pos + 1;
--- a/hedgewars/VGSHandlers.inc Mon Aug 02 00:48:15 2010 +0200
+++ b/hedgewars/VGSHandlers.inc Mon Aug 02 01:07:51 2010 +0200
@@ -114,9 +114,11 @@
Gear^.X:= Gear^.X + Gear^.dX * Steps;
Gear^.Y:= Gear^.Y + Gear^.dY * Steps;
-Gear^.dY:= Gear^.dY + cGravityf * Steps;
+Gear^.dY:= Gear^.dY + cGravityf * Steps / 2;
-Gear^.Angle:= round(Gear^.Angle + Steps) mod cMaxAngle;
+Gear^.Angle:= Gear^.Angle + (Gear^.Frame + 1) * Steps / 10;
+while Gear^.Angle > cMaxAngle do
+ Gear^.Angle:= Gear^.Angle - cMaxAngle;
if Gear^.FrameTicks <= Steps then
DeleteVisualGear(Gear)
--- a/hedgewars/uVisualGears.pas Mon Aug 02 00:48:15 2010 +0200
+++ b/hedgewars/uVisualGears.pas Mon Aug 02 01:07:51 2010 +0200
@@ -307,13 +307,12 @@
t:= random(1024);
sp:= 0.001 * (random(85) + 47);
dx:= AngleSin(t).QWordValue/4294967296 * sp;
- dy:= AngleCos(t).QWordValue/4294967296 * sp;
+ dy:= AngleCos(t).QWordValue/4294967296 * sp * -2;
if random(2) = 0 then dx := -dx;
- (*if random(2) = 0 then*) dy := -2 * dy;
end;
vgtNote: begin
dx:= 0.005 * (random(15) + 10);
- dy:= 0.001 * (random(40) + 20);
+ dy:= -0.001 * (random(40) + 20);
if random(2) = 0 then dx := -dx;
Frame:= random(4);
FrameTicks:= random(2000) + 1500;