void LogTexDataClicked(object sender, RoutedEventArgs e) { var engineVersion = App.Settings.Get <EngineVersion>("Core.EngineVersion", EngineVersion.DarkAlliance); if (EngineVersion.DarkAlliance == engineVersion) { MessageBox.Show(_window, "Not supported for Dark Alliance files.", "Error", MessageBoxButton.OK); return; } var entries = WorldTexFile.ReadEntries(_window.ViewModel.World.WorldTex.fileData); var sb = new StringBuilder(); sb.AppendLine("Debug Info For: " + _window.ViewModel.World.WorldTex.Filename); sb.AppendLine(""); for (int i = 0; i < entries.Length; i++) { sb.AppendLine("Entry " + i); sb.AppendLine("Cell Offset: " + entries[i].CellOffset); sb.AppendLine("Directory Offset: " + entries[i].DirectoryOffset); sb.AppendLine("Size: " + entries[i].Size); if (i < entries.Length - 1) { sb.AppendLine(""); } } _window.ViewModel.LogText = sb.ToString(); _window.tabControl.SelectedIndex = 4; // Log View }
public void Load() { var ext = (Path.GetExtension(Name) ?? "").ToLower(); switch (ext) { case ".gob": var texFileName = Path.GetFileNameWithoutExtension(Name) + ".tex"; WorldGob = new GobFile(EngineVersion, Path.Combine(DataPath, Name)); if (File.Exists(Path.Combine(DataPath, texFileName))) { WorldTex = new WorldTexFile(EngineVersion, Path.Combine(DataPath, texFileName)); } break; case ".lmp": // TODO: Support just passing the filepath instead of having to load data here var data = File.ReadAllBytes(Path.Combine(DataPath, Name)); WorldLmp = new LmpFile(EngineVersion, Name, data, 0, data.Length); break; case ".yak": var yakData = File.ReadAllBytes(Path.Combine(DataPath, Name)); WorldYak = new YakFile(EngineVersion, Name, yakData); break; default: throw new NotSupportedException("Unsupported file type"); } }