コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: EnumExport.cs プロジェクト: atenfyr/UAssetAPI
        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();
            }
        }