public void Serialize(IO.BitStream s) { s.Stream(ref Modifiers, Bits.kInt64BitCount, WeaponModifiersBitStreamer.Instance); if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value0)) { s.Stream(ref mValue0, 0f, 1f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value1)) { s.Stream(ref mValue1, 0f, 1f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value2)) { s.Stream(ref mValue2, 0f, 1f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value3)) { s.Stream(ref mValue3, 0f, 1f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value4)) { s.Stream(ref mValue4, 0f, 1f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value5)) { s.Stream(ref mValue5, 0f, 1.5706964f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value6)) { s.Stream(ref mValue6, 0f, 1000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value7)) { s.Stream(ref mValue7, 0f, 1000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value8)) { s.Stream(ref mValue8, 0f, 1000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value9)) { s.Stream(ref mValue9, 0f, 1.5706964f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value10)) { s.Stream(ref mValue10, 0f, 1000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value11)) { s.Stream(ref mValue11, 0f, 1000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value12)) { s.Stream(ref mValue12, 0f, 1000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value13)) { s.Stream(ref mValue13, 0f, 6.2831855f, 20, true, true); } }
public void Enum_FlagsTest() { FlagsEnum e = FlagsEnum.Flag0 | FlagsEnum.Flag2; Assert.IsTrue(EnumFlags.Test(e, FlagsEnum.Flag2)); Assert.IsTrue(EnumFlags.Test(e, FlagsEnum.Flag0 | FlagsEnum.Flag2)); }
public void Write(IO.EndianWriter s) { //Flags = EnumFlags.Remove(Flags, FileFlags.EncryptHeader | FileFlags.EncryptContent); s.Write(Flags, FileFlagsStreamer.Instance); s.Write((ushort)kVersion); Write(s, EnumFlags.Test(Flags, FileFlags.EncryptHeader), Header, MediaHeader.kSizeOf); GenerateHash(); if (EnumFlags.Test(Flags, FileFlags.CompressContent)) { using (var cs = new CompressedStream(true)) using (var ms = new System.IO.MemoryStream(kMaxContentSize)) using (var sout = new IO.EndianWriter(ms, Shell.EndianFormat.Big)) { sout.Write(Content); sout.Seek(0); cs.InitializeFromStream(ms); cs.Compress(); Write(s, EnumFlags.Test(Flags, FileFlags.EncryptContent), cs, userKey: Header.DataCryptKey, writeLeftovers: WriteLeftovers); } } else { s.Write(Content); } }
public void Read(IO.EndianReader s) { s.Owner = this; Flags = s.Read(FileFlagsStreamer.Instance); Version = s.ReadUInt16(); if (Version != kVersion) { throw new IO.VersionMismatchException(s.BaseStream, kVersion, Version); } Read(s, EnumFlags.Test(Flags, FileFlags.EncryptHeader), Header, MediaHeader.kSizeOf); GenerateHash(); if (EnumFlags.Test(Flags, FileFlags.CompressContent)) { using (var cs = new CompressedStream(true)) { Read(s, EnumFlags.Test(Flags, FileFlags.EncryptContent), cs, userKey: Header.DataCryptKey, readLeftovers: ReadLeftovers); cs.Decompress(); Content = cs.UncompressedData; } } else { Content = s.ReadBytes((int)(s.BaseStream.Length - s.BaseStream.Position)); } }
public void Serialize(IO.EndianStream s) { s.Owner = this; if (s.IsWriting) { //Flags = EnumFlags.Remove(Flags, FileFlags.EncryptHeader | FileFlags.EncryptContent); } s.Stream(ref Flags, FileFlagsStreamer.Instance); s.StreamVersion(kVersion); Stream(s, EnumFlags.Test(Flags, FileFlags.EncryptHeader), Header, MediaHeader.kSizeOf); GenerateHash(); if (EnumFlags.Test(Flags, FileFlags.CompressContent)) { StreamCompressedContent(s); } else { if (s.IsReading) { Content = new byte[(int)(s.BaseStream.Length - s.BaseStream.Position)]; } s.Stream(Content); } }
void StreamCompressedContent(IO.EndianStream s) { if (s.IsReading) { using (var cs = new CompressedStream(true)) { Stream(s, EnumFlags.Test(Flags, FileFlags.EncryptContent), cs, userKey: Header.DataCryptKey, streamLeftovers: StreamLeftovers); cs.Decompress(); Content = cs.UncompressedData; } } else if (s.IsWriting) { using (var cs = new CompressedStream(true)) using (var ms = new System.IO.MemoryStream(kMaxContentSize)) using (var sout = new IO.EndianWriter(ms, s.ByteOrder)) { sout.Write(Content); sout.Seek(0); cs.InitializeFromStream(ms); cs.Compress(); Stream(s, EnumFlags.Test(Flags, FileFlags.EncryptContent), cs, userKey: Header.DataCryptKey, streamLeftovers: StreamLeftovers); } } }
public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s) where TDoc : class where TCursor : class { bool reading = s.IsReading; #region Value0 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value0) || reading) && s.StreamElementOpt("Value0", ref mValue0)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value0); } #endregion #region Value1 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value1) || reading) && s.StreamElementOpt("Value1", ref mValue1)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value1); } #endregion #region Value2 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value2) || reading) && s.StreamElementOpt("Value2", ref mValue2)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value2); } #endregion #region Value3 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value3) || reading) && s.StreamElementOpt("Value3", ref mValue3)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value3); } #endregion #region Value4 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value4) || reading) && s.StreamElementOpt("Value4", ref mValue4)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value4); } #endregion #region Value5 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value5) || reading) && s.StreamElementOpt("Value5", ref mValue5)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value5); } #endregion #region Value6 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value6) || reading) && s.StreamElementOpt("Value6", ref mValue6)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value6); } #endregion #region Value7 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value7) || reading) && s.StreamElementOpt("Value7", ref mValue7)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value7); } #endregion #region Value8 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value8) || reading) && s.StreamElementOpt("Value8", ref mValue8)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value8); } #endregion #region Value9 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value9) || reading) && s.StreamElementOpt("Value9", ref mValue9)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value9); } #endregion #region Value10 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value10) || reading) && s.StreamElementOpt("Value10", ref mValue10)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value10); } #endregion #region Value11 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value11) || reading) && s.StreamElementOpt("Value11", ref mValue11)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value11); } #endregion #region Value12 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value12) || reading) && s.StreamElementOpt("Value12", ref mValue12)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value12); } #endregion #region Value13 if ((EnumFlags.Test(Modifiers, WeaponTuningModifiers.Value13) || reading) && s.StreamElementOpt("Value13", ref mValue13)) { EnumFlags.Add(ref Modifiers, WeaponTuningModifiers.Value13); } #endregion }
T?GetImpl <T>(T value, WeaponTuningModifiers modifer) where T : struct { return(EnumFlags.Test(Modifiers, modifer) ? value : (T?)null); }
public void Serialize(IO.BitStream s) { s.Stream(ref Modifiers, Bits.kInt64BitCount, BarrelModifiersBitStreamer.Instance); if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value0)) { s.Stream(ref mValue0); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value1)) { s.Stream(ref mValue1); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value2)) { s.Stream(ref mValue2); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value3)) { s.Stream(ref mValue3); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value4)) { s.Stream(ref mValue4, 7); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value5)) { s.Stream(ref mValue5, 7); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value6)) { s.Stream(ref mValue6); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value7)) { s.Stream(ref mValue7); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value8)) { s.Stream(ref mValue8); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value9)) { s.Stream(ref mValue9); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value10)) { s.Stream(ref mValue10); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value11)) { s.Stream(ref mValue11, 0f, 130f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value12)) { s.Stream(ref mValue12, 0f, 130f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value13)) { s.Stream(ref mValue13, 0f, 10f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value14)) { s.Stream(ref mValue14, 0f, 6.2831855f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value15)) { s.Stream(ref mValue15, 0f, 6.2831855f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value16)) { s.Stream(ref mValue16, 0f, 6.2831855f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value17)) { s.Stream(ref mValue17); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value18)) { s.Stream(ref mValue18); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value19)) { s.Stream(ref mValue19, 0f, 10f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value20)) { s.Stream(ref mValue20, 0f, 3000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value21)) { s.Stream(ref mValue21, 0f, 3000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value22)) { s.Stream(ref mValue22, 0f, 3000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value23)) { s.Stream(ref mValue23, 0f, 1000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value24)) { s.Stream(ref mValue24, 0f, 1000f, 20, true, true); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value25)) { s.Stream(ref mValue25); } if (EnumFlags.Test(Modifiers, WeaponTuningBarrelModifiers.Value26)) { s.Stream(ref mValue26); } }