@@ -2,6 +2,7 @@ import eventManager from 'src/utils/eventManager.js';
2
2
import * as settings from 'src/utils/settings/index.js' ;
3
3
import { global , globalSet } from 'src/utils/global.js' ;
4
4
import { isApril , AUDIO } from 'src/utils/isApril.js' ;
5
+ import { window } from 'src/utils/1.variables.js' ;
5
6
import { isSoftDisabled } from '../vanilla/aprilFools.js' ;
6
7
7
8
const baseVolumeSettings = { type : 'slider' , page : 'Audio' , max : 0.5 , step : 0.01 , default : 0.2 , reset : true } ;
@@ -112,7 +113,7 @@ function overrideResult(name) {
112
113
if ( ! resultEnabled . value ( ) || ! data . name || event . canceled ) return ;
113
114
pauseMusic ( ) ;
114
115
if ( ! enable . value ( ) ) {
115
- this . super ( data . name ) ;
116
+ this . super ( data . name , resultVolume . value ( ) ) ;
116
117
return ;
117
118
}
118
119
createAudio ( `/${ musicPath ( ) } /${ data . name } .ogg` , {
@@ -127,7 +128,7 @@ function overrideMusic(name) {
127
128
if ( ! bgmEnabled . value ( ) || ! data . name || event . canceled ) return ;
128
129
pauseMusic ( ) ;
129
130
if ( ! enable . value ( ) ) {
130
- this . super ( data . name ) ;
131
+ this . super ( data . name , bgmVolume . value ( ) ) ;
131
132
return ;
132
133
}
133
134
createAudio ( `/${ musicPath ( ) } /themes/${ data . name } .ogg` , {
@@ -141,7 +142,7 @@ function overrideSound(name) {
141
142
const event = eventManager . cancelable . emit ( 'playSound' , data ) ;
142
143
if ( ! soundEnabled . value ( ) || ! data . name || event . canceled ) return ;
143
144
if ( ! enable . value ( ) ) {
144
- this . super ( data . name ) ;
145
+ this . super ( data . name , soundVolume . value ( ) ) ;
145
146
return ;
146
147
}
147
148
createAudio ( `/sounds/${ data . name } .wav` , {
@@ -155,7 +156,7 @@ function overrideJingle(name = '') {
155
156
if ( ! jingleEnabled . value ( ) || ! data . name || event . canceled ) return ;
156
157
pauseMusic ( ) ;
157
158
if ( ! enable . value ( ) ) {
158
- this . super ( data . name ) ;
159
+ this . super ( data . name , jingleVolume . value ( ) ) ;
159
160
return ;
160
161
}
161
162
createAudio ( `/${ musicPath ( ) } /cards/${ data . name . replace ( / / g, '_' ) } .ogg` , {
@@ -173,21 +174,18 @@ function createAudio(path, {
173
174
play = true ,
174
175
} ) {
175
176
const audio = new Audio ( path ) ;
176
- audio . volume = parseFloat ( volume ) ;
177
+ audio . volume = volume ;
178
+ audio . loop = repeat ;
177
179
if ( listener ) {
178
180
audio . addEventListener ( 'ended' , listener , false ) ;
179
- } else if ( repeat ) {
180
- audio . addEventListener ( 'ended' , function ended ( ) {
181
- this . currentTime = 0 ;
182
- this . play ( ) ;
183
- } , false ) ;
184
181
}
185
182
if ( set ) globalSet ( set , audio ) ;
186
183
if ( play ) audio . play ( ) ;
187
184
return audio ;
188
185
}
189
186
190
- eventManager . on ( 'connect' , ( ) => {
187
+ eventManager . on ( ':preload' , ( ) => {
188
+ if ( typeof window . playMusic !== 'function' ) return ;
191
189
active = true ;
192
190
// Override sound functions
193
191
globalSet ( 'playMusic' , overrideResult ) ;
0 commit comments