public virtual bool WriteLowestLevelHashs(FileDataIO fileDataOut, uint wHashIdent, bool bNoIdent, bool b32BitIdent) { wHashIdent <<= 1; wHashIdent |= (IsLeftBranch) ? (uint)1 : (uint)0; if (LeftTree == null && RightTree == null) { if (DataSize <= BaseSize && HashValid) { if (!bNoIdent && !b32BitIdent) { fileDataOut.WriteUInt16((ushort)wHashIdent); } else if (!bNoIdent && b32BitIdent) { fileDataOut.WriteUInt32(wHashIdent); } Hash.Write(fileDataOut); return(true); } else { return(false); } } else if (LeftTree == null || RightTree == null) { return(false); } else { return(LeftTree.WriteLowestLevelHashs(fileDataOut, wHashIdent, bNoIdent, b32BitIdent) && RightTree.WriteLowestLevelHashs(fileDataOut, wHashIdent, bNoIdent, b32BitIdent)); } }
public void WriteCollectionInfo(FileDataIO out_data) { out_data.WriteUInt32(Convert.ToUInt32(tagList_.Count)); foreach (Tag tag in tagList_) { tag.WriteNewEd2kTag(out_data, Utf8StrEnum.utf8strRaw); } }
public void WriteHash(FileDataIO fileDataOut, uint wHashIdent, bool b32BitIdent) { wHashIdent <<= 1; wHashIdent |= (IsLeftBranch) ? (uint)1 : (uint)0; if (!b32BitIdent) { fileDataOut.WriteUInt16((ushort)wHashIdent); } else { fileDataOut.WriteUInt32(wHashIdent); } Hash.Write(fileDataOut); }