anchor.diff:  
     TKMSavesCollection = class
     private
  -    fCount: word;
  +    fCount: Word;
       fSaves: array of TKMSaveInfo;
  -    function GetSave(Index:integer):TKMSaveInfo;
  +    function GetSave(aIndex: Integer): TKMSaveInfo;
     public
       destructor Destroy; override;
   
       procedure Clear;
       property Count: Word read fCount;
  -    property SavegameInfo[Index:integer]:TKMSaveInfo read GetSave; default;
  +    property SavegameInfo[aIndex: Integer]: TKMSaveInfo read GetSave; default;
       procedure ScanSavesFolder(IsMultiplayer: Boolean);
  -    procedure DeleteSave(Index:integer);
  +    procedure DeleteSave(aIndex: Integer);
   
       function SavesList: string;
     end;
  
positive.code:       SetLength(fSaves, fCount);
        fSaves[fCount-1] := TKMSaveInfo.Create(PathToSaves, TruncateExt(SearchRec.Name));
      end;
    until (FindNext(SearchRec)<>0);
    FindClose(SearchRec);
  end;
  
  
negative.code: 
  
  procedure TKMSavesCollection.Clear;
  var I: Integer;
  begin
    for I := 0 to fCount - 1 do
      fSaves[i].Free;
    fCount := 0;
  end;
  
  
  function TKMSavesCollection.GetSave(aIndex: Integer): TKMSaveInfo;
  begin
    Assert(InRange(aIndex, 0, fCount-1));
    Result := fSaves[aIndex];
  end;
  
  
  procedure TKMSavesCollection.DeleteSave(aIndex: Integer);
  var i:integer;
  begin
    Assert(InRange(aIndex, 0, fCount-1));
    DeleteFile(fSaves[aIndex].Path + fSaves[aIndex].fFilename + '.sav');
    DeleteFile(fSaves[aIndex].Path + fSaves[aIndex].fFilename + '.rpl');
    DeleteFile(fSaves[aIndex].Path + fSaves[aIndex].fFilename + '.bas');
    fSaves[aIndex].Free;
    for i := aIndex to fCount - 2 do
      fSaves[i] := fSaves[i+1]; //Move them down
    dec(fCount);
    SetLength(fSaves, fCount);
  end;
  
  
  //Scan either single or multiplayer saves
  function TKMSavesCollection.SavesList: string;
  var I: Integer;
  begin
    Result := '';
    for I := 0 to fCount - 1 do
      Result := Result + fSaves[I].Filename + eol;
  end;
  
  
  