1
0
Fork 0

Fix double triggering start of music

State transitions are only handled by changes to previousState on
per-frame basis, so only compare before/after of previousState.
This commit is contained in:
ivan tkachenko 2025-07-10 04:42:04 +03:00
parent 2284636576
commit 9176e35344
1 changed files with 5 additions and 5 deletions

View File

@ -188,7 +188,7 @@ namespace MuzikaGromche
{ {
previousState = __instance.previousState previousState = __instance.previousState
}; };
if (__instance.currentBehaviourStateIndex == 2 && __instance.previousBehaviourStateIndex != 2) if (__instance.currentBehaviourStateIndex == 2 && __instance.previousState != 2)
{ {
// if just popped out // if just popped out
// then override farAudio so that vanilla logic does not stop the music // then override farAudio so that vanilla logic does not stop the music
@ -206,7 +206,7 @@ namespace MuzikaGromche
__instance.farAudio = __state.farAudio; __instance.farAudio = __state.farAudio;
} }
if (__instance.currentBehaviourStateIndex == 1 && __state.previousState != 1) if (__instance.previousState == 1 && __state.previousState != 1)
{ {
// if just started winding up // if just started winding up
// then stop the default music... // then stop the default music...
@ -236,19 +236,19 @@ namespace MuzikaGromche
__instance.farAudio.Play(); __instance.farAudio.Play();
} }
if (__instance.currentBehaviourStateIndex == 2 && __state.previousState != 2) if (__instance.previousState == 2 && __state.previousState != 2)
{ {
__instance.creatureVoice.Stop(); __instance.creatureVoice.Stop();
Plugin.StartLightSwitching(__instance); Plugin.StartLightSwitching(__instance);
} }
if (__instance.currentBehaviourStateIndex != 2 && __state.previousState == 2) if (__instance.previousState != 2 && __state.previousState == 2)
{ {
Plugin.StopLightSwitching(__instance); Plugin.StopLightSwitching(__instance);
Plugin.ResetLightColor(); Plugin.ResetLightColor();
} }
if (__instance.currentBehaviourStateIndex == 2 && !__instance.creatureVoice.isPlaying) if (__instance.previousState == 2 && !__instance.creatureVoice.isPlaying)
{ {
__instance.creatureVoice.maxDistance = 150; __instance.creatureVoice.maxDistance = 150;
__instance.creatureVoice.clip = Plugin.CurrentTrack.LoadedLoop; __instance.creatureVoice.clip = Plugin.CurrentTrack.LoadedLoop;