Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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;
            }
        }
    }
Exemplo n.º 3
0
        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);
        }