anchor.diff:  
   implementation
   uses
  -  KromUtils, KM_Maps, KM_Scripting, KM_Log;
  +  KromUtils, KM_Maps, KM_Saves, KM_Scripting, KM_Log, KM_FileIO;
   
   const
     //TODO: Add LIBX and WAV support for maps
  
positive.code: begin
    case aType of
      kttMap:  Result := TKMapsCollection.FullPath(aName, Postfix + '.' + aExt, aMapFolder);
      kttSave: Result := ExeDir + SAVES_MP_FOLDER_NAME + PathDelim + aName + '.' + aExt;
    end;
  end;
  
  
negative.code:   //Fill stream with data to be sent
    case aType of
    kttMap: begin
              for I := Low(VALID_MAP_EXTENSIONS) to High(VALID_MAP_EXTENSIONS) do
              begin
                FileName := GetFullSourceFileName(aType, aName, aMapFolder, '', VALID_MAP_EXTENSIONS[I]);
                if FileExists(FileName) then
                  AddFileToStream(FileName, '', VALID_MAP_EXTENSIONS[I]);
                //Add all included script files
                if (VALID_MAP_EXTENSIONS[I] = 'script') and FileExists(FileName) then
                begin
                  ScriptPreProcessor := TKMScriptingPreProcessor.Create;
                  try
                    if not ScriptPreProcessor.PreProcessFile(FileName) then
                      //throw an Exception if PreProcessor was not successful to cancel FileSender creation
                      raise Exception.Create('Can''n start send file because of error while script pre-processing');
                    ScriptFiles := ScriptPreProcessor.ScriptFilesInfo;
                    for J := 0 to ScriptFiles.IncludedCount - 1 do
                    begin
                      if FileExists(ScriptFiles[J].FullFilePath) then
                        AddFileToStream(ScriptFiles[J].FullFilePath, '', VALID_MAP_EXTENSIONS[I]);
                    end;
                  finally
                    ScriptPreProcessor.Free;
                  end;
                end;
              end;
              for I := Low(VALID_MAP_EXTENSIONS_POSTFIX) to High(VALID_MAP_EXTENSIONS_POSTFIX) do
              begin
                FileName := GetFullSourceFileName(aType, aName, aMapFolder, '.*', VALID_MAP_EXTENSIONS_POSTFIX[I]);
                if FindFirst(FileName, faAnyFile, F) = 0 then
                begin
                  repeat
                    if (F.Attr and faDirectory = 0) then
                      AddFileToStream(ExtractFilePath(FileName) + F.Name, ExtractFileExt(ChangeFileExt(F.Name,'')), VALID_MAP_EXTENSIONS_POSTFIX[I]);
                  until FindNext(F) <> 0;
                  FindClose(F);
                end;
              end;
            end;
      kttSave: for I := Low(VALID_SAVE_EXTENSIONS) to High(VALID_SAVE_EXTENSIONS) do
               begin
                 FileName := TKMSavesCollection.FullPath(aName, VALID_SAVE_EXTENSIONS[I], True);
                 if FileExists(FileName) then
                   AddFileToStream(FileName, '', VALID_SAVE_EXTENSIONS[I]);
               end;
  