From 2f91c18b22d584dbcaba9f86396bb322050f5344 Mon Sep 17 00:00:00 2001 From: Paweł Kołodziejski Date: Sun, 15 Sep 2002 05:38:04 +0000 Subject: speed changes to play smush movies svn-id: r4941 --- scumm/script_v2.cpp | 10 ++++++++-- scumm/smush/scumm_renderer.cpp | 7 +++++-- scumm/smush/scumm_renderer.h | 3 ++- scumm/sound.cpp | 2 +- 4 files changed, 16 insertions(+), 6 deletions(-) (limited to 'scumm') diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index a9ae800685..19315bce23 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -2709,8 +2709,13 @@ void Scumm::o6_miscOps() case 4: grabCursor(args[1], args[2], args[3], args[4]); break; - case 6: { - ScummRenderer sr(this); + case 6: { + uint32 speed; + if (strcmp((char*)getStringAddressVar(VAR_VIDEONAME), "sq3.san") == 0) + speed = 71; + else + speed = 1000 / _insaneFlag; + ScummRenderer sr(this, speed); SmushPlayer sp(&sr); char filename[512]; strcpy(filename, _gameDataPath); @@ -2718,6 +2723,7 @@ void Scumm::o6_miscOps() strcat(filename, (char*)getStringAddressVar(VAR_VIDEONAME)); sp.play(filename); } + break; case 7: warning("o6_miscOps: stub7()"); break; diff --git a/scumm/smush/scumm_renderer.cpp b/scumm/smush/scumm_renderer.cpp index cbb4ed31f5..e6b9454801 100644 --- a/scumm/smush/scumm_renderer.cpp +++ b/scumm/smush/scumm_renderer.cpp @@ -188,7 +188,10 @@ bool scumm_mixer::stop() { return true; } -ScummRenderer::ScummRenderer(Scumm * scumm) : _scumm(scumm), _smixer(0) { +ScummRenderer::ScummRenderer(Scumm * scumm, uint32 speed) : + _scumm(scumm), + _smixer(0), + _insaneSpeed(speed) { } static ScummRenderer * s_renderer; @@ -203,7 +206,7 @@ Mixer * ScummRenderer::getMixer() { _smixer = new scumm_mixer(_scumm->_mixer); if(!_smixer) error("unable to allocate a smush mixer"); s_renderer = this; - _scumm->_timer->installProcedure(&smush_handler, 83); + _scumm->_timer->installProcedure(&smush_handler, _insaneSpeed); } return _smixer; } diff --git a/scumm/smush/scumm_renderer.h b/scumm/smush/scumm_renderer.h index 31dbd8af6e..d77e86da0a 100644 --- a/scumm/smush/scumm_renderer.h +++ b/scumm/smush/scumm_renderer.h @@ -44,9 +44,10 @@ class ScummRenderer : public BaseRenderer { private: Scumm * _scumm; scumm_mixer * _smixer; + uint32 _insaneSpeed; volatile bool _wait; public: - ScummRenderer(Scumm * scumm); + ScummRenderer(Scumm * scumm, uint32 speed); virtual ~ScummRenderer(); virtual bool wait(int32 ms); bool update(); diff --git a/scumm/sound.cpp b/scumm/sound.cpp index 6a50f4d8b5..12032485ed 100644 --- a/scumm/sound.cpp +++ b/scumm/sound.cpp @@ -105,7 +105,7 @@ void Sound::processSoundQues() { #endif if ((_scumm->_gameId == GID_DIG) && (data[0] == 4096)){ - playBundleMusic(data[1] - 1); +// playBundleMusic(data[1] - 1); } if (!(_scumm->_features & GF_AFTER_V7)) { -- cgit v1.2.3