Пример #1
0
 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);
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        //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);
            }
        }