public override void Read(AssetBinaryReader reader, int nextStarting) { base.Read(reader, nextStarting); reader.ReadInt32(); int numIndexEntries = reader.ReadInt32(); IndexData = new List <int>(); for (int i = 0; i < numIndexEntries; i++) { IndexData.Add(reader.ReadInt32()); } var nms = reader.ReadFString(); reader.ReadInt32(); // null var val = reader.ReadFString(); LevelType = new NamespacedString(nms, val); reader.ReadInt64(); // null FlagsProbably = reader.ReadUInt64(); MiscCategoryData = new List <int>(); while (reader.BaseStream.Position < nextStarting - 1) { MiscCategoryData.Add(reader.ReadInt32()); } reader.ReadByte(); }
public void Read(AssetBinaryReader reader, UAsset asset) { if (asset.EngineVersion < UE4Version.VER_UE4_TIGHTLY_PACKED_ENUMS) { int numEntries = reader.ReadInt32(); for (int i = 0; i < numEntries; i++) { FName tempName = reader.ReadFName(); Names.Add(new Tuple <FName, long>(tempName, i)); } } else if (asset.GetCustomVersion <FCoreObjectVersion>() < FCoreObjectVersion.EnumProperties) { int numEntries = reader.ReadInt32(); for (int i = 0; i < numEntries; i++) { FName tempName = reader.ReadFName(); byte tempVal = reader.ReadByte(); Names.Add(new Tuple <FName, long>(tempName, tempVal)); } } else { int numEntries = reader.ReadInt32(); for (int i = 0; i < numEntries; i++) { FName tempName = reader.ReadFName(); long tempVal = reader.ReadInt64(); Names.Add(new Tuple <FName, long>(tempName, tempVal)); } } if (asset.EngineVersion < UE4Version.VER_UE4_ENUM_CLASS_SUPPORT) { bool bIsNamespace = reader.ReadInt32() == 1; CppForm = bIsNamespace ? ECppForm.Namespaced : ECppForm.Regular; } else { CppForm = (ECppForm)reader.ReadByte(); } }