public static void Read(string fileName) { string dataPath = dbfilesclient + fileName; string path = Casc.GetFile(dataPath); byte[] fileData = File.ReadAllBytes(path); // Check DB2 Version // // WDC // if (fileData[0] == Convert.ToByte('W') && fileData[1] == Convert.ToByte('D') && fileData[2] == Convert.ToByte('C')) { // WDC 1 // if (fileData[3] == Convert.ToByte('1')) { WDC1.Read(fileName, fileData); } // WDC 2 // if (fileData[3] == Convert.ToByte('2')) { WDC2.Read(fileName, fileData); } } // WDB // else { Debug.LogWarning("Warning: " + "DB2 Format not supported: " + fileData[0] + fileData[1] + fileData[2] + fileData[3] + fileName); } }
public void Read(string fileName) { string file = "BattlePetAbilityEffect.dbd"; var stream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); //var stream = Casc.GetFileStream(fileName); using (var bin = new BinaryReader(stream)) { DB2Reader reader; var identifier = new string(bin.ReadChars(4)); stream.Position = 0; switch (identifier) { case "WDC1": reader = new WDC1(fileName, stream); break; case "WDC2": reader = new WDC2(fileName, stream); break; default: Debug.Log("DBC Type " + identifier + " is not supported"); break; } } }
private DBHeader ExtractHeader(BinaryReader dbReader) { DBHeader header = null; string signature = dbReader.ReadString(4); if (string.IsNullOrWhiteSpace(signature)) { return(null); } if (signature[0] != 'W') { signature = signature.Reverse(); } switch (signature) { case "WDBC": header = new WDBC(); break; case "WDB2": case "WCH2": header = new WDB2(); break; case "WDB5": header = new WDB5(); break; case "WDB6": header = new WDB6(); break; case "WCH5": header = new WCH5(FileName); break; case "WCH7": header = new WCH7(FileName); break; case "WCH8": header = new WCH8(FileName); break; case "WDC1": header = new WDC1(); break; case "WDC2": header = new WDC2(); break; case "WMOB": case "WGOB": case "WQST": case "WIDB": case "WNDB": case "WITX": case "WNPC": case "WPTX": case "WRDN": header = new WDB(); break; case "HTFX": header = new HTFX(); break; } header?.ReadHeader(ref dbReader, signature); return(header); }