From a1c07ae57ba14112ef67b54c90336e4c9b77a7a5 Mon Sep 17 00:00:00 2001 From: biswow Date: Sat, 13 Dec 2025 13:40:22 +0100 Subject: [PATCH 01/12] git commit suicide --- .gitignore | 2 + Documentation/Languages/enUS.xaml | 72 +- Documentation/Languages/frFR.xaml | 86 +- Documentation/Languages/zhCN.xaml | 88 +- HeadlessExport/App.config | 18 +- HeadlessExport/HeadlessExport.csproj | 3 +- SpellGUIV2/App.config | 34 +- SpellGUIV2/ConfigWindow.xaml | 2 + SpellGUIV2/ConfigWindow.xaml.cs | 108 +- SpellGUIV2/ImportExportWindow.xaml.cs | 70 +- SpellGUIV2/MainWindow.xaml | 85 +- SpellGUIV2/MainWindow.xaml.cs | 1874 +++++++++++------ SpellGUIV2/Properties/Resources.Designer.cs | 2 +- SpellGUIV2/Properties/Settings.Designer.cs | 2 +- SpellGUIV2/Sources/Config/Config.cs | 34 + .../SpellSelectList/SpellSelectionEntry.cs | 12 +- .../SpellSelectList/SpellSelectionList.cs | 19 +- SpellGUIV2/Sources/DBC/AbstractDBC.cs | 51 +- SpellGUIV2/Sources/DBC/GenericDbc.cs | 1 + SpellGUIV2/Sources/DBC/SpellIconDBC.cs | 45 +- SpellGUIV2/Sources/Database/CsvFileStorage.cs | 4 +- SpellGUIV2/Sources/Database/DbcFileStorage.cs | 37 +- SpellGUIV2/Sources/Database/SqlFileStorage.cs | 4 +- SpellGUIV2/Sources/Database/StorageAdapter.cs | 3 +- .../spellFamilyClassMaskParser.cs | 83 +- SpellGUIV2/SpellEditor.csproj | 2 +- 26 files changed, 1901 insertions(+), 840 deletions(-) diff --git a/.gitignore b/.gitignore index c0b2fb77..ef7d8e9d 100644 --- a/.gitignore +++ b/.gitignore @@ -179,3 +179,5 @@ FakesAssemblies/ #Ignore '.vs' directory .vs/ + +*.driveupload* diff --git a/Documentation/Languages/enUS.xaml b/Documentation/Languages/enUS.xaml index 25ba45d9..cf97dd94 100644 --- a/Documentation/Languages/enUS.xaml +++ b/Documentation/Languages/enUS.xaml @@ -51,14 +51,18 @@ Cast Time: Duration: Range: - Caster Aura State: Spell Level: Base Level: Max Level: Spell Visual 1: Spell Visual 2: Speed: + + Caster Aura State: Target Aura State: + Caster Aura State Not: + Target Aura State Not: + Recovery Time: Category Recovery Time: Spell Missile ID: @@ -84,6 +88,15 @@ Prevention Type: Spell Damage Type: Requires Spell Focus: + + Caster Aura Spell: + Target Aura Spell: + Exclude Caster Aura Spell: + Exclude Target Aura Spell: + + Stance Bar Order: + Power Display Id: + Rune Cost: Spell Description Variables: Spell Priority: @@ -162,6 +175,7 @@ Attributes Ex7: Creature Type: Stances: + Excluded Stances: Current Icon: New Icon: Filter icons: @@ -175,10 +189,16 @@ Import Export Import and Export - Log Book + Log Book Config Configuration Editor Multilingual + + Reset Effect + Copy Effect 1 + Copy Effect 2 + Copy Effect 3 + @@ -660,31 +680,45 @@ Non-combat Pet | Gas Cloud - + None | Defense | - Healthless 20 Percent | + Healthless 20% | Berserking | - Frozen | Judgement | - Unknown6 | Hunter Parry | - Unknown8 | - Unknown9 | - Warrior Victory Rush | - Unknown11 | - Faerie Fire | - Healthless 35 Percent | + Victory Rush | + Unknown 11 | + Healthless 35% | + Enrage | + Unknown 22 | + Health Above 75% + + + None | + Healthless 20% | + Berserking | + Healthless 35% | Conflagrate | Swiftmend | Deadly Poison | - Enrage | - Bleeding | - Parry | - Unknown20 | - Unknown21 | - Unknown22 | - Health Above 75 Percent + Bleeding + + + None | + Healthless 20% | + Frozen | + Unknown 7 | + Faerie Fire | + Unknown 20 + + + None | + Frozen | + Unknown 8 | + Unknown 11 | + Faerie Fire | + Unknown 22 Non-Equip | diff --git a/Documentation/Languages/frFR.xaml b/Documentation/Languages/frFR.xaml index 503e5864..a954866d 100644 --- a/Documentation/Languages/frFR.xaml +++ b/Documentation/Languages/frFR.xaml @@ -51,14 +51,18 @@ Temps d'incantation : Durée : Portée : - Statut du lanceur : Niveau du sort : Niveau de base du sort : Niveau Max : Visuel 1 : Visuel 2 : Vélocité : + Statut de la cible : + Statut du lanceur : + Statut du lanceur non : + Statut de la cible non : + Temps de recharge : Temps de recharge de la catégorie : ID du Missile: @@ -84,6 +88,15 @@ Type de prévention : Type de dégâts : Requiert le Focus : + + Sort d’aura du lanceur : + Sort d’aura de la cible : + Exclure le sort d’aura du lanceur : + Exclure le sort d’aura du lanceur : + + Ordre de la barre de posture : + ID d’affichage de la ressource : + Coût runique: Variables de la description : Spell Priority: @@ -162,6 +175,7 @@ Attributs Ex7 : Type de créature : Postures : + Exclure Postures: Icône actuelle : Nouvelle icône : Filtre d'icônes : @@ -177,6 +191,12 @@ Importer et exporter Log Book Multilingue + + Réinit. effet + Copier l’effet 1 + Copier l’effet 2 + Copier l’effet 3 + @@ -660,31 +680,45 @@ Familier non combattant | Nuage de gaz - - None | - Defense | - Healthless 20 Percent | - Berserking | - Frozen | - Judgement | - Unknown6 | - Hunter Parry | - Unknown8 | - Unknown9 | - Warrior Victory Rush | - Unknown11 | - Faerie Fire | - Healthless 35 Percent | - Conflagrate | - Swiftmend | - Deadly Poison | - Enrage | - Bleeding | - Parry | - Unknown20 | - Unknown21 | - Unknown22 | - Health Above 75 Percent + + Aucun | + Défense | + Sans santé 20% | + Berseking | + Jugement | + Parade du lanceur | + Victoire imminente | + Inconnu 11 | + Sans santé 35% | + Enragé | + Inconnu 22 | + Santé au-dessus de 75% + + + Aucun | + Sans santé 20% | + Berseking | + Sans santé 35% | + Conflagration | + Rétablissement rapide | + Poison mortel | + Saignement + + + Aucun | + Sans santé 20% | + Gelé | + Inconnu 7 | + Feu stellaire | + Inconnu 20 + + + Aucun | + Gelé | + Inconnu 8 | + Inconnu 11 | + Feu stellaire | + Inconnu 22 Non-équipé | diff --git a/Documentation/Languages/zhCN.xaml b/Documentation/Languages/zhCN.xaml index 5b442d06..be957266 100644 --- a/Documentation/Languages/zhCN.xaml +++ b/Documentation/Languages/zhCN.xaml @@ -50,15 +50,19 @@ 机制类型: 施法时间: 持续时间: - 施法距离: - 施法者光环状态: + 施法距离: 法术等级: 基础等级: 最大等级: 法术视觉效果A: 法术视觉效果B: 光效飞行速度(?): + + 施法者光环状态: 目标光环状态: + 施法者光环状态(非): + 目标光环状态(非): + 冷却时间: 类型冷却时间: 法术弹道ID(?): @@ -84,6 +88,15 @@ 沉默类型: 法术伤害类型: 施法需要对象(区域): + + 施法者光环法术: + 目标光环法术: + 排除施法者光环法术: + 排除目标光环法术: + + 姿态栏顺序: + 能量显示ID: + 符文消耗: 法术变量详细描述: Spell Priority: @@ -162,6 +175,7 @@ 属性 Ex7: 生物类型: 姿态: + 排除的姿态: 当前图标: 新图标: 过滤图标: @@ -177,6 +191,12 @@ 导入和导出 Log Book 多语言 + + 重置效果 + 复制效果 1 + 复制效果 2 + 复制效果 3 + @@ -660,31 +680,45 @@ 非战斗宠物 | Gas Cloud - - None | - Defense | - Healthless 20 Percent | - Berserking | - Frozen | - Judgement | - Unknown6 | - Hunter Parry | - Unknown8 | - Unknown9 | - Warrior Victory Rush | - Unknown11 | - Faerie Fire | - Healthless 35 Percent | - Conflagrate | - Swiftmend | - Deadly Poison | - Enrage | - Bleeding | - Parry | - Unknown20 | - Unknown21 | - Unknown22 | - Health Above 75 Percent + + 无 | + 防御 | + 生命值低于 20% | + 狂暴 | + 审判 | + 猎人招架 | + 胜利冲击 | + 未知 11 | + 生命值低于 35% | + 激怒 | + 未知 22 | + 生命值高于 75% + + + 无 | + 生命值低于 20% | + 狂暴 | + 生命值低于 35% | + 火焰吞噬 | + 迅捷治愈 | + 致命毒药 | + 流血 + + + 无 | + 生命值低于 20% | + 冰冻 | + 未知 7 | + 精灵之火 | + 未知 20 + + + 无 | + 冰冻 | + 未知 8 | + 未知 11 | + 精灵之火 | + 未知 22 非装备 | diff --git a/HeadlessExport/App.config b/HeadlessExport/App.config index 5a1f3d40..3637be47 100644 --- a/HeadlessExport/App.config +++ b/HeadlessExport/App.config @@ -1,22 +1,22 @@ - + - + - - + + - - + + - - + + - \ No newline at end of file + diff --git a/HeadlessExport/HeadlessExport.csproj b/HeadlessExport/HeadlessExport.csproj index e4147401..6acac352 100644 --- a/HeadlessExport/HeadlessExport.csproj +++ b/HeadlessExport/HeadlessExport.csproj @@ -8,10 +8,11 @@ Exe HeadlessExport HeadlessExport - v4.6.1 + v4.8 512 true true + AnyCPU diff --git a/SpellGUIV2/App.config b/SpellGUIV2/App.config index d603b66e..ce689db8 100644 --- a/SpellGUIV2/App.config +++ b/SpellGUIV2/App.config @@ -1,45 +1,45 @@ - + -
+
- + - - - - + + + + - + - - + + - - + + - - + + - - + + - \ No newline at end of file + diff --git a/SpellGUIV2/ConfigWindow.xaml b/SpellGUIV2/ConfigWindow.xaml index 0a38bbb3..20f8719e 100644 --- a/SpellGUIV2/ConfigWindow.xaml +++ b/SpellGUIV2/ConfigWindow.xaml @@ -5,6 +5,8 @@ xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" Title="{DynamicResource ConfigWindowTitle}" WindowStartupLocation="CenterScreen" + Height="925" + Width="1825" Icon="icon.ico" Loaded="_Loaded" BorderBrush="#1585B5" diff --git a/SpellGUIV2/ConfigWindow.xaml.cs b/SpellGUIV2/ConfigWindow.xaml.cs index 3922e389..38c0e751 100644 --- a/SpellGUIV2/ConfigWindow.xaml.cs +++ b/SpellGUIV2/ConfigWindow.xaml.cs @@ -1,4 +1,8 @@ -using System; +using MahApps.Metro.Controls; +using NLog; +using SpellEditor.Sources.Config; +using SpellEditor.Sources.VersionControl; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -8,11 +12,8 @@ using System.Windows.Forms; using System.Windows.Media; using System.Windows.Threading; -using MahApps.Metro.Controls; -using NLog; -using SpellEditor.Sources.Config; -using SpellEditor.Sources.VersionControl; using static System.Environment; +using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window; using Application = System.Windows.Application; using Button = System.Windows.Controls.Button; using Label = System.Windows.Controls.Label; @@ -61,9 +62,12 @@ private void BuildConfigWindow() ConfigGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); // Icon config row ConfigGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); + // Caching config row + ConfigGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); // MPQ name config row ConfigGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); - // Bindings and directory settings, 2 rows + // Bindings and directory settings, 3 rows + ConfigGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); ConfigGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); ConfigGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); // Database type specific grid @@ -127,6 +131,8 @@ private void BuildConfigWindow() currentRow = BuildIconConfig(ConfigGrid, currentRow); + currentRow = BuildCachingConfig(ConfigGrid, currentRow); + currentRow = BuildMpqConfig(ConfigGrid, currentRow); currentRow = BuildBindingsAndDbcUI(ConfigGrid, currentRow); @@ -344,6 +350,30 @@ private int BuildIconConfig(Grid grid, int currentRow) return currentRow; } + private int BuildCachingConfig(Grid grid, int currentRow) + { + var label = new Label { Content = "Cache spells:" }; + label.Margin = new Thickness(10); + + var checkbox = new System.Windows.Controls.CheckBox { }; + checkbox.Margin = new Thickness(10); + + checkbox.IsChecked = Config.CacheSpellBody; + checkbox.Checked += CacheSpellBody_Checked; + checkbox.Unchecked += CacheSpellBody_Checked; + checkbox.ToolTip = "When this is turned on, spells will be cached in memory making exporting take 1-3 seconds."; + + Grid.SetRow(label, currentRow); + Grid.SetRow(checkbox, currentRow++); + Grid.SetColumn(label, 0); + Grid.SetColumn(checkbox, 1); + + grid.Children.Add(label); + grid.Children.Add(checkbox); + + return currentRow; + } + private int BuildMpqConfig(Grid grid, int currentRow) { var label = new Label @@ -375,12 +405,19 @@ private void RenderIconsInView_Checked(object sender, RoutedEventArgs e) Config.RenderImagesInView = (sender as System.Windows.Controls.CheckBox).IsChecked.Value; } + private void CacheSpellBody_Checked(object sender, RoutedEventArgs e) + { + Config.CacheSpellBody = (sender as System.Windows.Controls.CheckBox).IsChecked.Value; + } + private int BuildBindingsAndDbcUI(Grid grid, int currentRow) { var bindingsLabel = new Label { Content = "Bindings Directory:" }; var dbcLabel = new Label { Content = "DBC Directory:" }; - var bindingsDirLabel = new Label { Content = Config.BindingsDirectory }; - var dbcDirLabel = new Label { Content = Config.DbcDirectory }; + var exportLabel = new Label { Content = "Export Directory:" }; + var bindingsDirLabel = new TextBox { Text = Config.BindingsDirectory }; + var dbcDirLabel = new TextBox { Text = Config.DbcDirectory }; + var exportDirLabel = new TextBox { Text = Config.ExportDirectory }; var changeBindingsButton = new ButtonWithLabelRef(bindingsDirLabel, ButtonWithLabelRef.DirButtonType.Bindings) { Content = "Change Directory", @@ -391,18 +428,28 @@ private int BuildBindingsAndDbcUI(Grid grid, int currentRow) Content = "Change Directory", Foreground = Brushes.Black }; + var changeExportButton = new ButtonWithLabelRef(exportDirLabel, ButtonWithLabelRef.DirButtonType.Export) + { + Content = "Change Directory", + Foreground = Brushes.Black + }; bindingsLabel.Margin = new Thickness(10); dbcLabel.Margin = new Thickness(10); + exportLabel.Margin = new Thickness(10); bindingsDirLabel.Margin = new Thickness(10); dbcDirLabel.Margin = new Thickness(10); + exportDirLabel.Margin = new Thickness(10); changeBindingsButton.Margin = new Thickness(10); changeDbcButton.Margin = new Thickness(10); + changeExportButton.Margin = new Thickness(10); changeBindingsButton.MinWidth = 100; changeDbcButton.MinWidth = 100; + changeExportButton.MinWidth = 100; changeBindingsButton.Click += OpenDirButton_Click; changeDbcButton.Click += OpenDirButton_Click; + changeExportButton.Click += OpenDirButton_Click; Grid.SetRow(bindingsLabel, currentRow); Grid.SetColumn(bindingsLabel, 0); @@ -416,6 +463,12 @@ private int BuildBindingsAndDbcUI(Grid grid, int currentRow) Grid.SetColumn(dbcDirLabel, 1); Grid.SetRow(changeDbcButton, currentRow); Grid.SetColumn(changeDbcButton, 2); + Grid.SetRow(exportLabel, ++currentRow); + Grid.SetColumn(exportLabel, 0); + Grid.SetRow(exportDirLabel, currentRow); + Grid.SetColumn(exportDirLabel, 1); + Grid.SetRow(changeExportButton, currentRow); + Grid.SetColumn(changeExportButton, 2); grid.Children.Add(bindingsLabel); grid.Children.Add(bindingsDirLabel); @@ -423,6 +476,9 @@ private int BuildBindingsAndDbcUI(Grid grid, int currentRow) grid.Children.Add(dbcLabel); grid.Children.Add(dbcDirLabel); grid.Children.Add(changeDbcButton); + grid.Children.Add(exportLabel); + grid.Children.Add(exportDirLabel); + grid.Children.Add(changeExportButton); return currentRow; } @@ -444,14 +500,6 @@ private void OpenDirButton_Click(object sender, RoutedEventArgs e) { var path = dialog.SelectedPath; button.UpdateLabelText(path); - if (button.DbType == ButtonWithLabelRef.DirButtonType.Bindings) - { - Config.BindingsDirectory = path; - } - else if (button.DbType == ButtonWithLabelRef.DirButtonType.Dbc) - { - Config.DbcDirectory = path; - } } } } @@ -488,26 +536,44 @@ public enum DatabaseIdentifier private class ButtonWithLabelRef : Button { - private readonly Label _LabelReference; + private readonly TextBox _LabelReference; public readonly DirButtonType DbType; - public ButtonWithLabelRef(Label labelRef, DirButtonType type) + public ButtonWithLabelRef(TextBox labelRef, DirButtonType type) { _LabelReference = labelRef; DbType = type; + + _LabelReference.TextChanged += (s, e) => + { + var path = labelRef.Text; + if (type == DirButtonType.Bindings) + { + Config.BindingsDirectory = path; + } + else if (type == DirButtonType.Dbc) + { + Config.DbcDirectory = path; + } + else if (type == DirButtonType.Export) + { + Config.ExportDirectory = path; + } + }; } public void UpdateLabelText(string text) { - _LabelReference.Content = text; + _LabelReference.Text = text; } - public string GetLabelText() => _LabelReference.Content.ToString(); + public string GetLabelText() => _LabelReference.Text.ToString(); public enum DirButtonType { Bindings, - Dbc + Dbc, + Export } } diff --git a/SpellGUIV2/ImportExportWindow.xaml.cs b/SpellGUIV2/ImportExportWindow.xaml.cs index 3097d52d..21f8d21c 100644 --- a/SpellGUIV2/ImportExportWindow.xaml.cs +++ b/SpellGUIV2/ImportExportWindow.xaml.cs @@ -1,6 +1,14 @@ -using System; +using MahApps.Metro.Controls; +using NLog; +using SpellEditor.Sources.Binding; +using SpellEditor.Sources.Config; +using SpellEditor.Sources.Database; +using SpellEditor.Sources.DBC; +using SpellEditor.Sources.Tools.MPQ; +using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.ComponentModel; using System.Diagnostics; using System.IO; using System.Linq; @@ -12,16 +20,6 @@ using System.Windows.Data; using System.Windows.Input; using System.Windows.Threading; - -using MahApps.Metro.Controls; - -using NLog; - -using SpellEditor.Sources.Binding; -using SpellEditor.Sources.Config; -using SpellEditor.Sources.Database; -using SpellEditor.Sources.DBC; -using SpellEditor.Sources.Tools.MPQ; using Binding = SpellEditor.Sources.Binding.Binding; namespace SpellEditor @@ -36,14 +34,21 @@ partial class ImportExportWindow private Action _PopulateSelectSpell; private Action> _ReloadData; private readonly string _SpellBindingName = "Spell"; + private MainWindow main; - public ImportExportWindow(IDatabaseAdapter adapter, Action populateSelectSpell, Action> reloadData) + public ImportExportWindow(IDatabaseAdapter adapter, Action populateSelectSpell, Action> reloadData, MainWindow mainWindow) { _Adapter = adapter; _TaskLookup = new ConcurrentDictionary(); _PopulateSelectSpell = populateSelectSpell; _ReloadData = reloadData; InitializeComponent(); + main = mainWindow; + } + + public ImportExportWindow(IDatabaseAdapter adapter) + { + _Adapter = adapter; } void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) @@ -244,6 +249,10 @@ private void doImportExport(bool isImport, List bindingList, ImportExpor Task.Run(() => { + var watch = new Stopwatch(); + var loadedDBC = new Stopwatch(); + var importExport = new Stopwatch(); + watch.Start(); var bag = new ConcurrentBag(); var adapters = new List(); var adapterIndex = 0; @@ -255,9 +264,21 @@ private void doImportExport(bool isImport, List bindingList, ImportExpor { bindingList.Remove(_SpellBindingName); // Load data + + loadedDBC.Start(); var abstractDbc = GetDBC(_SpellBindingName, isImport); + loadedDBC.Stop(); // Perform operation using existing adapter - StartImportExport(abstractDbc, _Adapter, _SpellBindingName, isImport, ref bag, ref barLookup, useType); + + if (abstractDbc != null) + { + StartImportExport(abstractDbc, _Adapter, _SpellBindingName, isImport, ref bag, ref barLookup, useType); + } + else + { + Logger.Info($"ERROR: Failed to load {Config.DbcDirectory}\\{_SpellBindingName}.dbc"); + ShowFlyoutMessage($"Failed to load {Config.DbcDirectory}\\{_SpellBindingName}.dbc"); + } } // Spawn adapters @@ -279,7 +300,13 @@ private void doImportExport(bool isImport, List bindingList, ImportExpor } // Perform operation - StartImportExport(abstractDbc, adapter, bindingName, isImport, ref bag, ref barLookup, useType); + if (abstractDbc != null) + StartImportExport(abstractDbc, adapter, bindingName, isImport, ref bag, ref barLookup, useType); + else + { + Logger.Info($"ERROR: Failed to load {Config.DbcDirectory}\\{bindingName}.dbc"); + ShowFlyoutMessage($"Failed to load {Config.DbcDirectory}\\{bindingName}.dbc"); + } } catch (Exception exception) { @@ -289,6 +316,7 @@ private void doImportExport(bool isImport, List bindingList, ImportExpor }); // Wait for all tasks to complete + importExport.Start(); List allTasks = bag.ToList(); Dispatcher.InvokeAsync(new Action(() => label.Content = $"Remaining: {allTasks.Count}")); while (allTasks.Count > 0) @@ -306,6 +334,7 @@ private void doImportExport(bool isImport, List bindingList, ImportExpor } Dispatcher.InvokeAsync(new Action(() => label.Content = $"Remaining: {allTasks.Count}")); } + importExport.Stop(); } finally { @@ -349,6 +378,15 @@ private void doImportExport(bool isImport, List bindingList, ImportExpor Close(); })); } + + GC.Collect(); + GC.WaitForPendingFinalizers(); + GC.Collect(); + + watch.Stop(); + Logger.Info($"finished doImportExport in {watch.ElapsedMilliseconds}ms"); + Logger.Info($"finished loading dbc {loadedDBC.ElapsedMilliseconds}ms"); + Logger.Info($"finished tasks {importExport.ElapsedMilliseconds}ms"); }); } @@ -361,7 +399,7 @@ private AbstractDBC GetDBC(string bindingName, bool isImport) { try { - abstractDbc = new GenericDbc($"{Config.DbcDirectory}\\{bindingName}.dbc"); + abstractDbc = isImport ? new GenericDbc($"{Config.DbcDirectory}\\{bindingName}.dbc") : new GenericDbc(); } catch (Exception exception) { @@ -379,7 +417,7 @@ private Task StartImportExport(AbstractDBC dbc, IDatabaseAdapter adapter, string { var task = isImport ? dbc.ImportTo(adapter, SetProgress, "ID", bindingName, useType) : - dbc.ExportTo(adapter, SetProgress, "ID", bindingName, useType); + dbc.ExportTo(adapter, SetProgress, "ID", bindingName, useType, useType == ImportExportType.DBC && bindingName == _SpellBindingName ? main.GetBodyData() : null); _TaskLookup.TryAdd(task.Id, barLookup[bindingName]); bag.Add(task); diff --git a/SpellGUIV2/MainWindow.xaml b/SpellGUIV2/MainWindow.xaml index 27a7d272..9fab28ec 100644 --- a/SpellGUIV2/MainWindow.xaml +++ b/SpellGUIV2/MainWindow.xaml @@ -6,7 +6,7 @@ xmlns:c="clr-namespace:SpellEditor.Sources.Controls" xmlns:c2="clr-namespace:SpellEditor.Sources.Controls.Common" Title="{DynamicResource mainTitle}" - Height="800" + Height="925" Width="1300" WindowStartupLocation="CenterScreen" Icon="icon.ico" @@ -95,11 +95,11 @@