public RDATField(BinaryFileReader r, int dataSize) { Type = r.ReadUInt32(); Flags = (REGNType)r.ReadByte(); Priority = r.ReadByte(); r.Skip(2); // Unused }
public BYDTField(BinaryFileReader r, int dataSize) { Part = r.ReadByte(); Vampire = r.ReadByte(); Flags = r.ReadByte(); PartType = r.ReadByte(); }
public int Parameter2; // Parameter #2 public CTDAField(BinaryFileReader r, int dataSize, GameFormat format) { if (format == GameFormat.TES3) { Index = r.ReadByte(); Type = r.ReadByte(); FunctionId = r.ReadASCIIString(2); CompareOp = (byte)(r.ReadByte() << 1); Name = r.ReadASCIIString(dataSize - 5); ComparisonValue = Parameter1 = Parameter2 = 0; return; } CompareOp = r.ReadByte(); r.Skip(3); // Unused ComparisonValue = r.ReadSingle(); FunctionId = r.ReadASCIIString(4); Parameter1 = r.ReadInt32(); Parameter2 = r.ReadInt32(); if (dataSize != 24) { r.Skip(4); // Unused } Index = Type = 0; Name = null; }
public AI_WField(BinaryFileReader r, int dataSize) { Distance = r.ReadInt16(); Duration = r.ReadInt16(); TimeOfDay = r.ReadByte(); Idle = r.ReadBytes(8); Unknown = r.ReadByte(); }
public PSDTField(BinaryFileReader r, int dataSize) { Month = r.ReadByte(); DayOfWeek = r.ReadByte(); Date = r.ReadByte(); Time = (sbyte)r.ReadByte(); Duration = r.ReadInt32(); }
public DATA3Field(BinaryFileReader r, int dataSize) { Unknown1 = r.ReadInt32(); Disposition = r.ReadInt32(); Rank = r.ReadByte(); Gender = r.ReadByte(); PCRank = r.ReadByte(); Unknown2 = r.ReadByte(); }
public ENAMField(BinaryFileReader r, int dataSize) { EffectId = r.ReadInt16(); SkillId = r.ReadByte(); AttributeId = r.ReadByte(); Unknown1 = r.ReadInt32(); Unknown2 = r.ReadInt32(); Duration = r.ReadInt32(); Magnitude = r.ReadInt32(); Unknown4 = r.ReadInt32(); }
public XLOCField(BinaryFileReader r, int dataSize) { LockLevel = r.ReadByte(); r.Skip(3); // Unused Key = new FormId <KEYMRecord>(r.ReadUInt32()); if (dataSize == 16) { r.Skip(4); // Unused } Flags = r.ReadByte(); r.Skip(3); // Unused }
public DATAField(BinaryFileReader r, int dataSize) { Density = r.ReadByte(); MinSlope = r.ReadByte(); MaxSlope = r.ReadByte(); r.ReadByte(); UnitFromWaterAmount = r.ReadUInt16(); r.Skip(2); UnitFromWaterType = r.ReadUInt32(); PositionRange = r.ReadSingle(); HeightRange = r.ReadSingle(); ColorRange = r.ReadSingle(); WavePeriod = r.ReadSingle(); Flags = r.ReadByte(); r.Skip(3); }
public void ReadByteTest() { File file = new File(System.IO.Path.Combine(TestDirectory, "Test1.bin")); try { BinaryFileWriter target = new BinaryFileWriter(file, Encoding.UTF32); byte b = 10; target.WriteByte(b); target.Close(); BinaryFileReader r = new BinaryFileReader(file); byte c = r.ReadByte(); Assert.AreEqual(b, c, "Should be equal"); r.Close(); } catch (Exception e) { Assert.Fail(e.ToString()); } }
public DATAField(BinaryFileReader r, int dataSize, GameFormat format) { if (format == GameFormat.TES3) { Weight = r.ReadSingle(); Value = r.ReadInt32(); Flags = (byte)r.ReadInt32(); Teaches = (byte)r.ReadInt32(); EnchantPts = r.ReadInt32(); return; } Flags = r.ReadByte(); Teaches = r.ReadByte(); Value = r.ReadInt32(); Weight = r.ReadSingle(); EnchantPts = 0; }
public TRDTField(BinaryFileReader r, int dataSize) { EmotionType = r.ReadUInt32(); EmotionValue = r.ReadInt32(); r.Skip(4); // Unused ResponseNumber = r.ReadByte(); r.Skip(3); // Unused }
public XSEDField(BinaryFileReader r, int dataSize) { Seed = r.ReadByte(); if (dataSize == 4) { r.Skip(3); // Unused } }
public DATAField(BinaryFileReader r, int dataSize, GameFormat format) { if (format == GameFormat.TES3) { Weight = r.ReadSingle(); return; } Flags = r.ReadByte(); Weight = r.ReadSingle(); }
public AIDTField(BinaryFileReader r, int dataSize) { Hello = r.ReadByte(); Unknown1 = r.ReadByte(); Fight = r.ReadByte(); Flee = r.ReadByte(); Alarm = r.ReadByte(); Unknown2 = r.ReadByte(); Unknown3 = r.ReadByte(); Unknown4 = r.ReadByte(); Flags = r.ReadUInt32(); }
public DATAField(BinaryFileReader r, int dataSize) { if (dataSize != 102 && dataSize != 86 && dataSize != 62 && dataSize != 42 && dataSize != 2) { WindVelocity = 1; } if (dataSize == 2) { Damage = r.ReadUInt16(); return; } WindVelocity = r.ReadSingle(); WindDirection = r.ReadSingle(); WaveAmplitude = r.ReadSingle(); WaveFrequency = r.ReadSingle(); SunPower = r.ReadSingle(); ReflectivityAmount = r.ReadSingle(); FresnelAmount = r.ReadSingle(); ScrollXSpeed = r.ReadSingle(); ScrollYSpeed = r.ReadSingle(); FogDistance_NearPlane = r.ReadSingle(); if (dataSize == 42) { Damage = r.ReadUInt16(); return; } FogDistance_FarPlane = r.ReadSingle(); ShallowColor = r.ReadT <ColorRef4>(dataSize); DeepColor = r.ReadT <ColorRef4>(dataSize); ReflectionColor = r.ReadT <ColorRef4>(dataSize); TextureBlend = r.ReadByte(); r.Skip(3); // Unused if (dataSize == 62) { Damage = r.ReadUInt16(); return; } RainSimulator_Force = r.ReadSingle(); RainSimulator_Velocity = r.ReadSingle(); RainSimulator_Falloff = r.ReadSingle(); RainSimulator_Dampner = r.ReadSingle(); RainSimulator_StartingSize = r.ReadSingle(); DisplacementSimulator_Force = r.ReadSingle(); if (dataSize == 86) { //DisplacementSimulator_Velocity = DisplacementSimulator_Falloff = DisplacementSimulator_Dampner = DisplacementSimulator_StartingSize = 0F; Damage = r.ReadUInt16(); return; } DisplacementSimulator_Velocity = r.ReadSingle(); DisplacementSimulator_Falloff = r.ReadSingle(); DisplacementSimulator_Dampner = r.ReadSingle(); DisplacementSimulator_StartingSize = r.ReadSingle(); Damage = r.ReadUInt16(); }
public SkillBoost(BinaryFileReader r, int dataSize, GameFormat format) { if (format == GameFormat.TES3) { SkillId = (byte)r.ReadInt32(); Bonus = (sbyte)r.ReadInt32(); return; } SkillId = r.ReadByte(); Bonus = r.ReadSByte(); }
public ColorRef4 VertexShading; // RGB + Shading radius (0 - 200) % public RDOTField(BinaryFileReader r, int dataSize) { Object = new FormId <Record>(r.ReadUInt32()); ParentIdx = r.ReadUInt16(); r.Skip(2); // Unused Density = r.ReadSingle(); Clustering = r.ReadByte(); MinSlope = r.ReadByte(); MaxSlope = r.ReadByte(); Flags = r.ReadByte(); RadiusWrtParent = r.ReadUInt16(); Radius = r.ReadUInt16(); MinHeight = r.ReadSingle(); MaxHeight = r.ReadSingle(); Sink = r.ReadSingle(); SinkVariance = r.ReadSingle(); SizeVariance = r.ReadSingle(); AngleVariance = new Vector3Int(r.ReadUInt16(), r.ReadUInt16(), r.ReadUInt16()); r.Skip(2); // Unused VertexShading = r.ReadT <ColorRef4>(dataSize); }
public EFITField(BinaryFileReader r, int dataSize, GameFormat format) { if (format == GameFormat.TES3) { EffectId = r.ReadASCIIString(2); SkillId = r.ReadByte(); AttributeId = r.ReadByte(); Type = r.ReadInt32(); Area = r.ReadInt32(); Duration = r.ReadInt32(); MagnitudeMin = r.ReadInt32(); MagnitudeMax = r.ReadInt32(); return; } EffectId = r.ReadASCIIString(4); MagnitudeMin = r.ReadInt32(); Area = r.ReadInt32(); Duration = r.ReadInt32(); Type = r.ReadInt32(); ActorValue = r.ReadInt32(); }
public int Flags; // 0 = ?, 1 = Ignore Normal Weapon Resistance? public DATAField(BinaryFileReader r, int dataSize, GameFormat format) { if (format == GameFormat.TES3) { Weight = r.ReadSingle(); Value = r.ReadInt32(); Type = r.ReadUInt16(); Health = r.ReadInt16(); Speed = r.ReadSingle(); Reach = r.ReadSingle(); Damage = r.ReadInt16(); ChopMin = r.ReadByte(); ChopMax = r.ReadByte(); SlashMin = r.ReadByte(); SlashMax = r.ReadByte(); ThrustMin = r.ReadByte(); ThrustMax = r.ReadByte(); Flags = r.ReadInt32(); return; } Type = (ushort)r.ReadUInt32(); Speed = r.ReadSingle(); Reach = r.ReadSingle(); Flags = r.ReadInt32(); Value = r.ReadInt32(); Health = (short)r.ReadInt32(); Weight = r.ReadSingle(); Damage = r.ReadInt16(); ChopMin = ChopMax = SlashMin = SlashMax = ThrustMin = ThrustMax = 0; }
public RDSDField(BinaryFileReader r, int dataSize, GameFormat format) { if (format == GameFormat.TES3) { Sound = new FormId <SOUNRecord>(r.ReadASCIIString(32, ASCIIFormat.ZeroPadded)); Flags = 0; Chance = r.ReadByte(); return; } Sound = new FormId <SOUNRecord>(r.ReadUInt32()); Flags = r.ReadUInt32(); Chance = r.ReadUInt32(); //: float with TES5 }
private bool Unserialize(BinaryFileReader reader) { uint magic = reader.ReadUInt(); if (magic != MAGIC) { return(false); } if (m_Macros == null) { m_Macros = new List <Action>(); } m_Macros.Clear(); int version = reader.ReadInt(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Action action = new Action(); action.Keystroke = (WinKeys)reader.ReadUShort(); action.Ctrl = reader.ReadBool(); action.Alt = reader.ReadBool(); action.Shift = reader.ReadBool(); reader.ReadBool(); // unused filler byte int macroCount = reader.ReadUShort(); for (int j = 0; j < macroCount; j++) { int type = reader.ReadInt(); Macro.ValueTypes valueType = (Macro.ValueTypes)reader.ReadByte(); if (valueType == Macro.ValueTypes.Integer) { action.Macros.Add(new Macro((MacroType)type, reader.ReadInt())); } else if (valueType == Macro.ValueTypes.String) { action.Macros.Add(new Macro((MacroType)type, reader.ReadString())); } else { action.Macros.Add(new Macro((MacroType)type)); } } m_Macros.Add(action); } return(true); }
public WEATField(BinaryFileReader r, int dataSize) { Clear = r.ReadByte(); Cloudy = r.ReadByte(); Foggy = r.ReadByte(); Overcast = r.ReadByte(); Rain = r.ReadByte(); Thunder = r.ReadByte(); Ash = r.ReadByte(); Blight = r.ReadByte(); // v1.3 ESM files add 2 bytes to WEAT subrecords. if (dataSize == 10) { r.Skip(2); } }
public TNAMField(BinaryFileReader r, int dataSize) { Sunrise_Begin = r.ReadByte(); Sunrise_End = r.ReadByte(); Sunset_Begin = r.ReadByte(); Sunset_End = r.ReadByte(); Volatility = r.ReadByte(); MoonsPhaseLength = r.ReadByte(); }
private bool Unserialize(BinaryFileReader r) { var magic = r.ReadUInt(); if (magic != MAGIC) { return(false); } if (_macros == null) { _macros = new List <Action>(); } _macros.Clear(); var version = r.ReadInt(); var count = r.ReadInt(); for (var i = 0; i < count; i++) { var action = new Action(); action.Keystroke = (WinKeys)r.ReadUShort(); action.Ctrl = r.ReadBool(); action.Alt = r.ReadBool(); action.Shift = r.ReadBool(); r.ReadBool(); // unused filler byte var macroCount = r.ReadUShort(); for (var j = 0; j < macroCount; j++) { var type = r.ReadInt(); var valueType = (Macro.ValueTypes)r.ReadByte(); if (valueType == Macro.ValueTypes.Integer) { action.Macros.Add(new Macro((MacroType)type, r.ReadInt())); } else if (valueType == Macro.ValueTypes.String) { action.Macros.Add(new Macro((MacroType)type, r.ReadString())); } else { action.Macros.Add(new Macro((MacroType)type)); } } _macros.Add(action); } return(true); }
public DATAField(BinaryFileReader r, int dataSize, GameFormat format) { if (format == GameFormat.TES3) { Type = (byte)r.ReadInt32(); Quality = r.ReadSingle(); Weight = r.ReadSingle(); Value = r.ReadInt32(); return; } Type = r.ReadByte(); Value = r.ReadInt32(); Weight = r.ReadSingle(); Quality = r.ReadSingle(); }
public bool Unserialize(BinaryFileReader reader) { string id = reader.ReadString(); if (id != c_SerializeIdentifier) { return(false); } int version = reader.ReadInt(); if (version >= 0) { // version 0 // 16 byte header m_PaletteZero = reader.ReadByte(); for (int i = 0; i < 4; i++) { m_Palettes[i] = reader.ReadByte(); } for (int i = 0; i < 3; i++) { reader.ReadByte(); } m_Tilegfx.Reset(); m_Tilegfx.NextIndex = reader.ReadInt(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { int index = reader.ReadInt(); byte tile = reader.ReadByte(); byte page = reader.ReadByte(); m_Tilegfx.AddIndexTilePage(index, tile, page); } for (int i = 0; i < TilesPerSet; i++) { for (int j = 0; j < 4; j++) { m_Metatiles[i][j] = reader.ReadInt(); } m_Bitfields[i] = reader.ReadByte(); m_Attributes[i] = reader.ReadByte(); } } return(true); }
public static INTVField ReadINTV(this BinaryFileReader r, int length) { switch (length) { case 1: return(new INTVField { Value = r.ReadByte() }); case 2: return(new INTVField { Value = r.ReadInt16() }); case 4: return(new INTVField { Value = r.ReadInt32() }); case 8: return(new INTVField { Value = r.ReadInt64() }); default: throw new NotImplementedException($"Tried to read an INTV subrecord with an unsupported size ({length})"); } }
public byte StartTime; // Start time public DATAField(BinaryFileReader r, int dataSize, GameFormat format) { Volume = format == GameFormat.TES3 ? r.ReadByte() : (byte)0; MinRange = r.ReadByte(); MaxRange = r.ReadByte(); if (format == GameFormat.TES3) { return; } FrequencyAdjustment = r.ReadSByte(); r.ReadByte(); // Unused Flags = r.ReadUInt16(); r.ReadUInt16(); // Unused if (dataSize == 8) { return; } StaticAttenuation = r.ReadUInt16(); StopTime = r.ReadByte(); StartTime = r.ReadByte(); }
public DATAField(BinaryFileReader r, int dataSize) { Uses = r.ReadByte(); Value = r.ReadInt32(); Weight = r.ReadSingle(); }