public void LoadRel(RelFile rel) { fileName = rel?.Name; if (string.IsNullOrEmpty(fileName)) { fileName = rel?.FileEntry?.Name; } UpdateFormTitle(); RelPropertyGrid.SelectedObject = rel; StringBuilder sb = new StringBuilder(); if (rel != null) { if (rel.NameTable != null) { sb.AppendLine("NameTable - " + rel.NameTable.Length.ToString() + " entries"); foreach (var name in rel.NameTable) { sb.AppendLine(name); } sb.AppendLine(); } if (rel.IndexStrings != null) { sb.AppendLine("IndexStrings - " + rel.IndexStrings.Length.ToString() + " entries"); foreach (var rstr in rel.IndexStrings) { sb.AppendLine(rstr.Name); } sb.AppendLine(); } if (rel.IndexHashes != null) { sb.AppendLine("IndexHashes - " + rel.IndexHashes.Length.ToString() + " entries"); foreach (var rhash in rel.IndexHashes) { uint h = rhash.Name; var jstr = JenkIndex.TryGetString(h); if (!string.IsNullOrEmpty(jstr)) { sb.AppendLine(jstr); } else { sb.AppendLine("0x" + h.ToString("X").PadLeft(8, '0')); } } sb.AppendLine(); } } MainTextBox.Text = sb.ToString(); }
private void FindHash() { uint hash = 0; string hashtxt = HashTextBox.Text; MatchTextBox.Text = ""; if (HexRadioButton.Checked) { try { hash = Convert.ToUInt32(hashtxt, 16); } catch { StatusLabel.Text = "Invalid hex value!"; return; } } else if (UnsignedRadioButton.Checked) { try { hash = uint.Parse(hashtxt); } catch { StatusLabel.Text = "Invalid unsigned int value!"; return; } } else if (SignedRadioButton.Checked) { try { hash = (uint)int.Parse(hashtxt); } catch { StatusLabel.Text = "Invalid signed int value!"; return; } } StatusLabel.Text = Convert.ToString(hash, 16).ToUpper().PadLeft(8, '0'); var str = JenkIndex.TryGetString(hash); var txt = GlobalText.TryGetString(hash); var sta = StatsNames.TryGetString(hash); var ext = TryGetExtraString(hash); bool hasstr = !string.IsNullOrEmpty(str); bool hastxt = !string.IsNullOrEmpty(txt); bool hasext = !string.IsNullOrEmpty(ext); bool hassta = !string.IsNullOrEmpty(sta); if (hasstr && hastxt) { MatchTextBox.Text = string.Format("JenkIndex match:\r\n{0}\r\nGlobalText match:\r\n{1}", str, txt); } else if (hasstr) { MatchTextBox.Text = str; } else if (hastxt) { MatchTextBox.Text = "GlobalText match:\r\n" + txt; } else if (hasext) { MatchTextBox.Text = "Extra strings match:\r\n" + ext; } else if (hassta) { MatchTextBox.Text = "Stats match:\r\n" + sta; } else { MatchTextBox.Text = "[No match found]"; } }
private string GetRelDataTitleString(RelData item) { if (item == null) { return(""); } var h = item.NameHash; var str = JenkIndex.TryGetString(h); if (string.IsNullOrEmpty(str)) { str = GlobalText.TryGetString(h); //is this necessary? } if (string.IsNullOrEmpty(str)) { MetaNames.TryGetString(h, out str); } if (string.IsNullOrEmpty(str)) { str = h.Hex; } var typeid = item.TypeID.ToString(); var rel = item.Rel; if (rel != null) { switch (rel.RelType) { case RelDatFileType.Dat54DataEntries: typeid = ((Dat54SoundType)item.TypeID).ToString(); break; case RelDatFileType.Dat149: case RelDatFileType.Dat150: case RelDatFileType.Dat151: typeid = ((Dat151RelType)item.TypeID).ToString(); break; case RelDatFileType.Dat4: if (rel.IsAudioConfig) { typeid = ((Dat4ConfigType)item.TypeID).ToString(); } else { typeid = ((Dat4SpeechType)item.TypeID).ToString(); } break; case RelDatFileType.Dat10ModularSynth: typeid = ((Dat10RelType)item.TypeID).ToString(); break; case RelDatFileType.Dat15DynamicMixer: typeid = ((Dat15RelType)item.TypeID).ToString(); break; case RelDatFileType.Dat16Curves: typeid = ((Dat16RelType)item.TypeID).ToString(); break; case RelDatFileType.Dat22Categories: typeid = ((Dat22RelType)item.TypeID).ToString(); break; default: break; } } return(str + " : " + typeid); }
public void LoadRel(RelFile rel) { fileName = rel?.Name; if (string.IsNullOrEmpty(fileName)) { fileName = rel?.RpfFileEntry?.Name; } UpdateFormTitle(); RelPropertyGrid.SelectedObject = rel; CurrentFile = rel; rpfFileEntry = rel?.RpfFileEntry; Xml = RelXml.GetXml(rel); metaFormat = MetaFormat.AudioRel; StringBuilder sb = new StringBuilder(); if (rel != null) { if (rel.NameTable != null) { sb.AppendLine("NameTable - " + rel.NameTable.Length.ToString() + " entries"); foreach (var name in rel.NameTable) { sb.AppendLine(name); } sb.AppendLine(); } if (rel.IndexStrings != null) { sb.AppendLine("IndexStrings - " + rel.IndexStrings.Length.ToString() + " entries"); foreach (var rstr in rel.IndexStrings) { sb.AppendLine(rstr.Name); } sb.AppendLine(); } if (rel.IndexHashes != null) { sb.AppendLine("IndexHashes - " + rel.IndexHashes.Length.ToString() + " entries"); foreach (var rhash in rel.IndexHashes) { uint h = rhash.Name; var jstr = JenkIndex.TryGetString(h); if (!string.IsNullOrEmpty(jstr)) { sb.AppendLine(jstr); } else { sb.AppendLine("0x" + h.ToString("X").PadLeft(8, '0')); } } sb.AppendLine(); } } MainTextBox.Text = sb.ToString(); SynthsComboBox.Items.Clear(); SynthTextBox.Language = Language.Custom; SynthTextBox.Text = ""; SynthTextBox.ClearUndo(); if (rel.RelType == RelDatFileType.Dat10ModularSynth) { foreach (var relData in rel.RelDatasSorted) { if ((Dat10RelType)relData.TypeID == Dat10RelType.Synth) { SynthsComboBox.Items.Add(relData); } } } else { MainTabControl.TabPages.Remove(SynthsTabPage); } }