internal override bool Write(WzFileStream stream) { stream.Write1u(this.Unknow1_Byte); stream.Write4(this.mSoundData.Length, true); stream.Write4(this.Duration, true); stream.Write1u(this.Unknow3_Byte); this.MediaType.Write(stream); stream.Write(this.mSoundData); return(true); }
/// <summary> 將文字寫入指定的<see cref="WzFileStream"/>中 </summary> public static void Write(WzFileStream stream, string str) { int len = str.Length; bool uni = false; foreach (char ch in str) { if ((int)ch > 0xFF) { uni = true; break; } } byte[] chars = (uni ? Encoding.Unicode : Encoding.ASCII).GetBytes(str); Process(chars, len, uni); if ((uni && len <= 127) || (!uni && len <= 128)) { stream.Write1((sbyte)(uni ? len : -len)); } else { stream.Write1u((byte)(uni ? 0x7F : 0x80)); stream.Write4(len); } stream.Write(chars, true); }
/// <summary> 將腳本資料寫入指定資料流 </summary> public bool Write(WzFileStream stream) { byte[] data = Encoding.UTF8.GetBytes(this.Script); stream.Write1u(1); stream.Write4(data.Length, true); stream.Write(data, data.Length, true); return(true); }
internal override void Write(WzFileStream zf) { // start write int count = this.Items.Count; long[] itemoff = new long[count]; this.Offset = (uint)zf.Tell(); zf.Write4(count, true); // write header for (int i = 0; i < count; i++) { WzArchiveItem item = this.Items[i]; zf.StringPool.DirectoryWrite(item.Name, item.Type, WzArchiveItemType.Reference); zf.Write4(item.Size, true); zf.Write4(item.Checksum, true); itemoff[i] = zf.Tell(); zf.Write4u(0u); // reserve } // package items for (int i = 0; i < count; i++) { this.Items[i].Write(zf); } long endoff = zf.Tell(); // rewrite offset for (int i = 0; i < count; i++) { zf.Seek(itemoff[i]); uint offKey = HashTools.GenerateOffsetKey((uint)zf.Tell(), this.Archive.DataOffset, this.Archive.Hash); uint encoff = HashTools.EncryptOffsetHash(this.Items[i].Offset, offKey, this.Archive.DataOffset); zf.Write4u(encoff); } // end write zf.Seek(endoff); }
internal override bool Write(WzFileStream stream) { bool hasprop = this.CanvasProperty.Count > 0; stream.Write1u(this.Unknow1_Byte); stream.WriteBool(hasprop); if (hasprop) { this.CanvasProperty.Write(stream); } stream.Write4(this.Width, true); stream.Write4(this.Height, true); stream.Write4((int)this.Format, true); stream.Write1u(this.Scale); stream.Write4(this.Unknow2_Int); stream.Write4(this.mCanvasData.Length); stream.Write(this.mCanvasData); return(true); }
internal override bool Write(WzFileStream stream) { int nSize = this.Vertices.Count; stream.Write4(nSize, true); for (int i = 0; i < nSize; ++i) { stream.StringPool.Write(this.Vertices[i].ClassName, 0x73, 0x1B); this.Vertices[i].Write(stream); } return(true); }
internal override bool Write(WzFileStream stream) { stream.Write2u(0); stream.Write4(this.mList.Count, true); for (int i = 0; i < this.mList.Count; ++i) { this.WriteVariant(this.mList[i], stream); } return(true); }
internal void Write(WzFileStream stream) { stream.Write(this.majortype.ToByteArray()); stream.Write(this.subtype.ToByteArray()); stream.Write1u(this.Unknow1_Byte); stream.Write1u(this.Unknow2_Byte); stream.Write(this.formattype.ToByteArray()); if (this.formattype == SoundDX8Constants.WMFORMAT_WaveFormatEx) { stream.Write4((int)this.cbFormat, true); stream.Write(this.pbFormat); } }
internal override bool Write(WzFileStream stream) { stream.Write4(this.X, true); stream.Write4(this.Y, true); return(true); }
internal override void Write(WzFileStream fs) { fs.Write4((int)this.Value, true); }