/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.Bool(ref this.serialiseGrayscale); if (this.serialiseGrayscale) { this.colors = new Color[this.numItems]; var buf = new byte[this.numItems]; serialise.Serialise(ref buf); for (int i = 0; i < this.numItems; ++i) { this.Colors[i] = Color.FromArgb(255, buf[i], buf[i], buf[i]); } } else { this.colors = new Color[this.numItems]; var buf = new byte[this.numItems * 4]; serialise.Serialise(ref buf); for (int i = 0; i < this.numItems; ++i) { this.Colors[i] = Color.FromArgb( buf[i + this.numItems * 3], buf[i + this.numItems * 0], buf[i + this.numItems * 1], buf[i + this.numItems * 2]); } } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); short mediane = 0; serialise.Int16(ref mediane); this.Resize(this.numItems); for (int i = 0; i < this.numItems; ++i) { short x = (short)(this.tangents[i].X - mediane); serialise.Int16(ref x); this.tangents[i].X = x + mediane; } for (int i = 0; i < this.numItems; ++i) { short y = (short)(this.tangents[i].Y - mediane); serialise.Int16(ref y); this.tangents[i].Y = y + mediane; } for (int i = 0; i < this.numItems; ++i) { short z = (short)(this.tangents[i].Z - mediane); serialise.Int16(ref z); this.tangents[i].Z = z + mediane; } }
internal void Read(IwSerialise iwSerialise) { var b = new IwSerialiseBinaryBlock(iwSerialise); b.Block += this.ReadBlock; b.Serialise(); }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> /// <exception cref="Exception"> /// </exception> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); uint resCount = 0; serialise.UInt32(ref resCount); bool unknown0 = false; serialise.Bool(ref unknown0); bool unknown1 = true; serialise.Bool(ref unknown1); while (resCount > 0) { var pos = serialise.Position; uint length = 0; serialise.UInt32(ref length); CIwManaged res = null; serialise.ManagedObject(this.Hash, ref res); this.resources.Add((CIwResource)res, false); --resCount; if (serialise.Position != pos + length) { throw new Exception( string.Format( "Parse of {0} failed: wrong position by {1} bytes", res.GetType().Name, serialise.Position - (pos + length))); serialise.Position = pos + length; } } }
private void ReadChildGroups(IwSerialise iwSerialise) { byte num = 0; iwSerialise.UInt8(ref num); while (num > 0) { string path = string.Empty; iwSerialise.String(ref path); if (!string.IsNullOrEmpty(path)) { this.childGroups.Add(this.resManager.LoadGroup(path, false)); } { uint value = 0; iwSerialise.UInt32(ref value); } { int value = 0x00001000; iwSerialise.Int32(ref value); } { uint value = 0xd9794596; iwSerialise.UInt32(ref value); var f = iwSerialise.ClassRegistry.Get(value); } --num; } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); short mediane = 0; serialise.Int16(ref mediane); this.Resize(this.numItems); for (int i = 0; i < this.numItems; ++i) { short x = (short)(this.verts[i].X - mediane); serialise.Int16(ref x); this.verts[i].X = x + mediane; } for (int i = 0; i < this.numItems; ++i) { short y = (short)(this.verts[i].Y - mediane); serialise.Int16(ref y); this.verts[i].Y = y + mediane; } for (int i = 0; i < this.numItems; ++i) { short z = (short)(this.verts[i].Z - mediane); serialise.Int16(ref z); this.verts[i].Z = z + mediane; } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public void Serialise(IwSerialise serialise) { if (serialise.IsReading()) { this.m_IGIDs = new ushort[4]; this.m_U0 = new short[8]; } serialise.UInt32(ref this.m_Flags); int numVerts = 4; if (0 == (this.m_Flags & IW_MODEL_PRIM_QUAD_F) && serialise.IsVersionOlderThen(3, 5, 6)) { numVerts = 3; } serialise.Serialise(ref this.m_IGIDs, numVerts); if (this.IsTextured) { // serialise.Int16(ref this.m_U0[0 * 2]); // serialise.Int16(ref this.m_U0[0 * 2 + 1]); // serialise.Int16(ref this.m_U0[1 * 2]); // serialise.Int16(ref this.m_U0[1 * 2 + 1]); // serialise.Int16(ref this.m_U0[2 * 2]); // serialise.Int16(ref this.m_U0[2 * 2 + 1]); // serialise.Int16(ref this.m_U0[3 * 2]); // serialise.Int16(ref this.m_U0[3 * 2 + 1]); if (0 != (this.m_Flags & IW_MODEL_PRIM_QUAD_F)) { serialise.Int16(ref this.m_U0[0 * 2]); serialise.Int16(ref this.m_U0[0 * 2 + 1]); serialise.Int16(ref this.m_U0[2 * 2]); serialise.Int16(ref this.m_U0[2 * 2 + 1]); serialise.Int16(ref this.m_U0[3 * 2]); serialise.Int16(ref this.m_U0[3 * 2 + 1]); serialise.Int16(ref this.m_U0[1 * 2]); serialise.Int16(ref this.m_U0[1 * 2 + 1]); } else { serialise.Int16(ref this.m_U0[0 * 2]); serialise.Int16(ref this.m_U0[0 * 2 + 1]); serialise.Int16(ref this.m_U0[2 * 2]); serialise.Int16(ref this.m_U0[2 * 2 + 1]); serialise.Int16(ref this.m_U0[1 * 2]); serialise.Int16(ref this.m_U0[1 * 2 + 1]); serialise.Int16(ref this.m_U0[3 * 2]); serialise.Int16(ref this.m_U0[3 * 2 + 1]); } } }
private void Write(IwSerialise iwSerialise) { var b = new IwSerialiseBinaryBlock(iwSerialise); b.Block += this.WriteBlock; b.Serialise(); }
private void SerialiseMappedData(IwSerialise serialise) { ushort median = 8; serialise.Serialise(ref median); ushort[] data = new ushort[8]; serialise.Serialise(ref data); }
uint m_NumVerts; // number of verts in skin set public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref m_NumVerts); if (serialise.IsReading()) { uint dataLen = 0; serialise.UInt32(ref dataLen); long pos = serialise.Position + dataLen; byte boneId = 0; for (; ;) { serialise.UInt8(ref boneId); if (boneId == 0xFF) { break; } boneIds.Add(boneId); } // pad if ((boneIds.Count % 2) == 0) { serialise.UInt8(ref boneId); } vertices = new CIwAnimSkinSetVertex[m_NumVerts]; for (int i = 0; i < m_NumVerts; ++i) { serialise.UInt16(ref vertices[i].VertexId); vertices[i].Bones = new CIwAnimSkinSetVertexBone[boneIds.Count]; for (int j = 0; j < boneIds.Count; j++) { serialise.SVec3(ref vertices[i].Bones[j].BindPose); } for (int j = 0; j < boneIds.Count; j++) { serialise.UInt8(ref vertices[i].Bones[j].Weight); } // pad if (boneIds.Count % 2 == 1) { serialise.UInt8(ref boneId); } } if (serialise.Position != pos) { throw new FormatException("CIwAnimSkinSet"); } } else { throw new ApplicationException(); } }
private void ReadResGroupMembers(IwSerialise iwSerialise) { string name = string.Empty; iwSerialise.String(ref name); iwSerialise.UInt32(ref this.flags); }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.Serialise(ref this.VertIDOfs); serialise.Serialise(ref this.NormIDOfs); serialise.Serialise(ref this.ColIDOfs); serialise.Serialise(ref this.UV0IDOfs); this.TupleSize = 0; if (this.TupleSize < this.VertIDOfs) { this.TupleSize = this.VertIDOfs; } if (this.TupleSize < this.NormIDOfs) { this.TupleSize = this.NormIDOfs; } if (this.TupleSize < this.ColIDOfs) { this.TupleSize = this.ColIDOfs; } if (this.TupleSize < this.UV0IDOfs) { this.TupleSize = this.UV0IDOfs; } if (serialise.IsReading()) { ++this.TupleSize; this.Tuples = new ushort[this.TupleSize * this.numItems]; } serialise.Serialise(ref this.Tuples); ////var buf = new byte[Math.Min(256, serialise.Length-serialise.Position)]; ////serialise.Serialise(ref buf); ////StringBuilder sb = new StringBuilder(); ////int i = 0; ////foreach (var b in buf) ////{ //// if (b < 16) //// sb.Append("0"); //// sb.Append(string.Format("{0:x} ", b)); //// ++i; //// if (i == 8) //// sb.Append("| "); //// if (i == 16) //// { //// sb.Append("\n"); //// i = 0; //// } ////} ////Debug.WriteLine(sb.ToString()); ////throw new NotImplementedException(); }
CIwAnimSkel m_Skel; // ptr to owner skeleton #endregion Fields #region Methods public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref m_Flags); serialise.ManagedHash<CIwModel>(ref m_Model); serialise.ManagedHash<CIwAnimSkel>(ref m_Skel); m_Sets.Serialise(serialise); //serialise.DebugWrite(758); }
public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); bones.Serialise(serialise); serialise.Fixed(ref m_TransformPrecision); // 758 bytes }
CIwManagedList m_Sets = new CIwManagedList(); // all skin sets (groups of weights) public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref m_Flags); serialise.ManagedHash <CIwModel>(ref m_Model); serialise.ManagedHash <CIwAnimSkel>(ref m_Skel); m_Sets.Serialise(serialise); //serialise.DebugWrite(758); }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public void Serialise(IwSerialise serialise) { this.array.SerialiseHeader(serialise); for (uint i = 0; i < this.array.Size; ++i) { CIwManaged m = this.array[(int)i]; serialise.ManagedObject(ref m); this.array[(int)i] = m; } }
public void Bone() { var s = IwSerialise.Open("TestData\\managedobject_bone.bin", true, this.container.Resolve <ClassRegistry>(), null); CIwManaged obj = null; s.ManagedObject(ref obj); s.Close(); Assert.IsTrue(obj is CIwAnimBone); Assert.AreEqual(obj.Hash, "bonename".ToeHash()); }
public void Bool() { var s = IwSerialise.Open("TestData\\bool.bin", true, null, null); bool v = false; s.Bool(ref v); Assert.AreEqual(v, false); s.Bool(ref v); Assert.AreEqual(v, true); s.Close(); }
float m_TransformPrecision = 1; // Amount this is scaled up by. #endregion #region Public Methods and Operators /// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref parentBone); serialise.SQuat(ref this.rot); serialise.SVec3(ref this.pos); serialise.UInt16(ref m_SkelID); serialise.UInt16(ref m_Flags); serialise.Fixed(ref m_TransformPrecision); }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref parentBone); serialise.SQuat(ref this.rot); serialise.SVec3(ref this.pos); serialise.UInt16(ref m_SkelID); serialise.UInt16(ref m_Flags); serialise.Fixed(ref m_TransformPrecision); }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); { serialise.UInt16(ref this.size); } { serialise.UInt16(ref this.numItems); } { serialise.UInt16(ref this.flags); } }
public void Int32() { var s = IwSerialise.Open("TestData\\int32.bin", true, null, null); int[] v = new int[16]; s.Int32(ref v[0]); Assert.AreEqual(v[0], int.MinValue); s.Int32(ref v[0]); Assert.AreEqual(v[0], int.MaxValue); s.Int32(ref v[0]); Assert.AreEqual(v[0], 0x01020304); s.Close(); }
public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref m_NumVerts); if (serialise.IsReading()) { uint dataLen = 0; serialise.UInt32(ref dataLen); long pos = serialise.Position + dataLen; byte boneId = 0; for (; ; ) { serialise.UInt8(ref boneId); if (boneId == 0xFF) break; boneIds.Add(boneId); } // pad if ((boneIds.Count % 2) == 0) serialise.UInt8(ref boneId); vertices = new CIwAnimSkinSetVertex[m_NumVerts]; for (int i = 0; i < m_NumVerts;++i ) { serialise.UInt16(ref vertices[i].VertexId); vertices[i].Bones = new CIwAnimSkinSetVertexBone[boneIds.Count]; for (int j = 0; j < boneIds.Count; j++) { serialise.SVec3(ref vertices[i].Bones[j].BindPose); } for (int j = 0; j < boneIds.Count; j++) { serialise.UInt8(ref vertices[i].Bones[j].Weight); } // pad if ( boneIds.Count % 2 == 1) serialise.UInt8(ref boneId); } if (serialise.Position != pos) throw new FormatException("CIwAnimSkinSet"); } else { throw new ApplicationException(); } }
/// <summary> /// The serialise header. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public void SerialiseHeader(IwSerialise serialise) { if (serialise.IsReading()) { uint l = 0; serialise.UInt32(ref l); this.Resize(l); } else { uint l = this.size; serialise.UInt32(ref this.size); } }
/// <summary> /// The serialise len str z. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> /// <param name="str"> /// The str. /// </param> /// <exception cref="NotImplementedException"> /// </exception> public static void SerialiseLenStrZ(IwSerialise serialise, ref string str) { if (serialise.IsReading()) { int len = 0; serialise.Int32(ref len); byte[] b = new byte[len + 1]; serialise.Serialise(ref b); str = Encoding.ASCII.GetString(b); } else { throw new NotImplementedException(); } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref this.materialId); this.inds = new ushort[this.numItems]; serialise.Serialise(ref this.inds); { serialise.UInt16(ref this.streamIdBegin); } { serialise.UInt16(ref this.streamIdEnd); } }
private void ReadGroupResources(IwSerialise serialise) { uint numResources = 0; serialise.UInt32(ref numResources); while (numResources > 0) { // uint resHash = 0; // serialise.UInt32(ref resHash); var item = new CIwResList(); item.Serialise(serialise); this.lists.PushBack(item); --numResources; } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> /// <exception cref="NotImplementedException"> /// </exception> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); { serialise.UInt16(ref this.uniqueValues); } short mediane = 0; serialise.Int16(ref mediane); var len = this.uniqueValues; // this.numItems; // this.Resize(this.numItems); if (serialise.IsWriting()) { throw new NotImplementedException(); } for (int i = 0; i < len; ++i) { short x = (short)(this.verts[i].X - mediane); serialise.Int16(ref x); this.verts[i].X = x + mediane; } for (int i = 0; i < len; ++i) { short y = (short)(this.verts[i].Y - mediane); serialise.Int16(ref y); this.verts[i].Y = y + mediane; } for (int i = 0; i < len; ++i) { short z = (short)(this.verts[i].Z - mediane); serialise.Int16(ref z); this.verts[i].Z = z + mediane; } ushort[] links = new ushort[this.numItems - this.uniqueValues]; serialise.Serialise(ref links); for (int i = this.uniqueValues; i < this.numItems; ++i) { this.verts[i] = this.verts[links[i - this.uniqueValues]]; } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public void Serialise(IwSerialise serialise) { serialise.Vec3(ref this.center); if (serialise.IsReading()) { int r = 0; serialise.Int32(ref r); this.radius = r; } else { int r = (int)this.radius; serialise.Int32(ref r); } }
public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); { int value = 0; serialise.Int32(ref value); } { byte value = 2; //1b=3 serialise.UInt8(ref value); } { Vector3 value = Vector3.Zero; serialise.SVec3(ref value); } { byte value = 1; serialise.UInt8(ref value); } { uint value = 3; //1b=1 serialise.UInt32(ref value); } { uint value = 2; //1b=1 num of bones? serialise.UInt32(ref value); } //1b=1 one more uint32? { bool value = true; serialise.Bool(ref value); } SerialiseMappedData(serialise); //1b-none // by number of bones { // 0x1d38b3fd Quaternion value = Quaternion.Identity; serialise.SQuat(ref value); } { // 0xa272adcf Quaternion value = Quaternion.Identity; serialise.SQuat(ref value); } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); SerialiseLenStrZ(serialise, ref this.vertexShader); SerialiseLenStrZ(serialise, ref this.fragmentShader); this.shaderParams.SerialiseHeader(serialise); for (int i = 0; i < this.shaderParams.Size; ++i) { if (this.shaderParams[i] == null) { this.shaderParams[i] = new CIwGxShaderUniform(); } this.shaderParams[i].Serialise(serialise); } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); short mediane = 0; // serialise.Int16(ref mediane); this.Resize(this.numItems); for (int i = 0; i < this.numItems; ++i) { short x = (short)((this.verts[i].X - mediane) * S3E.IwGeomOne); serialise.Int16(ref x); this.verts[i].X = (x + mediane) / (float)S3E.IwGeomOne; short y = (short)((this.verts[i].Y - mediane) * S3E.IwGeomOne); serialise.Int16(ref y); this.verts[i].Y = (y + mediane) / (float)S3E.IwGeomOne; } }
public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.ManagedHash <CIwAnimSkel>(ref m_Skel); { uint numBones = 2; serialise.UInt32(ref numBones); } boneFlags = new uint[1]; { serialise.UInt32(ref boneFlags[0]); } m_KeyFrames.Serialise(serialise); serialise.Fixed(ref m_Duration); serialise.Fixed(ref m_TransformPrecision); serialise.ManagedHash(ref m_OfsAnim); serialise.DebugWrite(256); }
float m_TransformPrecision; // the precision this anim is built at #endregion Fields #region Methods public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.ManagedHash<CIwAnimSkel>(ref m_Skel); { uint numBones = 2; serialise.UInt32(ref numBones); } boneFlags = new uint[1]; { serialise.UInt32(ref boneFlags[0]); } m_KeyFrames.Serialise(serialise); serialise.Fixed(ref m_Duration); serialise.Fixed(ref m_TransformPrecision); serialise.ManagedHash(ref m_OfsAnim); serialise.DebugWrite(256); }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); { uint val = 0x00020000; serialise.UInt32(ref val); } { ushort val = 4; serialise.UInt16(ref val); } { ushort val = 4; serialise.UInt16(ref val); } this.sphere.Serialise(serialise); this.list.Serialise(serialise); this.ext.Serialise(serialise); if (serialise.IsReading()) { uint numMaterials = 0; serialise.UInt32(ref numMaterials); this.materials = new CIwMaterial[numMaterials]; for (int i = 0; i < this.materials.Length; ++i) { CIwManaged m = null; serialise.ManagedHash("CIwMaterial".ToeHash(), ref m); this.materials[i] = (CIwMaterial)m; } } else { uint numMaterials = (uint)this.materials.Length; serialise.UInt32(ref numMaterials); for (int i = 0; i < this.materials.Length; ++i) { CIwManaged m = this.materials[i]; serialise.ManagedHash("CIwMaterial".ToeHash(), ref m); } } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref this.m_MaterialID); serialise.UInt16(ref this.m_NumTupleIDs); if (serialise.IsReading()) { this.m_TupleIDs = new ushort[this.m_NumTupleIDs]; this.prims = new _IwModelPrim[this.numItems]; } serialise.Serialise(ref this.m_TupleIDs); for (int i = 0; i < this.numItems; ++i) { this.prims[i].Serialise(serialise); } }
private bool m_WorldSet; // !< True if this set is a world file only set #endregion Fields #region Methods /// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); ////serialise.DebugWrite(256); // serialise.UInt8(ref m_Flags); serialise.Bool(ref this.m_WorldSet); serialise.UInt8(ref this.m_FlagsSW); serialise.UInt8(ref this.m_FlagsHW); serialise.UInt32(ref this.m_NumFaces); serialise.Int8(ref this.m_OTZOfsSW); this.m_FaceIDs.SerialiseHeader(serialise); this.m_FaceIDs.ForEach( (ref ushort v) => { serialise.Serialise(ref v); return true; }); ////serialise.DebugWrite(256); }
/// <summary> /// Initializes a new instance of the <see cref="IwSerialiseBinaryBlock"/> class. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public IwSerialiseBinaryBlock(IwSerialise serialise) { this.serialise = serialise; }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); serialise.UInt32(ref this.flags); serialise.UInt8(ref this.FormatSW); serialise.UInt8(ref this.FormatHW); short unknown3 = 0x1000; serialise.Int16(ref unknown3); short unknown4 = 0x1000; serialise.Int16(ref unknown4); if (this.image == null) { this.image = new CIwImage(); } this.image.Serialise(serialise); bool unknown5 = false; serialise.Bool(ref unknown5); }
/// <summary> /// Initializes a new instance of the <see cref="BinaryBlockEventArgs"/> class. /// </summary> /// <param name="hash"> /// The hash. /// </param> /// <param name="iwSerialise"> /// The iw serialise. /// </param> /// <param name="len"> /// The len. /// </param> public BinaryBlockEventArgs(uint hash, IwSerialise iwSerialise, uint len) { this.hash = hash; this.iwSerialise = iwSerialise; this.len = len; }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> /// <exception cref="NotImplementedException"> /// </exception> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); throw new NotImplementedException(); }
private void Serialise(IwSerialise serialise) { serialise.UInt32(ref this.Hash); serialise.UInt32(ref this.Offset); }