public JazzGraphContainer(int index, string name, Control view) { this.Index = index; this.mName = name ?? ""; this.UndoRedo = new UndoManager(); this.SaveState = JazzSaveState.Dirty; ulong iid = 0; if (!this.mName.StartsWith("0x") || !ulong.TryParse(this.mName.Substring(2), System.Globalization.NumberStyles.HexNumber, null, out iid)) { iid = FNVHash.HashString64(this.mName); } this.Key = new RK(GlobalManager.kJazzTID, 0, iid); this.Comp = true; this.JP = null; this.RIE = null; StateMachine sm = new StateMachine(name); this.Scene = new StateMachineScene(sm, view, this); KKLayoutAlgorithm <StateNode, StateEdge> layout = new KKLayoutAlgorithm <StateNode, StateEdge>( this.Scene.StateGraph, this.Scene); layout.LengthFactor = 1.25f; this.Scene.Layout = layout; layout.ShuffleNodes(); this.Scene.LayoutPaused = true; this.Scene.StartLayout(); }
private void fnv64_Click(object sender, EventArgs e) { DataGridViewSelectedRowCollection rows = this.resDGV.SelectedRows; if (rows != null && rows.Count > 0) { INamedResourceIndexEntry rie; foreach (DataGridViewRow row in rows) { rie = this.mResources[row.Index]; rie.Instance = FNVHash.HashString64(rie.ResourceName); this.resDGV.UpdateCellValue( (int)ColumnName.IID, row.Index); } if (this.bDetectConflicts) { this.ClearConflictHighlighting(); this.HighlightConflicts(); } if (this.mColIndex == (int)ColumnName.IID) { this.UpdateResDGV(); } } }
private void hash_Click(object sender, EventArgs e) { if (this.unhasher32 != null && !this.unhasher32.Finished) { return; } if (this.unhasher64 != null && !this.unhasher64.Finished) { return; } string strToHash = this.inputTxt.Text; uint xor32Hash = FNVHash.HashString24(strToHash) & filter32; uint fnv32Hash = FNVHash.HashString32(strToHash) & filter32; ulong xor64Hash = FNVHash.HashString48(strToHash) & filter64; ulong fnv64Hash = FNVHash.HashString64(strToHash) & filter64; this.resultsLST.Items.AddRange(new object[] { string.Concat("FNV Hash of ", strToHash), string.Concat("0x", fnv32Hash.ToString("X8"), " | FNV 32"), string.Concat("0x", fnv64Hash.ToString("X16"), " | FNV 64"), string.Concat("0x", xor32Hash.ToString("X8"), " | Xor Folded FNV 32"), string.Concat("0x", xor64Hash.ToString("X16"), " | Xor Folded FNV 64") }); }
public JazzGraphContainer(int index, StateMachine sm, Control view, TabPage page) { this.Index = index; this.mName = sm.Name; this.UndoRedo = new UndoManager(); this.SaveState = JazzSaveState.Dirty; this.Key = new RK(GlobalManager.kJazzTID, 0, FNVHash.HashString64(this.mName)); this.Comp = true; this.JP = null; this.RIE = null; this.Scene = new StateMachineScene(sm, view, this); KKLayoutAlgorithm <StateNode, StateEdge> layout = new KKLayoutAlgorithm <StateNode, StateEdge>( this.Scene.StateGraph, this.Scene); layout.LengthFactor = 1.25f; this.Scene.Layout = layout; layout.ShuffleNodes(); this.Scene.LayoutPaused = true; this.Scene.StartLayout(); this.mPage = page; this.mPage.Controls.Add(view); this.mPage.Text = this.mName + " *"; this.mPage.SizeChanged += new EventHandler(this.OnTabSizeChanged); }
private static void AddValue(string val, string lbl, KNAPackage knap) { ulong hash = FNVHash.HashString32(val); if (knap.Names.ContainsKey(hash)) { knap.Labels[hash] = ""; } else { knap.Names[hash] = val; if (lbl != null) { knap.Labels[hash] = lbl; } } hash = FNVHash.HashString64(val); if (knap.Names.ContainsKey(hash)) { knap.Labels[hash] = ""; } else { knap.Names[hash] = val; if (lbl != null) { knap.Labels[hash] = lbl; } } }
public void RefreshName(bool unhash = false) { if (!this.bNameIsLabel && this.IID != FNVHash.HashString64(this.mName)) { if (KeyNameReg.TryFindName( this.IID, out this.mName)) { this.bNameIsLabel = false; } else if (KeyNameReg.TryFindLabel( this.IID, out this.mName)) { this.bNameIsLabel = true; } else if (unhash) { this.mName = KeyNameReg.UnhashName(this.IID); this.bNameIsLabel = false; } else { this.mName = "0x" + this.IID.ToString("X16"); this.bNameIsLabel = false; } } }
public override void Undo() { this.mContainer.mName = this.mOldName; ulong iid = FNVHash.HashString64(this.mOldName); this.mContainer.Key.IID = iid; if (this.mContainer.RIE != null) { this.mContainer.RIE.Instance = iid; } if (this.mContainer.Scene != null) { this.mContainer.Scene.StateMachine.Name = this.mOldName; } }
public override bool Execute() { this.mContainer.mName = this.mNewName; ulong iid = FNVHash.HashString64(this.mNewName); this.mContainer.Key.IID = iid; if (this.mContainer.RIE != null) { this.mContainer.RIE.Instance = iid; } if (this.mContainer.Scene != null) { this.mContainer.Scene.StateMachine.Name = this.mNewName; } return(true); }
private void ParseIID() { ulong iid = 0; if (this.mName.Length == 0) { iid = FNVHash.HashString64(this.mName); this.bNameIsValid = false; } else if (RK.TryParseHex64(this.mName, out iid)) { this.bNameIsValid = this.AllowHexNumberName; } else { iid = FNVHash.HashString64(this.mName); this.bNameIsValid = true; } this.mKey.IID = iid; }
private void resCellValuePushed(object sender, DataGridViewCellValueEventArgs e) { if (e.RowIndex < this.mResources.Length) { uint val32; ulong val64; string str = e.Value == null ? null : e.Value.ToString(); INamedResourceIndexEntry rie = this.mResources[e.RowIndex]; switch ((ColumnName)e.ColumnIndex) { case ColumnName.Tag: string[] strs = str.Split(' '); if (RK.TryParseHex32(strs[1], out val32)) { rie.ResourceType = val32; } if (this.mColIndex == (int)ColumnName.Tag || this.mColIndex == (int)ColumnName.TID) { if (this.CheckResDGVSorted(e.RowIndex)) { this.resDGV.UpdateCellValue( (int)ColumnName.TID, e.RowIndex); } else { this.UpdateResDGV(); } } else { this.resDGV.UpdateCellValue( (int)ColumnName.TID, e.RowIndex); } if (this.bDetectConflicts) { this.ClearConflictHighlighting(); this.HighlightConflicts(); } break; case ColumnName.TID: if (RK.TryParseUInt32(str, out val32)) { rie.ResourceType = val32; } if (this.mColIndex == (int)ColumnName.Tag || this.mColIndex == (int)ColumnName.TID) { if (this.CheckResDGVSorted(e.RowIndex)) { this.resDGV.UpdateCellValue( (int)ColumnName.Tag, e.RowIndex); } else { this.UpdateResDGV(); } } else { this.resDGV.UpdateCellValue( (int)ColumnName.Tag, e.RowIndex); } if (this.bDetectConflicts) { this.ClearConflictHighlighting(); this.HighlightConflicts(); } break; case ColumnName.GID: if (RK.TryParseUInt32(str, out val32)) { rie.ResourceGroup = val32; } if (this.mColIndex == (int)ColumnName.GID && !this.CheckResDGVSorted(e.RowIndex)) { this.UpdateResDGV(); } if (this.bDetectConflicts) { this.ClearConflictHighlighting(); this.HighlightConflicts(); } break; case ColumnName.IID: if (RK.TryParseUInt64(str, out val64)) { rie.Instance = val64; } if (this.mColIndex == (int)ColumnName.IID && !this.CheckResDGVSorted(e.RowIndex)) { this.UpdateResDGV(); } if (this.bDetectConflicts) { this.ClearConflictHighlighting(); this.HighlightConflicts(); } break; case ColumnName.Comp: bool comp = (bool)e.Value; rie.Compressed = (ushort)(comp ? 0xFFFF : 0x0000); if (this.mColIndex == (int)ColumnName.Comp && !this.CheckResDGVSorted(e.RowIndex)) { this.UpdateResDGV(); } break; case ColumnName.Name: rie.ResourceName = str; if (this.mAutoHashing != Hashing.None) { val64 = 0; if (str != null) { switch (this.mAutoHashing) { case Hashing.FNV32: val64 = FNVHash.HashString32(str); break; case Hashing.FNV64: val64 = FNVHash.HashString64(str); break; case Hashing.FNVCLIP: val64 = FNVCLIP.HashString(str); break; } } rie.Instance = val64; if (this.mColIndex == (int)ColumnName.IID || this.mColIndex == (int)ColumnName.Name) { if (this.CheckResDGVSorted(e.RowIndex)) { this.resDGV.UpdateCellValue( (int)ColumnName.IID, e.RowIndex); } else { this.UpdateResDGV(); } } else { this.resDGV.UpdateCellValue( (int)ColumnName.IID, e.RowIndex); } if (this.bDetectConflicts) { this.ClearConflictHighlighting(); this.HighlightConflicts(); } } if (this.mColIndex == (int)ColumnName.Name && !this.CheckResDGVSorted(e.RowIndex)) { this.UpdateResDGV(); } break; } } }
private void FillKNMP(KNMPackage knmp, IDictionary <ulong, string> map) { GenCLIP gc; ulong h, ch; string s, cs; foreach (KeyValuePair <ulong, string> nm in map) { h = nm.Key; s = nm.Value; if (FNVHash.HashString64(s) == h || FNVHash.HashString32(s) == h) { knmp.Names[h] = s; } else if (FNVCLIP.HashString(s) == h) { cs = FNVCLIP.GetGenericValue(s); ch = FNVHash.HashString64(cs) & 0x7FFFFFFFFFFFFFFF; knmp.Generics[ch] = cs; if (!this.mGenCLIPs.TryGetValue(ch, out gc)) { gc = new GenCLIP(cs); this.mGenCLIPs.Add(ch, gc); } gc.CLIPNames[h] = new CLIP(s, knmp.Path); } else { knmp.Labels[h] = s; } } if (knmp.Names.Count > 0) { List <KeyValuePair <ulong, string> > names = new List <KeyValuePair <ulong, string> >(knmp.Names); foreach (KeyValuePair <ulong, string> name in names) { s = name.Value; if (name.Key < 0x100000000) { h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } else { h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } cs = FNVCLIP.GetGenericValue(s); if (!string.Equals(s, cs, StringComparison.OrdinalIgnoreCase)) { h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } } } } if (knmp.Generics.Count > 0) { foreach (KeyValuePair <ulong, string> gen in knmp.Generics) { s = gen.Value; h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } cs = FNVCLIP.GetGenericValue(s); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } cs = string.Concat(cs, ".ma"); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } s = string.Concat(s, ".ma"); h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } } if (knmp.Labels.Count > 0) { foreach (KeyValuePair <ulong, string> label in knmp.Labels) { s = label.Value; h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } cs = FNVCLIP.GetGenericValue(s); if (!string.Equals(s, cs, StringComparison.OrdinalIgnoreCase)) { h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } cs = string.Concat(cs, ".ma"); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } } s = string.Concat(s, ".ma"); h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } } }