anchor.diff:                              H := fPlayers.HousesHitTest(round(fTarget.X), round(fTarget.Y));
                               if (H <> nil) then
                                 if H.AddDamage(1) then //House was destroyed
  -                                if (fPlayers <> nil) then
  -                                  fPlayers.Player[fOwner].Stats.HouseDestroyed(H.GetHouseType);
  +                                fPlayers.Player[fOwner].Stats.HouseDestroyed(H.GetHouseType);
                             end;
               pt_TowerRock: if (U <> nil)and(not U.IsDeadOrDying)and(U.Visible)and(not (U is TKMUnitAnimal)) then
  -                            if U.HitPointsDecrease(10)then //Instant death
  -                              if (fPlayers <> nil) then
  -                                fPlayers.Player[fOwner].Stats.UnitKilled(U.UnitType);
  +                            if U.HitPointsDecrease(10) then //Instant death
  +                              fPlayers.Player[fOwner].Stats.UnitKilled(U.UnitType);
             end;
           end;
         end;
  
positive.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:=1 to length(fItems)-1 do
      with fItems[i] do
        if fSpeed <> 0 then
        begin
  
negative.code:   SaveStream.Write('Projectiles');
  
    Count := 0;
    for i:=0 to length(fItems)-1 do
      if fItems[i].fSpeed <> 0 then inc(Count);
    SaveStream.Write(Count);
  
    for i:=0 to length(fItems)-1 do
      if fItems[i].fSpeed <> 0 then
        SaveStream.Write(fItems[i], SizeOf(fItems[i]));
  end;
  
  
  procedure TKMProjectiles.Load(LoadStream:TKMemoryStream);
  var s:string;
    i,Count:integer;
  begin
    LoadStream.Read(s);
    Assert(s = 'Projectiles', 'Projectiles not found');
  
    LoadStream.Read(Count);
    SetLength(fItems, Count);
  
    for i:=0 to Count-1 do
      LoadStream.Read(fItems[i], SizeOf(fItems[i]));
  end;
  
  
  