hedgewars/uGearsRender.pas
changeset 9666 8dcb25112d96
parent 9655 e154ccca4dad
child 9667 0b27737fc28f
equal deleted inserted replaced
9665:bfd62e380327 9666:8dcb25112d96
    63 
    63 
    64     Tint($C0, $C0, $C0, $FF);
    64     Tint($C0, $C0, $C0, $FF);
    65 
    65 
    66     glVertexPointer(2, GL_FLOAT, 0, @RopePoints.rounded[0]);
    66     glVertexPointer(2, GL_FLOAT, 0, @RopePoints.rounded[0]);
    67     glDrawArrays(GL_LINE_STRIP, 0, RopePoints.Count + 2);
    67     glDrawArrays(GL_LINE_STRIP, 0, RopePoints.Count + 2);
    68     Tint($FF, $FF, $FF, $FF);
    68     untint;
    69 
    69 
    70     glPopMatrix;
    70     glPopMatrix;
    71 
    71 
    72     glEnable(GL_TEXTURE_2D);
    72     glEnable(GL_TEXTURE_2D);
    73     //glDisable(GL_LINE_SMOOTH)
    73     //glDisable(GL_LINE_SMOOTH)
   220     if (Gear^.State and gstHHDeath) <> 0 then
   220     if (Gear^.State and gstHHDeath) <> 0 then
   221         begin
   221         begin
   222         DrawSprite(sprHHDeath, ox - 16, oy - 26, Gear^.Pos);
   222         DrawSprite(sprHHDeath, ox - 16, oy - 26, Gear^.Pos);
   223         Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
   223         Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
   224         DrawSprite(sprHHDeath, ox - 16, oy - 26, Gear^.Pos + 8);
   224         DrawSprite(sprHHDeath, ox - 16, oy - 26, Gear^.Pos + 8);
   225         Tint($FF, $FF, $FF, $FF);
   225         untint;
   226         exit
   226         exit
   227         end
   227         end
   228     else if (Gear^.State and gstHHGone) <> 0 then
   228     else if (Gear^.State and gstHHGone) <> 0 then
   229         begin
   229         begin
   230         DrawSpriteRotatedF(sprTeleport, sx, sy, Gear^.Pos, sign, 0);
   230         DrawSpriteRotatedF(sprTeleport, sx, sy, Gear^.Pos, sign, 0);
   261 
   261 
   262     if HH^.Effects[hePoisoned] <> 0 then
   262     if HH^.Effects[hePoisoned] <> 0 then
   263         begin
   263         begin
   264         Tint($00, $FF, $40, $40);
   264         Tint($00, $FF, $40, $40);
   265         DrawTextureRotatedF(SpritesData[sprSmokeWhite].texture, 2, 0, 0, sx, sy, 0, 1, 22, 22, (RealTicks shr 36) mod 360);
   265         DrawTextureRotatedF(SpritesData[sprSmokeWhite].texture, 2, 0, 0, sx, sy, 0, 1, 22, 22, (RealTicks shr 36) mod 360);
   266         Tint($FF, $FF, $FF, $FF)
   266         untint
   267         end;
   267         end;
   268 
   268 
   269 
   269 
   270     if ((Gear^.State and gstWinner) <> 0) and
   270     if ((Gear^.State and gstWinner) <> 0) and
   271     ((CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtPickHammer)) then
   271     ((CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtPickHammer)) then
   360                 end;
   360                 end;
   361             // draw crosshair
   361             // draw crosshair
   362             CrosshairX := Round(hwRound(Gear^.X) + dx * 80 + GetLaunchX(HH^.CurAmmoType, sign * m, Gear^.Angle));
   362             CrosshairX := Round(hwRound(Gear^.X) + dx * 80 + GetLaunchX(HH^.CurAmmoType, sign * m, Gear^.Angle));
   363             CrosshairY := Round(hwRound(Gear^.Y) + dy * 80 + GetLaunchY(HH^.CurAmmoType, Gear^.Angle));
   363             CrosshairY := Round(hwRound(Gear^.Y) + dy * 80 + GetLaunchY(HH^.CurAmmoType, Gear^.Angle));
   364 
   364 
       
   365             setTintAdd(true);
   365             Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
   366             Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
   366             DrawTextureRotated(CrosshairTexture,
   367             DrawTextureRotated(CrosshairTexture,
   367                     12, 12, CrosshairX + WorldDx, CrosshairY + WorldDy, 0,
   368                     12, 12, CrosshairX + WorldDx, CrosshairY + WorldDy, 0,
   368                     sign * (Gear^.Angle * 180.0) / cMaxAngle);
   369                     sign * (Gear^.Angle * 180.0) / cMaxAngle);
   369             Tint($FFFFFFFF);
   370             untint;
       
   371             setTintAdd(false);
   370             end;
   372             end;
       
   373 
   371         hx:= ox + 8 * sign;
   374         hx:= ox + 8 * sign;
   372         hy:= oy - 2;
   375         hy:= oy - 2;
   373         aangle:= Gear^.Angle * 180 / cMaxAngle - 90;
   376         aangle:= Gear^.Angle * 180 / cMaxAngle - 90;
   374         if (CurAmmoGear <> nil) and (CurAmmoGear^.Kind <> gtTardis) then
   377         if (CurAmmoGear <> nil) and (CurAmmoGear^.Kind <> gtTardis) then
   375         begin
   378         begin
   420                                 if HatTex^.w > 64 then
   423                                 if HatTex^.w > 64 then
   421                                     begin
   424                                     begin
   422                                     Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
   425                                     Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
   423                                     DrawTextureRotatedF(HatTex, 1.0, -1.0, -6.0, ox, oy, 32, i, 32, 32,
   426                                     DrawTextureRotatedF(HatTex, 1.0, -1.0, -6.0, ox, oy, 32, i, 32, 32,
   424                                         i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle);
   427                                         i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle);
   425                                     Tint($FF, $FF, $FF, $FF)
   428                                     untint
   426                                     end
   429                                     end
   427                                 end
   430                                 end
   428                     end;
   431                     end;
   429                     DrawAltWeapon(Gear, ox, oy);
   432                     DrawAltWeapon(Gear, ox, oy);
   430                     defaultPos:= false
   433                     defaultPos:= false
   457                                     sy - 5,
   460                                     sy - 5,
   458                                     32,
   461                                     32,
   459                                     sign,
   462                                     sign,
   460                                     32,
   463                                     32,
   461                                     32);
   464                                     32);
   462                                 Tint($FF, $FF, $FF, $FF)
   465                                 untint
   463                                 end
   466                                 end
   464                             end;
   467                             end;
   465                     defaultPos:= false
   468                     defaultPos:= false
   466                     end;
   469                     end;
   467                 gtShover: DrawSpriteRotated(sprHandBaseball, hx, hy, sign, aangle + 180);
   470                 gtShover: DrawSpriteRotated(sprHandBaseball, hx, hy, sign, aangle + 180);
   661                 amSeduction: begin
   664                 amSeduction: begin
   662                              DrawSpriteRotated(sprHandSeduction, hx, hy, sign, aangle);
   665                              DrawSpriteRotated(sprHandSeduction, hx, hy, sign, aangle);
   663                              DrawCircle(ox, oy, 248, 4, $FF, $00, $00, $AA);
   666                              DrawCircle(ox, oy, 248, 4, $FF, $00, $00, $AA);
   664                              //Tint($FF, $0, $0, $AA);
   667                              //Tint($FF, $0, $0, $AA);
   665                              //DrawTexture(ox - 240, oy - 240, SpritesData[sprVampiric].Texture, 10);
   668                              //DrawTexture(ox - 240, oy - 240, SpritesData[sprVampiric].Texture, 10);
   666                              //Tint($FF, $FF, $FF, $FF);
   669                              //untint;
   667                              end;
   670                              end;
   668                 amVampiric: DrawSpriteRotatedF(sprHandVamp, hx, hy, (RealTicks div 125) mod 4, sign, aangle);
   671                 amVampiric: DrawSpriteRotatedF(sprHandVamp, hx, hy, (RealTicks div 125) mod 4, sign, aangle);
   669                 amRCPlane: begin
   672                 amRCPlane: begin
   670                     DrawSpriteRotated(sprHandPlane, hx, hy, sign, 0);
   673                     DrawSpriteRotated(sprHandPlane, hx, hy, sign, 0);
   671                     defaultPos:= false
   674                     defaultPos:= false
   830                         sy - 5,
   833                         sy - 5,
   831                         (RealTicks div 128 + Gear^.Pos) mod 19 + 32,
   834                         (RealTicks div 128 + Gear^.Pos) mod 19 + 32,
   832                         sign,
   835                         sign,
   833                         32,
   836                         32,
   834                         32);
   837                         32);
   835                     Tint($FF, $FF, $FF, $FF)
   838                     untint
   836                     end;
   839                     end;
   837                 if HH^.Team^.hasGone then Tint($FF, $FF, $FF, $FF)
   840                 if HH^.Team^.hasGone then untint
   838                 end
   841                 end
   839             else
   842             else
   840                 begin
   843                 begin
   841                 DrawTextureF(HatTex,
   844                 DrawTextureF(HatTex,
   842                     HatVisibility,
   845                     HatVisibility,
   855                         sy - 5,
   858                         sy - 5,
   856                         32,
   859                         32,
   857                         sign*m,
   860                         sign*m,
   858                         32,
   861                         32,
   859                         32);
   862                         32);
   860                     Tint($FF, $FF, $FF, $FF)
   863                     untint
   861                     end
   864                     end
   862                 end
   865                 end
   863         end;
   866         end;
   864     if (Gear^.State and gstHHDriven) <> 0 then
   867     if (Gear^.State and gstHHDriven) <> 0 then
   865         begin
   868         begin
   915                 begin
   918                 begin
   916                 dec(t, Team^.NameTagTex^.h + 2);
   919                 dec(t, Team^.NameTagTex^.h + 2);
   917                 DrawTextureCentered(ox, t, Team^.NameTagTex)
   920                 DrawTextureCentered(ox, t, Team^.NameTagTex)
   918                 end;
   921                 end;
   919             if (cTagsMask and htTransparent) <> 0 then
   922             if (cTagsMask and htTransparent) <> 0 then
   920                 Tint($FF, $FF, $FF, $FF)
   923                 untint
   921             end;
   924             end;
   922         if (Gear^.State and gstHHDriven) <> 0 then // Current hedgehog
   925         if (Gear^.State and gstHHDriven) <> 0 then // Current hedgehog
   923             begin
   926             begin
   924             if (CurAmmoGear <> nil) and (CurAmmoGear^.Kind = gtResurrector) then
   927             if (CurAmmoGear <> nil) and (CurAmmoGear^.Kind = gtResurrector) then
   925                 DrawTextureCentered(ox, sy - cHHRadius - 7 - HealthTagTex^.h, HealthTagTex);
   928                 DrawTextureCentered(ox, sy - cHHRadius - 7 - HealthTagTex^.h, HealthTagTex);
   966         else
   969         else
   967         DrawTextureFromRectDir(sx-16 + sign*2, sy+16-iceoffset, r.w, r.h, @r, HHTexture, sign);
   970         DrawTextureFromRectDir(sx-16 + sign*2, sy+16-iceoffset, r.w, r.h, @r, HHTexture, sign);
   968 
   971 
   969 
   972 
   970         if HH^.Effects[heFrozen] < 150000 then
   973         if HH^.Effects[heFrozen] < 150000 then
   971             Tint($FF, $FF, $FF, $FF);
   974             untint;
   972         end;
   975         end;
   973 
   976 
   974 
   977 
   975     if cVampiric and
   978     if cVampiric and
   976     (CurrentHedgehog^.Gear <> nil) and
   979     (CurrentHedgehog^.Gear <> nil) and
   977     (CurrentHedgehog^.Gear = Gear) then
   980     (CurrentHedgehog^.Gear = Gear) then
   978         begin
   981         begin
   979         Tint($FF, 0, 0, max($40, round($FF * abs(1 - (RealTicks mod 1500) / 750))));
   982         Tint($FF, 0, 0, max($40, round($FF * abs(1 - (RealTicks mod 1500) / 750))));
   980         DrawSprite(sprVampiric, sx - 24, sy - 24, 0);
   983         DrawSprite(sprVampiric, sx - 24, sy - 24, 0);
   981         end;
   984         end;
   982         Tint($FF, $FF, $FF, $FF)
   985         untint
   983 end;
   986 end;
   984 
   987 
   985 
   988 
   986 procedure RenderGear(Gear: PGear; x, y: LongInt);
   989 procedure RenderGear(Gear: PGear; x, y: LongInt);
   987 var
   990 var
  1015        gtRCPlane: begin
  1018        gtRCPlane: begin
  1016                   aangle:= Gear^.Angle * 360 / 4096;
  1019                   aangle:= Gear^.Angle * 360 / 4096;
  1017                   if Gear^.Tag < 0 then aangle:= 360-aangle;
  1020                   if Gear^.Tag < 0 then aangle:= 360-aangle;
  1018                   Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
  1021                   Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
  1019                   DrawSpriteRotatedF(sprPlane, x, y, 0, Gear^.Tag, aangle - 90);
  1022                   DrawSpriteRotatedF(sprPlane, x, y, 0, Gear^.Tag, aangle - 90);
  1020                   Tint($FF, $FF, $FF, $FF);
  1023                   untint;
  1021                   DrawSpriteRotatedF(sprPlane, x, y, 1, Gear^.Tag, aangle - 90)
  1024                   DrawSpriteRotatedF(sprPlane, x, y, 1, Gear^.Tag, aangle - 90)
  1022                   end;
  1025                   end;
  1023        gtBall: DrawSpriteRotatedF(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
  1026        gtBall: DrawSpriteRotatedF(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
  1024 
  1027 
  1025        gtPortal: if ((Gear^.Tag and 1) = 0) // still moving?
  1028        gtPortal: if ((Gear^.Tag and 1) = 0) // still moving?
  1043                         begin
  1046                         begin
  1044                         //Tint($33, $33, $FF, max($40, round($FF * abs(1 - (GameTicks mod (6000 div Gear^.Health)) / 750))));
  1047                         //Tint($33, $33, $FF, max($40, round($FF * abs(1 - (GameTicks mod (6000 div Gear^.Health)) / 750))));
  1045                         Tint($f5, $db, $35, max($40, round($FF * abs(1 - (GameTicks mod 1500) / (750 + Gear^.Health)))));
  1048                         Tint($f5, $db, $35, max($40, round($FF * abs(1 - (GameTicks mod 1500) / (750 + Gear^.Health)))));
  1046                         //Tint($FF, $FF, $FF, max($40, round($FF * abs(1 - (RealTicks mod 1500) / 750))));
  1049                         //Tint($FF, $FF, $FF, max($40, round($FF * abs(1 - (RealTicks mod 1500) / 750))));
  1047                         DrawSprite(sprVampiric, x - 24, y - 24, 0);
  1050                         DrawSprite(sprVampiric, x - 24, y - 24, 0);
  1048                         Tint($FF, $FF, $FF, $FF)
  1051                         untint
  1049                         end
  1052                         end
  1050                     end;
  1053                     end;
  1051              gtBee: DrawSpriteRotatedF(sprBee, x, y, (GameTicks shr 5) mod 2, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1054              gtBee: DrawSpriteRotatedF(sprBee, x, y, (GameTicks shr 5) mod 2, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1052       gtPickHammer: DrawSprite(sprPHammer, x - 16, y - 50 + LongInt(((GameTicks shr 5) and 1) * 2), 0);
  1055       gtPickHammer: DrawSprite(sprPHammer, x - 16, y - 50 + LongInt(((GameTicks shr 5) and 1) * 2), 0);
  1053             gtRope: DrawRope(Gear);
  1056             gtRope: DrawRope(Gear);
  1137                     DrawAltWeapon(Gear, x + 1, y - 3)
  1140                     DrawAltWeapon(Gear, x + 1, y - 3)
  1138                     end;
  1141                     end;
  1139        gtAirAttack: begin
  1142        gtAirAttack: begin
  1140                     Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
  1143                     Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF);
  1141                     DrawSpriteRotatedF(sprAirplane, x, y, 0, Gear^.Tag, 0);
  1144                     DrawSpriteRotatedF(sprAirplane, x, y, 0, Gear^.Tag, 0);
  1142                     Tint($FF, $FF, $FF, $FF);
  1145                     untint;
  1143                     DrawSpriteRotatedF(sprAirplane, x, y, 1, Gear^.Tag, 0);
  1146                     DrawSpriteRotatedF(sprAirplane, x, y, 1, Gear^.Tag, 0);
  1144                     end;
  1147                     end;
  1145          gtAirBomb: DrawSpriteRotated(sprAirBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1148          gtAirBomb: DrawSpriteRotated(sprAirBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1146         gtTeleport: begin
  1149         gtTeleport: begin
  1147                     HHGear:= Gear^.Hedgehog^.Gear;
  1150                     HHGear:= Gear^.Hedgehog^.Gear;
  1151                     end;
  1154                     end;
  1152         gtSwitcher: DrawSprite(sprSwitch, x - 16, y - 56, (GameTicks shr 6) mod 12);
  1155         gtSwitcher: DrawSprite(sprSwitch, x - 16, y - 56, (GameTicks shr 6) mod 12);
  1153           gtTarget: begin
  1156           gtTarget: begin
  1154                     Tint($FF, $FF, $FF, round($FF * Gear^.Timer / 1000));
  1157                     Tint($FF, $FF, $FF, round($FF * Gear^.Timer / 1000));
  1155                     DrawSprite(sprTarget, x - 16, y - 16, 0);
  1158                     DrawSprite(sprTarget, x - 16, y - 16, 0);
  1156                     Tint($FF, $FF, $FF, $FF);
  1159                     untint;
  1157                     end;
  1160                     end;
  1158           gtMortar: DrawSpriteRotated(sprMortar, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1161           gtMortar: DrawSpriteRotated(sprMortar, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1159           gtCake: if Gear^.Pos = 6 then
  1162           gtCake: if Gear^.Pos = 6 then
  1160                      DrawSpriteRotatedF(sprCakeWalk, x, y, (GameTicks div 40) mod 6, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX) + 90)
  1163                      DrawSpriteRotatedF(sprCakeWalk, x, y, (GameTicks div 40) mod 6, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX) + 90)
  1161                   else
  1164                   else
  1205                     if (Gear^.State and gstDrowning) = 0 then
  1208                     if (Gear^.State and gstDrowning) = 0 then
  1206                         begin
  1209                         begin
  1207                         Tint($FF, $FF, $FF, $10);
  1210                         Tint($FF, $FF, $FF, $10);
  1208                         for i:= 8 downto 1 do
  1211                         for i:= 8 downto 1 do
  1209                             DrawTextureF(SpritesData[sprPiano].Texture, 1, x, y - hwRound(Gear^.dY * 4 * i), 0, 1, 128, 128);
  1212                             DrawTextureF(SpritesData[sprPiano].Texture, 1, x, y - hwRound(Gear^.dY * 4 * i), 0, 1, 128, 128);
  1210                         Tint($FF, $FF, $FF, $FF)
  1213                         untint
  1211                         end;
  1214                         end;
  1212                     DrawTextureF(SpritesData[sprPiano].Texture, 1, x, y, 0, 1, 128, 128);
  1215                     DrawTextureF(SpritesData[sprPiano].Texture, 1, x, y, 0, 1, 128, 128);
  1213                     end;
  1216                     end;
  1214      gtPoisonCloud: begin
  1217      gtPoisonCloud: begin
  1215                     if Gear^.Timer < 1020 then
  1218                     if Gear^.Timer < 1020 then
  1217                     else if Gear^.Timer > 3980 then
  1220                     else if Gear^.Timer > 3980 then
  1218                         Tint($C0, $C0, $00, (5000 - Gear^.Timer) div 8)
  1221                         Tint($C0, $C0, $00, (5000 - Gear^.Timer) div 8)
  1219                     else
  1222                     else
  1220                         Tint($C0, $C0, $00, $C0);
  1223                         Tint($C0, $C0, $00, $C0);
  1221                     DrawTextureRotatedF(SpritesData[sprSmokeWhite].texture, 3, 0, 0, x, y, 0, 1, 22, 22, (RealTicks shr 36 + Gear^.UID * 100) mod 360);
  1224                     DrawTextureRotatedF(SpritesData[sprSmokeWhite].texture, 3, 0, 0, x, y, 0, 1, 22, 22, (RealTicks shr 36 + Gear^.UID * 100) mod 360);
  1222                     Tint($FF, $FF, $FF, $FF)
  1225                     untint
  1223                     end;
  1226                     end;
  1224      gtResurrector: begin
  1227      gtResurrector: begin
  1225                     DrawSpriteRotated(sprCross, x, y, 0, 0);
  1228                     DrawSpriteRotated(sprCross, x, y, 0, 0);
  1226                     Tint($f5, $db, $35, max($00, round($C0 * abs(1 - (GameTicks mod 6000) / 3000))));
  1229                     Tint($f5, $db, $35, max($00, round($C0 * abs(1 - (GameTicks mod 6000) / 3000))));
  1227                     DrawTexture(x - 108, y - 108, SpritesData[sprVampiric].Texture, 4.5);
  1230                     DrawTexture(x - 108, y - 108, SpritesData[sprVampiric].Texture, 4.5);
  1228                     Tint($FF, $FF, $FF, $FF);
  1231                     untint;
  1229                     end;
  1232                     end;
  1230       gtNapalmBomb: DrawSpriteRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1233       gtNapalmBomb: DrawSpriteRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1231            gtFlake: if Gear^.State and (gstDrowning or gstTmpFlag) <> 0  then
  1234            gtFlake: if Gear^.State and (gstDrowning or gstTmpFlag) <> 0  then
  1232                         begin
  1235                         begin
  1233                         Tint((ExplosionBorderColor shr RShift) and $FF,
  1236                         Tint((ExplosionBorderColor shr RShift) and $FF,
  1236                              $FF);
  1239                              $FF);
  1237                         // Needs a nicer white texture to tint
  1240                         // Needs a nicer white texture to tint
  1238                         DrawTextureRotatedF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
  1241                         DrawTextureRotatedF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
  1239                         //DrawSpriteRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
  1242                         //DrawSpriteRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
  1240                         //DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
  1243                         //DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
  1241                         Tint($FF, $FF, $FF, $FF);
  1244                         untint;
  1242                         end
  1245                         end
  1243                     else //if not isInLag then
  1246                     else //if not isInLag then
  1244                         begin
  1247                         begin
  1245                         if isInLag and (Gear^.FlightTime < 256) then
  1248                         if isInLag and (Gear^.FlightTime < 256) then
  1246                             inc(Gear^.FlightTime, 8)
  1249                             inc(Gear^.FlightTime, 8)
  1253                         else
  1256                         else
  1254                             DrawSpriteRotatedF(sprFlake, x, y, Gear^.Timer, 1, Gear^.DirAngle);
  1257                             DrawSpriteRotatedF(sprFlake, x, y, Gear^.Timer, 1, Gear^.DirAngle);
  1255 //DrawSprite(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer)
  1258 //DrawSprite(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer)
  1256 //DrawSpriteRotatedF(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer, 1, Gear^.DirAngle);
  1259 //DrawSpriteRotatedF(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer, 1, Gear^.DirAngle);
  1257                         if Gear^.FlightTime > 0 then
  1260                         if Gear^.FlightTime > 0 then
  1258                             Tint($FF, $FF, $FF, $FF);
  1261                             untint;
  1259                         end;
  1262                         end;
  1260        //gtStructure: DrawSprite(sprTarget, x - 16, y - 16, 0);
  1263        //gtStructure: DrawSprite(sprTarget, x - 16, y - 16, 0);
  1261           gtTardis: if Gear^.Pos <> 4 then
  1264           gtTardis: if Gear^.Pos <> 4 then
  1262                         begin
  1265                         begin
  1263                         if Gear^.Pos = 2 then
  1266                         if Gear^.Pos = 2 then
  1264                             Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF)
  1267                             Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or $FF)
  1265                         else
  1268                         else
  1266                             Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or max($00, round(Gear^.Power * (1-abs(0.5 - (GameTicks mod 2000) / 2000)))));
  1269                             Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or max($00, round(Gear^.Power * (1-abs(0.5 - (GameTicks mod 2000) / 2000)))));
  1267                         DrawSprite(sprTardis, x-24, y-63,0);
  1270                         DrawSprite(sprTardis, x-24, y-63,0);
  1268                         if Gear^.Pos = 2 then
  1271                         if Gear^.Pos = 2 then
  1269                             Tint($FF, $FF, $FF, $FF)
  1272                             untint
  1270                         else
  1273                         else
  1271                             Tint($FF,$FF,$FF,max($00, round(Gear^.Power * (1-abs(0.5 - (GameTicks mod 2000) / 2000)))));
  1274                             Tint($FF,$FF,$FF,max($00, round(Gear^.Power * (1-abs(0.5 - (GameTicks mod 2000) / 2000)))));
  1272                         DrawSprite(sprTardis, x-24, y-63,1);
  1275                         DrawSprite(sprTardis, x-24, y-63,1);
  1273                         if Gear^.Pos <> 2 then
  1276                         if Gear^.Pos <> 2 then
  1274                             Tint($FF, $FF, $FF, $FF)
  1277                             untint
  1275 (*
  1278 (*
  1276                         Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or max($00, round(Gear^.Power * abs(1 - (RealTicks mod 500) / 250))));
  1279                         Tint(Gear^.Hedgehog^.Team^.Clan^.Color shl 8 or max($00, round(Gear^.Power * abs(1 - (RealTicks mod 500) / 250))));
  1277                         DrawTexture(x-6, y-70, SpritesData[sprVampiric].Texture, 0.25);
  1280                         DrawTexture(x-6, y-70, SpritesData[sprVampiric].Texture, 0.25);
  1278                         Tint($FF, $FF, $FF, $FF)
  1281                         untint
  1279 *)
  1282 *)
  1280                         end;
  1283                         end;
  1281             gtIceGun: begin
  1284             gtIceGun: begin
  1282                       HHGear := Gear^.Hedgehog^.Gear;
  1285                       HHGear := Gear^.Hedgehog^.Gear;
  1283                       if HHGear <> nil then
  1286                       if HHGear <> nil then
  1311                       end;
  1314                       end;
  1312             gtGenericFaller: DrawCircle(x, y, 3, 3, $FF, $00, $00, $FF);  // debug
  1315             gtGenericFaller: DrawCircle(x, y, 3, 3, $FF, $00, $00, $FF);  // debug
  1313          end;
  1316          end;
  1314       if Gear^.RenderTimer and (Gear^.Tex <> nil) then
  1317       if Gear^.RenderTimer and (Gear^.Tex <> nil) then
  1315           DrawTextureCentered(x + 8, y + 8, Gear^.Tex);
  1318           DrawTextureCentered(x + 8, y + 8, Gear^.Tex);
  1316     if Gear^.State and gstFrozen <> 0 then Tint($FF, $FF, $FF, $FF)
  1319     if Gear^.State and gstFrozen <> 0 then untint
  1317 end;
  1320 end;
  1318 
  1321 
  1319 end.
  1322 end.