Skip to content

Commit

Permalink
Fixed bug 4770 - Mix_FadeOutChannel never sets fade_volume_reset
Browse files Browse the repository at this point in the history
  • Loading branch information
1bsyl committed Aug 21, 2019
1 parent e1dc59f commit 2cdd20b
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions mixer.c
Expand Up @@ -1044,9 +1044,11 @@ int Mix_FadeInChannelTimed(int which, Mix_Chunk *chunk, int loops, int ms, int t
mix_channel[which].looping = loops;
mix_channel[which].chunk = chunk;
mix_channel[which].paused = 0;
if (mix_channel[which].fading == MIX_NO_FADING) {
mix_channel[which].fade_volume_reset = mix_channel[which].volume;
}
mix_channel[which].fading = MIX_FADING_IN;
mix_channel[which].fade_volume = mix_channel[which].volume;
mix_channel[which].fade_volume_reset = mix_channel[which].volume;
mix_channel[which].volume = 0;
mix_channel[which].fade_length = (Uint32)ms;
mix_channel[which].start_time = mix_channel[which].ticks_fade = sdl_ticks;
Expand Down Expand Up @@ -1153,14 +1155,16 @@ int Mix_FadeOutChannel(int which, int ms)
(mix_channel[which].volume > 0) &&
(mix_channel[which].fading != MIX_FADING_OUT)) {
mix_channel[which].fade_volume = mix_channel[which].volume;
mix_channel[which].fading = MIX_FADING_OUT;
mix_channel[which].fade_length = (Uint32)ms;
mix_channel[which].ticks_fade = SDL_GetTicks();

/* only change fade_volume_reset if we're not fading. */
if (mix_channel[which].fading == MIX_NO_FADING) {
mix_channel[which].fade_volume_reset = mix_channel[which].volume;
}

mix_channel[which].fading = MIX_FADING_OUT;

++status;
}
Mix_UnlockAudio();
Expand Down

0 comments on commit 2cdd20b

Please sign in to comment.