Ultima.FileIndex.Valid C# (CSharp) Method

Valid() public method

public Valid ( int index, int &length, int &extra, bool &patched ) : bool
index int
length int
extra int
patched bool
return bool
        public bool Valid(int index, out int length, out int extra, out bool patched)
        {
            if (index < 0 || index >= Index.Length)
            {
                length = extra = 0;
                patched = false;
                return false;
            }

            Entry3D e = Index[index];

            if (e.lookup < 0)
            {
                length = extra = 0;
                patched = false;
                return false;
            }

            length = e.length & 0x7FFFFFFF;
            extra = e.extra;

            if ((e.length & (1 << 31)) != 0)
            {
                patched = true;
                return true;
            }

            if (e.length < 0)
            {
                length = extra = 0;
                patched = false;
                return false;
            }

            if ((MulPath == null) || !File.Exists(MulPath))
            {
                length = extra = 0;
                patched = false;
                return false;
            }

            if ((Stream == null) || (!Stream.CanRead) || (!Stream.CanSeek))
            {
                Stream = new FileStream(MulPath, FileMode.Open, FileAccess.Read, FileShare.Read);
            }

            if (Stream.Length < e.lookup)
            {
                length = extra = 0;
                patched = false;
                return false;
            }

            patched = false;

            return true;
        }

Usage Example

Ejemplo n.º 1
0
        /// <summary>
        ///     Tests if LandTile is definied
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public static bool IsValidLand(int index)
        {
            index &= 0x3FFF;
            if (m_Removed[index])
            {
                return(false);
            }
            if (m_Cache[index] != null)
            {
                return(true);
            }

            return(m_FileIndex.Valid(index, out int length, out int extra, out bool patched));
        }
All Usage Examples Of Ultima.FileIndex::Valid