hedgewars/uGearsRender.pas
changeset 5906 ed9676dc8cb4
parent 5873 4f2d8ce3732b
child 5932 5164d17b6374
child 5935 c89d5065d956
equal deleted inserted replaced
5713:190d6bb075c5 5906:ed9676dc8cb4
   224         begin
   224         begin
   225         Tint($00, $FF, $40, $40);
   225         Tint($00, $FF, $40, $40);
   226         DrawRotatedTextureF(SpritesData[sprSmokeWhite].texture, 2, 0, 0, sx, sy, 0, 1, 22, 22, (RealTicks shr 36) mod 360);
   226         DrawRotatedTextureF(SpritesData[sprSmokeWhite].texture, 2, 0, 0, sx, sy, 0, 1, 22, 22, (RealTicks shr 36) mod 360);
   227         Tint($FF, $FF, $FF, $FF)
   227         Tint($FF, $FF, $FF, $FF)
   228         end;
   228         end;
   229 
       
   230     if  (CurAmmoGear <> nil) and 
       
   231         (CurrentHedgehog^.Gear <> nil) and
       
   232         (CurrentHedgehog^.Gear = Gear) and 
       
   233         (CurAmmoGear^.Kind = gtTardis) then Tint($FF, $FF, $FF, CurAmmoGear^.Timer div 20)
       
   234     // probably will need a new flag for this
       
   235     else if (Gear^.State and gstTmpFlag <> 0) then Tint($FF, $FF, $FF, $FF-Gear^.Timer);
       
   236 
   229 
   237     if ((Gear^.State and gstWinner) <> 0) and
   230     if ((Gear^.State and gstWinner) <> 0) and
   238     ((CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtPickHammer)) then
   231     ((CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtPickHammer)) then
   239         begin
   232         begin
   240         DrawHedgehog(sx, sy,
   233         DrawHedgehog(sx, sy,
   891 
   884 
   892     case Gear^.Kind of
   885     case Gear^.Kind of
   893           gtGrenade: DrawRotated(sprBomb, x, y, 0, Gear^.DirAngle);
   886           gtGrenade: DrawRotated(sprBomb, x, y, 0, Gear^.DirAngle);
   894       gtSnowball: DrawRotated(sprSnowball, x, y, 0, Gear^.DirAngle);
   887       gtSnowball: DrawRotated(sprSnowball, x, y, 0, Gear^.DirAngle);
   895        gtGasBomb: DrawRotated(sprCheese, x, y, 0, Gear^.DirAngle);
   888        gtGasBomb: DrawRotated(sprCheese, x, y, 0, Gear^.DirAngle);
   896        gtMolotov: DrawRotated(sprMolotov, x, y, 0, Gear^.DirAngle);
   889                   
       
   890        gtMolotov: if (Gear^.State and gstDrowning) = 0 then
       
   891                        DrawRotatedF(sprMolotov, x, y, (RealTicks div 125) mod 8, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX))
       
   892                   else DrawSprite(sprMolotov, x, y, 8);
   897 
   893 
   898        gtRCPlane: begin
   894        gtRCPlane: begin
   899                   if (Gear^.Tag = -1) then
   895                   if (Gear^.Tag = -1) then
   900                      DrawRotated(sprPlane, x, y, -1,  DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
   896                      DrawRotated(sprPlane, x, y, -1,  DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
   901                   else
   897                   else
  1076                         DrawRotatedTextureF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
  1072                         DrawRotatedTextureF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
  1077                         //DrawRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
  1073                         //DrawRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
  1078                         //DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
  1074                         //DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
  1079                         Tint($FF, $FF, $FF, $FF);
  1075                         Tint($FF, $FF, $FF, $FF);
  1080                         end
  1076                         end
  1081                     else if not isInLag then
  1077                     else //if not isInLag then
  1082                         begin
  1078                         begin
       
  1079                         if isInLag and (Gear^.FlightTime < 256) then inc(Gear^.FlightTime, 8)
       
  1080                         else if not isInLag and (Gear^.FlightTime > 0) then dec(Gear^.FlightTime, 8);
       
  1081                         if Gear^.FlightTime > 0 then Tint($FF, $FF, $FF, $FF-min(255,Gear^.FlightTime));
  1083                         if vobVelocity = 0 then
  1082                         if vobVelocity = 0 then
  1084                             DrawSprite(sprFlake, x, y, Gear^.Timer)
  1083                             DrawSprite(sprFlake, x, y, Gear^.Timer)
  1085                         else
  1084                         else
  1086                             DrawRotatedF(sprFlake, x, y, Gear^.Timer, 1, Gear^.DirAngle)
  1085                             DrawRotatedF(sprFlake, x, y, Gear^.Timer, 1, Gear^.DirAngle);
  1087 //DrawSprite(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer)
  1086 //DrawSprite(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer)
  1088 //DrawRotatedF(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer, 1, Gear^.DirAngle);
  1087 //DrawRotatedF(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer, 1, Gear^.DirAngle);
       
  1088                         if Gear^.FlightTime > 0 then Tint($FF, $FF, $FF, $FF);
  1089                         end;
  1089                         end;
  1090        gtStructure: DrawSprite(sprTarget, x - 16, y - 16, 0);
  1090        gtStructure: DrawSprite(sprTarget, x - 16, y - 16, 0);
       
  1091           gtTardis: if Gear^.Pos <> 4 then
       
  1092                         begin
       
  1093                         if Gear^.Pos = 2 then Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF)
       
  1094                         else Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or max($00, round(Gear^.Power * (1-abs(0.5 - (GameTicks mod 2000) / 2000)))));
       
  1095                         DrawSprite(sprTardis, x-24, y-63,0);
       
  1096                         if Gear^.Pos = 2 then Tint($FF, $FF, $FF, $FF)
       
  1097 			else Tint($FF,$FF,$FF,max($00, round(Gear^.Power * (1-abs(0.5 - (GameTicks mod 2000) / 2000)))));
       
  1098                         DrawSprite(sprTardis, x-24, y-63,1);
       
  1099                         if Gear^.Pos <> 2 then Tint($FF, $FF, $FF, $FF)
       
  1100 (*
       
  1101                         Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or max($00, round(Gear^.Power * abs(1 - (RealTicks mod 500) / 250))));
       
  1102                         DrawTexture(x-6, y-70, SpritesData[sprVampiric].Texture, 0.25);
       
  1103                         Tint($FF, $FF, $FF, $FF)
       
  1104 *)
       
  1105                         end;
       
  1106 
  1091 
  1107 
  1092          end;
  1108          end;
  1093       if Gear^.RenderTimer and (Gear^.Tex <> nil) then DrawCentered(x + 8, y + 8, Gear^.Tex);
  1109       if Gear^.RenderTimer and (Gear^.Tex <> nil) then DrawCentered(x + 8, y + 8, Gear^.Tex);
  1094 end;
  1110 end;
  1095 
  1111