Skip to content

Commit

Permalink
fix: selected engine configuration not persisting through multiple la…
Browse files Browse the repository at this point in the history
…unches
  • Loading branch information
Monitor221hz committed Jun 5, 2024
1 parent 57002dd commit 11a6150
Showing 1 changed file with 22 additions and 17 deletions.
39 changes: 22 additions & 17 deletions PandoraPlus/MVVM/ViewModel/EngineViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public ObservableCollection<IEngineConfigurationViewModel> EngineConfigurationVi
RaisePropertyChanged(nameof(EngineConfigurationViewModels));
}
}

private IEngineConfigurationFactory engineConfigurationFactory;
private string logText = "";
public string LogText {
get => logText;
Expand Down Expand Up @@ -178,12 +178,14 @@ public EngineViewModel()
}
private void SetupConfigurationOptions()
{
EngineConfigurationViewModels.Add(
engineConfigurationFactory = new EngineConfigurationViewModel<SkyrimConfiguration>("Normal", SetEngineConfigCommand);

EngineConfigurationViewModels.Add(
new EngineConfigurationViewModelContainer("Skyrim SE/AE",
new EngineConfigurationViewModelContainer("Behavior",

new EngineConfigurationViewModelContainer("Patch",
new EngineConfigurationViewModel<SkyrimConfiguration>("Normal", SetEngineConfigCommand),
(EngineConfigurationViewModel<SkyrimConfiguration>)engineConfigurationFactory,
new EngineConfigurationViewModel<SkyrimDebugConfiguration>("Debug", SetEngineConfigCommand)
)
//,
Expand All @@ -195,9 +197,10 @@ private void SetupConfigurationOptions()
)
)
);
//EngineConfigs.Add(new EngineConfigurationViewModel<SkyrimConfiguration>("Skyrim SE/AE", SetEngineConfigCommand));
//EngineConfigs.Add(new EngineConfigurationViewModel<SkyrimDebugConfiguration>("Skyrim SE/AE Debug", SetEngineConfigCommand));
}

//EngineConfigs.Add(new EngineConfigurationViewModel<SkyrimConfiguration>("Skyrim SE/AE", SetEngineConfigCommand));
//EngineConfigs.Add(new EngineConfigurationViewModel<SkyrimDebugConfiguration>("Skyrim SE/AE Debug", SetEngineConfigCommand));
}
public async Task LoadAsync()
{

Expand Down Expand Up @@ -350,9 +353,9 @@ private List<IModInfo> AssignModPriorities(List<IModInfo> mods)
private async void SetEngineConfiguration(object? config)
{
if (config == null) { return; }
IEngineConfigurationFactory engineConfiguration = (IEngineConfigurationFactory)config;
engineConfigurationFactory = (IEngineConfigurationFactory)config;
await preloadTask;
var newConfig = engineConfiguration.Config;
var newConfig = engineConfigurationFactory.Config;
Engine = newConfig != null ? new BehaviourEngine(newConfig) : Engine;
}
private async void LaunchEngine(object? parameter)
Expand All @@ -365,9 +368,10 @@ private async void LaunchEngine(object? parameter)

logText= string.Empty;

await WriteLogBoxLine("Engine launched.");

await preloadTask;
List<IModInfo> activeMods = GetActiveModsByPriority();

List<IModInfo> activeMods = GetActiveModsByPriority();

IModInfo? baseModInfo = Mods.Where(m => m.Code == "pandora").FirstOrDefault();

Expand All @@ -389,9 +393,10 @@ private async void LaunchEngine(object? parameter)
timer.Stop();

await ClearLogBox();


await WriteLogBoxLine(Engine.GetMessages(success));
var configInfoMessage = $"Engine launched with configuration: {Engine.Configuration.Name}";
await WriteLogBoxLine(configInfoMessage);
logger.Info(configInfoMessage);
await WriteLogBoxLine(Engine.GetMessages(success));

if (!success)
{
Expand All @@ -408,11 +413,11 @@ private async void LaunchEngine(object? parameter)
}
}




Engine = new BehaviourEngine();
preloadTask = Task.Run(Engine.PreloadAsync);

var newConfig = engineConfigurationFactory.Config;
Engine = newConfig != null ? new BehaviourEngine(newConfig) : new BehaviourEngine();
preloadTask = Task.Run(Engine.PreloadAsync);

lock (LaunchCommand)
{
Expand Down

0 comments on commit 11a6150

Please sign in to comment.