@@ -16,15 +16,15 @@ func play_sound_opts(sounds, opts = {}):
16
16
var s = sounds [i ]
17
17
if not is_instance_valid (s ):
18
18
return
19
+ var pitch = 1.0
19
20
if scale_range > 0 and scale_note != null :
20
21
var note = lerp (0.0 , 1.0 , scale_note / scale_range )
21
- s . pitch_scale = note
22
+ pitch = note
22
23
elif vary > 0.0 :
23
- s . pitch_scale = 1 - (randf () * vary )
24
- s . play ( )
24
+ pitch = 1 - (randf () * vary )
25
+ SoundManager . play_sound_with_pitch ( s , pitch )
25
26
26
- ## ########################################################
27
- # sound map api
27
+ ## sound map api ####################################################
28
28
29
29
func setup_sound (sound , opts = {}):
30
30
var s_str
@@ -34,25 +34,9 @@ func setup_sound(sound, opts = {}):
34
34
if not sound :
35
35
Log .warn ("Could not load sound" , s_str )
36
36
return
37
- var asp = AudioStreamPlayer .new ()
38
- asp .set_stream (sound )
39
- asp .name = sound .resource_path .get_file ()
40
- add_child (asp , true )
41
- if "is_sound" in opts and opts ["is_sound" ]:
42
- # how to force no looping for sounds? it's determined by the input rn
43
- asp .set_volume_db (default_sound_vol_db )
37
+ return sound
44
38
45
- if "vol_db" in opts :
46
- asp .set_volume_db (opts ["vol_db" ])
47
-
48
- return asp
49
-
50
- var default_sound_vol_db = - 12
51
- var defaults = {
52
- "is_sound" : true
53
- }
54
-
55
- func setup_sound_map (sound_map , default_opts = defaults ):
39
+ func setup_sound_map (sound_map ):
56
40
var playables = {}
57
41
for k in sound_map .keys ():
58
42
playables [k ] = []
@@ -64,7 +48,6 @@ func setup_sound_map(sound_map, default_opts=defaults):
64
48
if typeof (s ) == TYPE_ARRAY :
65
49
sound = s [0 ]
66
50
opts = s [1 ]
67
- opts .merge (default_opts )
68
51
var playable = setup_sound (sound , opts )
69
52
if playable :
70
53
playables [k ].append (playable )
@@ -91,64 +74,10 @@ func interrupt_sound(sound_map, name):
91
74
else :
92
75
Log .warn ("no sound for name" , name )
93
76
94
-
95
- ## ###############################################
96
- # music map api
97
-
98
- var playing_game_songs = []
99
- var paused_game_songs = []
100
-
101
- func play_song (sound_map , name ):
102
- if muted_music :
103
- # Log.warn("Cannot play song, music is muted")
104
- return
105
- if name in sound_map :
106
- var songs = sound_map [name ]
107
- var i = randi () % songs .size ()
108
- var s = songs [i ]
109
- # if already playing, do nothing
110
- if not s .playing :
111
- s .play ()
112
- playing_game_songs .append (s )
113
- else :
114
- Log .warn ("no song for name" , name )
115
-
116
- func interrupt_song (sound_map , name = null ):
117
- var song
118
- if not name == null :
119
- song = interrupt_sound (sound_map , name )
120
- elif len (playing_game_songs ) > 0 :
121
- song = playing_game_songs [0 ]
122
- song .stop ()
123
-
124
- if song :
125
- playing_game_songs .erase (song )
126
- else :
127
- Log .warn ("Could not find song to interrupt!" , sound_map )
128
-
129
- func pause_game_song ():
130
- paused_game_songs = []
131
- for song in playing_game_songs :
132
- if song .playing :
133
- song .stop ()
134
- paused_game_songs .append ([song , song .get_playback_position ()])
135
-
136
- func resume_game_song ():
137
- if muted_music :
138
- # Log.warn("Cannot resume game song, music is muted")
139
- return
140
- # could store and resume at same playback_position
141
- for song_and_pos in paused_game_songs :
142
- var song = song_and_pos [0 ]
143
- var pos = song_and_pos [1 ]
144
- song .play (pos )
145
-
146
-
147
77
## mute ######################################################################
148
78
149
79
var muted_sound = false
150
80
var muted_music = false
151
- signal mute_toggle
152
81
153
82
func mute_all (should_mute = true ):
154
83
toggle_mute_music (should_mute )
@@ -160,16 +89,8 @@ func toggle_mute_music(should_mute=null):
160
89
else :
161
90
muted_music = should_mute
162
91
163
- if muted_music :
164
- pause_game_song ()
165
- else :
166
- resume_game_song ()
167
-
168
- mute_toggle .emit ()
169
-
170
92
func toggle_mute_sound (should_mute = null ):
171
93
if should_mute == null :
172
94
muted_sound = not muted_sound
173
95
else :
174
96
muted_sound = should_mute
175
- mute_toggle .emit ()
0 commit comments