private int Compare(SortCompareData lp, SortCompareData rp) { QuestSortData questSortData = lp as QuestSortData; QuestSortData questSortData2 = rp as QuestSortData; if (questSortData == null || questSortData2 == null) { return(0); } float num = questSortData.itemData.remainTimes.Min(); float num2 = questSortData2.itemData.remainTimes.Min(); bool flag = num < SHOW_QUEST_REMAIN_LIMIT_SECOND; bool flag2 = num2 < SHOW_QUEST_REMAIN_LIMIT_SECOND; if (lp.IsAbsFirst() != rp.IsAbsFirst()) { return((!lp.IsAbsFirst()) ? 1 : (-1)); } if (flag != flag2) { return((!flag) ? 1 : (-1)); } int num3 = questSortData2.GetRarity() - questSortData.GetRarity(); if (num3 == 0) { return((int)(questSortData2.GetUniqID() - questSortData.GetUniqID())); } return(num3); }