public shader(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); BaseShaderTagID = -1; Reader.SeekTo(Address + 12); int iCount = Reader.ReadInt32(); int iOffset = Reader.ReadInt32() - Cache.Magic; var sMap = new ShaderProperties.ShaderMap(Cache, iOffset); Reader.SeekTo(Address + 20); Type = Reader.ReadInt16(); #region ShaderProperties Chunk Reader.SeekTo(Address + 32); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) { Properties.Add(new ShaderProperties(Cache, iOffset + 124 * i) { ShaderMaps = { sMap } }); } #endregion Reader.SeekTo(Address + 44); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; Reader.SeekTo(iOffset); BitmIDs = new int[iCount]; for (int i = 0; i < iCount; i++) { Reader.ReadInt32(); BitmIDs[i] = Reader.ReadInt32(); } }
public shader(CacheBase Cache, int Address) { EndianReader Reader = Cache.Reader; Reader.SeekTo(Address); BaseShaderTagID = -1; Reader.SeekTo(Address + 12); int iCount = Reader.ReadInt32(); int iOffset = Reader.ReadInt32() - Cache.Magic; var sMap = new ShaderProperties.ShaderMap(Cache, iOffset); Reader.SeekTo(Address + 20); Type = Reader.ReadInt16(); #region ShaderProperties Chunk Reader.SeekTo(Address + 32); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; for (int i = 0; i < iCount; i++) Properties.Add(new ShaderProperties(Cache, iOffset + 124 * i) { ShaderMaps = { sMap } }); #endregion Reader.SeekTo(Address + 44); iCount = Reader.ReadInt32(); iOffset = Reader.ReadInt32() - Cache.Magic; Reader.SeekTo(iOffset); BitmIDs = new int[iCount]; for (int i = 0; i < iCount; i++) { Reader.ReadInt32(); BitmIDs[i] = Reader.ReadInt32(); } }