anchor.diff:                            begin
                               //Arrows are more likely to cause damage when the unit is closer
                               if Random(Round(8 * GetLength(U.PositionF,fTargetJ))) = 0 then
  -                              if  U.HitPointsDecrease(1) then
  -                                if (fPlayers <> nil) then
  -                                  fPlayers.Player[fOwner].Stats.UnitKilled(U.UnitType);
  +                              if U.HitPointsDecrease(1) then
  +                                fPlayers.Player[fOwner].Stats.UnitKilled(U.UnitType);
                             end
                             else
                             begin
  
positive.code:       fLength:single; //Route length to look-up for hit
      end;
  
    public
      constructor Create;
      function AddItem(aStart,aEnd:TKMPointF; aProjType:TProjectileType; aOwner:TPlayerIndex; MakeSound:boolean):word;
  
      function ProjectileVisible(aIndex:integer):boolean;
  
      procedure UpdateState;
      procedure Paint;
  
  
negative.code: constructor TKMProjectiles.Create;
  begin
    Inherited;
    //Nothing here yet
  end;
  
  
  //Find empty spot or add one
  function TKMProjectiles.GetFreeIndex:integer;
  begin
    Result := -1;
    repeat
      inc(Result);
      if Result >= length(fItems) then
        SetLength(fItems, Result+8); //Add new
    until(fItems[Result].fSpeed=0);
  end;
  
  
  