hedgewars/VGSHandlers.inc
changeset 6553 91365db8b82c
parent 6302 db8bdbb34e03
child 6580 6155187bf599
equal deleted inserted replaced
6552:91adc9ee7b8c 6553:91365db8b82c
    44         begin
    44         begin
    45         dec(FrameTicks, vobSDFrameTicks);
    45         dec(FrameTicks, vobSDFrameTicks);
    46         inc(Frame);
    46         inc(Frame);
    47         if Frame = vobSDFramesCount then Frame:= 0
    47         if Frame = vobSDFramesCount then Frame:= 0
    48         end;
    48         end;
    49     X:= X + (cWindSpeedf * 400 + dX + tdX) * Steps;
    49     X:= X + (cWindSpeedf * 400 + dX + tdX) * Steps * Gear^.Scale;
    50     if SuddenDeathDmg then
    50     if SuddenDeathDmg then
    51         Y:= Y + (dY + tdY + cGravityf * vobSDFallSpeed) * Steps
    51         Y:= Y + (dY + tdY + cGravityf * vobSDFallSpeed) * Steps * Gear^.Scale
    52     else
    52     else
    53         Y:= Y + (dY + tdY + cGravityf * vobFallSpeed) * Steps;
    53         Y:= Y + (dY + tdY + cGravityf * vobFallSpeed) * Steps * Gear^.Scale;
    54     Angle:= Angle + dAngle * Steps;
    54     Angle:= Angle + dAngle * Steps;
    55     if Angle > 360 then
    55     if Angle > 360 then
    56         Angle:= Angle - 360
    56         Angle:= Angle - 360
    57     else
    57     else
    58         if Angle < - 360 then
    58         if Angle < - 360 then
   101 ////////////////////////////////////////////////////////////////////////////////
   101 ////////////////////////////////////////////////////////////////////////////////
   102 procedure doStepCloud(Gear: PVisualGear; Steps: Longword);
   102 procedure doStepCloud(Gear: PVisualGear; Steps: Longword);
   103 var s: Longword;
   103 var s: Longword;
   104     t: real;
   104     t: real;
   105 begin
   105 begin
   106 Gear^.X:= Gear^.X + (cWindSpeedf * 750 * Gear^.dX) * Steps;
   106 Gear^.X:= Gear^.X + (cWindSpeedf * 750 * Gear^.dX * Gear^.Scale) * Steps;
   107 
   107 
   108 // up-and-down-bounce magic
   108 // up-and-down-bounce magic
   109 s := (GameTicks + Gear^.Timer) mod 4096;
   109 s := (GameTicks + Gear^.Timer) mod 4096;
   110 t := 8 * hwFloat2Float(AngleSin(s mod 2048));
   110 t := 8 * Gear^.Scale * hwFloat2Float(AngleSin(s mod 2048));
   111 if (s < 2048) then t := -t;
   111 if (s < 2048) then t := -t;
   112 
   112 
   113 Gear^.Y := LAND_HEIGHT - 1184 + LongInt(Gear^.Timer mod 8) + t;
   113 Gear^.Y := LAND_HEIGHT - 1184 + LongInt(Gear^.Timer mod 8) + t;
   114 
   114 
   115 if round(Gear^.X) < cLeftScreenBorder then Gear^.X:= Gear^.X + cScreenSpace else
   115 if round(Gear^.X) < cLeftScreenBorder then Gear^.X:= Gear^.X + cScreenSpace else