[Scummvm-cvs-logs] CVS: scummvm/sky intro.cpp,1.32,1.33 sound.cpp,1.29,1.30 sound.h,1.13,1.14

Joost Peters joostp at users.sourceforge.net
Wed Jul 23 12:34:17 CEST 2003


Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv10251/sky

Modified Files:
	intro.cpp sound.cpp sound.h 
Log Message:
applied eriktorbjorn's patch (#776225 - 'BASS CD intro fixes')

Index: intro.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/intro.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- intro.cpp	17 Jul 2003 00:17:42 -0000	1.32
+++ intro.cpp	23 Jul 2003 19:33:34 -0000	1.33
@@ -40,6 +40,8 @@
 #define WAITVOICE		13
 #define LOADBG			14 // load new background sound
 #define PLAYBG			15 // play background sound
+#define LOOPBG			16 // loop background sound
+#define STOPBG			17 // stop background sound
 #define SEQEND		 65535 // end of intro sequence
 
 #define IC_PREPARE_TEXT 20 // commands used in COMMANDFLIRT block
@@ -235,80 +237,67 @@
 uint16 SkyIntro::_cdIntroSeq[] = {
 	PLAYVOICE,	59500,
 	LOADBG,		59499,
-	PLAYBG,
+	LOOPBG,
 	WAITVOICE,
 	PLAYVOICE,	59504,
-	PLAYBG,
 	SHOWSCREEN,	CD_1_LOG,
 	FADEUP,		CD_PAL,
 	BGFLIRT,	CD_1,
 		WAITVOICE,
 		PLAYVOICE,	CDV_02,
-		PLAYBG,
 		WAITVOICE,
 	STOPFLIRT,
 	BGFLIRT,	CD_2,
 		PLAYVOICE,	CDV_03,
-		PLAYBG,
 		WAITVOICE,
 		PLAYVOICE,	CDV_04,
-		PLAYBG,
 	WAITFLIRT,
 	WAITVOICE,
 	PLAYVOICE,	CDV_05,
-	PLAYBG,
 	DELAY,		2000,
 	BGFLIRT,	CD_3,
 		WAITVOICE,
 		PLAYVOICE,	CDV_06,
-		PLAYBG,
 	WAITFLIRT,
 	WAITVOICE,
 	PLAYVOICE,	CDV_07,
 	BGFLIRT,	CD_5,
-		PLAYBG,
 		WAITVOICE,
 		PLAYVOICE,	CDV_08,
-		PLAYBG,
 		WAITVOICE,
 		PLAYVOICE,	CDV_09,
-		PLAYBG,
 	WAITFLIRT,
 	WAITVOICE,
 	PLAYVOICE,	CDV_10,
 	BGFLIRT,	CD_7,
-		PLAYBG,
 		WAITVOICE,
 		PLAYVOICE,	CDV_11,
-		PLAYBG,
 	WAITFLIRT,
 	FADEDOWN,
 	SHOWSCREEN,	CD_11_LOG,
 	FADEUP,		CD_11_PAL,
 	WAITVOICE,
 	PLAYVOICE,	CDV_12,
-	PLAYBG,
 	DELAY,		1600,
 	BGFLIRT,	CD_11,
 		WAITVOICE,
 		PLAYVOICE,	CDV_13,
 		WAITVOICE,
-		PLAYBG,
     WAITFLIRT,
 	WAITVOICE,
-	LOADBG,		59498, // quite heli
 	PLAYVOICE,	CDV_14,
+	LOADBG,		59498, // fade-in heli
 	PLAYBG,
 	DOFLIRT,	CD_13,
 	WAITVOICE,
     PLAYVOICE,	CDV_15,
-	PLAYBG,
 	FADEDOWN,
 	SHOWSCREEN,	CD_15_LOG,
 	FADEUP,		CD_15_PAL,
 	WAITVOICE,
+	LOADBG,		59496, // quiet heli
+	LOOPBG,
 	PLAYVOICE,	CDV_16,
-	PLAYBG,
 	WAITVOICE,
 	PLAYVOICE,	CDV_17,
 	DELAY,		2000,
@@ -316,32 +305,27 @@
 	WAITVOICE,
 	BGFLIRT,	CD_17,
 		PLAYVOICE,	CDV_18,
-		PLAYBG,
+	LOADBG,		59497, // loud heli
+	LOOPBG,
 	WAITFLIRT,
 	WAITVOICE,
-	LOADBG,		59496, // quiet heli
 	FADEDOWN,
 	SHOWSCREEN,	CD_19_LOG,
 	FADEUP,		CD_19_PAL,
 	PLAYVOICE,	CDV_19,
-	PLAYBG,
 	WAITVOICE,
-	LOADBG,		59496,
 	PLAYVOICE,	CDV_20,
-	PLAYBG,
 	FADEDOWN,
 	SHOWSCREEN,	CD_20_LOG,
 	FADEUP,		CD_19_PAL,
-	PLAYBG,
 	WAITVOICE,
 	PLAYVOICE,	CDV_21,
-	PLAYBG,
 	FADEDOWN,
 	SHOWSCREEN,	CD_21_LOG,
 	FADEUP,		CD_19_PAL,
 	WAITVOICE,
-	LOADBG,		59494, // heli whine
 	PLAYVOICE,	CDV_22,
+	LOADBG,		59494, // heli whine
     PLAYBG,
 	WAITVOICE,
 	PLAYVOICE,	CDV_23,
@@ -729,7 +713,11 @@
 			if (!escDelay(200))
 				return false;
 			vData = _skyDisk->loadFile(*data++, NULL);
-			_mixer->playRaw(&_voice, vData, _skyDisk->_lastLoadedFileSize, 11025, SoundMixer::FLAG_AUTOFREE | SoundMixer::FLAG_UNSIGNED);
+			// HACK: Fill the header with silence. We should
+			// probably use _skySound instead of calling playRaw()
+			// directly, but this will have to do for now.
+			memset(vData, 127, sizeof(struct dataFileHeader));
+			_mixer->playRaw(&_voice, vData, _skyDisk->_lastLoadedFileSize, 11025, SoundMixer::FLAG_AUTOFREE | SoundMixer::FLAG_UNSIGNED, SOUND_VOICE);
 			return true;
 		case WAITVOICE:
 			while (_voice)
@@ -737,18 +725,22 @@
 					return false;
 			return true;
 		case LOADBG:
-			if (_bgBuf) {
-				if (_bgSfx) {
-					data++;
-					return true;
-				}
+			_mixer->stopID(SOUND_BG);
+			if (_bgBuf)
 				free(_bgBuf);
-			}
 			_bgBuf = _skyDisk->loadFile(*data++, NULL);
 			_bgSize = _skyDisk->_lastLoadedFileSize;
 			return true;
+		case LOOPBG:
+			_mixer->stopID(SOUND_BG);
+			_mixer->playRaw(&_bgSfx, _bgBuf + 256, _bgSize - 768, 11025, SoundMixer::FLAG_UNSIGNED | SoundMixer::FLAG_LOOP, SOUND_BG);
+			return true;
 		case PLAYBG:
-			_mixer->playRaw(&_bgSfx, _bgBuf + 256, _bgSize - 768, 11025, SoundMixer::FLAG_UNSIGNED);
+			_mixer->stopID(SOUND_BG);
+			_mixer->playRaw(&_bgSfx, _bgBuf + 256, _bgSize - 768, 11025, SoundMixer::FLAG_UNSIGNED, SOUND_BG);
+			return true;
+		case STOPBG:
+			_mixer->stopID(SOUND_BG);
 			return true;
 		default:
 			error("Unknown intro command %X", command);

Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/sound.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- sound.cpp	14 Jul 2003 20:01:54 -0000	1.29
+++ sound.cpp	23 Jul 2003 19:33:34 -0000	1.30
@@ -33,14 +33,6 @@
 #pragma START_PACK_STRUCTS
 #endif
 
-enum {
-	SOUND_CH0    = 0,
-	SOUND_CH1    = 1,
-	SOUND_BG     = 2,
-	SOUND_VOICE  = 3,
-	SOUND_SPEECH = 4
-};
-
 struct RoomList {
 	uint8 room;
 	uint8 adlibVolume;

Index: sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/sound.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- sound.h	12 Jul 2003 01:12:00 -0000	1.13
+++ sound.h	23 Jul 2003 19:33:34 -0000	1.14
@@ -26,6 +26,14 @@
 #include "sky/disk.h"
 #include "common/engine.h"
 
+enum {
+	SOUND_CH0    = 0,
+	SOUND_CH1    = 1,
+	SOUND_BG     = 2,
+	SOUND_VOICE  = 3,
+	SOUND_SPEECH = 4
+};
+
 struct SfxQueue {
 	uint8 count, fxNo, chan, vol;
 };





More information about the Scummvm-git-logs mailing list