summaryrefslogtreecommitdiff
path: root/src/strife
diff options
context:
space:
mode:
authorSimon Howard2014-03-23 21:43:12 -0400
committerSimon Howard2014-03-23 21:43:12 -0400
commitda6a260461920d4cafd4c6d1d624aebf2d9b975c (patch)
treea98c65d365f46b65377566735306d5a82e391819 /src/strife
parent84f136b51e07b4d9815c6b033e897ebaef4f16a7 (diff)
downloadchocolate-doom-da6a260461920d4cafd4c6d1d624aebf2d9b975c.tar.gz
chocolate-doom-da6a260461920d4cafd4c6d1d624aebf2d9b975c.tar.bz2
chocolate-doom-da6a260461920d4cafd4c6d1d624aebf2d9b975c.zip
Rearrange order of SDL sound startup.
Initialize low-level sound startup (calls to I_InitSound) separately from the high-level sound startup (S_Init). In particular, make sure that SDL sound is initialized before the textscreen multiplayer waiting screen is shown. This is an attempt to fix a bug with sound in multiplayer games on Windows; calling SDL_QuitSubSystem(SDL_INIT_VIDEO) (on closedown of the textscreen library) causes subsequent attempts to initialize audio to fail. Big thanks go to Alexandre-Xavier (AXDOOMER) for working out a fix for this bug and James Haley (Quasar) for giving some technical background about the lack of separation between SDL subsystems. This (hopefully) fixes #270.
Diffstat (limited to 'src/strife')
-rw-r--r--src/strife/d_main.c4
-rw-r--r--src/strife/s_sound.c3
2 files changed, 3 insertions, 4 deletions
diff --git a/src/strife/d_main.c b/src/strife/d_main.c
index 855dae7d..7cd2387f 100644
--- a/src/strife/d_main.c
+++ b/src/strife/d_main.c
@@ -1640,8 +1640,10 @@ void D_DoomMain (void)
savegamedir = M_GetSaveGameDir("strife1.wad");
// fraggle 20130405: I_InitTimer is needed here for the netgame
- // startup.
+ // startup. Start low-level sound init here too.
I_InitTimer();
+ I_InitSound(true);
+ I_InitMusic();
#ifdef FEATURE_MULTIPLAYER
if(devparm) // [STRIFE]
diff --git a/src/strife/s_sound.c b/src/strife/s_sound.c
index ec59f3a6..513ab62d 100644
--- a/src/strife/s_sound.c
+++ b/src/strife/s_sound.c
@@ -144,9 +144,6 @@ void S_Init(int sfxVolume, int musicVolume, int voiceVolume)
{
int i;
- I_InitSound(true);
- I_InitMusic();
-
I_PrecacheSounds(S_sfx, NUMSFX);
S_SetSfxVolume(sfxVolume);