From 4449879e4f73cdbbe157de1735bf2b27f09ea83f Mon Sep 17 00:00:00 2001
From: nehalmistry <>
Date: Sun, 16 Feb 2003 23:33:49 +0000
Subject: [PATCH] more updates for playlist

---
 src/game/intro.cpp          | 3 +--
 src/sound/music.cpp         | 3 ++-
 src/stratagus/mainloop.cpp  | 6 ++----
 src/stratagus/stratagus.cpp | 4 ++--
 4 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/src/game/intro.cpp b/src/game/intro.cpp
index 53f09f960..60e35808a 100644
--- a/src/game/intro.cpp
+++ b/src/game/intro.cpp
@@ -434,8 +434,7 @@ global void ShowIntro(const Intro *intro)
 
     CallbackMusicOff();
     StopMusic();
-    CurrentPlaySection = PlaySectionBriefing;
-    CDRomCheck(NULL);
+    PlaySectionMusic(PlaySectionBriefing);
     if( intro->VoiceFile[0] ) {
 	PlayFile(intro->VoiceFile[0]);
     }
diff --git a/src/sound/music.cpp b/src/sound/music.cpp
index dd357f297..d9e1f5686 100644
--- a/src/sound/music.cpp
+++ b/src/sound/music.cpp
@@ -355,6 +355,7 @@ global int PlayCDRom(int name)
     }
 
     if (name == CDModeDefined) {
+	return 0;
         CDMode = CDModeDefined;
         track = cd_current_track();
         if (CurrentPlaySection == PlaySectionStats) {
@@ -470,7 +471,7 @@ global void PlaySectionMusic(PlaySectionType section)
 
     track = cd_current_track();
 
-    for (i = 0;; ++i) {
+    for (i = 0; i < NumPlaySections; ++i) {
 	if (PlaySections[i].Type == section && (!PlaySections[i].Race || 
 		!(strcmp(PlaySections[i].Race, ThisPlayer->RaceName)))) {
 	    break;
diff --git a/src/stratagus/mainloop.cpp b/src/stratagus/mainloop.cpp
index 2ada195b8..10816b0be 100644
--- a/src/stratagus/mainloop.cpp
+++ b/src/stratagus/mainloop.cpp
@@ -639,8 +639,7 @@ global void GameMainLoop(void)
 
     MultiPlayerReplayEachCycle();
 
-    CurrentPlaySection = PlaySectionGame;
-    CDRomCheck(NULL);
+    PlaySectionMusic(PlaySectionGame);
 
     while( GameRunning ) {
 #if defined(DEBUG) && defined(HIERARCHIC_PATHFINDER)
@@ -820,8 +819,7 @@ global void GameMainLoop(void)
     }
 
     if( GameResult==GameVictory || GameResult==GameDefeat ) {
-	CurrentPlaySection = PlaySectionStats;
-	CDRomCheck(NULL);
+	PlaySectionMusic(PlaySectionStats);
 	ShowStats();
     }
 
diff --git a/src/stratagus/stratagus.cpp b/src/stratagus/stratagus.cpp
index 7b9b61ede..21d9c48e7 100644
--- a/src/stratagus/stratagus.cpp
+++ b/src/stratagus/stratagus.cpp
@@ -1077,8 +1077,8 @@ global void MenuLoop(char* filename, WorldMap* map)
 	    if( !PlayingMusic && strcmp(TitleMusic,MenuMusic) ) {
 		if (CDMode == CDModeOff) {
 		    PlayMusic(MenuMusic);
-		} else {
-		    CDRomCheck(NULL);
+		} else if (CDMode == CDModeDefined) {
+		    PlaySectionMusic(PlaySectionMainMenu);
 		}
 	    }
 	    EnableRedraw=RedrawMenu;