internal PastRankings past_rankings( string chapter_id, Dictionary <string, string> previousChapterIds) { List <Save_Data> previous_chapters = new List <Save_Data>(); List <string> previous_ranking_progression_ids = new List <string>( Global.data_chapters[chapter_id].Prior_Chapters); // If using a subset of prior chapters for rankings if (Global.data_chapters[chapter_id].Prior_Ranking_Chapters.Count != 0) { previous_ranking_progression_ids = new List <string>( previous_ranking_progression_ids.Intersect( Global.data_chapters[chapter_id].Prior_Ranking_Chapters)); } if (previous_ranking_progression_ids.Count > 0) { for (int i = 0; i < previous_ranking_progression_ids.Count; i++) { string progression_id = previous_ranking_progression_ids[i]; if (previousChapterIds.ContainsKey(progression_id)) { string previous_chapter_id = previousChapterIds[progression_id]; if (Data.ContainsKey(previous_chapter_id) && Data[previous_chapter_id].ContainsKey(progression_id)) { previous_chapters.Add(Data[previous_chapter_id][progression_id]); } #if DEBUG else { Debug.Assert(string.IsNullOrEmpty(previous_chapter_id)); } #endif } else { Save_Data previous_data = recent_save(progression_id); #if DEBUG Debug.Assert(previous_data != null); #endif previous_chapters.Add(previous_data); } } } return(Save_Data.process_past_ranking(previous_chapters)); }
public Dictionary <string, Game_Ranking> all_rankings( string chapterId) { if (!ContainsKey(chapterId)) { return(null); } var save = recent_save(chapterId, ""); if (save == null) { return(null); } var rankings = Save_Data.process_past_ranking( new List <Save_Data> { save }); return(rankings.GetData()); }