本文整理汇总了C#中IUnrealStream.ReadIndex方法的典型用法代码示例。如果您正苦于以下问题:C# IUnrealStream.ReadIndex方法的具体用法?C# IUnrealStream.ReadIndex怎么用?C# IUnrealStream.ReadIndex使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IUnrealStream
的用法示例。
在下文中一共展示了IUnrealStream.ReadIndex方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Deserialize
public void Deserialize( IUnrealStream stream )
{
FileName = stream.ReadText();
SerialOffset = (uint)stream.ReadIndex();
SerialSize = (uint)stream.ReadIndex();
FileFlags = stream.ReadUInt32();
}
示例2: Deserialize
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();
}
示例3: Deserialize
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 )
{
//.........这里部分代码省略.........