Beispiel #1
0
        protected override void Deserialize()
        {
            base.Deserialize();

            // _SuperIndex got moved into UStruct since 700+
            if (Package.Version < 756)
            {
                Super = GetIndexObject(_Buffer.ReadObjectIndex()) as UField;
                Record("Super", Super);

                NextField = GetIndexObject(_Buffer.ReadObjectIndex()) as UField;
                Record("NextField", NextField);
            }
            else
            {
                NextField = GetIndexObject(_Buffer.ReadObjectIndex()) as UField;
                Record("NextField", NextField);

                // Should actually resist in UStruct
                if (this is UStruct)
                {
                    Super = GetIndexObject(_Buffer.ReadObjectIndex()) as UField;
                    Record("Super", Super);
                }
            }
        }
Beispiel #2
0
        protected override void Deserialize()
        {
            base.Deserialize();

            // _SuperIndex got moved into UStruct since 700+
            if ((Package.Version < 756
#if SPECIALFORCE2
                 || Package.Build == UnrealPackage.GameBuild.BuildName.SpecialForce2
#endif
                 )
#if BIOSHOCK
                && Package.Build != UnrealPackage.GameBuild.BuildName.Bioshock_Infinite
#endif
                )
            {
                Super = GetIndexObject(_Buffer.ReadObjectIndex()) as UField;
                Record("Super", Super);

                NextField = GetIndexObject(_Buffer.ReadObjectIndex()) as UField;
                Record("NextField", NextField);
            }
            else
            {
                NextField = GetIndexObject(_Buffer.ReadObjectIndex()) as UField;
                Record("NextField", NextField);

                // Should actually resist in UStruct
                if (this is UStruct)
                {
                    Super = GetIndexObject(_Buffer.ReadObjectIndex()) as UField;
                    Record("Super", Super);
                }
            }
        }
Beispiel #3
0
        protected override void Deserialize()
        {
            base.Deserialize();

            // _SuperIndex got moved into UStruct since 700+
            if( (Package.Version < 756
            #if SPECIALFORCE2
                || Package.Build == UnrealPackage.GameBuild.BuildName.SpecialForce2
            #endif
                )
            #if BIOSHOCK
                && Package.Build != UnrealPackage.GameBuild.BuildName.Bioshock_Infinite
            #endif
                )
            {
                Super = GetIndexObject( _Buffer.ReadObjectIndex() ) as UField;
                Record( "Super", Super );

                NextField = GetIndexObject( _Buffer.ReadObjectIndex() ) as UField;
                Record( "NextField", NextField );
            }
            else
            {
                NextField = GetIndexObject( _Buffer.ReadObjectIndex() ) as UField;
                Record( "NextField", NextField );

                // Should actually resist in UStruct
                if( this is UStruct )
                {
                    Super = GetIndexObject( _Buffer.ReadObjectIndex() ) as UField;
                    Record( "Super", Super );
                }
            }
        }
Beispiel #4
0
 public bool IsMember(UField membersClass)
 {
     for (var p = membersClass; p != null; p = p.Super)
     {
         if (Outer == p)
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #5
0
            public void Deserialize(IUnrealStream stream)
            {
                if (stream.Version <= 540)
                {
                    // e.g. Core.Object.X
                    _FieldName = stream.ReadText();
                }
                else
                {
                    // TODO: Possibly linked to a non-ufield?
                    _Field          = (UField)stream.ReadObject();
                    _Field.MetaData = this;
                }

                int length = stream.ReadInt32();

                Tags = new Dictionary <string, string>(length);
                for (var i = 0; i < length; ++i)
                {
                    var    key   = stream.ReadNameReference();
                    string value = stream.ReadText();
                    Tags.Add(key.Name, value);
                }
            }
Beispiel #6
0
 public bool IsMember( UField membersClass )
 {
     for( var p = membersClass; p != null; p = p.Super )
     {
         if( Outer == p )
         {
             return true;
         }
     }
     return false;
 }