/// <summary></summary> /// <param name="sid_header"></param> /// <returns></returns> /// <remarks>This needs to be virtual as with the start of HaloReach, debug data is encrypted, so we have to override this behavior in its implmentation</remarks> protected virtual IO.EndianReader GetStringIdsBuffer(ICacheHeaderStringId sid_header) { InputStream.Seek(sid_header.StringIdsBufferOffset); byte[] input = InputStream.ReadBytes(sid_header.StringIdsBufferSize); return(new IO.EndianReader(input, engineVersion.GetCacheEndianState())); }
IO.EndianReader GetStringIdsIndicesBuffer(ICacheHeaderStringId sid_header) { int indicies_memory_size = sid_header.StringIdsCount * sizeof(int); InputStream.Seek(sid_header.StringIdIndicesOffset); byte[] input = InputStream.ReadBytes(indicies_memory_size); return(new IO.EndianReader(input, engineVersion.GetCacheEndianState())); }
static void OutputHeader(CacheHeader h, System.IO.StreamWriter s) { s.WriteLine("Name\t{0}", h.Name); s.WriteLine("Build\t{0}", h.Build); s.WriteLine("{0}\tVersion", h.Version.ToString("X8")); s.WriteLine("{0}\tOffset To Tag Buffer", h.OffsetToIndex.ToString("X8")); s.WriteLine("{0}\tTag Buffer Size", h.TagBufferSize.ToString("X8")); ICacheHeaderStringId chsi = h as ICacheHeaderStringId; if (chsi != null) { s.WriteLine("--String Ids--"); s.WriteLine("{0}\tCount", chsi.StringIdsCount.ToString("X8")); s.WriteLine("{0}\tSize", chsi.StringIdsBufferSize.ToString("X8")); s.WriteLine("{0}\tOffset-Indices", chsi.StringIdIndicesOffset.ToString("X8")); s.WriteLine("{0}\tOffset-Buffer", chsi.StringIdsBufferOffset.ToString("X8")); } }
protected override IO.EndianReader GetStringIdsBuffer(ICacheHeaderStringId sid_header) { return(DecryptCacheSegmentStream(CacheSectionType.Debug, sid_header.StringIdsBufferOffset, sid_header.StringIdsBufferSize)); }
protected override IO.EndianReader GetStringIdsBuffer(ICacheHeaderStringId sid_header) { return DecryptCacheSegment(CacheSectionType.Debug, sid_header.StringIdsBufferOffset, sid_header.StringIdsBufferSize); }