Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AssetEditor/Views/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref b
{
// Return HTMAXBUTTON when the mouse is over the maximize/restore button
var point = PointFromScreen(new Point(lParam.ToInt32() & 0xFFFF, lParam.ToInt32() >> 16));
if (WpfHelpers.GetElementBoundsRelativeToWindow(maximizeRestoreButton, this).Contains(point))
if (WindowsTitleMenu.WpfHelpers.GetElementBoundsRelativeToWindow(maximizeRestoreButton, this).Contains(point))
{
handled = true;
// Apply hover button style
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
using System.Collections.Generic;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Events.AudioFilesExplorer;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Editors.Audio.Shared.AudioProject.Compiler;
using Editors.Audio.Shared.AudioProject.Models;
using Editors.Audio.Shared.Storage;
using Editors.Audio.Shared.Wwise;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioFilesExplorer
{
public class SetAudioFilesCommand(IAudioEditorStateService audioEditorStateService, IEventHub eventHub, IAudioRepository audioRepository) : IUiCommand
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using System.Data;
using Editors.Audio.AudioEditor.Commands.AudioProjectMutation;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Events.AudioProjectEditor.Table;
using Editors.Audio.AudioEditor.Events.AudioProjectViewer.Table;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectEditor
{
public class AddEditorRowToViewerCommand(
IAudioEditorStateService audioEditorStateService,
Expand All @@ -16,14 +18,9 @@ public class AddEditorRowToViewerCommand(

public void Execute(DataRow row)
{
// Store the row data in the Audio Project
var selectedAudioProjectExplorerNode = _audioEditorStateService.SelectedAudioProjectExplorerNode;
_audioProjectMutationUICommandFactory.Create(MutationType.Add, selectedAudioProjectExplorerNode.Type).Execute(row);

// Display the row in the Viewer
_eventHub.Publish(new ViewerTableRowAddRequestedEvent(row));

// Reset the Editor
_eventHub.Publish(new EditorTableRowAddedToViewerEvent());
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using System.Data;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Core.AudioProjectMutation;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Editors.Audio.AudioEditor.Presentation.Shared.Table;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectMutation
{
public class AddActionEventCommand(IAudioEditorStateService audioEditorStateService, IActionEventService actionEventService) : IAudioProjectMutationUICommand
{
Expand All @@ -18,9 +18,9 @@ public void Execute(DataRow row)
{
var actionEventTypeName = _audioEditorStateService.SelectedAudioProjectExplorerNode.Name;
var audioFiles = _audioEditorStateService.AudioFiles;
var settings = _audioEditorStateService.HircSettings;
var hircSettings = _audioEditorStateService.HircSettings;
var actionEventName = TableHelpers.GetActionEventNameFromRow(row);
_actionEventService.AddActionEvent(actionEventTypeName, actionEventName, audioFiles, settings);
_actionEventService.AddActionEvent(actionEventTypeName, actionEventName, audioFiles, hircSettings);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
using System.Data;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Core.AudioProjectMutation;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Editors.Audio.AudioEditor.Presentation.Shared.Table;
using Editors.Audio.Shared.AudioProject.Models;
using Editors.Audio.Shared.Storage;
using Shared.Ui.Common;
using HircSettings = Editors.Audio.Shared.AudioProject.Models.HircSettings;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectMutation
{
public class AddDialogueEventByPasteCommand(
IAudioEditorStateService audioEditorStateService,
Expand Down Expand Up @@ -52,7 +53,7 @@ public void Execute(DataRow row)
var statePathList = new List<KeyValuePair<string, string>>();
foreach (DataColumn dataColumn in row.Table.Columns)
{
var columnNameWithQualifier = TableHelpers.DeduplicateUnderscores(dataColumn.ColumnName);
var columnNameWithQualifier = WpfHelpers.DeduplicateUnderscores(dataColumn.ColumnName);
var stateGroupName = TableHelpers.GetStateGroupFromStateGroupWithQualifier(_audioRepository, dialogueEventName, columnNameWithQualifier);
var stateName = TableHelpers.GetValueFromRow(row, dataColumn.ColumnName);
statePathList.Add(new KeyValuePair<string, string>(stateGroupName, stateName));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
using System.Data;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Core.AudioProjectMutation;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Editors.Audio.AudioEditor.Presentation.Shared.Table;
using Editors.Audio.Shared.Storage;
using Shared.Ui.Common;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectMutation
{
public class AddDialogueEventCommand(
IAudioEditorStateService audioEditorStateService,
Expand All @@ -24,19 +25,19 @@ public void Execute(DataRow row)
{
var dialogueEventName = _audioEditorStateService.SelectedAudioProjectExplorerNode.Name;
var audioFiles = _audioEditorStateService.AudioFiles;
var settings = _audioEditorStateService.HircSettings;
var hircSettings = _audioEditorStateService.HircSettings;

var statePathList = new List<KeyValuePair<string, string>>();
var stateGroupsWithQualifiers = _audioRepository.QualifiedStateGroupByStateGroupByDialogueEvent[dialogueEventName];
foreach (var stateGroupWithQualifier in stateGroupsWithQualifiers)
{
var stateGroupName = TableHelpers.GetStateGroupFromStateGroupWithQualifier(_audioRepository, dialogueEventName, stateGroupWithQualifier.Key);
var columnName = TableHelpers.DuplicateUnderscores(stateGroupWithQualifier.Key);
var columnName = WpfHelpers.DuplicateUnderscores(stateGroupWithQualifier.Key);
var stateName = TableHelpers.GetValueFromRow(row, columnName);
statePathList.Add(new KeyValuePair<string, string>(stateGroupName, stateName));
}

_dialogueEventService.AddStatePath(dialogueEventName, audioFiles, settings, statePathList);
_dialogueEventService.AddStatePath(dialogueEventName, audioFiles, hircSettings, statePathList);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using System.Data;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Core.AudioProjectMutation;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Editors.Audio.AudioEditor.Presentation.Shared.Table;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectMutation
{
public class AddStateCommand(IAudioEditorStateService audioEditorStateService, IStateService stateService) : IAudioProjectMutationUICommand
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectMutation
{
public enum MutationType
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
using System.Data;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Core.AudioProjectMutation;
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Events.AudioProjectViewer.Table;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Editors.Audio.AudioEditor.Presentation.Shared.Table;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectMutation
{
public class RemoveActionEventCommand(
IAudioEditorStateService audioEditorStateService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
using System.Windows;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Core.AudioProjectMutation;
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Events.AudioProjectViewer.Table;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Editors.Audio.AudioEditor.Presentation.Shared.Table;
using Editors.Audio.Shared.Storage;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectMutation
{
public class RemoveDialogueEventCommand(
IAudioEditorStateService audioEditorStateService,
Expand Down Expand Up @@ -36,7 +36,6 @@ public void Execute(DataRow row)
var message = "State Path is incomplete probably due to a change to the Dialogue Event by CA. Add the missing State(s).";
MessageBox.Show(message, "Error");
}

}
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
using System.Data;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Core.AudioProjectMutation;
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Presentation.Shared;
using Editors.Audio.AudioEditor.Events.AudioProjectViewer.Table;
using Editors.Audio.AudioEditor.Presentation.Shared.Models;
using Editors.Audio.AudioEditor.Presentation.Shared.Table;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectMutation
{
public class RemoveStateCommand(
IAudioEditorStateService audioEditorStateService,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
using System.Collections.Generic;
using System.Data;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Events.AudioProjectViewer.Table;
using Serilog;
using Shared.Core.ErrorHandling;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectViewer
{
public class EditViewerRowCommand(
IAudioEditorStateService audioEditorStateService,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
using System.Collections.Generic;
using System.Data;
using Editors.Audio.AudioEditor.Commands.AudioProjectMutation;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Events.AudioProjectEditor.Enablement;
using Editors.Audio.AudioEditor.Events.AudioProjectViewer.Table;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectViewer
{
public class PasteViewerRowsCommand(
IAudioEditorStateService audioEditorStateService,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
using System.Collections.Generic;
using System.Data;
using Editors.Audio.AudioEditor.Commands.AudioProjectMutation;
using Editors.Audio.AudioEditor.Core;
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Events.AudioProjectEditor.Enablement;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.AudioProjectViewer
{
public class RemoveViewerRowsCommand(
IAudioEditorStateService audioEditorStateService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using Microsoft.Extensions.DependencyInjection;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.Dialogs
{
public class OpenAudioProjectConverterWindowCommand(IServiceProvider serviceProvider) : IUiCommand
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using Microsoft.Extensions.DependencyInjection;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.Dialogs
{
public class OpenAudioProjectMergerWindowCommand(IServiceProvider serviceProvider) : IUiCommand
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using Microsoft.Extensions.DependencyInjection;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.Dialogs
{
public class OpenDialogueEventMergerWindowCommand(IServiceProvider serviceProvider) : IUiCommand
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
using Editors.Audio.AudioEditor.Events;
using Editors.Audio.AudioEditor.Events.AudioProjectEditor;
using Editors.Audio.AudioEditor.Events.AudioProjectEditor.Enablement;
using Shared.Core.Events;
using Shared.Core.PackFiles;
using Shared.Core.Services;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.Dialogs
{
public class OpenMovieFileSelectionWindowCommand(IStandardDialogs standardDialogs, IEventHub eventHub, IPackFileService packFileService) : IUiCommand
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using Microsoft.Extensions.DependencyInjection;
using Shared.Core.Events;

namespace Editors.Audio.AudioEditor.Commands
namespace Editors.Audio.AudioEditor.Commands.Dialogs
{
public class OpenNewAudioProjectWindowCommand(IServiceProvider serviceProvider) : IUiCommand
{
Expand Down
27 changes: 27 additions & 0 deletions Editors/Audio/AudioEditor/Core/AudioEditorIntegrityService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Windows;
using Editors.Audio.Shared.AudioProject.Compiler;
using Editors.Audio.Shared.AudioProject.Models;
using Editors.Audio.Shared.GameInformation.Warhammer3;
using Editors.Audio.Shared.Storage;
Expand All @@ -15,6 +16,7 @@ namespace Editors.Audio.AudioEditor.Core
public interface IAudioEditorIntegrityService
{
void UpdateSoundBankNames(AudioProjectFile audioProject, string audioProjectNameWithoutExtension);
void RefreshSourceIds(AudioProjectFile audioProject);
void CheckDialogueEventInformationIntegrity(List<Wh3DialogueEventDefinition> dialogueEventData);
void CheckAudioProjectDialogueEventIntegrity(AudioProjectFile audioProject);
void CheckAudioProjectWavFilesIntegrity(AudioProjectFile audioProject);
Expand All @@ -41,6 +43,31 @@ public void UpdateSoundBankNames(AudioProjectFile audioProject, string audioProj
}
}

public void RefreshSourceIds(AudioProjectFile audioProject)
{
var audioProjectSourceIds = audioProject.GetAudioFileIds();
var languageId = WwiseHash.Compute(audioProject.Language);
var languageSourceIds = _audioRepository.GetUsedVanillaSourceIdsByLanguageId(languageId);

var usedSourceIds = new HashSet<uint>();
usedSourceIds.UnionWith(audioProjectSourceIds);
usedSourceIds.UnionWith(languageSourceIds);

var audioProjectSounds = audioProject.GetSounds();
foreach (var audioFile in audioProject.AudioFiles)
{
var audioFileIds = IdGenerator.GenerateIds(usedSourceIds);
usedSourceIds.Add(audioFile.Id);

foreach (var sound in audioProjectSounds.Where(sound => sound.SourceId == audioFile.Id))
{
sound.SourceId = audioFileIds.Id;
}
audioFile.Guid = audioFileIds.Guid;
audioFile.Id = audioFileIds.Id;
}
}

public void CheckDialogueEventInformationIntegrity(List<Wh3DialogueEventDefinition> information)
{
var exclusions = new List<string> { "New_Dialogue_Event", "Battle_Individual_Melee_Weapon_Hit" };
Expand Down
Loading
Loading