hedgewars/uGearsRender.pas
branchhedgeroid
changeset 5530 25d4118056e1
parent 5528 c539e5c81870
child 5560 d1ebcf4df330
equal deleted inserted replaced
5516:8710987d3484 5530:25d4118056e1
   598                 amDynamite: DrawRotated(sprHandDynamite, hx, hy, sign, aangle);
   598                 amDynamite: DrawRotated(sprHandDynamite, hx, hy, sign, aangle);
   599                 amHellishBomb: DrawRotated(sprHandHellish, hx, hy, sign, aangle);
   599                 amHellishBomb: DrawRotated(sprHandHellish, hx, hy, sign, aangle);
   600                 amGasBomb: DrawRotated(sprHandCheese, hx, hy, sign, aangle);
   600                 amGasBomb: DrawRotated(sprHandCheese, hx, hy, sign, aangle);
   601                 amMine: DrawRotated(sprHandMine, hx, hy, sign, aangle);
   601                 amMine: DrawRotated(sprHandMine, hx, hy, sign, aangle);
   602                 amSMine: DrawRotated(sprHandSMine, hx, hy, sign, aangle);
   602                 amSMine: DrawRotated(sprHandSMine, hx, hy, sign, aangle);
   603                 amSeduction: DrawRotated(sprHandSeduction, hx, hy, sign, aangle);
   603                 amSeduction: begin
       
   604                              DrawRotated(sprHandSeduction, hx, hy, sign, aangle);
       
   605                              DrawCircle(ox, oy, 248, 4, $FF, $00, $00, $AA); 
       
   606                              end;
   604                 amVampiric: DrawRotatedF(sprHandVamp, hx, hy, (RealTicks div 125) mod 4, sign, aangle);
   607                 amVampiric: DrawRotatedF(sprHandVamp, hx, hy, (RealTicks div 125) mod 4, sign, aangle);
   605                 amRCPlane: begin
   608                 amRCPlane: begin
   606                     DrawRotated(sprHandPlane, hx, hy, sign, 0);
   609                     DrawRotated(sprHandPlane, hx, hy, sign, 0);
   607                     defaultPos:= false
   610                     defaultPos:= false
   608                     end;
   611                     end;
   875 var
   878 var
   876     HHGear: PGear;
   879     HHGear: PGear;
   877     i: Longword;
   880     i: Longword;
   878     startX, endX, startY, endY: LongInt;
   881     startX, endX, startY, endY: LongInt;
   879 begin
   882 begin
       
   883     if Gear^.TargetX <> NoPointX then
       
   884         if Gear^.AmmoType = amBee then
       
   885             DrawRotatedF(sprTargetBee, Gear^.TargetX + WorldDx, Gear^.TargetY + WorldDy, 0, 0, (RealTicks shr 3) mod 360)
       
   886         else
       
   887             DrawRotatedF(sprTargetP, Gear^.TargetX + WorldDx, Gear^.TargetY + WorldDy, 0, 0, (RealTicks shr 3) mod 360);
       
   888 
   880     case Gear^.Kind of
   889     case Gear^.Kind of
   881           gtGrenade: DrawRotated(sprBomb, x, y, 0, Gear^.DirAngle);
   890           gtGrenade: DrawRotated(sprBomb, x, y, 0, Gear^.DirAngle);
   882       gtSnowball: DrawRotated(sprSnowball, x, y, 0, Gear^.DirAngle);
   891       gtSnowball: DrawRotated(sprSnowball, x, y, 0, Gear^.DirAngle);
   883        gtGasBomb: DrawRotated(sprCheese, x, y, 0, Gear^.DirAngle);
   892        gtGasBomb: DrawRotated(sprCheese, x, y, 0, Gear^.DirAngle);
   884        gtMolotov: DrawRotated(sprMolotov, x, y, 0, Gear^.DirAngle);
   893        gtMolotov: DrawRotated(sprMolotov, x, y, 0, Gear^.DirAngle);
  1017                             endY:= startY + 256;
  1026                             endY:= startY + 256;
  1018                             DrawTextureF(SpritesData[sprBirdy].Texture, 1, startX + WorldDx + LongInt(round((endX - startX) * power(2, 10 * (LongInt(Gear^.Timer)/2000 - 1)))) + hwRound(Gear^.dX * Gear^.Timer), startY + WorldDy + LongInt(round((endY - startY) * cos(LongInt(Gear^.Timer)/2000 * (Pi/2)) - (endY - startY))) + hwRound(Gear^.dY * Gear^.Timer), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
  1027                             DrawTextureF(SpritesData[sprBirdy].Texture, 1, startX + WorldDx + LongInt(round((endX - startX) * power(2, 10 * (LongInt(Gear^.Timer)/2000 - 1)))) + hwRound(Gear^.dX * Gear^.Timer), startY + WorldDy + LongInt(round((endY - startY) * cos(LongInt(Gear^.Timer)/2000 * (Pi/2)) - (endY - startY))) + hwRound(Gear^.dY * Gear^.Timer), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
  1019                             end;
  1028                             end;
  1020                         end
  1029                         end
  1021                     else
  1030                     else
  1022                         DrawTextureF(SpritesData[sprBirdy].Texture, 1, x, y, ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
  1031                         begin
       
  1032                         if Gear^.Health < 250 then
       
  1033                             DrawTextureF(SpritesData[sprBirdy].Texture, 1, x, y, ((Gear^.Pos shr 6) or (RealTicks shr 7)) mod 2, Gear^.Tag, 75, 75)
       
  1034                         else
       
  1035                             DrawTextureF(SpritesData[sprBirdy].Texture, 1, x, y, ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
       
  1036                         end;
  1023                     end;
  1037                     end;
  1024              gtEgg: DrawRotatedTextureF(SpritesData[sprEgg].Texture, 1, 0, 0, x, y, 0, 1, 16, 16, Gear^.DirAngle);
  1038              gtEgg: DrawRotatedTextureF(SpritesData[sprEgg].Texture, 1, 0, 0, x, y, 0, 1, 16, 16, Gear^.DirAngle);
  1025            gtPiano: begin
  1039            gtPiano: begin
  1026                     if (Gear^.State and gstDrowning) = 0 then
  1040                     if (Gear^.State and gstDrowning) = 0 then
  1027                         begin
  1041                         begin
  1047                     Tint($f5, $db, $35, max($00, round($C0 * abs(1 - (GameTicks mod 6000) / 3000))));
  1061                     Tint($f5, $db, $35, max($00, round($C0 * abs(1 - (GameTicks mod 6000) / 3000))));
  1048                     DrawTexture(x - 108, y - 108, SpritesData[sprVampiric].Texture, 4.5);
  1062                     DrawTexture(x - 108, y - 108, SpritesData[sprVampiric].Texture, 4.5);
  1049                     Tint($FF, $FF, $FF, $FF);
  1063                     Tint($FF, $FF, $FF, $FF);
  1050                     end;
  1064                     end;
  1051       gtNapalmBomb: DrawRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1065       gtNapalmBomb: DrawRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1052            gtFlake: if (Gear^.State and gstTmpFlag) <> 0 then
  1066            gtFlake: if Gear^.State and (gstDrowning or gstTmpFlag) <> 0  then
  1053                         begin
  1067                         begin
  1054                         Tint((cExplosionBorderColor shr RShift) and $FF, 
  1068                         Tint((cExplosionBorderColor shr RShift) and $FF, 
  1055                              (cExplosionBorderColor shr GShift) and $FF, 
  1069                              (cExplosionBorderColor shr GShift) and $FF, 
  1056                              (cExplosionBorderColor shr BShift) and $FF, 
  1070                              (cExplosionBorderColor shr BShift) and $FF, 
  1057                              $FF);
  1071                              $FF);