hedgewars/uGearsRender.pas
changeset 13282 b13071610c07
parent 13233 bb73d6d3348a
child 13328 2489c36c61b7
equal deleted inserted replaced
13281:36243bd726df 13282:b13071610c07
  1236                   untint;
  1236                   untint;
  1237                   DrawSpriteRotatedF(sprPlane, x, y, 1, Gear^.Tag, aangle - 90)
  1237                   DrawSpriteRotatedF(sprPlane, x, y, 1, Gear^.Tag, aangle - 90)
  1238                   end;
  1238                   end;
  1239        gtBall: DrawSpriteRotatedF(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
  1239        gtBall: DrawSpriteRotatedF(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
  1240 
  1240 
  1241        gtPortal: if ((Gear^.Tag and 1) = 0) // still moving?
  1241        gtPortal: begin
       
  1242                  if ((Gear^.Tag and 1) = 0) // still moving?
  1242                  or (Gear^.LinkedGear = nil) or (Gear^.LinkedGear^.LinkedGear <> Gear) // not linked&backlinked?
  1243                  or (Gear^.LinkedGear = nil) or (Gear^.LinkedGear^.LinkedGear <> Gear) // not linked&backlinked?
  1243                  or ((Gear^.LinkedGear^.Tag and 1) = 0) then // linked portal still moving?
  1244                  or ((Gear^.LinkedGear^.Tag and 1) = 0) then // linked portal still moving?
  1244                       DrawSpriteRotatedF(sprPortal, x, y, Gear^.Tag, hwSign(Gear^.dX), Gear^.DirAngle)
  1245                      DrawSpriteRotatedF(sprPortal, x, y, Gear^.Tag, hwSign(Gear^.dX), Gear^.DirAngle)
  1245                  else DrawSpriteRotatedF(sprPortal, x, y, 4 + Gear^.Tag div 2, hwSign(Gear^.dX), Gear^.DirAngle);
  1246                  else
       
  1247                      DrawSpriteRotatedF(sprPortal, x, y, 4 + Gear^.Tag div 2, hwSign(Gear^.dX), Gear^.DirAngle);
       
  1248 
       
  1249                  // Portal ball trace effects
       
  1250                  if ((Gear^.Tag and 1) = 0) and ((GameTicks mod 4) = 0) and (not isPaused) then
       
  1251                      begin
       
  1252                      vg:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtDust, 1);
       
  1253                      if Gear^.Tag = 0 then
       
  1254                          vg^.Tint:= $fab02ab0
       
  1255                      else if Gear^.Tag = 2 then
       
  1256                          vg^.Tint:= $364df7b0;
       
  1257                      end;
       
  1258                  end;
  1246 
  1259 
  1247            gtDrill: if (Gear^.State and gsttmpFlag) <> 0 then
  1260            gtDrill: if (Gear^.State and gsttmpFlag) <> 0 then
  1248                         DrawSpriteRotated(sprAirDrill, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX))
  1261                         DrawSpriteRotated(sprAirDrill, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX))
  1249                     else
  1262                     else
  1250                         DrawSpriteRotated(sprDrill, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1263                         DrawSpriteRotated(sprDrill, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));