hedgewars/uVisualGears.pas
changeset 9666 8dcb25112d96
parent 9285 8e8b908970c2
child 9762 938d1c08d0d1
equal deleted inserted replaced
9665:bfd62e380327 9666:8dcb25112d96
   165                                  else
   165                                  else
   166                                      DrawTextureRotatedF(SpritesData[sprFlake].Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   166                                      DrawTextureRotatedF(SpritesData[sprFlake].Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle)
   167                              end;
   167                              end;
   168                end;
   168                end;
   169            if Gear^.Tint <> $FFFFFFFF then
   169            if Gear^.Tint <> $FFFFFFFF then
   170                Tint($FF,$FF,$FF,$FF);
   170                untint;
   171            Gear:= Gear^.NextGear
   171            Gear:= Gear^.NextGear
   172            end
   172            end
   173        end;
   173        end;
   174     // this layer is on the land level (which is close but behind the screen plane) when stereo
   174     // this layer is on the land level (which is close but behind the screen plane) when stereo
   175     1: begin
   175     1: begin
   218                                   DrawSprite(sprSDDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame)
   218                                   DrawSprite(sprSDDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame)
   219                               else
   219                               else
   220                                   DrawSprite(sprDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);
   220                                   DrawSprite(sprDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);
   221                   vgtBubble: DrawSprite(sprBubbles, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);//(RealTicks div 64 + Gear^.Frame) mod 8);
   221                   vgtBubble: DrawSprite(sprBubbles, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);//(RealTicks div 64 + Gear^.Frame) mod 8);
   222               end;
   222               end;
   223           //if (Gear^.Tint <> $FFFFFFFF) or tinted then Tint($FF,$FF,$FF,$FF);
   223           //if (Gear^.Tint <> $FFFFFFFF) or tinted then untint;
   224           if (Gear^.Tint <> $FFFFFFFF) then
   224           if (Gear^.Tint <> $FFFFFFFF) then
   225               Tint($FF,$FF,$FF,$FF);
   225               untint;
   226           Gear:= Gear^.NextGear
   226           Gear:= Gear^.NextGear
   227           end
   227           end
   228        end;
   228        end;
   229     // this layer is on the screen plane (depth = 0) when stereo
   229     // this layer is on the screen plane (depth = 0) when stereo
   230     3: begin
   230     3: begin
   282            if (cReducedQuality and rqAntiBoom) = 0 then
   282            if (cReducedQuality and rqAntiBoom) = 0 then
   283                case Gear^.Kind of
   283                case Gear^.Kind of
   284                    vgtChunk: DrawSpriteRotatedF(sprChunk, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   284                    vgtChunk: DrawSpriteRotatedF(sprChunk, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   285                end;
   285                end;
   286            if (Gear^.Tint <> $FFFFFFFF) or tinted then
   286            if (Gear^.Tint <> $FFFFFFFF) or tinted then
   287                Tint($FF,$FF,$FF,$FF);
   287                untint;
   288            Gear:= Gear^.NextGear
   288            Gear:= Gear^.NextGear
   289            end
   289            end
   290        end;
   290        end;
   291     // this layer is outside the screen when stereo
   291     // this layer is outside the screen when stereo
   292     2: begin
   292     2: begin
   366                               end
   366                               end
   367                           else
   367                           else
   368                               DrawCircle(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State, Gear^.Timer);
   368                               DrawCircle(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State, Gear^.Timer);
   369            end;
   369            end;
   370            if (Gear^.Tint <> $FFFFFFFF) or tinted then
   370            if (Gear^.Tint <> $FFFFFFFF) or tinted then
   371                Tint($FF,$FF,$FF,$FF);
   371                untint;
   372            Gear:= Gear^.NextGear
   372            Gear:= Gear^.NextGear
   373            end
   373            end
   374        end;
   374        end;
   375      // this layer is half-way between the screen plane (depth = 0) when in stereo, and the land
   375      // this layer is half-way between the screen plane (depth = 0) when in stereo, and the land
   376      4: begin
   376      4: begin
   394                                 DrawTextureF(SpritesData[sprFlake].Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   394                                 DrawTextureF(SpritesData[sprFlake].Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
   395                             else
   395                             else
   396                                 DrawTextureRotatedF(SpritesData[sprFlake].Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
   396                                 DrawTextureRotatedF(SpritesData[sprFlake].Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
   397             end;
   397             end;
   398             if (Gear^.Tint <> $FFFFFFFF) then
   398             if (Gear^.Tint <> $FFFFFFFF) then
   399                 Tint($FF,$FF,$FF,$FF);
   399                 untint;
   400             Gear:= Gear^.NextGear
   400             Gear:= Gear^.NextGear
   401             end
   401             end
   402         end;
   402         end;
   403      // this layer is on the screen plane (depth = 0) when stereo, but just behind the land
   403      // this layer is on the screen plane (depth = 0) when stereo, but just behind the land
   404      5: begin
   404      5: begin
   422                                 DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
   422                                 DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
   423                             else
   423                             else
   424                                 DrawSpriteRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
   424                                 DrawSpriteRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
   425                 end;
   425                 end;
   426             if (Gear^.Tint <> $FFFFFFFF) then
   426             if (Gear^.Tint <> $FFFFFFFF) then
   427                 Tint($FF,$FF,$FF,$FF);
   427                 untint;
   428             Gear:= Gear^.NextGear
   428             Gear:= Gear^.NextGear
   429             end
   429             end
   430         end;
   430         end;
   431      // this layer is on the screen plane (depth = 0) when stereo, but just in front of the land
   431      // this layer is on the screen plane (depth = 0) when stereo, but just in front of the land
   432     6: begin
   432     6: begin
   446                                 DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
   446                                 DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
   447                             else
   447                             else
   448                                 DrawSpriteRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
   448                                 DrawSpriteRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
   449                 end;
   449                 end;
   450             if (Gear^.Tint <> $FFFFFFFF) then
   450             if (Gear^.Tint <> $FFFFFFFF) then
   451                 Tint($FF,$FF,$FF,$FF);
   451                 untint;
   452             Gear:= Gear^.NextGear
   452             Gear:= Gear^.NextGear
   453             end
   453             end
   454         end;
   454         end;
   455     end;
   455     end;
   456 end;
   456 end;