Exemplo n.º 1
0
        internal int GenerateDataFile(string path)
        {
            this.size = 0;
            int i = this.subDirs.Count + this.images.Count;

            if (i == 0)
            {
                this.offsetSize = 1;
                return(this.size = 0);
            }
            this.size       = WzTools.GetCompressedIntLength(i);
            this.offsetSize = WzTools.GetCompressedIntLength(i);
            for (int j = 0; j < this.subDirs.Count; j++)
            {
                Directory.CreateDirectory(Path.Combine(path, this.subDirs[j].name));
                this.size       += ((((1 + WzTools.GetEncodedStringLength(this.subDirs[j].name)) + this.subDirs[j].GenerateDataFile(Path.Combine(path, this.subDirs[j].name))) + WzTools.GetCompressedIntLength(this.subDirs[j].size)) + WzTools.GetCompressedIntLength(this.subDirs[j].checksum)) + 4;
                this.offsetSize += (((1 + WzTools.GetEncodedStringLength(this.subDirs[j].name)) + WzTools.GetCompressedIntLength(this.subDirs[j].size)) + WzTools.GetCompressedIntLength(this.subDirs[j].checksum)) + 4;
            }
            for (int k = 0; k < this.images.Count; k++)
            {
                BinaryWriter wzWriter = new BinaryWriter(File.Create(Path.Combine(path, this.images[k].Name + ".TEMP")));
                this.images[k].SaveImage(wzWriter);
                wzWriter.Close();
                FileInfo info = new FileInfo(Path.Combine(path, this.images[k].Name + ".TEMP"));
                this.size       += ((((1 + WzTools.GetEncodedStringLength(this.images[k].Name)) + WzTools.GetCompressedIntLength((int)info.Length)) + ((int)info.Length)) + WzTools.GetCompressedIntLength(this.images[k].Checksum)) + 4;
                this.offsetSize += (((1 + WzTools.GetEncodedStringLength(this.images[k].Name)) + WzTools.GetCompressedIntLength((int)info.Length)) + WzTools.GetCompressedIntLength(this.images[k].Checksum)) + 4;
            }
            return(this.size);
        }
