public override void Deserialize(IUnrealStream stream) { stream.ReadByte(); stream.ReadByte(); Decompiler.AlignSize(2); }
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) { #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) { 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 void Deserialize(IUnrealStream stream) { if (stream.Version >= 63) { // Offset to (Width = ...) WidthOffset = stream.ReadUInt32(); long opos = stream.Position; stream.Seek(WidthOffset, System.IO.SeekOrigin.Begin); Width = stream.ReadUInt32(); Height = stream.ReadUInt32(); stream.Seek(opos, System.IO.SeekOrigin.Begin); } int mipMapSize = stream.ReadIndex(); Pixels = new int[mipMapSize]; switch (Owner._Format.Decompile().Substring(6)) { case "TEXF_RGBA8": case "5": for (int i = 0; i < mipMapSize; ++i) { Pixels[i] = stream.ReadInt32(); } break; case "TEXF_DXT1": case "3": for (int i = 0; i < mipMapSize / 2; ++i) { byte c = stream.ReadByte(); Pixels[i++] = c & 0xF0; Pixels[i] = c & 0x0F; } // PostProcess: // 4x4 4bit per pixel, 16bit per color: 5bits red; 6bits green; 5bits blue. // break; } // Width, Height. See above! stream.Skip(8); BitsWidth = stream.ReadByte(); BitsHeight = stream.ReadByte(); }
public override void Deserialize( IUnrealStream stream ) { var topFunc = Decompiler._Container as UFunction; Debug.Assert( topFunc != null, "topf != null" ); foreach( var property in topFunc.Variables ) { if( !property.HasPropertyFlag( Flags.PropertyFlagsLO.Parm | Flags.PropertyFlagsLO.ReturnParm ) ) continue; stream.ReadByte(); // Size Decompiler.AlignSize( sizeof(byte) ); stream.ReadByte(); // bOutParam Decompiler.AlignSize( sizeof(byte) ); } stream.ReadByte(); // End Decompiler.AlignSize( sizeof(byte) ); }
public void Deserialize(IUnrealStream stream) { _StartU = stream.ReadInt32(); _StartV = stream.ReadInt32(); _USize = stream.ReadInt32(); _VSize = stream.ReadInt32(); _TextureIndex = stream.ReadByte(); }
public void Deserialize( IUnrealStream stream ) { _StartU = stream.ReadInt32(); _StartV = stream.ReadInt32(); _USize = stream.ReadInt32(); _VSize = stream.ReadInt32(); _TextureIndex = stream.ReadByte(); }
public override void Deserialize(IUnrealStream stream) { var topFunc = Decompiler._Container as UFunction; Debug.Assert(topFunc != null, "topf != null"); foreach (var property in topFunc.Variables) { if (!property.HasPropertyFlag(Flags.PropertyFlagsLO.Parm | Flags.PropertyFlagsLO.ReturnParm)) { continue; } stream.ReadByte(); // Size Decompiler.AlignSize(sizeof(byte)); stream.ReadByte(); // bOutParam Decompiler.AlignSize(sizeof(byte)); } stream.ReadByte(); // End Decompiler.AlignSize(sizeof(byte)); }
public override void Deserialize(IUnrealStream stream) { // Version stream.ReadInt32(); // Line stream.ReadInt32(); // Pos stream.ReadInt32(); // Code stream.ReadByte(); Decompiler.AlignSize(13); }
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 override void Deserialize( IUnrealStream stream ) { stream.ReadUInt16(); // Line Decompiler.AlignSize( sizeof(short) ); // TODO: Corrigate version, at least known since Mirrors Edge(536) if( stream.Version >= 536 ) { DebugMode = stream.ReadByte() > 0; Decompiler.AlignSize( sizeof(byte) ); } DeserializeNext(); }
public override void Deserialize(IUnrealStream stream) { stream.ReadUInt16(); // Line Decompiler.AlignSize(sizeof(short)); // TODO: Corrigate version, at least known since Mirrors Edge(536) if (stream.Version >= 536) { DebugMode = stream.ReadByte() > 0; Decompiler.AlignSize(sizeof(byte)); } DeserializeNext(); }
public override void Deserialize( IUnrealStream stream ) { // Expression DeserializeNext(); // Param 1 DeserializeNext(); HasSecondParm = stream.ReadByte() > 0; Decompiler.AlignSize( sizeof(byte) ); DeserializeNext(); base.Deserialize( stream ); }
public override void Deserialize(IUnrealStream stream) { // Expression DeserializeNext(); // Param 1 DeserializeNext(); HasSecondParm = stream.ReadByte() > 0; Decompiler.AlignSize(sizeof(byte)); DeserializeNext(); base.Deserialize(stream); }
public void Deserialize( IUnrealStream stream ) { if( stream.Version >= 63 ) { // Offset to (Width = ...) WidthOffset = stream.ReadUInt32(); long opos = stream.Position; stream.Seek( WidthOffset, System.IO.SeekOrigin.Begin ); Width = stream.ReadUInt32(); Height = stream.ReadUInt32(); stream.Seek( opos, System.IO.SeekOrigin.Begin ); } int mipMapSize = stream.ReadIndex(); Pixels = new int[mipMapSize]; switch( Owner._Format.Decompile().Substring( 6 ) ) { case "TEXF_RGBA8": case "5": for( int i = 0; i < mipMapSize; ++ i ) { Pixels[i] = stream.ReadInt32(); } break; case "TEXF_DXT1": case "3": for( int i = 0; i < mipMapSize / 2; ++ i ) { byte c = stream.ReadByte(); Pixels[i ++] = c & 0xF0; Pixels[i] = c & 0x0F; } // PostProcess: // 4x4 4bit per pixel, 16bit per color: 5bits red; 6bits green; 5bits blue. // break; } // Width, Height. See above! stream.Skip( 8 ); BitsWidth = stream.ReadByte(); BitsHeight = stream.ReadByte(); }
public override void Deserialize(IUnrealStream stream) { // TODO: Corrigate Version (Definitely not in MOHA, but in roboblitz(369)) if (stream.Version >= 178 && stream.Version < 421 /*MOHA*/) { byte isSuperCall = stream.ReadByte(); Decompiler.AlignSize(sizeof(byte)); } if (stream.Version == 421) { Decompiler.AlignSize(sizeof(int)); } FunctionNameIndex = stream.ReadNameIndex(); Decompiler.AlignNameSize(); DeserializeCall(); }
public override void Deserialize( IUnrealStream stream ) { // TODO: Corrigate Version (Definitely not in MOHA, but in roboblitz(369)) // Not in mass effect xbox 391 if( stream.Version >= 178 && stream.Version < 391/*MOHA*/ ) { byte isSuperCall = stream.ReadByte(); Decompiler.AlignSize( sizeof(byte) ); } if( stream.Version == 421 ) { Decompiler.AlignSize( sizeof(int) ); } FunctionNameIndex = stream.ReadNameIndex(); Decompiler.AlignNameSize(); DeserializeCall(); }
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 ) { stream.ReadByte(); // Size Decompiler.AlignSize( sizeof(byte) ); }
public override void Deserialize( IUnrealStream stream ) { // Version stream.ReadInt32(); // Line stream.ReadInt32(); // Pos stream.ReadInt32(); // Code stream.ReadByte(); Decompiler.AlignSize( 13 ); }
public override void Deserialize(IUnrealStream stream) { stream.ReadByte(); // Size Decompiler.AlignSize(sizeof(byte)); }
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 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 } }