hedgewars/uGearsRender.pas
branchhedgeroid
changeset 6328 d14adf1c7721
parent 6224 42b256eca362
parent 6324 53e0d825cc25
child 6453 11c578d30bd3
equal deleted inserted replaced
6236:1998ff75321a 6328:d14adf1c7721
   895 
   895 
   896        gtRCPlane: begin
   896        gtRCPlane: begin
   897                   Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
   897                   Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
   898                   if Gear^.Tag = -1 then
   898                   if Gear^.Tag = -1 then
   899                       begin
   899                       begin
   900                       DrawRotatedTextureF(SpritesData[sprPlane].Texture, 1, 0, 0, x, y, 0, -1, SpritesData[sprPlane].Width, SpritesData[sprPlane].Height, DxDy2Angle(Gear^.dX, Gear^.dY) + 90);
   900                       DrawRotatedF(sprPlane, x, y, 0, -1, DxDy2Angle(Gear^.dX, Gear^.dY) + 90);
   901                       Tint($FF, $FF, $FF, $FF);
   901                       Tint($FF, $FF, $FF, $FF);
   902                       DrawRotatedTextureF(SpritesData[sprPlane].Texture, 1, 0, 0, x, y, 1, -1, SpritesData[sprPlane].Width, SpritesData[sprPlane].Height, DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
   902                       DrawRotatedF(sprPlane, x, y, 1, -1, DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
   903                       end
   903                       end
   904                   else
   904                   else
   905                       begin
   905                       begin
   906                       DrawRotatedTextureF(SpritesData[sprPlane].Texture, 1, 0, 0, x, y, 0, 0,  SpritesData[sprPlane].Width, SpritesData[sprPlane].Height, DxDy2Angle(Gear^.dY, Gear^.dX));
   906                       DrawRotatedF(sprPlane, x, y, 0, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
   907                       Tint($FF, $FF, $FF, $FF);
   907                       Tint($FF, $FF, $FF, $FF);
   908                       DrawRotatedTextureF(SpritesData[sprPlane].Texture, 1, 0, 0, x, y, 1, 0,  SpritesData[sprPlane].Width, SpritesData[sprPlane].Height, DxDy2Angle(Gear^.dY, Gear^.dX))
   908                       DrawRotatedF(sprPlane, x, y, 1, 0, DxDy2Angle(Gear^.dY, Gear^.dX))
   909                       end
   909                       end
   910                   end;
   910                   end;
   911        gtBall: DrawRotatedf(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
   911        gtBall: DrawRotatedf(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
   912 
   912 
   913        gtPortal: if ((Gear^.Tag and 1) = 0) // still moving?
   913        gtPortal: if ((Gear^.Tag and 1) = 0) // still moving?
   981                         DrawRotatedF(sprExplosivesRoll, x, y + 4, 1, 0, Gear^.DirAngle);
   981                         DrawRotatedF(sprExplosivesRoll, x, y + 4, 1, 0, Gear^.DirAngle);
   982                     end;
   982                     end;
   983         gtDynamite: DrawSprite2(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1);
   983         gtDynamite: DrawSprite2(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1);
   984      gtClusterBomb: DrawRotated(sprClusterBomb, x, y, 0, Gear^.DirAngle);
   984      gtClusterBomb: DrawRotated(sprClusterBomb, x, y, 0, Gear^.DirAngle);
   985          gtCluster: DrawSprite(sprClusterParticle, x - 8, y - 8, 0);
   985          gtCluster: DrawSprite(sprClusterParticle, x - 8, y - 8, 0);
   986            gtFlame: DrawTextureF(SpritesData[sprFlame].Texture, 2 / (Gear^.Tag mod 3 + 2), x, y, (GameTicks shr 7 + LongWord(Gear^.Tag)) mod 8, 1, 16, 16);
   986            gtFlame: if Gear^.Tag and 1 = 0 then
       
   987                          DrawTextureF(SpritesData[sprFlame].Texture, 2 / (Gear^.Tag mod 3 + 2), x, y, (GameTicks shr 7 + LongWord(Gear^.Tag)) mod 8, 1, 16, 16)
       
   988                     else DrawTextureF(SpritesData[sprFlame].Texture, 2 / (Gear^.Tag mod 3 + 2), x, y, (GameTicks shr 7 + LongWord(Gear^.Tag)) mod 8, -1, 16, 16);
   987        gtParachute: begin
   989        gtParachute: begin
   988                     DrawSprite(sprParachute, x - 24, y - 48, 0);
   990                     DrawSprite(sprParachute, x - 24, y - 48, 0);
   989                     DrawAltWeapon(Gear, x + 1, y - 3)
   991                     DrawAltWeapon(Gear, x + 1, y - 3)
   990                     end;
   992                     end;
   991        gtAirAttack: if Gear^.Tag > 0 then DrawSprite(sprAirplane, x - SpritesData[sprAirplane].Width div 2, y - SpritesData[sprAirplane].Height div 2, 0)
   993        gtAirAttack: begin
   992                                      else DrawSprite(sprAirplane, x - SpritesData[sprAirplane].Width div 2, y - SpritesData[sprAirplane].Height div 2, 1);
   994                     Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
       
   995                     DrawRotatedF(sprAirplane, x, y, 0, Gear^.Tag, 0);
       
   996                     Tint($FF, $FF, $FF, $FF);
       
   997                     DrawRotatedF(sprAirplane, x, y, 1, Gear^.Tag, 0);
       
   998                     end;
   993          gtAirBomb: DrawRotated(sprAirBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
   999          gtAirBomb: DrawRotated(sprAirBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
   994         gtTeleport: begin
  1000         gtTeleport: begin
   995                     HHGear:= Gear^.Hedgehog^.Gear;
  1001                     HHGear:= Gear^.Hedgehog^.Gear;
   996                     if not Gear^.Hedgehog^.Unplaced then DrawRotatedF(sprTeleport, x + 1, y - 3, Gear^.Pos, hwSign(Gear^.dX), 0);
  1002                     if not Gear^.Hedgehog^.Unplaced then DrawRotatedF(sprTeleport, x + 1, y - 3, Gear^.Pos, hwSign(Gear^.dX), 0);
   997                     DrawRotatedF(sprTeleport, hwRound(HHGear^.X) + 1 + WorldDx, hwRound(HHGear^.Y) - 3 + WorldDy, 11 - Gear^.Pos, hwSign(HHGear^.dX), 0);
  1003                     DrawRotatedF(sprTeleport, hwRound(HHGear^.X) + 1 + WorldDx, hwRound(HHGear^.Y) - 3 + WorldDy, 11 - Gear^.Pos, hwSign(HHGear^.dX), 0);
  1049            gtPiano: begin
  1055            gtPiano: begin
  1050                     if (Gear^.State and gstDrowning) = 0 then
  1056                     if (Gear^.State and gstDrowning) = 0 then
  1051                         begin
  1057                         begin
  1052                         Tint($FF, $FF, $FF, $10);
  1058                         Tint($FF, $FF, $FF, $10);
  1053                         for i:= 8 downto 1 do
  1059                         for i:= 8 downto 1 do
  1054                             DrawRotatedTextureF(SpritesData[sprPiano].Texture, 1, 0, 0, x, y - hwRound(Gear^.dY * 4 * i), 0, 1, 128, 128, 0);
  1060                             DrawTextureF(SpritesData[sprPiano].Texture, 1, x, y - hwRound(Gear^.dY * 4 * i), 0, 1, 128, 128);
  1055                         Tint($FF, $FF, $FF, $FF)
  1061                         Tint($FF, $FF, $FF, $FF)
  1056                         end;
  1062                         end;
  1057                     DrawRotatedTextureF(SpritesData[sprPiano].Texture, 1, 0, 0, x, y, 0, 1, 128, 128, 0);
  1063                     DrawTextureF(SpritesData[sprPiano].Texture, 1, x, y, 0, 1, 128, 128);
  1058                     end;
  1064                     end;
  1059      gtPoisonCloud: begin
  1065      gtPoisonCloud: begin
  1060                     if Gear^.Timer < 1020 then
  1066                     if Gear^.Timer < 1020 then
  1061                         Tint($C0, $C0, $00, Gear^.Timer div 8)
  1067                         Tint($C0, $C0, $00, Gear^.Timer div 8)
  1062                     else if Gear^.Timer > 3980 then
  1068                     else if Gear^.Timer > 3980 then