aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/videoplayer.cpp
diff options
context:
space:
mode:
authorSven Hesse2008-05-08 15:51:02 +0000
committerSven Hesse2008-05-08 15:51:02 +0000
commit18db41db506b1e18e050e8dded44dc8501b9bc8f (patch)
tree70915fc5e973052e2ea6b2d1034e1b42f11b9c7b /engines/gob/videoplayer.cpp
parenta9b4058ba9fd94de7bd293b0763d71f9f90f84bc (diff)
downloadscummvm-rg350-18db41db506b1e18e050e8dded44dc8501b9bc8f.tar.gz
scummvm-rg350-18db41db506b1e18e050e8dded44dc8501b9bc8f.tar.bz2
scummvm-rg350-18db41db506b1e18e050e8dded44dc8501b9bc8f.zip
Implemented the background "music" / atmospheric sounds in Woodruff
svn-id: r31949
Diffstat (limited to 'engines/gob/videoplayer.cpp')
-rw-r--r--engines/gob/videoplayer.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp
index 6b21c18676..c435136b75 100644
--- a/engines/gob/videoplayer.cpp
+++ b/engines/gob/videoplayer.cpp
@@ -33,6 +33,7 @@
#include "gob/palanim.h"
#include "gob/inter.h"
#include "gob/map.h"
+#include "gob/sound/sound.h"
namespace Gob {
@@ -289,6 +290,8 @@ void VideoPlayer::primaryPlay(int16 startFrame, int16 lastFrame, int16 breakKey,
if (doPlay(startFrame, breakKey, palCmd, palStart, palEnd, palFrame, endFrame))
break;
+ evalBgShading(video);
+
if (fade) {
_vm->_palAnim->fade(_vm->_global->_pPaletteDesc, -2, 0);
fade = false;
@@ -299,18 +302,27 @@ void VideoPlayer::primaryPlay(int16 startFrame, int16 lastFrame, int16 breakKey,
startFrame++;
}
+ evalBgShading(video);
+
if (reverseTo >= 0) {
int16 toFrame = video.getFramesCount() - reverseTo;
for (int i = video.getCurrentFrame(); i >= toFrame; i--) {
video.seekFrame(i, SEEK_SET, true);
- if (doPlay(i, breakKey, 0, 0, 0, 0, 0)) {
+
+ bool b = doPlay(i, breakKey, 0, 0, 0, 0, 0);
+ evalBgShading(video);
+
+ if (b) {
_vm->_palAnim->fade(0, -2, 0);
memset((char *) _vm->_draw->_vgaPalette, 0, 768);
}
+
if (!_noCursorSwitch)
video.waitEndFrame();
}
}
+
+ evalBgShading(video);
}
void VideoPlayer::primaryClose() {
@@ -360,6 +372,8 @@ void VideoPlayer::slotPlay(int slot, int16 frame) {
_videoSlots[slot]->nextFrame();
WRITE_VAR(11, frame);
+
+ evalBgShading(video);
}
void VideoPlayer::slotClose(int slot) {
@@ -598,4 +612,11 @@ void VideoPlayer::writeVideoInfo(const char *videoFile, int16 varX, int16 varY,
}
}
+void VideoPlayer::evalBgShading(CoktelVideo &video) {
+ if (video.isSoundPlaying())
+ _vm->_sound->bgShade();
+ else
+ _vm->_sound->bgUnshade();
+}
+
} // End of namespace Gob