Exemple #1
0
                public override void Deserialize(IUnrealStream stream)
                {
#if TRANSFORMERS
                    if (Package.Build == UnrealPackage.GameBuild.BuildName.Transformers)
                    {
                        PropertyType = stream.ReadUInt16();
                        Decompiler.AlignSize(sizeof(ushort));
                        goto deserialize;
                    }
#endif
                    if (stream.Version >= 600)
                    {
                        // Points to the object that was passed to the switch,
                        // beware that the followed token chain contains it as well!
                        stream.ReadObjectIndex();
                        Decompiler.AlignObjectSize();
                    }

                    // TODO: Corrigate version
                    if (stream.Version >= 536 && stream.Version <= 587)
                    {
                        PropertyType = stream.ReadUInt16();
                        Decompiler.AlignSize(sizeof(ushort));
                    }
                    else
                    {
                        PropertyType = stream.ReadByte();
                        Decompiler.AlignSize(sizeof(byte));
                    }

deserialize:
                    // Expression
                    DeserializeNext();
                }
Exemple #2
0
                public override void Deserialize(IUnrealStream stream)
                {
                    // Property index
                    MemberProperty = Decompiler._Container.TryGetIndexObject(stream.ReadObjectIndex()) as UField;
                    Decompiler.AlignObjectSize();

                    // TODO: Corrigate version. Definitely didn't exist in Roboblitz(369)
                    if (stream.Version > 369)
                    {
                        // Struct index
                        stream.ReadObjectIndex();
                        Decompiler.AlignObjectSize();
#if MKKE
                        if (Package.Build != UnrealPackage.GameBuild.BuildName.MKKE)
                        {
#endif
                        stream.Position++;
                        Decompiler.AlignSize(sizeof(byte));
#if MKKE
                    }
#endif

                        // TODO: Corrigate version. Definitely didn't exist in MKKE(472), first seen in SWG(486).
                        if (stream.Version > 472)
                        {
                            stream.Position++;
                            Decompiler.AlignSize(sizeof(byte));
                        }
                    }
                    // Pre-Context
                    DeserializeNext();
                }
Exemple #3
0
                public override void Deserialize(IUnrealStream stream)
                {
                    CastedObject = stream.ReadObject();
                    Decompiler.AlignObjectSize();

                    base.Deserialize(stream);
                }
Exemple #4
0
                public override void Deserialize(IUnrealStream stream)
                {
                    if (stream.Version >= 600)
                    {
                        // Points to the object that was passed to the switch,
                        // beware that the followed token chain contains it as well!
                        stream.ReadObjectIndex();
                        Decompiler.AlignObjectSize();
                    }

                    // TODO: Corrigate version
                    if (stream.Version >= 536 && stream.Version <= 587)
                    {
                        PropertyType = stream.ReadUInt16();
                        Decompiler.AlignSize(sizeof(ushort));
                    }
                    else
                    {
                        PropertyType = stream.ReadByte();
                        Decompiler.AlignSize(sizeof(byte));
                    }

                    // Expression
                    DeserializeNext();
                }
                public override void Deserialize(IUnrealStream stream)
                {
                    var propertyAdded = stream.Version >= VSizeByteMoved;

                    // A.?
                    DeserializeNext();

                    // SkipSize
                    stream.ReadUInt16();
                    Decompiler.AlignSize(sizeof(ushort));

                    // Doesn't seem to exist in APB
                    if (propertyAdded)
                    {
                        // Property
                        stream.ReadObjectIndex();
                        Decompiler.AlignObjectSize();
                    }

                    // PropertyType
                    stream.ReadByte();
                    Decompiler.AlignSize(sizeof(byte));

                    // Additional byte in APB?
                    if (stream.Version > 512 && !propertyAdded)
                    {
                        stream.ReadByte();
                        Decompiler.AlignSize(sizeof(byte));
                    }

                    // ?.B
                    DeserializeNext();
                }
Exemple #6
0
                public override void Deserialize(IUnrealStream stream)
                {
                    stream.ReadObjectIndex();
                    Decompiler.AlignObjectSize();

                    DeserializeNext();
                    // ==
                    DeserializeNext();
                }
Exemple #7
0
                public override void Deserialize(IUnrealStream stream)
                {
                    // TODO: Corrigate version.
                    if (stream.Version <= 300)
                    {
                        return;
                    }

                    _ReturnObject = Decompiler._Container.TryGetIndexObject(stream.ReadObjectIndex());
                    Decompiler.AlignObjectSize();
                }
Exemple #8
0
                public override void Deserialize(IUnrealStream stream)
                {
                    if (stream.Version == 421)
                    {
                        Decompiler.AlignSize(sizeof(int));
                    }

                    Function = stream.ReadObject() as UFunction;
                    Decompiler.AlignObjectSize();

                    DeserializeCall();
                }
Exemple #9
0
                public override void Deserialize(IUnrealStream stream)
                {
                    // TODO: Corrigate Version(Lowest known version 369(Roboblitz))
                    if (stream.Version > 300)
                    {
                        stream.ReadObjectIndex();
                        Decompiler.AlignObjectSize();
                    }

                    // The Field
                    DeserializeNext();
                }
Exemple #10
0
                public override void Deserialize(IUnrealStream stream)
                {
                    // TODO: Corrigate Version
                    if (stream.Version > 180)
                    {
                        ++stream.Position;  // ReadByte()
                        Decompiler.AlignSize(sizeof(byte));
                    }

                    // Delegate object index
                    stream.ReadObjectIndex();
                    Decompiler.AlignObjectSize();

                    // Delegate name index
                    FunctionNameIndex = stream.ReadNameIndex();
                    Decompiler.AlignNameSize();

                    DeserializeCall();
                }
Exemple #11
0
                public override void Deserialize(IUnrealStream stream)
                {
                    var propertyAdded = stream.Version >= VSizeByteMoved
#if TERA
                                        && stream.Package.Build != UnrealPackage.GameBuild.BuildName.Tera
#endif
#if TRANSFORMERS
                                        && stream.Package.Build != UnrealPackage.GameBuild.BuildName.Transformers
#endif
                    ;

                    // A.?
                    DeserializeNext();

                    // SkipSize
                    stream.ReadUInt16();
                    Decompiler.AlignSize(sizeof(ushort));

                    // Doesn't seem to exist in APB
                    if (propertyAdded)
                    {
                        // Property
                        stream.ReadObjectIndex();
                        Decompiler.AlignObjectSize();
                    }

                    // PropertyType
                    stream.ReadByte();
                    Decompiler.AlignSize(sizeof(byte));

                    // Additional byte in APB?
                    if (stream.Version > 512 && !propertyAdded)
                    {
                        stream.ReadByte();
                        Decompiler.AlignSize(sizeof(byte));
                    }

                    // ?.B
                    DeserializeNext();
                }
 public override void Deserialize(IUnrealStream stream)
 {
     Object = Decompiler._Container.TryGetIndexObject(stream.ReadObjectIndex());
     Decompiler.AlignObjectSize();
 }