hedgewars/uGearsRender.pas
changeset 10032 db65298717da
parent 10001 ec523563826e
child 10040 4ac87acbaed9
equal deleted inserted replaced
10031:9353632dc661 10032:db65298717da
   793 
   793 
   794     with HH^ do
   794     with HH^ do
   795         begin
   795         begin
   796         if defaultPos then
   796         if defaultPos then
   797             begin
   797             begin
   798             if HH^.Team^.hasGone then Tint($FF, $FF, $FF, $80);
   798             if HH^.Team^.hasGone then
       
   799                  Tint($FFFFFF80)
       
   800             else if HH^.Effects[hePoisoned] <> 0 then
       
   801                  Tint($B7FFBCFF)
       
   802             else Tint(HH^.Gear^.Tint);
   799             DrawSpriteRotatedF(sprHHIdle,
   803             DrawSpriteRotatedF(sprHHIdle,
   800                 sx,
   804                 sx,
   801                 sy,
   805                 sy,
   802                 (RealTicks div 128 + Gear^.Pos) mod 19,
   806                 (RealTicks div 128 + Gear^.Pos) mod 19,
       
   807                 sign,
       
   808                 0);
       
   809             untint;
       
   810             DrawSpriteRotatedF(sprHHIdle,
       
   811                 sx,
       
   812                 sy,
       
   813                 (RealTicks div 128 + Gear^.Pos) mod 19 + 32,
   803                 sign,
   814                 sign,
   804                 0);
   815                 0);
   805             HatVisible:= true;
   816             HatVisible:= true;
   806             end;
   817             end;
   807 
   818 
  1037                   else DrawSprite(sprMolotov, x, y, 8);
  1048                   else DrawSprite(sprMolotov, x, y, 8);
  1038 
  1049 
  1039        gtRCPlane: begin
  1050        gtRCPlane: begin
  1040                   aangle:= Gear^.Angle * 360 / 4096;
  1051                   aangle:= Gear^.Angle * 360 / 4096;
  1041                   if Gear^.Tag < 0 then aangle:= 360-aangle;
  1052                   if Gear^.Tag < 0 then aangle:= 360-aangle;
  1042                   Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
  1053                   Tint(Gear^.Tint);
  1043                   DrawSpriteRotatedF(sprPlane, x, y, 0, Gear^.Tag, aangle - 90);
  1054                   DrawSpriteRotatedF(sprPlane, x, y, 0, Gear^.Tag, aangle - 90);
  1044                   untint;
  1055                   untint;
  1045                   DrawSpriteRotatedF(sprPlane, x, y, 1, Gear^.Tag, aangle - 90)
  1056                   DrawSpriteRotatedF(sprPlane, x, y, 1, Gear^.Tag, aangle - 90)
  1046                   end;
  1057                   end;
  1047        gtBall: DrawSpriteRotatedF(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
  1058        gtBall: DrawSpriteRotatedF(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
  1159        gtParachute: begin
  1170        gtParachute: begin
  1160                     DrawSprite(sprParachute, x - 24, y - 48, 0);
  1171                     DrawSprite(sprParachute, x - 24, y - 48, 0);
  1161                     DrawAltWeapon(Gear, x + 1, y - 3)
  1172                     DrawAltWeapon(Gear, x + 1, y - 3)
  1162                     end;
  1173                     end;
  1163        gtAirAttack: begin
  1174        gtAirAttack: begin
  1164                     Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
  1175                     Tint(Gear^.Tint);
  1165                     DrawSpriteRotatedF(sprAirplane, x, y, 0, Gear^.Tag, 0);
  1176                     DrawSpriteRotatedF(sprAirplane, x, y, 0, Gear^.Tag, 0);
  1166                     untint;
  1177                     untint;
  1167                     DrawSpriteRotatedF(sprAirplane, x, y, 1, Gear^.Tag, 0);
  1178                     DrawSpriteRotatedF(sprAirplane, x, y, 1, Gear^.Tag, 0);
  1168                     end;
  1179                     end;
  1169          gtAirBomb: DrawSpriteRotated(sprAirBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1180          gtAirBomb: DrawSpriteRotated(sprAirBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1235                         end;
  1246                         end;
  1236                     DrawTextureF(SpritesData[sprPiano].Texture, 1, x, y, 0, 1, 128, 128);
  1247                     DrawTextureF(SpritesData[sprPiano].Texture, 1, x, y, 0, 1, 128, 128);
  1237                     end;
  1248                     end;
  1238      gtPoisonCloud: begin
  1249      gtPoisonCloud: begin
  1239                     if Gear^.Timer < 1020 then
  1250                     if Gear^.Timer < 1020 then
  1240                         Tint($C0, $C0, $00, Gear^.Timer div 8)
  1251                         Tint(Gear^.Tint and $FFFFFF00 or Gear^.Timer div 8)
  1241                     else if Gear^.Timer > 3980 then
  1252                     else if Gear^.Timer > 3980 then
  1242                         Tint($C0, $C0, $00, (5000 - Gear^.Timer) div 8)
  1253                         Tint(Gear^.Tint and $FFFFFF00 or (5000 - Gear^.Timer) div 8)
  1243                     else
  1254                     else
  1244                         Tint($C0, $C0, $00, $C0);
  1255                         Tint(Gear^.Tint);
  1245                     DrawTextureRotatedF(SpritesData[sprSmokeWhite].texture, 3, 0, 0, x, y, 0, 1, 22, 22, (RealTicks shr 36 + Gear^.UID * 100) mod 360);
  1256                     DrawTextureRotatedF(SpritesData[sprSmokeWhite].texture, 3, 0, 0, x, y, 0, 1, 22, 22, (RealTicks shr 36 + Gear^.UID * 100) mod 360);
  1246                     untint
  1257                     untint
  1247                     end;
  1258                     end;
  1248      gtResurrector: begin
  1259      gtResurrector: begin
  1249                     DrawSpriteRotated(sprCross, x, y, 0, 0);
  1260                     DrawSpriteRotated(sprCross, x, y, 0, 0);
  1250                     Tint($f5, $db, $35, max($00, round($C0 * abs(1 - (GameTicks mod 6000) / 3000))));
  1261                     Tint(Gear^.Tint and $FFFFFF00 or max($00, round($C0 * abs(1 - (GameTicks mod 6000) / 3000))));
  1251                     DrawTexture(x - 108, y - 108, SpritesData[sprVampiric].Texture, 4.5);
  1262                     DrawTexture(x - 108, y - 108, SpritesData[sprVampiric].Texture, 4.5);
  1252                     untint;
  1263                     untint;
  1253                     end;
  1264                     end;
  1254       gtNapalmBomb: DrawSpriteRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1265       gtNapalmBomb: DrawSpriteRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1255            gtFlake: if Gear^.State and (gstDrowning or gstTmpFlag) <> 0  then
  1266            gtFlake: if Gear^.State and (gstDrowning or gstTmpFlag) <> 0  then
  1256                         begin
  1267                         begin
  1257                         Tint((ExplosionBorderColor shr RShift) and $FF,
  1268                         Tint(Gear^.Tint);
  1258                              (ExplosionBorderColor shr GShift) and $FF,
       
  1259                              (ExplosionBorderColor shr BShift) and $FF,
       
  1260                              $FF);
       
  1261                         // Needs a nicer white texture to tint
  1269                         // Needs a nicer white texture to tint
  1262                         DrawTextureRotatedF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
  1270                         DrawTextureRotatedF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
  1263                         //DrawSpriteRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
  1271                         //DrawSpriteRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
  1264                         //DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
  1272                         //DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
  1265                         untint;
  1273                         untint;