Example #1
0
        public bool GetWearPos(CSymbolItem item, int page, out int pos, out enFindSymbolWearPosCode findCode)
        {
            pos      = 0;
            findCode = enFindSymbolWearPosCode.FindNone;
            if ((item == null) || (item.m_SymbolData.wLevel > this.m_pageMaxLvlLimit))
            {
                findCode = enFindSymbolWearPosCode.FindSymbolLevelLimit;
                return(false);
            }
            ulong[]   numArray       = this.m_symbolPageArr[page];
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            int  length = numArray.Length;
            bool flag   = true;

            for (int i = 0; i < length; i++)
            {
                ResSymbolPos symbolPos = GetSymbolPos(i);
                if ((symbolPos.dwSymbolColor & (((int)1) << item.m_SymbolData.bColor)) != 0)
                {
                    flag = flag && (numArray[i] != 0L);
                }
                if (((numArray[i] == 0) && ((masterRoleInfo.PvpLevel >= symbolPos.wOpenLevel) || (this.GridBuyInfo[i].bBuyFlag == 1))) && ((symbolPos.dwSymbolColor & (((int)1) << item.m_SymbolData.bColor)) != 0))
                {
                    pos      = i;
                    findCode = enFindSymbolWearPosCode.FindSuccess;
                    return(true);
                }
            }
            findCode = !flag ? enFindSymbolWearPosCode.FindSymbolNotOpen : enFindSymbolWearPosCode.FindSymbolPosFull;
            return(false);
        }