Esempio n. 1
0
        private bool checkItem(GameData.Item item, bool check)
        {
            bool flag;

            List <ChangeListTree.RootNode> .Enumerator enumerator = this.tree.Nodes.GetEnumerator();
            try
            {
                while (enumerator.MoveNext())
                {
                    ChangeListTree.TreeNode current = enumerator.Current;
                    if (this.tree.GetItem(current) != item)
                    {
                        continue;
                    }
                    this.checkItem(current, check);
                    flag = true;
                    return(flag);
                }
                return(false);
            }
            finally
            {
                ((IDisposable)enumerator).Dispose();
            }
            return(flag);
        }
Esempio n. 2
0
 private void checkItem(ChangeListTree.TreeNode n, bool check)
 {
     n.Checked = check;
     if (n.Children == null)
     {
         return;
     }
     foreach (ChangeListTree.TreeNode child in n.Children)
     {
         child.Checked = check;
         if (child.Children == null)
         {
             continue;
         }
         foreach (ChangeListTree.TreeNode treeNode in child.Children)
         {
             treeNode.Checked = check;
         }
     }
 }
Esempio n. 3
0
        private void revertChange(ChangeListTree.ChangeData change)
        {
            GameData.TripleInt      tripleInt;
            GameData.Item           item   = this.tree.GetItem(change);
            ChangeListTree.TreeNode parent = change.Parent;
            bool flag = false;

            switch (change.Type)
            {
            case ChangeListTree.ChangeType.NAME:
            {
                item.Name = item.OriginalName;
                break;
            }

            case ChangeListTree.ChangeType.VALUE:
            {
                if (change.OldValue != null)
                {
                    item[change.Key] = change.OldValue;
                }
                else
                {
                    item.Remove(change.Key);
                }
                item.refreshState();
                break;
            }

            case ChangeListTree.ChangeType.NEWREF:
            {
                item.removeReference(change.Section, change.Key);
                break;
            }

            case ChangeListTree.ChangeType.MODREF:
            {
                tripleInt = item.OriginalValue(change.Section, change.Key);
                item.setReferenceValue(change.Section, change.Key, tripleInt);
                break;
            }

            case ChangeListTree.ChangeType.DELREF:
            {
                tripleInt = item.OriginalValue(change.Section, change.Key);
                item.addReference(change.Section, change.Key, new int?(tripleInt.v0), new int?(tripleInt.v1), new int?(tripleInt.v2));
                break;
            }

            case ChangeListTree.ChangeType.NEWINST:
            {
                item.removeInstance(change.Key);
                break;
            }

            case ChangeListTree.ChangeType.MODINST:
            {
                item.getInstance(change.Key).revert();
                break;
            }

            case ChangeListTree.ChangeType.INSTVALUE:
            {
                item.getInstance(change.Section)[change.Key] = change.OldValue;
                if (change.Parent.Children.Count != 1)
                {
                    break;
                }
                change = change.Parent as ChangeListTree.ChangeData;
                break;
            }

            case ChangeListTree.ChangeType.INVALIDREF:
            {
                flag = true;
                break;
            }
            }
            if (!flag)
            {
                this.tree.Remove(change);
            }
            if (item.getState() == GameData.State.ORIGINAL)
            {
                this.tree.Remove(change.Parent.Parent ?? change.Parent);
            }
            this.nav.refreshState(item);
            this.nav.HasChanges = true;
        }