Skip to content

[feature request] Make TTS optional #7

@Uragawa

Description

@Uragawa

I run my game via Lutris, and this plugin fails to load because of an internal error initialising TTS. It could be that the libraries are not supposed to work on 64-bit prefixes, or it could be that I don't have the assets. Either way, since there's an option to use custom SFX, it'd be awesome if the plugin could run without TTS.

Here's the exception log, just in case:

2022-07-24 04:23:21.494 -03:00 [ERR] [PLUGINW] Plugin installer threw an unexpected error
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Speech.Internal.Helpers.CompareInvariantCulture(CultureInfo culture1, CultureInfo culture2)
   at System.Speech.Synthesis.InstalledVoice.FirstEnabled(List`1 list, CultureInfo culture)
   at System.Speech.Internal.Synthesis.VoiceSynthesis.GetEngineWithVoice(TTSVoice defaultVoice, VoiceInfo defaultVoiceId, String name, CultureInfo culture, VoiceGender gender, VoiceAge age, Int32 variant, Boolean switchContext)
   at System.Speech.Internal.Synthesis.VoiceSynthesis.GetVoice(Boolean switchContext)
   at System.Speech.Synthesis.SpeechSynthesizer.SelectVoiceByHints(VoiceGender gender, VoiceAge age, Int32 voiceAlternate, CultureInfo culture)
   at OhGeeCD.Managers.SoundManager.SetVoice(String cultureInfo, SpeechSynthesizer synthesizer) in C:\Users\darkarchon\source\repos\Oh gee CD\Oh gee CD\Managers\SoundManager.cs:line 71
   at OhGeeCD.Managers.SoundManager..ctor(PlayerConditionManager playerConditionState) in C:\Users\darkarchon\source\repos\Oh gee CD\Oh gee CD\Managers\SoundManager.cs:line 30
   at OhGeeCD.Plugin.InitializePlugin() in C:\Users\darkarchon\source\repos\Oh gee CD\Oh gee CD\Plugin.cs:line 105
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Dalamud.IoC.Internal.ServiceContainer.CreateAsync(Type objectType, Object[] scopedObjects) in C:\goatsoft\companysecrets\dalamud\IoC\Internal\ServiceContainer.cs:line 107
   at Dalamud.Plugin.Internal.Types.LocalPlugin.LoadAsync(PluginLoadReason reason, Boolean reloading) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 414

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions