anchor.diff:  
       procedure Clear;
   
  +    procedure LoadDefaultArtifacts(AHeroID: AnsiString);
  +
       procedure Load(AOptions: THeroArtifacts);
  +
  +    procedure DoLoad(ASrc: THeroArtifacts);
     protected
       procedure Load; override;
  +    procedure ReloadDefaults; override;
  +    procedure ApplyDefaults; override;
       procedure UpdateControls;override;
     public
       constructor Create(TheOwner: TComponent); override;
  
positive.code: procedure THeroArtifactsFrame.VisitHero(AOptions: THeroOptions);
  begin
    PrepareSlots;
    inherited VisitHero(AOptions);
    Load(AOptions.Artifacts);
  end;
  
negative.code: 
      for slot in [0..ARTIFACT_SLOT_COUNT-1] do
      begin
        FSlotEditors[slot].SetValueWithEmptyOption(ListsManager.ArtifactSlotMap[slot], ASrc.BySlotNumber[slot]);
      end;
  
      BackPack.RowCount:=BackPack.FixedRows + ASrc.Backpack.Count;
  
      BackPack.Clean([gzNormal, gzInvalid]);
  
      row := BackPack.FixedRows;
  
      for art in ASrc.Backpack do
      begin
        info := (ListsManager.ArtifactInfos.FindItem(art) as TBaseInfo);
  
  