Fixs some music bugs...

Fixed delay when unpausing the game while current level has no musicloop defined
Fixed silence (caused by undefined musicloop) overriding currently playing song when unpausing
This commit is contained in:
JappaWakka 2024-01-07 13:35:17 +01:00
parent 9129ae0675
commit 16a83441d9
3 changed files with 16 additions and 14 deletions

View File

@ -1379,8 +1379,7 @@ nextIndex:
Next Next
If hasLevelUp = False Then If hasLevelUp = False Then
MusicManager.Stop() MusicManager.Play(SavedOverworld.Level.MusicLoop, True, 0.02F)
MusicManager.Play(SavedOverworld.Level.MusicLoop, True, 0.01F)
Core.SetScreen(New TransitionScreen(Me, SavedOverworld.OverworldScreen, New Color(255, 255, 255), False, AddressOf ChangeSavedScreen)) Core.SetScreen(New TransitionScreen(Me, SavedOverworld.OverworldScreen, New Color(255, 255, 255), False, AddressOf ChangeSavedScreen))
Else Else
Dim EvolvePokeList As New List(Of Integer) Dim EvolvePokeList As New List(Of Integer)
@ -1397,8 +1396,7 @@ nextIndex:
Next Next
If EvolvePokeList.Count = 0 Then If EvolvePokeList.Count = 0 Then
MusicManager.Stop() MusicManager.Play(SavedOverworld.Level.MusicLoop, True, 0.02F)
MusicManager.Play(SavedOverworld.Level.MusicLoop, True, 0.01F)
Core.SetScreen(New TransitionScreen(Me, SavedOverworld.OverworldScreen, New Color(255, 255, 255), False, AddressOf ChangeSavedScreen)) Core.SetScreen(New TransitionScreen(Me, SavedOverworld.OverworldScreen, New Color(255, 255, 255), False, AddressOf ChangeSavedScreen))
Else Else
Core.SetScreen(New TransitionScreen(Me, New EvolutionScreen(Core.CurrentScreen, EvolvePokeList, "", EvolutionCondition.EvolutionTrigger.LevelUp, True), Color.Black, False)) Core.SetScreen(New TransitionScreen(Me, New EvolutionScreen(Core.CurrentScreen, EvolvePokeList, "", EvolutionCondition.EvolutionTrigger.LevelUp, True), Color.Black, False))

View File

@ -440,14 +440,14 @@ Public Class OverworldScreen
'Set to correct music: 'Set to correct music:
If TrainerEncountered = False Then If TrainerEncountered = False Then
Dim x = 0 'Dim x = 0
While (x < 100 And String.IsNullOrEmpty(Level.MusicLoop)) 'While (x < 100 And String.IsNullOrEmpty(Level.MusicLoop))
Thread.Sleep(20) ' Thread.Sleep(20)
x = x + 1 ' x = x + 1
End While 'End While
If String.IsNullOrEmpty(Level.MusicLoop) Then 'If String.IsNullOrEmpty(Level.MusicLoop) Then
Return ' Return
End If 'End If
Dim theme As String = Level.MusicLoop Dim theme As String = Level.MusicLoop
If Screen.Level.Surfing = True Then If Screen.Level.Surfing = True Then
@ -464,7 +464,9 @@ Public Class OverworldScreen
Level.IsRadioOn = False Level.IsRadioOn = False
End If End If
MusicManager.Play(theme, True) 'remove when debugging music If MusicManager._currentSongName Is "silence" Or MusicManager.CurrentSong Is Nothing Then
MusicManager.Play(theme, True) 'remove when debugging music
End If
End If End If
End Sub End Sub

View File

@ -1078,7 +1078,9 @@ Public Class Level
If MusicManager.GetSong(MusicLoop) IsNot Nothing Then If MusicManager.GetSong(MusicLoop) IsNot Nothing Then
MusicManager.Play(MusicLoop, True, 0.01F) MusicManager.Play(MusicLoop, True, 0.01F)
Else Else
MusicManager.Play("silence") If MusicManager._currentSongName Is "silence" Or MusicManager.CurrentSong Is Nothing Then
MusicManager.Play("silence")
End If
End If End If
End If End If
End If End If