private void ReadCustom(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2, bool canRepeat) { if (includeHeader) { EnumType = (int)reader.ReadInt64(); PropertyGuid = reader.ReadPropertyGuid(); } switch (leng1) { case 1: ByteType = BytePropertyType.Byte; Value = (int)reader.ReadByte(); break; case 0: // Should be only seen in maps case 8: ByteType = BytePropertyType.Long; Value = (int)reader.ReadInt64(); break; default: if (canRepeat) { ReadCustom(reader, false, leng2, 0, false); return; } throw new FormatException("Invalid length " + leng1 + " for ByteProperty"); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { FName type1 = null, type2 = null; if (includeHeader) { type1 = reader.ReadFName(); type2 = reader.ReadFName(); PropertyGuid = reader.ReadPropertyGuid(); } int numKeysToRemove = reader.ReadInt32(); KeysToRemove = new PropertyData[numKeysToRemove]; for (int i = 0; i < numKeysToRemove; i++) { KeysToRemove[i] = MapTypeToClass(type1, Name, reader, 0, false, true); } int numEntries = reader.ReadInt32(); if (numEntries == 0) { KeyType = type1; ValueType = type2; } Value = ReadRawMap(reader, type1, type2, numEntries); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { Value = reader.ReadBoolean(); if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = (int)reader.ReadByte(); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } if (reader.Asset.EngineVersion < UE4Version.VER_UE4_FTEXT_HISTORY) { CultureInvariantString = reader.ReadFString(); if (reader.Asset.EngineVersion >= UE4Version.VER_UE4_ADDED_NAMESPACE_AND_KEY_DATA_TO_FTEXT) { Namespace = reader.ReadFString(); Value = reader.ReadFString(); } else { Namespace = null; Value = reader.ReadFString(); } } Flags = (ETextFlag)reader.ReadUInt32(); if (reader.Asset.EngineVersion >= UE4Version.VER_UE4_FTEXT_HISTORY) { HistoryType = (TextHistoryType)reader.ReadSByte(); switch (HistoryType) { case TextHistoryType.None: Value = null; if (reader.Asset.GetCustomVersion <FEditorObjectVersion>() >= FEditorObjectVersion.CultureInvariantTextSerializationKeyStability) { bool bHasCultureInvariantString = reader.ReadInt32() == 1; if (bHasCultureInvariantString) { CultureInvariantString = reader.ReadFString(); } } break; case TextHistoryType.Base: Namespace = reader.ReadFString(); Value = reader.ReadFString(); CultureInvariantString = reader.ReadFString(); break; case TextHistoryType.StringTableEntry: TableId = reader.ReadFName(); Value = reader.ReadFString(); break; default: throw new NotImplementedException("Unimplemented reader for " + HistoryType.ToString()); } } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { EnumType = reader.ReadFName(); PropertyGuid = reader.ReadPropertyGuid(); } Value = reader.ReadFName(); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = new FVector(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle()); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } ReadExpressionInput(reader, false, 0); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = new FPackageIndex(reader.ReadInt32()); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = new TimeSpan(reader.ReadInt64()); // number of ticks }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = Color.FromArgb(reader.ReadInt32()); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } X = reader.ReadSingle(); Y = reader.ReadSingle(); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = new SkeletalMeshAreaWeightedTriangleSamplerPropertyData(new FName("AreaWeightedTriangleSampler")); Value.Read(reader, false, 0); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } BlendTime = reader.ReadSingle(); BlendFunction = (ViewTargetBlendFunction)reader.ReadByte(); BlendExp = reader.ReadSingle(); bLockOutgoing = reader.ReadInt32() != 0; }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } ReadExpressionInput(reader, false, 0); reader.ReadInt32(); // always 0 Value = new Vector2DPropertyData(Name); Value.Read(reader, false, 0); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = new int[2]; for (int i = 0; i < 2; i++) { Value[i] = reader.ReadInt32(); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } int numVals = reader.ReadInt32(); Value = new FMulticastDelegate[numVals]; for (int i = 0; i < numVals; i++) { Value[i] = new FMulticastDelegate(reader.ReadInt32(), reader.ReadFName()); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } int numEntries = reader.ReadInt32(); Value = new bool[numEntries]; for (int i = 0; i < numEntries; i++) { Value[i] = reader.ReadBoolean(); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = new LinearColor { R = reader.ReadSingle(), G = reader.ReadSingle(), B = reader.ReadSingle(), A = reader.ReadSingle() }; }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } if (reader.Asset.EngineVersion < UE4Version.VER_UE4_ADDED_SOFT_OBJECT_PATH) { Path = reader.ReadFString(); } else { AssetPathName = reader.ReadFName(); SubPathString = reader.ReadFString(); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } InterpMode = (RichCurveInterpMode)reader.ReadSByte(); TangentMode = (RichCurveTangentMode)reader.ReadSByte(); TangentWeightMode = (RichCurveTangentWeightMode)reader.ReadSByte(); Time = reader.ReadSingle(); Value = reader.ReadSingle(); ArriveTangent = reader.ReadSingle(); ArriveTangentWeight = reader.ReadSingle(); LeaveTangent = reader.ReadSingle(); LeaveTangentWeight = reader.ReadSingle(); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } Value = new VectorPropertyData[2]; for (int i = 0; i < 2; i++) { var next = new VectorPropertyData(Name); next.Read(reader, false, 0); Value[i] = next; } IsValid = reader.ReadBoolean(); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } DisplayName = reader.ReadFName(); if (reader.Asset.GetCustomVersion <FAnimPhysObjectVersion>() < FAnimPhysObjectVersion.RemoveUIDFromSmartNameSerialize) { SmartNameID = reader.ReadUInt16(); } if (reader.Asset.GetCustomVersion <FAnimPhysObjectVersion>() < FAnimPhysObjectVersion.SmartNameRefactorForDeterministicCooking) { TempGUID = new Guid(reader.ReadBytes(16)); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { this.ShouldSerializeStructsDifferently = false; if (includeHeader) { ArrayType = reader.ReadFName(); PropertyGuid = reader.ReadPropertyGuid(); } var removedItemsDummy = new ArrayPropertyData(new FName("ElementsToRemove")); removedItemsDummy.ShouldSerializeStructsDifferently = false; removedItemsDummy.ArrayType = ArrayType; removedItemsDummy.Read(reader, false, leng1, leng2); ElementsToRemove = removedItemsDummy.Value; base.Read(reader, false, leng1, leng2); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { PropertyGuid = reader.ReadPropertyGuid(); } int size = reader.ReadInt32(); Prob = new float[size]; for (int i = 0; i < size; i++) { Prob[i] = reader.ReadSingle(); } size = reader.ReadInt32(); Alias = new int[size]; for (int i = 0; i < size; i++) { Alias[i] = reader.ReadInt32(); } TotalWeight = reader.ReadSingle(); }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) // originally !isForced { StructType = reader.ReadFName(); if (reader.Asset.EngineVersion >= UE4Version.VER_UE4_STRUCT_GUID_IN_PROPERTY_TAG) { StructGUID = new Guid(reader.ReadBytes(16)); } PropertyGuid = reader.ReadPropertyGuid(); } MainSerializer.PropertyTypeRegistry.TryGetValue(StructType.Value.Value, out RegistryEntry targetEntry); bool hasCustomStructSerialization = targetEntry != null && targetEntry.HasCustomStructSerialization; if (StructType.Value.Value == "RichCurveKey" && reader.Asset.EngineVersion < UE4Version.VER_UE4_SERIALIZE_RICH_CURVE_KEY) { hasCustomStructSerialization = false; } if (leng1 == 0) { SerializeNone = false; Value = new List <PropertyData>(); return; } if (targetEntry != null && hasCustomStructSerialization) { ReadOnce(reader, targetEntry.PropertyType, reader.BaseStream.Position); } else { ReadNTPL(reader); } }
public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0) { if (includeHeader) { ArrayType = reader.ReadFName(); PropertyGuid = reader.ReadPropertyGuid(); } int numEntries = reader.ReadInt32(); if (ArrayType.Value.Value == "StructProperty" && ShouldSerializeStructsDifferently) { var results = new PropertyData[numEntries]; FName name = this.Name; long structLength = 1; FName fullType = new FName("Generic"); Guid structGUID = new Guid(); if (reader.Asset.EngineVersion >= UE4Version.VER_UE4_INNER_ARRAY_TAG_INFO) { name = reader.ReadFName(); if (name.Value.Value.Equals("None")) { Value = results; return; } FName thisArrayType = reader.ReadFName(); if (thisArrayType.Value.Value.Equals("None")) { Value = results; return; } if (thisArrayType.Value.Value != ArrayType.Value.Value) { throw new FormatException("Invalid array type: " + thisArrayType.ToString() + " vs " + ArrayType.ToString()); } structLength = reader.ReadInt64(); // length value fullType = reader.ReadFName(); structGUID = new Guid(reader.ReadBytes(16)); reader.ReadPropertyGuid(); } if (numEntries == 0) { DummyStruct = new StructPropertyData(name, fullType) { StructGUID = structGUID }; } else { for (int i = 0; i < numEntries; i++) { var data = new StructPropertyData(name, fullType); data.Offset = reader.BaseStream.Position; data.Read(reader, false, structLength); data.StructGUID = structGUID; results[i] = data; } DummyStruct = (StructPropertyData)results[0]; } Value = results; } else { var results = new PropertyData[numEntries]; if (numEntries > 0) { int averageSizeEstimate1 = (int)(leng1 / numEntries); int averageSizeEstimate2 = (int)((leng1 - 4) / numEntries); for (int i = 0; i < numEntries; i++) { results[i] = MainSerializer.TypeToClass(ArrayType, new FName(i.ToString(), int.MinValue), reader.Asset); results[i].Offset = reader.BaseStream.Position; if (results[i] is StructPropertyData) { ((StructPropertyData)results[i]).StructType = new FName("Generic"); } results[i].Read(reader, false, averageSizeEstimate1, averageSizeEstimate2); } } Value = results; } }