aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2013-12-25 16:05:01 +1100
committerPaul Gilbert2013-12-25 16:05:01 +1100
commit562df7ede10f8340faf92f9c47d0414467b03852 (patch)
treeeb63f7668a2e7273cb1b392ac79adffcb3028a63
parentc5f9cf913440cfdaeb7d7798cc0c490a2ea0d067 (diff)
downloadscummvm-rg350-562df7ede10f8340faf92f9c47d0414467b03852.tar.gz
scummvm-rg350-562df7ede10f8340faf92f9c47d0414467b03852.tar.bz2
scummvm-rg350-562df7ede10f8340faf92f9c47d0414467b03852.zip
VOYEUR: Implement doTapePlaying
-rw-r--r--engines/voyeur/files.cpp10
-rw-r--r--engines/voyeur/files.h9
-rw-r--r--engines/voyeur/voyeur_game.cpp23
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() {