hedgewars/uVisualGears.pas
changeset 6322 b310f0bc8dde
parent 6318 ca12368acc16
child 6323 c1aa6a3c84a7
equal deleted inserted replaced
6321:5a0416e5a6de 6322:b310f0bc8dde
   475        while Gear <> nil do
   475        while Gear <> nil do
   476            begin
   476            begin
   477            if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
   477            if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
   478            case Gear^.Kind of
   478            case Gear^.Kind of
   479               vgtCloud: if SuddenDeathDmg then
   479               vgtCloud: if SuddenDeathDmg then
   480                              DrawTextureF(SpritesData[sprSDCloud].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprCloud].Width, SpritesData[sprCloud].Height)
   480                              DrawTextureF(SpritesData[sprSDCloud].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprCloud].Width, SpritesData[sprCloud].Height)
   481                          else
   481                          else
   482                             DrawTextureF(SpritesData[sprCloud].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprCloud].Width, SpritesData[sprCloud].Height);
   482                             DrawTextureF(SpritesData[sprCloud].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprCloud].Width, SpritesData[sprCloud].Height);
   483                vgtFlake: if cFlattenFlakes then
   483                vgtFlake: if cFlattenFlakes then
   484                              begin
   484                              begin
   485                              if SuddenDeathDmg then
   485                              if SuddenDeathDmg then
   486                                  if vobSDVelocity = 0 then
   486                                  if vobSDVelocity = 0 then
   487                                      DrawSprite(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
   487                                      DrawSprite(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
   495                              end
   495                              end
   496                          else
   496                          else
   497                              begin
   497                              begin
   498                              if SuddenDeathDmg then
   498                              if SuddenDeathDmg then
   499                                  if vobSDVelocity = 0 then
   499                                  if vobSDVelocity = 0 then
   500                                      DrawTextureF(SpritesData[sprSDFlake].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   500                                      DrawTextureF(SpritesData[sprSDFlake].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   501                                  else
   501                                  else
   502                                      DrawRotatedTextureF(SpritesData[sprSDFlake].Texture, 0.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   502                                      DrawRotatedTextureF(SpritesData[sprSDFlake].Texture, 0.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   503                              else
   503                              else
   504                                  if vobVelocity = 0 then
   504                                  if vobVelocity = 0 then
   505                                      DrawTextureF(SpritesData[sprFlake].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   505                                      DrawTextureF(SpritesData[sprFlake].Texture, 0.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   506                                  else
   506                                  else
   507                                      DrawRotatedTextureF(SpritesData[sprFlake].Texture, 0.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   507                                      DrawRotatedTextureF(SpritesData[sprFlake].Texture, 0.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   508                              end;
   508                              end;
   509                end;
   509                end;
   510            if Gear^.Tint <> $FFFFFFFF then Tint($FF,$FF,$FF,$FF);
   510            if Gear^.Tint <> $FFFFFFFF then Tint($FF,$FF,$FF,$FF);
   511            Gear:= Gear^.NextGear
   511            Gear:= Gear^.NextGear
   512            end
   512            end
   533               vgtEvilTrace: if Gear^.State < 8 then DrawSprite(sprEvilTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State);
   533               vgtEvilTrace: if Gear^.State < 8 then DrawSprite(sprEvilTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State);
   534               vgtLineTrail: DrawLine(Gear^.X, Gear^.Y, Gear^.dX, Gear^.dY, 1.0, $FF, min(Gear^.Timer, $C0), min(Gear^.Timer, $80), min(Gear^.Timer, $FF));
   534               vgtLineTrail: DrawLine(Gear^.X, Gear^.Y, Gear^.dX, Gear^.dY, 1.0, $FF, min(Gear^.Timer, $C0), min(Gear^.Timer, $80), min(Gear^.Timer, $FF));
   535           end;
   535           end;
   536           if (cReducedQuality and rqAntiBoom) = 0 then
   536           if (cReducedQuality and rqAntiBoom) = 0 then
   537               case Gear^.Kind of
   537               case Gear^.Kind of
   538                   vgtSmoke: DrawTextureF(SpritesData[sprSmoke].Texture, Gear^.scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 7 - Gear^.Frame, 2, SpritesData[sprSmoke].Width, SpritesData[sprSmoke].Height);
   538                   vgtSmoke: DrawTextureF(SpritesData[sprSmoke].Texture, Gear^.scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 7 - Gear^.Frame, 0, SpritesData[sprSmoke].Width, SpritesData[sprSmoke].Height);
   539                   vgtSmokeWhite: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame);
   539                   vgtSmokeWhite: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame);
   540                   vgtDust: if Gear^.State = 1 then
   540                   vgtDust: if Gear^.State = 1 then
   541                                DrawSprite(sprSnowDust, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame)
   541                                DrawSprite(sprSnowDust, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame)
   542                            else
   542                            else
   543                                DrawSprite(sprDust, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame);
   543                                DrawSprite(sprDust, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame);
   544                   vgtFire: if (Gear^.State and gstTmpFlag) = 0 then
   544                   vgtFire: if (Gear^.State and gstTmpFlag) = 0 then
   545                                DrawSprite(sprFlame, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy, (RealTicks shr 6 + Gear^.Frame) mod 8)
   545                                DrawSprite(sprFlame, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy, (RealTicks shr 6 + Gear^.Frame) mod 8)
   546                            else
   546                            else
   547                                DrawTextureF(SpritesData[sprFlame].Texture, Gear^.FrameTicks / 900, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, (RealTicks shr 7 + Gear^.Frame) mod 8, 2, 16, 16);
   547                                DrawTextureF(SpritesData[sprFlame].Texture, Gear^.FrameTicks / 900, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, (RealTicks shr 7 + Gear^.Frame) mod 8, 1, 16, 16);
   548                   vgtSplash: if SuddenDeathDmg then
   548                   vgtSplash: if SuddenDeathDmg then
   549                                  DrawSprite(sprSDSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37))
   549                                  DrawSprite(sprSDSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37))
   550                              else
   550                              else
   551                                  DrawSprite(sprSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37));
   551                                  DrawSprite(sprSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37));
   552                   vgtDroplet: if SuddenDeathDmg then
   552                   vgtDroplet: if SuddenDeathDmg then
   601                                    else DrawTexture(round(Gear^.X), round(Gear^.Y), Gear^.Tex, Gear^.Angle); 
   601                                    else DrawTexture(round(Gear^.X), round(Gear^.Y), Gear^.Tex, Gear^.Angle); 
   602                                    SetScale(zoom)
   602                                    SetScale(zoom)
   603                                    end
   603                                    end
   604                                end;
   604                                end;
   605                vgtStraightShot: begin 
   605                vgtStraightShot: begin 
   606                                 if Gear^.dX < 0 then i:= -2 else i:= 2;
   606                                 if Gear^.dX < 0 then i:= -1 else i:= 1;
   607                                 DrawRotatedTextureF(SpritesData[TSprite(Gear^.State)].Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, i, SpritesData[TSprite(Gear^.State)].Width, SpritesData[TSprite(Gear^.State)].Height, Gear^.Angle);
   607                                 DrawRotatedTextureF(SpritesData[TSprite(Gear^.State)].Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, i, SpritesData[TSprite(Gear^.State)].Width, SpritesData[TSprite(Gear^.State)].Height, Gear^.Angle);
   608                                 end;
   608                                 end;
   609            end;
   609            end;
   610            if (cReducedQuality and rqAntiBoom) = 0 then
   610            if (cReducedQuality and rqAntiBoom) = 0 then
   611                case Gear^.Kind of
   611                case Gear^.Kind of
   625            case Gear^.Kind of
   625            case Gear^.Kind of
   626                vgtExplosion: DrawSprite(sprExplosion50, round(Gear^.X) - 32 + WorldDx, round(Gear^.Y) - 32 + WorldDy, Gear^.State);
   626                vgtExplosion: DrawSprite(sprExplosion50, round(Gear^.X) - 32 + WorldDx, round(Gear^.Y) - 32 + WorldDy, Gear^.State);
   627                vgtBigExplosion: begin
   627                vgtBigExplosion: begin
   628                                 tinted:= true;
   628                                 tinted:= true;
   629                                 Tint($FF, $FF, $FF, round($FF * (1 - power(Gear^.Timer / 250, 4))));
   629                                 Tint($FF, $FF, $FF, round($FF * (1 - power(Gear^.Timer / 250, 4))));
   630                                 DrawRotatedTextureF(SpritesData[sprBigExplosion].Texture, 0.85 * (-power(2, -10 * Int(Gear^.Timer)/250) + 1) + 0.4, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 2, 385, 385, Gear^.Angle);
   630                                 DrawRotatedTextureF(SpritesData[sprBigExplosion].Texture, 0.85 * (-power(2, -10 * Int(Gear^.Timer)/250) + 1) + 0.4, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 1, 385, 385, Gear^.Angle);
   631                                 end;
   631                                 end;
   632            end;
   632            end;
   633            if (cReducedQuality and rqAntiBoom) = 0 then
   633            if (cReducedQuality and rqAntiBoom) = 0 then
   634                case Gear^.Kind of
   634                case Gear^.Kind of
   635                    vgtExplPart: DrawSprite(sprExplPart, round(Gear^.X) + WorldDx - 16, round(Gear^.Y) + WorldDy - 16, 7 - Gear^.Frame);
   635                    vgtExplPart: DrawSprite(sprExplPart, round(Gear^.X) + WorldDx - 16, round(Gear^.Y) + WorldDy - 16, 7 - Gear^.Frame);
   636                    vgtExplPart2: DrawSprite(sprExplPart2, round(Gear^.X) + WorldDx - 16, round(Gear^.Y) + WorldDy - 16, 7 - Gear^.Frame);
   636                    vgtExplPart2: DrawSprite(sprExplPart2, round(Gear^.X) + WorldDx - 16, round(Gear^.Y) + WorldDy - 16, 7 - Gear^.Frame);
   637                    vgtSteam: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame);
   637                    vgtSteam: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame);
   638                    vgtAmmo: begin
   638                    vgtAmmo: begin
   639                             tinted:= true;
   639                             tinted:= true;
   640                             Tint($FF, $FF, $FF, round(Gear^.alpha * $FF));
   640                             Tint($FF, $FF, $FF, round(Gear^.alpha * $FF));
   641                             DrawTextureF(ropeIconTex, Gear^.scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 2, 32, 32);
   641                             DrawTextureF(ropeIconTex, Gear^.scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 1, 32, 32);
   642                             DrawTextureF(SpritesData[sprAMAmmos].Texture, Gear^.scale * 0.90, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame - 1, 2, 32, 32);
   642                             DrawTextureF(SpritesData[sprAMAmmos].Texture, Gear^.scale * 0.90, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame - 1, 1, 32, 32);
   643                             end;
   643                             end;
   644                    vgtShell: begin
   644                    vgtShell: begin
   645                              if Gear^.FrameTicks < $FF then
   645                              if Gear^.FrameTicks < $FF then
   646                                  begin
   646                                  begin
   647                                  Tint($FF, $FF, $FF, Gear^.FrameTicks);
   647                                  Tint($FF, $FF, $FF, Gear^.FrameTicks);
   667                                 DrawRotatedF(sprBeeTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, (RealTicks shr 4) mod cMaxAngle);
   667                                 DrawRotatedF(sprBeeTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, (RealTicks shr 4) mod cMaxAngle);
   668                                 end;
   668                                 end;
   669                    vgtSmokeRing: begin
   669                    vgtSmokeRing: begin
   670                                  tinted:= true;
   670                                  tinted:= true;
   671                                  Tint($FF, $FF, $FF, round(Gear^.alpha * $FF));
   671                                  Tint($FF, $FF, $FF, round(Gear^.alpha * $FF));
   672                                  DrawRotatedTextureF(SpritesData[sprSmokeRing].Texture, Gear^.scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 2, 200, 200, Gear^.Angle);
   672                                  DrawRotatedTextureF(SpritesData[sprSmokeRing].Texture, Gear^.scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 1, 200, 200, Gear^.Angle);
   673                                  end;
   673                                  end;
   674                    vgtNote: DrawRotatedF(sprNote, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   674                    vgtNote: DrawRotatedF(sprNote, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   675                    vgtBulletHit: DrawRotatedF(sprBulletHit, round(Gear^.X) + WorldDx - 0, round(Gear^.Y) + WorldDy - 0, 7 - (Gear^.FrameTicks div 50), 1, Gear^.Angle);
   675                    vgtBulletHit: DrawRotatedF(sprBulletHit, round(Gear^.X) + WorldDx - 0, round(Gear^.Y) + WorldDy - 0, 7 - (Gear^.FrameTicks div 50), 1, Gear^.Angle);
   676                end;
   676                end;
   677            case Gear^.Kind of
   677            case Gear^.Kind of
   678                vgtFlake: if SuddenDeathDmg then
   678                vgtFlake: if SuddenDeathDmg then
   679                              if vobSDVelocity = 0 then
   679                              if vobSDVelocity = 0 then
   680                                  DrawTextureF(SpritesData[sprSDFlake].Texture, 1.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   680                                  DrawTextureF(SpritesData[sprSDFlake].Texture, 1.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   681                              else
   681                              else
   682                                  DrawRotatedTextureF(SpritesData[sprSDFlake].Texture, 1.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   682                                  DrawRotatedTextureF(SpritesData[sprSDFlake].Texture, 1.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   683                          else
   683                          else
   684                              if vobVelocity = 0 then
   684                              if vobVelocity = 0 then
   685                                  DrawTextureF(SpritesData[sprFlake].Texture, 1.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   685                                  DrawTextureF(SpritesData[sprFlake].Texture, 1.5, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   686                              else
   686                              else
   687                                  DrawRotatedTextureF(SpritesData[sprFlake].Texture, 1.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
   687                                  DrawRotatedTextureF(SpritesData[sprFlake].Texture, 1.5, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
   688                vgtCircle: if gear^.Angle = 1 then
   688                vgtCircle: if gear^.Angle = 1 then
   689                               begin
   689                               begin
   690                               tmp:= Gear^.State / 100;
   690                               tmp:= Gear^.State / 100;
   691                               DrawTexture(round(Gear^.X-24*tmp) + WorldDx, round(Gear^.Y-24*tmp) + WorldDy, SpritesData[sprVampiric].Texture, tmp)
   691                               DrawTexture(round(Gear^.X-24*tmp) + WorldDx, round(Gear^.Y-24*tmp) + WorldDy, SpritesData[sprVampiric].Texture, tmp)
   692                               end
   692                               end
   702        while Gear <> nil do
   702        while Gear <> nil do
   703            begin
   703            begin
   704            if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
   704            if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
   705            case Gear^.Kind of
   705            case Gear^.Kind of
   706               vgtCloud: if SuddenDeathDmg then
   706               vgtCloud: if SuddenDeathDmg then
   707                              DrawTextureF(SpritesData[sprSDCloud].Texture, 0.8, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprCloud].Width, SpritesData[sprCloud].Height)
   707                              DrawTextureF(SpritesData[sprSDCloud].Texture, 0.8, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprCloud].Width, SpritesData[sprCloud].Height)
   708                          else
   708                          else
   709                             DrawTextureF(SpritesData[sprCloud].Texture, 0.8, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprCloud].Width, SpritesData[sprCloud].Height);
   709                             DrawTextureF(SpritesData[sprCloud].Texture, 0.8, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprCloud].Width, SpritesData[sprCloud].Height);
   710               vgtFlake: if SuddenDeathDmg then
   710               vgtFlake: if SuddenDeathDmg then
   711                              if vobSDVelocity = 0 then
   711                              if vobSDVelocity = 0 then
   712                                  DrawTextureF(SpritesData[sprSDFlake].Texture, 0.8, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   712                                  DrawTextureF(SpritesData[sprSDFlake].Texture, 0.8, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   713                              else
   713                              else
   714                                  DrawRotatedTextureF(SpritesData[sprSDFlake].Texture, 0.8, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   714                                  DrawRotatedTextureF(SpritesData[sprSDFlake].Texture, 0.8, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   715                          else
   715                          else
   716                              if vobVelocity = 0 then
   716                              if vobVelocity = 0 then
   717                                  DrawTextureF(SpritesData[sprFlake].Texture, 0.8, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   717                                  DrawTextureF(SpritesData[sprFlake].Texture, 0.8, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   718                              else
   718                              else
   719                                  DrawRotatedTextureF(SpritesData[sprFlake].Texture, 0.8, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 2, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
   719                                  DrawRotatedTextureF(SpritesData[sprFlake].Texture, 0.8, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
   720                end;
   720                end;
   721            if (Gear^.Tint <> $FFFFFFFF) then Tint($FF,$FF,$FF,$FF);
   721            if (Gear^.Tint <> $FFFFFFFF) then Tint($FF,$FF,$FF,$FF);
   722            Gear:= Gear^.NextGear
   722            Gear:= Gear^.NextGear
   723            end
   723            end
   724        end;
   724        end;