public byte[] Write() { MemoryStream m = new MemoryStream(); EndianBinaryWriter er = new EndianBinaryWriter(m, Endianness.LittleEndian); Header.NrBlocks = 1; Header.Write(er); CGFXWriterContext c = new CGFXWriterContext(); Data.Write(er, c); if (c.DoWriteIMAGBlock()) { long curpos = er.BaseStream.Position; er.BaseStream.Position = 0x10; er.Write((uint)2); er.BaseStream.Position = curpos; c.WriteIMAGBlock(er); } long curpos2 = er.BaseStream.Position; er.BaseStream.Position = 0xC; er.Write((uint)(curpos2)); er.BaseStream.Position = curpos2; byte[] result = m.ToArray(); er.Close(); return(result); }
public byte[] Write() { //MessageBox.Show("CGFX saving is experimental! A couple of sections (like animations) are lost while saving!"); MemoryStream m = new MemoryStream(); EndianBinaryWriter er = new EndianBinaryWriter(m, Endianness.LittleEndian); Header.NrBlocks = 1; Header.Write(er); CGFXWriterContext c = new CGFXWriterContext(); Data.Write(er, c); if (c.DoWriteIMAGBlock()) { long curpos = er.BaseStream.Position; er.BaseStream.Position = 0x10; er.Write((uint)2); er.BaseStream.Position = curpos; c.WriteIMAGBlock(er); } long curpos2 = er.BaseStream.Position; er.BaseStream.Position = 0xC; er.Write((uint)(curpos2)); er.BaseStream.Position = curpos2; byte[] result = m.ToArray(); er.Close(); return(result); }