diff options
author | Paul Gilbert | 2013-12-25 16:05:01 +1100 |
---|---|---|
committer | Paul Gilbert | 2013-12-25 16:05:01 +1100 |
commit | 562df7ede10f8340faf92f9c47d0414467b03852 (patch) | |
tree | eb63f7668a2e7273cb1b392ac79adffcb3028a63 | |
parent | c5f9cf913440cfdaeb7d7798cc0c490a2ea0d067 (diff) | |
download | scummvm-rg350-562df7ede10f8340faf92f9c47d0414467b03852.tar.gz scummvm-rg350-562df7ede10f8340faf92f9c47d0414467b03852.tar.bz2 scummvm-rg350-562df7ede10f8340faf92f9c47d0414467b03852.zip |
VOYEUR: Implement doTapePlaying
-rw-r--r-- | engines/voyeur/files.cpp | 10 | ||||
-rw-r--r-- | engines/voyeur/files.h | 9 | ||||
-rw-r--r-- | engines/voyeur/voyeur_game.cpp | 23 |
3 files changed, 41 insertions, 1 deletions
diff --git a/engines/voyeur/files.cpp b/engines/voyeur/files.cpp index 9dff1f0ea7..69256aacb2 100644 --- a/engines/voyeur/files.cpp +++ b/engines/voyeur/files.cpp @@ -1393,4 +1393,14 @@ ControlResource::ControlResource(BoltFilesState &state, const byte *src) { } } +/*------------------------------------------------------------------------*/ + +void CycleResource::vStartCycle() { + error("TODO: vStartCycle"); +} + +void CycleResource::vStopCycle() { + error("TODO: vStopCycle"); +} + } // End of namespace Voyeur diff --git a/engines/voyeur/files.h b/engines/voyeur/files.h index f15f066736..7c004a526f 100644 --- a/engines/voyeur/files.h +++ b/engines/voyeur/files.h @@ -418,6 +418,15 @@ public: virtual ~ControlResource() {} }; +class CycleResource { +public: + CycleResource(BoltFilesState &state, const byte *src) {} + virtual ~CycleResource() {} + + void vStartCycle(); + void vStopCycle(); +}; + class ThreadResource { public: static int _stampFlags; diff --git a/engines/voyeur/voyeur_game.cpp b/engines/voyeur/voyeur_game.cpp index 468d6b1387..2be982b2b9 100644 --- a/engines/voyeur/voyeur_game.cpp +++ b/engines/voyeur/voyeur_game.cpp @@ -572,7 +572,28 @@ void VoyeurEngine::doGossip() { } void VoyeurEngine::doTapePlaying() { - warning("TODO"); + if (!_bVoy->getBoltGroup(0xA00)) + return; + + _eventsManager.getMouseInfo(); + _graphicsManager._backColors = _bVoy->boltEntry(0xA01)._cMapResource; + _graphicsManager._backgroundPage = _bVoy->boltEntry(0xA00)._picResource; + PictureResource *pic = _bVoy->boltEntry(0xA02)._picResource; + + (*_graphicsManager._vPort)->setupViewPort(_graphicsManager._backgroundPage); + _graphicsManager.sDrawPic(pic, *_graphicsManager._vPort, Common::Point(57, 30)); + flipPageAndWaitForFade(); + + CycleResource *cycle = _bVoy->boltEntry(0xA05)._cycleResource; + cycle->vStartCycle(); + + _soundManager.startVOCPlay("vcr.voc"); + while (!shouldQuit() && !_voy._incriminate && _soundManager.getVOCStatus()) { + _eventsManager.delay(2); + } + + _soundManager.stopVOCPlay(); + _bVoy->freeBoltGroup(0xA00); } bool VoyeurEngine::checkForMurder() { |