private LBA2Quest.Subquest getSubquest(XmlNode xn) { LBA2Quest.Subquest sq = new LBA2Quest.Subquest(); sq.name = xn.SelectSingleNode("name").InnerText.Trim(); sq.value = ushort.Parse(xn.SelectSingleNode("value").InnerText.Trim()); return(sq); }
private void addSubquestToListView(LBA2Quest.Subquest sq) { ListViewItem lvi = new ListViewItem(); lvi.Text = sq.name; lvi.SubItems.Add(sq.value.ToString()); lvi.Tag = sq; lvSubquest.Items.Add(lvi); }
private LBA2Quest.Subquest[] getSubquests(XmlNodeList nodes) { LBA2Quest.Subquest[] subquests = new LBA2Quest.Subquest[nodes.Count]; for (int i = 0; i < nodes.Count; i++) { subquests[i] = getSubquest(nodes[i]); } return(subquests); }
//Add new subquest to the subquest array of the quest where //OffsetValue.offset = quest.offset private LBA2Quest.Subquest[] addNewSubitem(LBA2Quest q, OffsetValue ov) { //No previous items if (null == q.subquests) { q.subquests = new LBA2Quest.Subquest[1]; q.subquests[0] = new LBA2Quest.Subquest("New", ov.value); return(q.subquests); } else { LBA2Quest.Subquest[] additional = new LBA2Quest.Subquest[q.subquests.Count() + 1]; int copied = 0; int i = 0; for (copied = 0; copied < additional.Count(); copied++) { //Insert new in correct place and copy rest if ( null == ov || //Already done it ( q.subquests.Count() != i && //Not already copied everything (must be new) ov.value > q.subquests[i].value ) ) { additional[copied] = q.subquests[i]; i++; } else { LBA2Quest.Subquest[] sq = new LBA2Quest.Subquest[1]; sq[0] = new LBA2Quest.Subquest("New", ov.value); GetSubItem gsi = new GetSubItem(new LBA2Quest(q.name, q.memoryOffset, q.size, sq)); gsi.ShowDialog(); if (null == gsi.q) { return(null); //If we cancel the form ignore } q.name = gsi.q.name; additional[copied] = gsi.q.subquests[0]; gsi.Dispose(); ov = null; } } return(additional); } }