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(); } }
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 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; } }
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); } }
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); } }
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); }
private bool m_WorldSet; // !< True if this set is a world file only set #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.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> /// 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); }
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); 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> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); bool someFlag = false; serialise.Bool(ref someFlag); { serialise.UInt32(ref this.flags); } if (!someFlag) { { serialise.Int16(ref this.zDepthOfs); } { serialise.Int16(ref this.zDepthOfsHW); } { serialise.Colour(ref this.colEmissive); } { serialise.Colour(ref this.colAmbient); } { serialise.Colour(ref this.colDiffuse); } { serialise.Colour(ref this.colSpecular); } { uint val = 4; serialise.UInt32(ref val); } } { // Texture is always presented CIwManaged t = this.texture0; serialise.ManagedHash("CIwTexture".ToeHash(), ref t); this.texture0 = (CIwTexture)t; } if (!someFlag) { CIwManaged t = this.texture1; serialise.ManagedHash("CIwTexture".ToeHash(), ref t); this.texture1 = (CIwTexture)t; { CIwManaged val = null; serialise.ManagedHash("?".ToeHash(), ref val); } { CIwManaged val = null; serialise.ManagedHash("?".ToeHash(), ref val); } byte isAnimated = 0; serialise.UInt8(ref isAnimated); if (isAnimated != 0) { { byte value = 0; serialise.UInt8(ref value); } serialise.UInt8(ref this.celNum); serialise.UInt8(ref this.celNumU); serialise.UInt8(ref this.celW); serialise.UInt8(ref this.celH); serialise.UInt8(ref this.celPeriod); } serialise.UInt8(ref this.alphaTestValue); { CIwManaged val = null; serialise.ManagedHash("?".ToeHash(), ref val); } } }
/// <summary> /// The serialise. /// </summary> /// <param name="serialise"> /// The serialise. /// </param> public override void Serialise(IwSerialise serialise) { base.Serialise(serialise); bool someFlag = false; serialise.Bool(ref someFlag); { serialise.UInt32(ref this.flags); } if (!someFlag) { { serialise.Int16(ref this.zDepthOfs); } { serialise.Int16(ref this.zDepthOfsHW); } { serialise.Colour(ref this.colEmissive); } { serialise.Colour(ref this.colAmbient); } { serialise.Colour(ref this.colDiffuse); } { serialise.Colour(ref this.colSpecular); } { uint val = 4; serialise.UInt32(ref val); } } { // Texture is always presented CIwManaged t = this.texture0; serialise.ManagedHash("CIwTexture".ToeHash(), ref t); this.texture0 = (CIwTexture)t; } if (!someFlag) { CIwManaged t = this.texture1; serialise.ManagedHash("CIwTexture".ToeHash(), ref t); this.texture1 = (CIwTexture)t; { CIwManaged val = null; serialise.ManagedHash("?".ToeHash(), ref val); } { CIwManaged val = null; serialise.ManagedHash("?".ToeHash(), ref val); } byte isAnimated = 0; serialise.UInt8(ref isAnimated); if (isAnimated != 0) { { byte value = 0; serialise.UInt8(ref value); } serialise.UInt8(ref this.celNum); serialise.UInt8(ref this.celNumU); serialise.UInt8(ref this.celW); serialise.UInt8(ref this.celH); serialise.UInt8(ref this.celPeriod); } serialise.UInt8(ref this.alphaTestValue); { CIwManaged val = null; serialise.ManagedHash("?".ToeHash(), ref val); } } }