[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