/// <summary> /// Repairs the dat count in the index files /// </summary> public Task RepairIndexDatCounts(XivDataFile dataFile) { return(Task.Run(() => { var largestDatNum = _dat.GetLargestDatNumber(dataFile); _index.UpdateIndexDatCount(dataFile, largestDatNum); })); }
/// <summary> /// Creates a new dat file to store moddified data. /// </summary> /// <remarks> /// This will first find what the largest dat number is for a given data file /// It will then create a new dat file that is one number larger /// Lastly it will update the index files to reflect the new dat count /// </remarks> /// <param name="dataFile">The data file to create a new dat for.</param> /// <returns>The new dat number.</returns> public int CreateNewDat(XivDataFile dataFile) { var nextDatNumber = GetLargestDatNumber(dataFile) + 1; var datPath = _gameDirectory.FullName + "\\" + dataFile.GetDataFileName() + DatExtension + nextDatNumber; using (var fs = File.Create(datPath)) { using (var bw = new BinaryWriter(fs)) { bw.Write(MakeSqPackHeader()); bw.Write(MakeDatHeader()); } } var index = new Index(_gameDirectory); index.UpdateIndexDatCount(dataFile, nextDatNumber); return(nextDatNumber); }