anchor.diff:  procedure THeroArtifactsFrame.VisitHeroDefinition(AOptions: THeroDefinition);
   begin
     PrepareSlots;
  +  FUseMapDefaults:=False;
  +
     inherited VisitHeroDefinition(AOptions);
     Load(AOptions.Artifacts);
   end;
  
positive.code:     BackPack.EndUpdate(True);
      EnableAutoSizing;
    end;
  
  end;
  
  procedure THeroArtifactsFrame.Clear;
  var
    slot: Integer;
  begin
    BackPack.RowCount:=BackPack.FixedRows;
  
    for slot in [0..ARTIFACT_SLOT_COUNT-1] do
    begin
      FSlotEditors[slot].ItemIndex := -1; //todo: use map specific defaults
    end;
  end;
  
  procedure THeroArtifactsFrame.UpdateControls;
  begin
    inherited UpdateControls;
    BackPack.Enabled := cbCustomise.Checked;
    pnSlots.Enabled:=cbCustomise.Checked;
  
    if cbCustomise.Checked then
      Load()
    else
      Clear();
  end;
  
  procedure THeroArtifactsFrame.Load(AOptions: THeroArtifacts);
  begin
    FillItems(BackpackSelector.Items, Map.ListsManager.ArtifactInfos);
    FOptions := AOptions;
    cbCustomise.OnChange:=nil;
    cbCustomise.Checked:=not FOptions.IsEmpty;
    cbCustomise.OnChange:=@cbCustomiseChange;
    UpdateControls;
  end;
  
  constructor THeroArtifactsFrame.Create(TheOwner: TComponent);
  
negative.code:     procedure cbCustomiseChange(Sender: TObject);
    private
      FOptions: THeroArtifacts;
      FMapDefaults: THeroArtifacts;
  
      FSlotCaptions: array[0..ARTIFACT_SLOT_COUNT-1] of TLocalizedString;
  
  