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); }
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); }