anchor.diff:  function TKMProjectiles.AddItem(aStart,aEnd:TKMPointF; aProjType:TProjectileType; aOwner:TPlayerIndex; MakeSound:boolean):word;
   var i:integer; Jitter:single;
   begin
  +  i := GetFreeIndex;
  +
     MakeSound := MakeSound and (MyPlayer.FogOfWar.CheckTileRevelation(KMPointRound(aStart).X, KMPointRound(aStart).Y) >= 255);
  -  //Find empty spot or add one
  -  i := 0;
  -  repeat
  -    inc(i);
  -    if i>=length(fItems) then SetLength(fItems,i+10); //Add new
  -  until(fItems[i].fSpeed=0);
   
     fItems[i].fProjType := aProjType;
     fItems[i].fOwner := aOwner;
  
positive.code:                           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);
                            end
                            else
                            begin
  
negative.code: const HTicks = 6; //The number of ticks before hitting that an arrow will make the hit noise
  var i:integer; U:TKMUnit; H:TKMHouse;
  begin
    for i:=0 to length(fItems)-1 do
      with fItems[i] do
        if fSpeed <> 0 then
        begin
  