public cache_file_resource_layout_table(CacheBase Cache, int Offset) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Offset); #region Shared Cache Block Reader.SeekTo(Offset + 12); int iCount = Reader.ReadInt32(); int iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) { SharedCaches.Add(new SharedCache(Cache, iOffset + 264 * i)); } #endregion #region Page Block Reader.SeekTo(Offset + 24); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) { Pages.Add(new Page(Cache, iOffset + 88 * i)); } #endregion #region SoundRawChunk Block Reader.SeekTo(Offset + 36); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) { SoundRawChunks.Add(new SoundRawChunk(Cache, iOffset + 16 * i)); } #endregion #region RawLocation Block Reader.SeekTo(Offset + 48); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) { Segments.Add(new Segment(Cache, iOffset + 16 * i)); } #endregion }
public cache_file_resource_layout_table(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); #region Shared Cache Block Reader.SeekTo(Address + 12); int iCount = Reader.ReadInt32(); int iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) { SharedCaches.Add(new SharedCache(Cache, iOffset + 264 * i)); } #endregion #region Page Block Reader.SeekTo(Address + 24); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) { Pages.Add(new Page(Cache, iOffset + 88 * i)); } #endregion #region Segment Block Reader.SeekTo(Address + 48); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) { Segments.Add(new Segment(Cache, iOffset + 24 * i)); } #endregion }