private void SaveToDisk() { using (FileStream stream = new FileStream(@"rank.bin", FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)) { stream.WriteByte((byte)entries.Count); for (int i = 0; i < entries.Count; i++) { RankEntry entry = entries[i]; entry.WriteToStream(stream); } } }
private void RefreshLabels() { int count = Math.Min(9, entries.Count); for (int i = 0; i < count; i++) { RankEntry entry = entries[i]; lblRankName[i].Text = entry.Name; lblRankLevel[i].Text = "Lv " + (entry.Level + 1); lblRankScore[i].Text = entry.Score.ToString(); } }
private void LoadRankFromDisk() { using (FileStream stream = new FileStream(@"rank.bin", FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read)) { if (stream.Length == 0) { return; } int count = stream.ReadByte(); for (int i = 0; i < count; i++) { RankEntry entry = new RankEntry(stream); rank.Add(entry); } } }
public int GetFutureEntryIndex(int score) { for (int i = 0; i < entries.Count; i++) { RankEntry entry = entries[i]; if (entry.Score < score) { return(i); } } if (entries.Count < 9) { return(entries.Count); } return(-1); }
public void AddRank(int index, RankEntry entry) { entries.Insert(index, entry); if (entries.Count > 9) { entries.RemoveRange(9, entries.Count - 9); } RefreshLabels(); SaveToDisk(); lblRankName[index].ForeColor = Color.YellowGreen; lblRankName[index].Font = new Font(lblRankName[index].Font, FontStyle.Bold); lblRankLevel[index].ForeColor = Color.YellowGreen; lblRankLevel[index].Font = new Font(lblRankName[index].Font, FontStyle.Bold); lblRankScore[index].ForeColor = Color.YellowGreen; lblRankScore[index].Font = new Font(lblRankName[index].Font, FontStyle.Bold); }
/// <summary> /// Atualiza a entrada do rank a partir de outra entrada /// </summary> /// <param name="entry">Entrada do rank usada como fonte dos dados</param> public void UpdateFrom(RankEntry entry) { name = entry.name; level = entry.level; score = entry.score; }
/// <summary> /// Cria uma nova entrada do rank a partir de outra entrada /// </summary> /// <param name="entry">Entrada do rank usada como protótipo</param> public RankEntry(RankEntry entry) { UpdateFrom(entry); }