hedgewars/uVisualGears.pas
changeset 3390 1d4926d10a9e
parent 3376 faee68a28b82
child 3407 dcc129c4352e
equal deleted inserted replaced
3389:9b97b9240c22 3390:1d4926d10a9e
   758                     vgtFeather: begin
   758                     vgtFeather: begin
   759                             if Gear^.FrameTicks < 255 then
   759                             if Gear^.FrameTicks < 255 then
   760                                 Tint($FF, $FF, $FF, Gear^.FrameTicks);
   760                                 Tint($FF, $FF, $FF, Gear^.FrameTicks);
   761                             DrawRotatedF(sprFeather, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   761                             DrawRotatedF(sprFeather, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   762                             if Gear^.FrameTicks < 255 then
   762                             if Gear^.FrameTicks < 255 then
   763                                 Tint($FFFFFFFF);
   763                                 Tint($FF, $FF, $FF, $FF);
   764                             end;
   764                             end;
   765                 end;
   765                 end;
   766         Gear:= Gear^.NextGear
   766         Gear:= Gear^.NextGear
   767         end;
   767         end;
   768     2: while Gear <> nil do
   768     2: while Gear <> nil do
   776                 vgtSteam: DrawSprite(sprExplPart, hwRound(Gear^.X) + WorldDx - 16, hwRound(Gear^.Y) + WorldDy - 16, 7 - Gear^.Frame);
   776                 vgtSteam: DrawSprite(sprExplPart, hwRound(Gear^.X) + WorldDx - 16, hwRound(Gear^.Y) + WorldDy - 16, 7 - Gear^.Frame);
   777                 vgtAmmo: begin
   777                 vgtAmmo: begin
   778                         Tint($FF, $FF, $FF, floor(Gear^.alpha * $FF));
   778                         Tint($FF, $FF, $FF, floor(Gear^.alpha * $FF));
   779                         DrawTextureF(ropeIconTex, Gear^.scale, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 32, 32);
   779                         DrawTextureF(ropeIconTex, Gear^.scale, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 32, 32);
   780                         DrawTextureF(SpritesData[sprAMAmmos].Texture, Gear^.scale * 0.90, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame - 1, 1, 32, 32);
   780                         DrawTextureF(SpritesData[sprAMAmmos].Texture, Gear^.scale * 0.90, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame - 1, 1, 32, 32);
   781                         Tint($FFFFFFFF);
   781                         Tint($FF, $FF, $FF, $FF);
   782                         end;
   782                         end;
   783                 vgtHealth:  begin
   783                 vgtHealth:  begin
   784                             case Gear^.Frame div 10 of
   784                             case Gear^.Frame div 10 of
   785                                 0:Tint(0, $FF, 0, floor(Gear^.FrameTicks * $FF / 1000));
   785                                 0:Tint(0, $FF, 0, floor(Gear^.FrameTicks * $FF / 1000));
   786                                 1:Tint($FF, 0, 0, floor(Gear^.FrameTicks * $FF / 1000));
   786                                 1:Tint($FF, 0, 0, floor(Gear^.FrameTicks * $FF / 1000));
   787                             end;
   787                             end;
   788                             DrawSprite(sprHealth, hwRound(Gear^.X) + WorldDx - 8, hwRound(Gear^.Y) + WorldDy - 8, 0);
   788                             DrawSprite(sprHealth, hwRound(Gear^.X) + WorldDx - 8, hwRound(Gear^.Y) + WorldDy - 8, 0);
   789                             Tint($FFFFFFFF);
   789                             Tint($FF, $FF, $FF, $FF);
   790                             end;
   790                             end;
   791                 vgtShell: begin
   791                 vgtShell: begin
   792                             if Gear^.FrameTicks < $FF then
   792                             if Gear^.FrameTicks < $FF then
   793                                 Tint($FF, $FF, $FF, Gear^.FrameTicks);
   793                                 Tint($FF, $FF, $FF, Gear^.FrameTicks);
   794                             DrawRotatedF(sprShell, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   794                             DrawRotatedF(sprShell, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   795                             if Gear^.FrameTicks < $FF then
   795                             if Gear^.FrameTicks < $FF then
   796                                 Tint($FFFFFFFF);
   796                                 Tint($FF, $FF, $FF, $FF);
   797                             end;
   797                             end;
   798                   vgtEgg: begin
   798                   vgtEgg: begin
   799                             if Gear^.FrameTicks < $FF then
   799                             if Gear^.FrameTicks < $FF then
   800                                 Tint($FF, $FF, $FF, Gear^.FrameTicks);
   800                                 Tint($FF, $FF, $FF, Gear^.FrameTicks);
   801                             DrawRotatedF(sprEgg, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   801                             DrawRotatedF(sprEgg, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
   802                             if Gear^.FrameTicks < $FF then
   802                             if Gear^.FrameTicks < $FF then
   803                                 Tint($FFFFFFFF);
   803                                 Tint($FF, $FF, $FF, $FF);
   804                             end;
   804                             end;
   805                 vgtSplash: DrawSprite(sprSplash, hwRound(Gear^.X) + WorldDx - 40, hwRound(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37));
   805                 vgtSplash: DrawSprite(sprSplash, hwRound(Gear^.X) + WorldDx - 40, hwRound(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37));
   806                 vgtDroplet: DrawSprite(sprDroplet, hwRound(Gear^.X) + WorldDx - 8, hwRound(Gear^.Y) + WorldDy - 8, Gear^.Frame);
   806                 vgtDroplet: DrawSprite(sprDroplet, hwRound(Gear^.X) + WorldDx - 8, hwRound(Gear^.Y) + WorldDy - 8, Gear^.Frame);
   807                vgtBeeTrace: begin
   807                vgtBeeTrace: begin
   808                             if Gear^.FrameTicks < $FF then
   808                             if Gear^.FrameTicks < $FF then
   809                                 Tint($FF, $FF, $FF, Gear^.FrameTicks div 2)
   809                                 Tint($FF, $FF, $FF, Gear^.FrameTicks div 2)
   810                             else
   810                             else
   811                                 Tint($80FFFFFF);
   811                                 Tint($FF, $FF, $FF, $80);
   812                             DrawRotatedF(sprBeeTrace, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, (RealTicks shr 4) mod cMaxAngle);
   812                             DrawRotatedF(sprBeeTrace, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, (RealTicks shr 4) mod cMaxAngle);
   813                             Tint($FFFFFFFF);
   813                             Tint($FF, $FF, $FF, $FF);
   814                             end;
   814                             end;
   815                 vgtSmokeRing: begin
   815                 vgtSmokeRing: begin
   816                             Tint($FF, $FF, $FF, floor(Gear^.alpha * $FF));
   816                             Tint($FF, $FF, $FF, floor(Gear^.alpha * $FF));
   817                             DrawRotatedTextureF(SpritesData[sprSmokeRing].Texture, Gear^.scale, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 200, 200, Gear^.Angle);
   817                             DrawRotatedTextureF(SpritesData[sprSmokeRing].Texture, Gear^.scale, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 200, 200, Gear^.Angle);
   818                             Tint($FFFFFFFF);
   818                             Tint($FF, $FF, $FF, $FF);
   819                             end;
   819                             end;
   820             end;
   820             end;
   821         case Gear^.Kind of
   821         case Gear^.Kind of
   822             vgtSmallDamageTag: DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex);
   822             vgtSmallDamageTag: DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex);
   823             vgtSpeechBubble: if Gear^.Tex <> nil then DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex);
   823             vgtSpeechBubble: if Gear^.Tex <> nil then DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex);