コード例 #1
0
ファイル: SortObjectList.cs プロジェクト: mliuzailin/GitGame
    /// <summary>
    /// ソート&フィルタ情報の設定
    /// </summary>
    /// <param name="sortInfo"></param>
    public void SetUpSortData(LocalSaveSortInfo sortInfo)
    {
        ClearSortInfo();
        ClearFilter();

        //--------------------------------
        // ソートの設定
        //--------------------------------
        if (sortInfo != null)
        {
            if (sortInfo.m_SortType == (int)MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_FAVORITE_SORT)
            {
                // お好みソート
                if (sortInfo != null && sortInfo.m_FavoriteSorts != null)
                {
                    // 使用中優先
                    if (sortInfo.m_FavoriteSortIsUsePriority)
                    {
                        AddSortInfo(SORT_PARAM.PARTY, SORT_ORDER.ASCENDING);
                    }

                    // ソート
                    for (int i = 0; i < sortInfo.m_FavoriteSorts.Length; i++)
                    {
                        SORT_PARAM sortparam = SortUtil.GetSortParam((MAINMENU_SORT_SEQ)sortInfo.m_FavoriteSorts[i].m_SortType);
                        if (sortparam == SORT_PARAM.NONE)
                        {
                            continue;
                        }

                        AddSortInfo(sortparam,
                                    (sortInfo.m_FavoriteSorts[i].m_IsAscOrder) ? SORT_ORDER.ASCENDING : SORT_ORDER.DESCENDING);
                    }
                }
            }
            else if (sortInfo.m_SortType != (int)MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_DEFAULT)
            {
                // 通常ソート
                SORT_PARAM sortparam = SortUtil.GetSortParam((MAINMENU_SORT_SEQ)sortInfo.m_SortType);
                if (sortparam != SORT_PARAM.NONE)
                {
                    AddSortInfo(sortparam, (sortInfo.m_SortIsAscOrder) ? SORT_ORDER.ASCENDING : SORT_ORDER.DESCENDING);
                }
            }
        }

        //--------------------------------
        // フィルタの設定
        //--------------------------------
        if (sortInfo != null)
        {
            // レア度
            if (SortUtil.CheckFilterWorking(sortInfo.m_FilterRares))
            {
                AddFilter <int>(SORT_PARAM.RARITY, sortInfo.m_FilterRares);
            }

            // 属性
            if (SortUtil.CheckFilterWorking(sortInfo.m_FilterElements))
            {
                AddFilter <int>(SORT_PARAM.ELEMENT, SortUtil.GetFilterNumElements(sortInfo.m_FilterElements));
            }

            // 種族
            if (SortUtil.CheckFilterWorking(sortInfo.m_FilterKinds))
            {
                if (sortInfo.m_FilterIsIncludeKindsSub)
                {
                    AddFilter <int>(new SORT_PARAM[] { SORT_PARAM.KIND, SORT_PARAM.SUB_KIND }, SortUtil.GetFilterNumKindss(sortInfo.m_FilterKinds));
                }
                else
                {
                    AddFilter <int>(SORT_PARAM.KIND, SortUtil.GetFilterNumKindss(sortInfo.m_FilterKinds));
                }
            }
        }
    }