Beispiel #1
0
 public static void Write(this BinaryWriter writer, WDC3 wdc)
 {
     writer.Write(wdc.Header);
     for (int i = 0; i < wdc.SectionHeaders.Length; i++)
     {
         writer.Write(wdc.SectionHeaders[i]);
     }
     for (int i = 0; i < wdc.Fields.Length; i++)
     {
         writer.Write(wdc.Fields[i]);
     }
     for (int i = 0; i < wdc.FieldInfo.Length; i++)
     {
         writer.Write(wdc.FieldInfo[i]);
     }
     for (int i = 0; i < wdc.PalletData.Length; i++)
     {
         writer.Write(wdc.PalletData[i]);
     }
     for (int i = 0; i < wdc.CommonData.Length; i++)
     {
         writer.Write(wdc.CommonData[i]);
     }
     for (int i = 0; i < wdc.DataSections.Length; i++)
     {
         writer.Write(wdc.DataSections[i], wdc.Header, wdc.SectionHeaders[i]);
     }
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            var wdc = new WDC3();

            /*wdc.Load("C:/Users/Kevin Bernau/Downloads/item.db2");
             * wdc.Save("C:/Users/Kevin Bernau/Downloads/item_new.db2");*/
            wdc.Load("C:/Users/Kevin Bernau/Downloads/gameobjects.db2");
            //wdc.Save("C:/Users/Kevin Bernau/Downloads/gameobjects_new.db2");
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            var wdc = new WDC3();

            /*wdc.Load("C:/Users/Kevin Bernau/Downloads/item.db2");
             * wdc.Save("C:/Users/Kevin Bernau/Downloads/item_new.db2");*/
            wdc.Load("GarrPlotUICategory.db2");
            wdc.Save("GarrPlotUICategory.db2");

            Section[] dSections = wdc.DataSections;

            //wdc.Save("C:/Users/Kevin Bernau/Downloads/gameobjects_new.db2");
        }
Beispiel #4
0
        public static WDC3 ReadWDC3(this BinaryReader reader)
        {
            var wdc = new WDC3();

            wdc.Header = reader.ReadWDC3Header();
            if (wdc.Header.Magic != WDC3.Signature)
            {
                throw new InvalidDataException("The file magic is not WDC3");
            }
            wdc.SectionHeaders = new WDC3SectionHeader[wdc.Header.SectionCount];
            for (int i = 0; i < wdc.Header.SectionCount; i++)
            {
                wdc.SectionHeaders[i] = reader.ReadWDC3SectionHeader();
            }
            wdc.Fields = new FieldStructure[wdc.Header.TotalFieldCount];
            for (int i = 0; i < wdc.Header.TotalFieldCount; i++)
            {
                wdc.Fields[i] = reader.ReadFieldStructure();
            }
            wdc.FieldInfo = new FieldStorageInfo[wdc.Header.FieldStorageInfoSize / Marshal.SizeOf(typeof(FieldStorageInfo))];
            for (int i = 0; i < wdc.Header.FieldStorageInfoSize / Marshal.SizeOf(typeof(FieldStorageInfo)); i++)
            {
                wdc.FieldInfo[i] = reader.ReadFieldStorageInfo();
            }
            wdc.PalletData = new byte[wdc.Header.PalletDataSize];
            for (int i = 0; i < wdc.Header.PalletDataSize; i++)
            {
                wdc.PalletData[i] = reader.ReadByte();
            }
            wdc.CommonData = new byte[wdc.Header.CommonDataSize];
            for (int i = 0; i < wdc.Header.CommonDataSize; i++)
            {
                wdc.CommonData[i] = reader.ReadByte();
            }
            wdc.DataSections = new Section[wdc.Header.SectionCount];
            for (int i = 0; i < wdc.Header.SectionCount; i++)
            {
                wdc.DataSections[i] = reader.ReadSection(wdc.Header, wdc.SectionHeaders[i]);
            }
            return(wdc);
        }
Beispiel #5
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 "WDC3":
                header = new WDC3();
                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);
        }