hedgewars/uGearsRender.pas
changeset 8414 c1ac0b64315e
parent 8370 0c79946e96f8
child 8444 75db7bb8dce8
child 8554 84a279d0556c
equal deleted inserted replaced
8413:454191defee6 8414:c1ac0b64315e
  1104                             endY:= y - WorldDy;
  1104                             endY:= y - WorldDy;
  1105                             if Gear^.Tag < 0 then
  1105                             if Gear^.Tag < 0 then
  1106                                 startX:= max(max(LAND_WIDTH,4096) + 1024, endX + 2048)
  1106                                 startX:= max(max(LAND_WIDTH,4096) + 1024, endX + 2048)
  1107                             else
  1107                             else
  1108                                 startX:= max(-max(LAND_WIDTH,4096) - 1024, endX - 2048);
  1108                                 startX:= max(-max(LAND_WIDTH,4096) - 1024, endX - 2048);
  1109                             startY:= endY - 256;
  1109                             startY:= endY - 1024;
  1110                             DrawTextureF(SpritesData[sprBirdy].Texture, 1, startX + WorldDx + LongInt(round((endX - startX) * (-power(2, -10 * LongInt(Gear^.Timer)/2000) + 1))), startY + WorldDy + LongInt(round((endY - startY) * sqrt(1 - power((LongInt(Gear^.Timer)/2000)-1, 2)))), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
  1110                             DrawTextureF(SpritesData[sprBirdy].Texture, min(Gear^.Timer/750,1), startX + WorldDx + LongInt(round((endX - startX) * (-power(2, -10 * LongInt(Gear^.Timer)/2000) + 1))), startY + WorldDy + LongInt(round((endY - startY) * sqrt(1 - power((LongInt(Gear^.Timer)/2000)-1, 2)))), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
  1111                             end
  1111                             end
  1112                         else // Disappearing
  1112                         else // Disappearing
  1113                             begin
  1113                             begin
  1114                             startX:= x - WorldDx;
  1114                             startX:= x - WorldDx;
  1115                             startY:= y - WorldDy;
  1115                             startY:= y - WorldDy;
  1116                             if Gear^.Tag > 0 then
  1116                             if Gear^.Tag > 0 then
  1117                                 endX:= max(max(LAND_WIDTH,4096) + 1024, startX + 2048)
  1117                                 endX:= max(max(LAND_WIDTH,4096) + 1024, startX + 2048)
  1118                             else
  1118                             else
  1119                                 endX:= max(-max(LAND_WIDTH,4096) - 1024, startX - 2048);
  1119                                 endX:= max(-max(LAND_WIDTH,4096) - 1024, startX - 2048);
  1120                             endY:= startY + 256;
  1120                             endY:= startY + 1024;
  1121                             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);
  1121                             DrawTextureF(SpritesData[sprBirdy].Texture, min((2000-Gear^.Timer)/750,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);
  1122                             end;
  1122                             end;
  1123                         end
  1123                         end
  1124                     else
  1124                     else
  1125                         begin
  1125                         begin
  1126                         if Gear^.Health < 250 then
  1126                         if Gear^.Health < 250 then