public override void WriteBodyTo(ShockwaveWriter output) { const short HEADER_LENGTH = 92; output.WriteBigEndian((int)Remnants.Dequeue()); output.WriteBigEndian((int)Remnants.Dequeue()); output.WriteBigEndian(HEADER_LENGTH + Pool.GetBodySize()); output.WriteBigEndian(HEADER_LENGTH + Pool.GetBodySize()); output.WriteBigEndian(HEADER_LENGTH); output.WriteBigEndian(ScriptNumber); output.WriteBigEndian((short)Remnants.Dequeue()); output.Write((int)Remnants.Dequeue()); output.Write((int)Remnants.Dequeue()); output.Write((int)Remnants.Dequeue()); output.Write((int)Remnants.Dequeue()); output.WriteBigEndian(BehaviourScript); output.WriteBigEndian((int)Remnants.Dequeue()); output.WriteBigEndian((short)Remnants.Dequeue()); output.Write((short)Remnants.Dequeue()); Pool.WriteTo(output); }
public void WriteTo(ShockwaveWriter output) { output.Write((ushort)TotalWidth | 0x8000); output.Write(Rectangle); output.Write(AlphaThreshold); output.Write(OLE); output.Write((short)RegistrationPoint.X); output.Write((short)RegistrationPoint.Y); output.Write((byte)Flags); if (BitDepth == 1) { return; } output.Write(BitDepth); if (Palette != 0) { return; } if (!IsSystemPalette) { Palette |= 0x8000; } output.Write(Palette); }
public override void WriteBodyTo(ShockwaveWriter output) { const short ENTRY_OFFSET = 48; output.Write(0); output.Write(0); output.Write(Sections.Count); output.Write(Sections.Count); output.Write(ENTRY_OFFSET); output.Write(SECTION_SIZE); output.Write(0); output.Write(Type); output.Write((int)Remnants.Dequeue()); output.Write(NameChunkId); output.Write(ValidCount); output.Write(Flags); output.Write(FreeChunkId); foreach (LingoContextSection section in Sections) { section.WriteTo(output); } }
public override void WriteTo(ShockwaveWriter output) { Header.Length = GetBodySize(); Header.WriteTo(output); WriteBodyTo(output); }
public override void WriteTo(ShockwaveWriter output) { throw new NotImplementedException(nameof(CommonMemberProperties)); //output.Write(21); //TODO: "compress" // //int currentOffset = 0; //int[] propertyOffsets = new int[22]; // //output.Position += 22 * sizeof(int); // //for (int i = 0; i < 22; i++) //{ // propertyOffsets[i] = currentOffset; // WriteProperty(output, i, ref currentOffset); //} // //output.Position -= 22 * sizeof(int); //output.Position -= currentOffset; // //for (int i = 0; i < 22; i++) //{ // output.Write(propertyOffsets[i]); //} // //output.Position += currentOffset; //We are finished here, go to end }
public override void WriteTo(ShockwaveWriter output) { output.Write(Unknown); output.Write(Id); output.Write((short)Flags); output.Write(Link); }
public override void WriteTo(ShockwaveWriter output) { output.WriteBigEndian(21); //TODO: "compress" int currentOffset = 0; int[] propertyOffsets = new int[22]; output.Position += 22 * sizeof(int); for (int i = 0; i < 22; i++) { propertyOffsets[i] = currentOffset; WriteProperty(output, i, ref currentOffset); } output.Position -= 22 * sizeof(int); output.Position -= currentOffset; for (int i = 0; i < 22; i++) { output.WriteBigEndian(propertyOffsets[i]); } output.Position += currentOffset; //We are finished here, go to end }
public override void WriteBodyTo(ShockwaveWriter output) { const short ENTRY_OFFSET = 48; output.WriteBigEndian((int)Remnants.Dequeue()); output.WriteBigEndian((int)Remnants.Dequeue()); output.WriteBigEndian(Sections?.Count ?? 0); //TODO: output.WriteBigEndian(Sections?.Count ?? 0); //TODO: output.WriteBigEndian(ENTRY_OFFSET); output.WriteBigEndian(SECTION_SIZE); output.WriteBigEndian((int)Remnants.Dequeue()); output.WriteBigEndian(Type); output.WriteBigEndian((int)Remnants.Dequeue()); output.WriteBigEndian(NameListChunkId); output.WriteBigEndian((short)Remnants.Dequeue()); output.Write((byte[])Remnants.Dequeue()); output.WriteBigEndian((short)Remnants.Dequeue()); foreach (ScriptContextSection section in Sections) { section.WriteTo(output); } }
public override void WriteBodyTo(ShockwaveWriter output) { const short HEADER_LENGTH = 92; output.Write(0); output.Write(0); output.Write(HEADER_LENGTH + Pool.GetBodySize()); output.Write(HEADER_LENGTH + Pool.GetBodySize()); output.Write(HEADER_LENGTH); output.Write(ScriptNumber); output.Write((short)Remnants.Dequeue()); output.WriteBE(-1); output.WriteBE(0); output.WriteBE((int)Remnants.Dequeue()); output.WriteBE(0); output.Write(Type); output.Write((int)Remnants.Dequeue()); output.Write(CastMemberRef); output.WriteBE((short)Remnants.Dequeue()); Pool.WriteTo(output); }
public override void WriteTo(ShockwaveWriter output) { output.WriteBigEndian(Unknown); output.WriteBigEndian(Id); output.WriteBigEndian(Flags); output.WriteBigEndian(Link); }
public override void WriteBodyTo(ShockwaveWriter output) { for (int i = 0; i < Members.Length; i++) { output.WriteBigEndian(Members[i]); } }
public override void WriteTo(ShockwaveWriter output) { //TODO: byte op = (byte)OP; if (Value > byte.MaxValue) { op += 0x40; } if (Value > short.MaxValue) { op += 0x40; } output.Write(op); if (op > 0xC0) { output.Write(Value); } else if (op > 0x80) { output.Write((short)Value); } else if (op > 0x40) { output.Write((byte)Value); } }
public override void WriteBodyTo(ShockwaveWriter output) { foreach (Color color in Colors) { output.Write(color); } }
public void WriteTo(IBufferWriter <byte> output) { int size = GetBodySize(); var writer = new ShockwaveWriter(output.GetSpan(size), isBigEndian: true); //TODO: Endianness WriteTo(writer); output.Advance(size); }
public override int GetBodySize() { int size = 0; size += sizeof(int); size += IsVariableLength ? ShockwaveWriter.GetVarIntSize(Length) : sizeof(int); return(size); }
public void WriteTo(IBufferWriter <byte> output) { int size = GetBodySize(); var writer = new ShockwaveWriter(output.GetSpan(size), bigEndian: true); //TODO: How do we manage endianness when writing files WriteTo(writer); output.Advance(size); }
public byte[] ToArray() { using var ms = new MemoryStream(); using var output = new ShockwaveWriter(ms); WriteTo(output); return ms.ToArray(); }
public override void WriteTo(ShockwaveWriter output) { Header.WriteTo(output); output.WriteBE(Offset); output.WriteBE((short)Flags); output.WriteBE(Unknown); output.WriteBE(Link); }
public override void WriteTo(ShockwaveWriter output) { output.Write(Name); output.Write(FilePath); output.Write(PreloadSettings); output.Write(MemberMin); output.Write(MemberCount); output.Write(Id); }
public override void WriteTo(ShockwaveWriter output) { output.WriteVarInt(Id); output.WriteVarInt(Offset); output.WriteVarInt(Length); output.WriteVarInt(DecompressedLength); output.WriteVarInt(CompressionType); output.WriteBE((int)Header.Kind); }
public override void WriteTo(ShockwaveWriter output) { throw new NotImplementedException(); output.WriteBigEndian(StartFrame); output.WriteBigEndian(EndFrame); output.WriteBigEndian(0); output.WriteBigEndian(Channel); output.WriteBigEndian(SpritePropertiesOffsetsOffset); }
public override void WriteBodyTo(ShockwaveWriter output) { output.WriteBE(MemoryMapOffsets.Length); for (int i = 0; i < MemoryMapOffsets.Length; i++) { output.WriteBE(MemoryMapOffsets[i]); } output.WriteBE((int)Version); }
public override void WriteTo(ShockwaveWriter output) { output.Write7BitEncodedInt(Header.Id); output.Write7BitEncodedInt(Offset); output.Write7BitEncodedInt(CompressedLength); output.Write7BitEncodedInt(DecompressedLength); output.Write7BitEncodedInt((int)CompressionType); output.WriteReversedString(Header.Kind.ToFourCC()); }
public override void WriteBodyTo(ShockwaveWriter output) { output.Write(ENTRY_SIZE); output.Write(ENTRY_SIZE); output.Write(CastEntries?.Count ?? 0); output.Write(CastEntries?.Count ?? 0); foreach (CastEntry entry in CastEntries) { entry.WriteTo(output); } }
public override void WriteTo(ShockwaveWriter output) { output.WriteBigEndian(Offset); output.WriteBigEndian(Height); output.WriteBigEndian(Ascent); output.WriteBigEndian(FontId); output.Write(Slant); output.Write(Padding); output.WriteBigEndian(FontSize); output.Write(Color); }
public override int GetBodySize() { int size = 0; size += ShockwaveWriter.GetVarIntSize(Id); size += ShockwaveWriter.GetVarIntSize(Offset); size += ShockwaveWriter.GetVarIntSize(Length); size += ShockwaveWriter.GetVarIntSize(DecompressedLength); size += ShockwaveWriter.GetVarIntSize(CompressionType); size += sizeof(int); return(size); }
public override void WriteTo(ShockwaveWriter output) { output.WriteBE((int)Kind); if (IsVariableLength) { output.WriteVarInt(Length); } else { output.WriteBE(Length); } }
public override void WriteBodyTo(ShockwaveWriter output) { output.WriteBigEndian(BitField.Length); output.Write(BitField); output.WriteBigEndian((ushort)Offsets.Count); for (int i = 0; i < Offsets.Count; i++) { output.WriteBigEndian(Offsets[i]); } //TODO }
public override void WriteBodyTo(ShockwaveWriter output) { output.Write((int)Remnants.Dequeue()); output.Write((int)Remnants.Dequeue()); foreach (Color color in Colors) { output.Write(color.R); output.Write(color.G); output.Write(color.B); } }
public void WriteTo(ShockwaveWriter output) { throw new NotImplementedException(nameof(TextCastProperties)); output.WriteBigEndian((short)Alignment); output.Write(BackgroundColor); output.WriteBigEndian(Font); output.Write(Rectangle); output.WriteBigEndian(LineHeight); output.WriteBigEndian(ButtonType); }