anchor.diff:    ForceDirectories(Utils.GetPath('saves'));
     DirName := Utils.GetPath('saves') + '*.sav';
     SaveFL.Clear;
  -  if (FindFirst(DirName, faAnyFile, SR) = 0) then
  -  begin
  -    repeat
  -      S := Trim(SR.Name);
  -      if (S = '') then
  -        Continue;
  -      Delete(S, Length(S) - 3, 4);
  -      SaveFL.Append(S);
  -    until FindNext(SR) <> 0;
  -    FindClose(SR);
  -  end;
  -  SaveFL.Sort;
  +  SaveTL.Clear;
  +  SL := TStringList.Create;
  +  try
  +    if (FindFirst(DirName, faAnyFile, SR) = 0) then
  +    begin
  +      repeat
  +        S := Trim(SR.Name);
  +        if (S = '') then
  +          Continue;
  +        SL.LoadFromFile(S, TEncoding.UTF8);
  +        SaveTL.Append(SL[0]);
  +        Delete(S, Length(S) - 3, 4);
  +        SaveFL.Append(S);
  +      until FindNext(SR) <> 0;
  +      FindClose(SR);
  +    end;
  +    SaveFL.Sort;
  +  finally
  +    FreeAndNil(SL);
  +  end;
   end;
   
   procedure TGame.Start;
  
positive.code:     Wizard := '[WIZARD]';
    terminal_set(Format('window.title=' + Trim('%s %s'), [Game.GetTitle, Wizard]));
    SaveFL := TStringList.Create;
    ScanDir();
  end;
  
  destructor TGame.Destroy;
  begin
    FreeAndNil(SaveFL);
    Language.SaveDefault;
    FreeAndNil(Language);
  
negative.code:     FAPOption: array [TAPOptionEnum] of Boolean;
    public
      SaveFL: TStringList;
      SaveTL: TStringList;
      constructor Create;
      destructor Destroy; override;
      property Difficulty: TDifficultyEnum read FDifficulty write FDifficulty;
  