Example #1
0
        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
        }
Example #2
0
        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");
            }
        }