diff options
| author | Sven Hesse | 2009-07-17 19:22:12 +0000 | 
|---|---|---|
| committer | Sven Hesse | 2009-07-17 19:22:12 +0000 | 
| commit | df52a5d58ea5bedba031aed900e228a75eef7c58 (patch) | |
| tree | 05f4481ce40090849aad6275070624dd861eec6b /engines/gob | |
| parent | 53756ef1d022a959b24c041e18f55eef34e60dd3 (diff) | |
| download | scummvm-rg350-df52a5d58ea5bedba031aed900e228a75eef7c58.tar.gz scummvm-rg350-df52a5d58ea5bedba031aed900e228a75eef7c58.tar.bz2 scummvm-rg350-df52a5d58ea5bedba031aed900e228a75eef7c58.zip  | |
Adding a workaround for the vanishing Coh Cott bug (#1972466), which is actually an error in that video file
svn-id: r42570
Diffstat (limited to 'engines/gob')
| -rw-r--r-- | engines/gob/videoplayer.cpp | 15 | ||||
| -rw-r--r-- | engines/gob/videoplayer.h | 2 | 
2 files changed, 17 insertions, 0 deletions
diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp index da552d7202..2a385ea4d1 100644 --- a/engines/gob/videoplayer.cpp +++ b/engines/gob/videoplayer.cpp @@ -156,6 +156,7 @@ VideoPlayer::VideoPlayer(GobEngine *vm) : _vm(vm) {  	_backSurf = false;  	_needBlit = false;  	_noCursorSwitch = false; +	_woodruffCohCottWorkaround = false;  }  VideoPlayer::~VideoPlayer() { @@ -248,6 +249,14 @@ bool VideoPlayer::primaryOpen(const char *videoFile, int16 x, int16 y,  				_noCursorSwitch = true;  		} +		// WORKAROUND: In Woodruff, Coh Cott vanished in one video on her party. +		// This is a bug in video, so we work around it. +		_woodruffCohCottWorkaround = false; +		if (_vm->getGameType() == kGameTypeWoodruff) { +			if (!scumm_stricmp(fileName, "SQ32-03.VMD")) +				_woodruffCohCottWorkaround = true; +		} +  		_ownSurf = false;  		if (!(flags & kFlagNoVideo)) { @@ -657,6 +666,12 @@ void VideoPlayer::playFrame(int16 frame, int16 breakKey,  	Graphics::CoktelVideo::State state = video.nextFrame();  	WRITE_VAR(11, frame); +	if (_woodruffCohCottWorkaround && (frame == 32)) { +		// WORKAROUND: This frame mistakenly masks Coh Cott, making her vanish +		// To prevent that, we'll never draw that part +		state.left += 50; +	} +  	if (_needBlit)  		_vm->_draw->forceBlit(true); diff --git a/engines/gob/videoplayer.h b/engines/gob/videoplayer.h index ead752d446..e2e2ef6787 100644 --- a/engines/gob/videoplayer.h +++ b/engines/gob/videoplayer.h @@ -152,6 +152,8 @@ private:  	bool _needBlit;  	bool _noCursorSwitch; +	bool _woodruffCohCottWorkaround; +  	bool findFile(char *fileName, Type &which);  	const Video *getVideoBySlot(int slot = -1) const;  | 
