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(); }
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) { #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(); }
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(); }
public override void Deserialize( IUnrealStream stream ) { stream.ReadObjectIndex(); Decompiler.AlignObjectSize(); DeserializeNext(); // == DeserializeNext(); }
public override void Deserialize(IUnrealStream stream) { stream.ReadObjectIndex(); Decompiler.AlignObjectSize(); DeserializeNext(); // == DeserializeNext(); }
public override void Deserialize( IUnrealStream stream ) { // TODO: Corrigate version. if( stream.Version <= 300 ) return; _ReturnObject = Decompiler._Container.TryGetIndexObject( stream.ReadObjectIndex() ); Decompiler.AlignObjectSize(); }
public void Deserialize( IUnrealStream stream ) { Class = stream.ReadObjectIndex(); // Deep stream.ReadInt32(); // ScriptTextCRC stream.ReadUInt32(); }
public void Deserialize(IUnrealStream stream) { Class = stream.ReadObjectIndex(); // Deep stream.ReadInt32(); // ScriptTextCRC stream.ReadUInt32(); }
public override void Deserialize(IUnrealStream stream) { // TODO: Corrigate version. if (stream.Version <= 300) { return; } _ReturnObject = Decompiler._Container.TryGetIndexObject(stream.ReadObjectIndex()); Decompiler.AlignObjectSize(); }
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(); }
public void Deserialize( IUnrealStream stream ) { if( stream.Version <= 540 ) { // e.g. Core.Object.X FieldName = stream.ReadText(); } else { FieldIndex = stream.ReadObjectIndex(); } MetaTags = new UArray<UMetaTag>(); MetaTags.Deserialize( stream, tag => tag.Owner = Owner ); }
public void Deserialize(IUnrealStream stream) { if (stream.Version <= 540) { // e.g. Core.Object.X FieldName = stream.ReadText(); } else { FieldIndex = stream.ReadObjectIndex(); } MetaTags = new UArray <UMetaTag>(); MetaTags.Deserialize(stream, tag => tag.Owner = Owner); }
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(); }
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(); }
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) { 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 void Deserialize(IUnrealStream stream) { ClassIndex = stream.ReadObjectIndex(); SuperIndex = stream.ReadObjectIndex(); OuterIndex = stream.ReadInt32(); // ObjectIndex, though always written as 32bits regardless of build. #if BIOSHOCK if (stream.Package.Build == UnrealPackage.GameBuild.BuildName.Bioshock && stream.Version >= 132) { stream.Skip(sizeof(int)); } #endif ObjectName = stream.ReadNameReference(); if (stream.Version >= VArchetype) { ArchetypeIndex = stream.ReadInt32(); } _ObjectFlagsOffset = stream.Position; ObjectFlags = stream.ReadUInt32(); if (stream.Version >= VObjectFlagsToULONG #if BIOSHOCK || (stream.Package.Build == UnrealPackage.GameBuild.BuildName.Bioshock && stream.Package.LicenseeVersion >= 40) #endif ) { ObjectFlags = (ObjectFlags << 32) | stream.ReadUInt32(); } SerialSize = stream.ReadIndex(); if (SerialSize > 0 || stream.Version >= VSerialSizeConditionless) { SerialOffset = stream.ReadIndex(); } #if BIOSHOCK if (stream.Package.Build == UnrealPackage.GameBuild.BuildName.Bioshock && stream.Version >= 130) { stream.Skip(sizeof(int)); } #endif if (stream.Version < 220) { return; } if (stream.Version < 543 #if ALPHAPROTOCOL && stream.Package.Build != UnrealPackage.GameBuild.BuildName.AlphaProtcol #endif ) { int componentMapCount = stream.ReadInt32(); stream.Skip(componentMapCount * 12); //if( componentMapCount > 0 ) //{ // Components = new Dictionary<int, int>( componentMapCount ); // for( int i = 0; i < componentMapCount; ++ i ) // { // Components.Add( stream.ReadNameIndex(), stream.ReadObjectIndex() ); // } //} } if (stream.Version < 247) { return; } ExportFlags = stream.ReadUInt32(); if (stream.Version < 322) { return; } #if BIOSHOCK if (stream.Package.Build == UnrealPackage.GameBuild.BuildName.Bioshock_Infinite) { var unk = stream.ReadUInt32(); if (unk == 1) { var flags = stream.ReadUInt32(); if ((flags & 1) != 0x0) { stream.ReadUInt32(); } stream.Skip(16); // guid stream.ReadUInt32(); // 01000020 } return; } #endif #if MKKE if (stream.Package.Build != UnrealPackage.GameBuild.BuildName.MKKE) { #endif int netObjectCount = stream.ReadInt32(); stream.Skip(netObjectCount * 4); //if( netObjectCount > 0 ) //{ // NetObjects = new List<int>( netObjectCount ); // for( int i = 0; i < netObjectCount; ++ i ) // { // NetObjects.Add( stream.ReadObjectIndex() ); // } //} #if MKKE } #endif stream.Skip(16); // Package guid if (stream.Version > 486) // 475? 486(> Stargate Worlds) { stream.Skip(4); // Package flags } }
public override void Deserialize( IUnrealStream stream ) { Object = Decompiler._Container.TryGetIndexObject( stream.ReadObjectIndex() ); Decompiler.AlignObjectSize(); }
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) { Object = Decompiler._Container.TryGetIndexObject(stream.ReadObjectIndex()); Decompiler.AlignObjectSize(); }
public void Deserialize(IUnrealStream stream) { ClassIndex = stream.ReadObjectIndex(); SuperIndex = stream.ReadObjectIndex(); OuterIndex = stream.ReadInt32(); // ObjectIndex, though always written as 32bits regardless of build. ObjectName = stream.ReadNameReference(); if (stream.Version >= VArchetype) { ArchetypeIndex = stream.ReadInt32(); } _ObjectFlagsOffset = stream.Position; ObjectFlags = stream.ReadUInt64(); //if( stream.Version >= VObjectFlagsToULONG ) //{ // //ObjectFlags = (ObjectFlags << 32) | stream.ReadUInt32(); // ObjectFlags = (ObjectFlags << 32) | stream.ReadUInt64(); //} SerialSize = stream.ReadIndex(); SerialOffset = (int)stream.ReadInt64(); if (stream.Version < 220) { return; } if (stream.Version < 543) { int componentMapCount = stream.ReadInt32(); stream.Skip(componentMapCount * 12); //if( componentMapCount > 0 ) //{ // Components = new Dictionary<int, int>( componentMapCount ); // for( int i = 0; i < componentMapCount; ++ i ) // { // Components.Add( stream.ReadNameIndex(), stream.ReadObjectIndex() ); // } //} } if (stream.Version < 247) { return; } ExportFlags = stream.ReadUInt32(); if (stream.Version < 322) { return; } int netObjectCount = stream.ReadInt32(); stream.Skip(netObjectCount * 4); //if( netObjectCount > 0 ) //{ // NetObjects = new List<int>( netObjectCount ); // for( int i = 0; i < netObjectCount; ++ i ) // { // NetObjects.Add( stream.ReadObjectIndex() ); // } //} stream.Skip(16); // Package guid if (stream.Version > 486) // 475? 486(> Stargate Worlds) { stream.Skip(4); // Package flags } }
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(); }
public void Deserialize( IUnrealStream stream ) { ClassIndex = stream.ReadObjectIndex(); SuperIndex = stream.ReadObjectIndex(); OuterIndex = stream.ReadInt32(); // ObjectIndex, though always written as 32bits regardless of build. #if BIOSHOCK if( stream.Package.Build == UnrealPackage.GameBuild.BuildName.Bioshock && stream.Version >= 132 ) { stream.Skip( sizeof(int) ); } #endif ObjectName = stream.ReadNameReference(); if( stream.Version >= VArchetype ) { ArchetypeIndex = stream.ReadInt32(); } _ObjectFlagsOffset = stream.Position; ObjectFlags = stream.ReadUInt32(); if( stream.Version >= VObjectFlagsToULONG #if BIOSHOCK || (stream.Package.Build == UnrealPackage.GameBuild.BuildName.Bioshock && stream.Package.LicenseeVersion >= 40) #endif ) { ObjectFlags = (ObjectFlags << 32) | stream.ReadUInt32(); } SerialSize = stream.ReadIndex(); if( SerialSize > 0 || stream.Version >= VSerialSizeConditionless ) { SerialOffset = stream.ReadIndex(); } #if BIOSHOCK if( stream.Package.Build == UnrealPackage.GameBuild.BuildName.Bioshock && stream.Version >= 130 ) { stream.Skip( sizeof(int) ); } #endif if( stream.Version < 220 ) return; if( stream.Version < 543 #if ALPHAPROTOCOL && stream.Package.Build != UnrealPackage.GameBuild.BuildName.AlphaProtcol #endif #if TRANSFORMERS && (stream.Package.Build != UnrealPackage.GameBuild.BuildName.Transformers || stream.Package.LicenseeVersion < 37) #endif ) { int componentMapCount = stream.ReadInt32(); stream.Skip( componentMapCount * 12 ); //if( componentMapCount > 0 ) //{ // Components = new Dictionary<int, int>( componentMapCount ); // for( int i = 0; i < componentMapCount; ++ i ) // { // Components.Add( stream.ReadNameIndex(), stream.ReadObjectIndex() ); // } //} } if( stream.Version < 247 ) return; ExportFlags = stream.ReadUInt32(); if( stream.Version < 322 ) return; #if TRANSFORMERS if( stream.Package.Build == UnrealPackage.GameBuild.BuildName.Transformers && stream.Package.LicenseeVersion >= 116 ) { var flag = stream.ReadByte(); if( flag == 0 ) { return; } } #endif #if BIOSHOCK if( stream.Package.Build == UnrealPackage.GameBuild.BuildName.Bioshock_Infinite ) { var unk = stream.ReadUInt32(); if( unk == 1 ) { var flags = stream.ReadUInt32(); if( (flags & 1) != 0x0 ) { stream.ReadUInt32(); } stream.Skip( 16 ); // guid stream.ReadUInt32(); // 01000020 } return; } #endif #if MKKE if( stream.Package.Build != UnrealPackage.GameBuild.BuildName.MKKE ) { #endif int netObjectCount = stream.ReadInt32(); stream.Skip( netObjectCount * 4 ); //if( netObjectCount > 0 ) //{ // NetObjects = new List<int>( netObjectCount ); // for( int i = 0; i < netObjectCount; ++ i ) // { // NetObjects.Add( stream.ReadObjectIndex() ); // } //} #if MKKE } #endif stream.Skip( 16 ); // Package guid if( stream.Version > 486 ) // 475? 486(> Stargate Worlds) { stream.Skip( 4 ); // Package flags } }
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(); }
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(); }