本文整理汇总了C#中BlamLib.ReadCString方法的典型用法代码示例。如果您正苦于以下问题:C# BlamLib.ReadCString方法的具体用法?C# BlamLib.ReadCString怎么用?C# BlamLib.ReadCString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BlamLib
的用法示例。
在下文中一共展示了BlamLib.ReadCString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Read
public override void Read(BlamLib.IO.EndianReader s)
{
CacheFileBase cache = s.Owner as CacheFileBase;
#region read body
groupTagsCount = s.ReadInt32();
groupTagsOffset = (groupTagsAddress = s.ReadUInt32()) - cache.AddressMask;
tagCount = s.ReadInt32();
tagsOffset = (address = s.ReadUInt32()) - cache.AddressMask;
dependentTagsCount = s.ReadInt32();
dependentTagsOffset = (dependentTagsAddress = s.ReadUInt32()) - cache.AddressMask;
s.ReadInt32();
s.ReadUInt32(); // seems to be the same address as the dependent tags
s.ReadUInt32(); // crc?
s.ReadInt32(); // 'tags'
#endregion
ReadDependents(s);
ReadTagInstances(s);
ReadGroupTags(s);
#region fixup group tag info
for (int x = 0; x < tagCount; x++)
{
var item = items[x];
if (!item.IsEmpty)
{
item.GroupTag = groupTags[item.Datum.Index].GroupTag1;
item.GroupTagInt = item.GroupTag.ID;
item.Fixup((ushort)x); // Fix the hacks Bungie did for Halo3
}
}
#endregion
#region Load tag names
s.Seek(cache.HeaderHalo3.TagNamesBufferOffset);
string file_name;
foreach (var ci in items)
{
if (!ci.IsEmpty)
{
ci.TagNameOffset = s.PositionUnsigned;
file_name = s.ReadCString();
if (file_name == "") file_name = "NONE";
}
else
{
ci.TagNameOffset = uint.MaxValue;
ci.ReferenceName = DatumIndex.Null;
continue;
}
ci.ReferenceName = cache.References.AddOptimized(ci.GroupTag, file_name);
}
#endregion
}