foxygit / doom Log in
commit 7e2eaa105e270586e81c04fdf61bcafd7c96a34c
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Sun Sep 13 00:15:24 2009 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Sun Sep 13 00:15:24 2009 +0000

    Change intro/introa fix to be more accurate: Doom uses d_intro, but
    transforms this to d_introa when using OPL playback (thanks entryway)

    Subversion-branch: /branches/opl-branch
    Subversion-revision: 1672
---
 src/d_main.c  | 2 +-
 src/s_sound.c | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/d_main.c b/src/d_main.c
index 46dd19ac..c59a8fb7 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -521,7 +521,7 @@ void D_DoAdvanceDemo (void)
 	if ( gamemode == commercial )
 	  S_StartMusic(mus_dm2ttl);
 	else
-	  S_StartMusic (mus_introa);
+	  S_StartMusic (mus_intro);
 	break;
       case 1:
 	G_DeferedPlayDemo(DEH_String("demo1"));
diff --git a/src/s_sound.c b/src/s_sound.c
index f038e9cd..9e70ec73 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -804,6 +804,15 @@ void S_ChangeMusic(int musicnum, int looping)
     char namebuf[9];
     void *handle;

+    // The Doom IWAD file has two versions of the intro music: d_intro
+    // and d_introa.  The latter is used for OPL playback.
+
+    if (musicnum == mus_intro && (snd_musicdevice == SNDDEVICE_ADLIB
+                               || snd_musicdevice == SNDDEVICE_SB))
+    {
+        musicnum = mus_introa;
+    }
+
     if (musicnum <= mus_None || musicnum >= NUMMUSIC)
     {
         I_Error("Bad music number %d", musicnum);