Seek() public method

public Seek ( int index, int &length, int &extra ) : Stream
index int
length int
extra int
return Stream
Exemplo n.º 1
0
        public static byte[] GetRawGump(int index, out int width, out int height)
        {
            width  = -1;
            height = -1;
            int    length, extra;
            Stream stream = m_FileIndex.Seek(index, out length, out extra);

            if (stream == null)
            {
                return(null);
            }
            if (extra == -1)
            {
                return(null);
            }
            width  = (extra >> 16) & 0xFFFF;
            height = extra & 0xFFFF;
            if (width <= 0 || height <= 0)
            {
                return(null);
            }
            byte[] buffer = new byte[length];
            stream.Read(buffer, 0, length);
            return(buffer);
        }
Exemplo n.º 2
0
        public static Bitmap GetTexture(int index)
        {
            index &= 0x3FFF;

            if (m_Cache[index] != null)
            {
                return(m_Cache[index]);
            }

            int    length, extra;
            Stream stream = m_FileIndex.Seek(index, out length, out extra);

            if (stream == null)
            {
                return(null);
            }

            if (Files.CacheData)
            {
                return(m_Cache[index] = LoadTexture(stream, extra, length));
            }
            else
            {
                return(LoadTexture(stream, extra, length));
            }
        }
Exemplo n.º 3
0
        public static unsafe bool IsValidStatic(int index)
        {
            index  = SecondArt.GetLegalItemID(index);
            index += 0x4000;

            if (m_Cache[index] != null)
            {
                return(true);
            }

            int    length, extra;
            Stream stream = m_FileIndex.Seek(index, out length, out extra);

            if (stream == null)
            {
                return(false);
            }

            if (Validbuffer == null)
            {
                Validbuffer = new byte[4];
            }
            stream.Seek(4, SeekOrigin.Current);
            stream.Read(Validbuffer, 0, 4);
            fixed(byte *b = Validbuffer)
            {
                short *dat = (short *)b;

                if (*dat++ <= 0 || *dat <= 0)
                {
                    return(false);
                }
                return(true);
            }
        }