diff --git a/src/s_sound.c b/src/s_sound.c index 49373d94c..0bb8f3e2b 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -1310,8 +1310,7 @@ void S_SetDigMusicVolume(INT32 volume) #ifdef DJGPPDOS I_SetDigMusicVolume(31); // Trick for buggy dos drivers. Win32 doesn't need this. #endif - if (!nodigimusic) - I_SetDigMusicVolume(volume&31); + I_SetDigMusicVolume(volume&31); } void S_SetMIDIMusicVolume(INT32 volume) diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c index 0f96f4733..9eb5c3154 100644 --- a/src/sdl/mixer_sound.c +++ b/src/sdl/mixer_sound.c @@ -529,14 +529,8 @@ boolean I_StartDigSong(const char *musicname, boolean looping) #endif if (lumpnum == LUMPERROR) - { - lumpnum = W_CheckNumForName(va("D_%s",musicname)); - if (lumpnum == LUMPERROR) - return false; - midimode = true; - } - else - midimode = false; + return false; + midimode = false; data = (char *)W_CacheLumpNum(lumpnum, PU_MUSIC); len = W_LumpLength(lumpnum); @@ -686,10 +680,7 @@ boolean I_StartDigSong(const char *musicname, boolean looping) CONS_Alert(CONS_ERROR, "Mix_PlayMusic: %s\n", Mix_GetError()); return true; } - if (midimode) - Mix_VolumeMusic((UINT32)midi_volume*128/31); - else - Mix_VolumeMusic((UINT32)music_volume*128/31); + Mix_VolumeMusic((UINT32)music_volume*128/31); if (loop_point != 0.0f) Mix_HookMusicFinished(music_loop); @@ -792,10 +783,15 @@ void I_ShutdownMIDIMusic(void) void I_SetMIDIMusicVolume(UINT8 volume) { - midi_volume = volume; + // HACK: Until we stop using native MIDI, + // disable volume changes + (void)volume; + midi_volume = 31; + //midi_volume = volume; + if (!midimode || !music) return; - Mix_VolumeMusic((UINT32)volume*128/31); + Mix_VolumeMusic((UINT32)midi_volume*128/31); } INT32 I_RegisterSong(void *data, size_t len) @@ -820,7 +816,8 @@ boolean I_PlaySong(INT32 handle, boolean looping) CONS_Alert(CONS_ERROR, "Mix_PlayMusic: %s\n", Mix_GetError()); return false; } - Mix_VolumeMusic((UINT32)music_volume*128/31); + + Mix_VolumeMusic((UINT32)midi_volume*128/31); return true; }