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); }
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; } } }
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; }