Exemplo n.º 2
0
        internal int GetExtendedPropertyLength()
        {
            int num2;
            int num3;
            int num = 0;

            switch (this.extendedProperty.PropertyType)
            {
            case WzPropertyType.SubProperty:
                num += 3;
                num += WzTools.GetEncodedStringLength("Property");
                num += WzTools.GetCompressedIntLength(((WzSubProperty)this.extendedProperty).WzProperties.Length);
                num2 = 0;
                goto Label_0195;

            case WzPropertyType.Canvas:
                num++;
                num += WzTools.GetEncodedStringLength("Canvas");
                num++;
                if (((WzCanvasProperty)this.extendedProperty).WzProperties.Length <= 0)
                {
                    num++;
                    goto Label_0350;
                }
                num += 3;
                num += WzTools.GetCompressedIntLength(((WzCanvasProperty)this.extendedProperty).WzProperties.Length);
                num3 = 0;
                goto Label_0332;

            case WzPropertyType.Vector:
                num++;
                num += WzTools.GetEncodedStringLength("Shape2D#Vector2D");
                num += WzTools.GetCompressedIntLength(((WzVectorProperty)this.extendedProperty).X.Value);
                return(num + WzTools.GetCompressedIntLength(((WzVectorProperty)this.extendedProperty).Y.Value));

            case WzPropertyType.Convex:
                num++;
                num += WzTools.GetEncodedStringLength("Shape2D#Convex2D");
                num += WzTools.GetCompressedIntLength(((WzConvexProperty)this.extendedProperty).WzProperties.Length);
                for (int i = 0; i < ((WzConvexProperty)this.extendedProperty).WzProperties.Length; i++)
                {
                    num += ((WzConvexProperty)this.extendedProperty).WzProperties[i].GetExtendedPropertyLength();
                }
                return(num);

            case WzPropertyType.Sound:
                num++;
                num += WzTools.GetEncodedStringLength("Sound_DX8");
                num++;
                num += WzTools.GetCompressedIntLength(((WzSoundProperty)this.extendedProperty).SoundData.Length);
                num++;
                return(num + ((WzSoundProperty)this.extendedProperty).SoundData.Length);

            case WzPropertyType.UOL:
                num++;
                num += WzTools.GetEncodedStringLength("UOL");
                num += 2;
                return(num + WzTools.GetEncodedStringLength(((WzUOLProperty)this.extendedProperty).Value));

            default:
                return(num);
            }
Label_0191:
            num2++;
Label_0195:
            if (num2 < ((WzSubProperty)this.extendedProperty).WzProperties.Length)
            {
                num++;
                num += WzTools.GetEncodedStringLength(((WzSubProperty)this.extendedProperty).WzProperties[num2].Name);
                switch (((WzSubProperty)this.extendedProperty).WzProperties[num2].PropertyType)
                {
                case WzPropertyType.Null:
                    num++;
                    goto Label_0191;

                case WzPropertyType.UnsignedShort:
                    num += 3;
                    goto Label_0191;

                case WzPropertyType.CompressedInt:
                    num++;
                    num += WzTools.GetCompressedIntLength(((WzCompressedIntProperty)((WzSubProperty)this.extendedProperty).WzProperties[num2]).Value);
                    goto Label_0191;

                case WzPropertyType.ByteFloat:
                    num++;
                    if (((WzByteFloatProperty)((WzSubProperty)this.extendedProperty).WzProperties[num2]).Value != 0f)
                    {
                        num += 5;
                    }
                    else
                    {
                        num++;
                    }
                    goto Label_0191;

                case WzPropertyType.Double:
                    num++;
                    num += 8;
                    goto Label_0191;

                case WzPropertyType.String:
                    num += 2;
                    num += WzTools.GetEncodedStringLength(((WzStringProperty)((WzSubProperty)this.extendedProperty).WzProperties[num2]).Value);
                    goto Label_0191;

                case WzPropertyType.Extended:
                    num += 5;
                    num += ((WzExtendedProperty)((WzSubProperty)this.extendedProperty).WzProperties[num2]).GetExtendedPropertyLength();
                    goto Label_0191;
                }
                goto Label_0191;
            }
            return(num);

Label_032E:
            num3++;
Label_0332:
            if (num3 < ((WzCanvasProperty)this.extendedProperty).WzProperties.Length)
            {
                num++;
                num += WzTools.GetEncodedStringLength(((WzCanvasProperty)this.extendedProperty).WzProperties[num3].Name);
                switch (((WzCanvasProperty)this.extendedProperty).WzProperties[num3].PropertyType)
                {
                case WzPropertyType.Null:
                    num++;
                    goto Label_032E;

                case WzPropertyType.UnsignedShort:
                    num += 3;
                    goto Label_032E;

                case WzPropertyType.CompressedInt:
                    num++;
                    num += WzTools.GetCompressedIntLength(((WzCompressedIntProperty)((WzCanvasProperty)this.extendedProperty).WzProperties[num3]).Value);
                    goto Label_032E;

                case WzPropertyType.ByteFloat:
                    num++;
                    if (((WzByteFloatProperty)((WzCanvasProperty)this.extendedProperty).WzProperties[num3]).Value != 0f)
                    {
                        num += 5;
                    }
                    else
                    {
                        num++;
                    }
                    goto Label_032E;

                case WzPropertyType.Double:
                    num++;
                    num += 8;
                    goto Label_032E;

                case WzPropertyType.String:
                    num += 2;
                    num += WzTools.GetEncodedStringLength(((WzStringProperty)((WzCanvasProperty)this.extendedProperty).WzProperties[num3]).Value);
                    goto Label_032E;

                case WzPropertyType.Extended:
                    num += 5;
                    num += ((WzExtendedProperty)((WzCanvasProperty)this.extendedProperty).WzProperties[num3]).GetExtendedPropertyLength();
                    goto Label_032E;
                }
                goto Label_032E;
            }
Label_0350:
            num += WzTools.GetCompressedIntLength(((WzCanvasProperty)this.extendedProperty).PngProperty.Width);
            num += WzTools.GetCompressedIntLength(((WzCanvasProperty)this.extendedProperty).PngProperty.Height);
            num += WzTools.GetCompressedIntLength(((WzCanvasProperty)this.extendedProperty).PngProperty.Format);
            num += 10;
            return(num + ((WzCanvasProperty)this.extendedProperty).PngProperty.CompressedBytes.Length);
        }