private void IGotAges(NetAgeInfo[] ages, string filename) { if (ages.Length == 0) { //Arrrrr! We're pirates. //But seriously, HACK HACK HACK MOULa if there are no GPs or K'veers if (filename.Contains("GuildPub") || filename.Equals("Kveer")) ITryToHackGpKveer(filename); return; } foreach (NetAgeInfo nai in ages) { //Find the DataGridViewRow for this age int index = -1; for (int i = 0; i < fDataGridView.Rows.Count; i++) { if (!(fDataGridView.Rows[i].Tag is NetAgeInfo)) continue; if (fDataGridView.Rows[i].Tag.Equals(nai)) { index = i; break; } } //If not found (index == -1), then create a row //Otherwise, update old row if (index == -1) { //If this is a Neighborhood... //AND fCurrPopulation is zero, then DON'T ADD! //Let's not junkify the list ;) if (nai.fFilename.Equals("Neighborhood") && nai.fCurrPopulation == 0) continue; DataGridViewRow r = new DataGridViewRow(); r.CreateCells(fDataGridView, new object[] { IMakeInstance(nai), IMakeDescription(nai), nai.fCurrPopulation }); r.Tag = nai; fDataGridView.Rows.Add(r); } else { //If this is a Neighborhood... //AND fCurrPopulation is zero, then DELETE! //Otherwise, update as usual... if (nai.fFilename.Equals("Neighborhood") && nai.fCurrPopulation == 0) fDataGridView.Rows.RemoveAt(index); else { fDataGridView.Rows[index].Cells[0].Value = IMakeInstance(nai); fDataGridView.Rows[index].Cells[1].Value = IMakeDescription(nai); fDataGridView.Rows[index].Cells[2].Value = nai.fCurrPopulation; } } } //Resort based on user prefs //If no pref, sort by age instance name if (fDataGridView.SortedColumn != null) fDataGridView.Sort(fDataGridView.SortedColumn, (fDataGridView.SortOrder == SortOrder.Ascending ? ListSortDirection.Ascending : ListSortDirection.Descending)); else fDataGridView.Sort(fAgeInstance, ListSortDirection.Ascending); }
protected virtual void OnAuthGotPublicAges(uint transID, ENetError result, NetAgeInfo[] ages) { //Fire callback // - Method: ISomething(NetAgeInfo[] ages, ...) IFireAuthCallback(transID, new object[] { ages }); }
private string IMakeDescription(NetAgeInfo nai) { if (nai.fFilename == "city") { return "D'ni-Ae'gura"; } else if (nai.fFilename == "GreatTreePub") { return "The Watcher's Sanctuary"; } else if (nai.fFilename == "GuildPub-Cartographers") { return "The Cartographers' Guild Pub"; } else if (nai.fFilename == "GuildPub-Greeters") { return "The Greeters' Guild Pub"; } else if (nai.fFilename == "GuildPub-Maintainers") { return "The Maintainers' Guild Pub"; } else if (nai.fFilename == "GuildPub-Messengers") { return "The Messengers' Guild Pub"; } else if (nai.fFilename == "GuildPub-Writers") { return "The Writers' Guild Pub"; } else if (nai.fFilename == "Kveer") { return "Atrus's Childhood Prison"; } else if (nai.fFilename == "Neighborhood02") { return "The DRC's Guild Age"; } else if (nai.fDescription != String.Empty) return nai.fDescription; else if (nai.fSequenceNumber != 0) return String.Format("{0} ({1}) {2}", nai.fUserName, nai.fSequenceNumber, nai.fInstanceName); else if (nai.fUserName != String.Empty) return String.Format("{0} {1}", nai.fUserName, nai.fInstanceName); return String.Format("You should never see this. [FN: {0}]", nai.fFilename); }
private string IMakeInstance(NetAgeInfo nai) { if (nai.fFilename.Contains("GuildPub")) { return "Guild Pub"; } else if (nai.fFilename == "Kveer") { return "K'veer"; } else if (nai.fFilename == "Neighborhood") { return "Neighborhood"; } else { return nai.fInstanceName; } }
public void Read(UruStream s) { fTransID = s.ReadUInt(); fResult = (ENetError)s.ReadInt(); fAges = new NetAgeInfo[s.ReadInt()]; for (int i = 0; i < fAges.Length; i++) { fAges[i] = new NetAgeInfo(); fAges[i].Read(s); } }