예제 #1
0
        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();
            }
        }
예제 #2
0
        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();
            }
        }