aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2013-12-24 10:32:41 +1100
committerPaul Gilbert2013-12-24 10:32:41 +1100
commit156f78e7cdb4c49b437c378d7239806784bcee54 (patch)
tree387c9e7b5c6db4ced4a8e31583f1d5cd60194fec
parent1af5a3b1b4174c2238b6d7ab81600eefe929dc9c (diff)
downloadscummvm-rg350-156f78e7cdb4c49b437c378d7239806784bcee54.tar.gz
scummvm-rg350-156f78e7cdb4c49b437c378d7239806784bcee54.tar.bz2
scummvm-rg350-156f78e7cdb4c49b437c378d7239806784bcee54.zip
VOYEUR: Bugfixes and move for doScroll method
-rw-r--r--engines/voyeur/files.h4
-rw-r--r--engines/voyeur/files_threads.cpp2
-rw-r--r--engines/voyeur/graphics.cpp41
-rw-r--r--engines/voyeur/graphics.h1
-rw-r--r--engines/voyeur/voyeur.h6
-rw-r--r--engines/voyeur/voyeur_game.cpp43
6 files changed, 53 insertions, 44 deletions
diff --git a/engines/voyeur/files.h b/engines/voyeur/files.h
index 61c910be49..aa03383366 100644
--- a/engines/voyeur/files.h
+++ b/engines/voyeur/files.h
@@ -505,6 +505,10 @@ public:
bool chooseSTAMPButton(int buttonId);
void parsePlayCommands();
+
+ /**
+ * Do the camera view looking at the mansion
+ */
int doInterface();
void doRoom();
diff --git a/engines/voyeur/files_threads.cpp b/engines/voyeur/files_threads.cpp
index be35143932..4432d7eb84 100644
--- a/engines/voyeur/files_threads.cpp
+++ b/engines/voyeur/files_threads.cpp
@@ -1438,7 +1438,7 @@ int ThreadResource::doInterface() {
pt = _vm->_eventsManager.getMousePos();
if (pt.x != _currentMouseX || pt.y != _currentMouseY || regionIndex != priorRegionIndex) {
priorRegionIndex = regionIndex;
- _vm->_graphicsManager.doScroll(pt);
+ _vm->doScroll(pt);
_currentMouseX = pt.x;
_currentMouseY = pt.y;
diff --git a/engines/voyeur/graphics.cpp b/engines/voyeur/graphics.cpp
index 185f51be54..a62a912c35 100644
--- a/engines/voyeur/graphics.cpp
+++ b/engines/voyeur/graphics.cpp
@@ -692,47 +692,6 @@ void GraphicsManager::screenReset() {
_vm->_eventsManager.sWaitFlip();
}
-void GraphicsManager::doScroll(const Common::Point &pt) {
- Common::Rect clipRect(72, 47, 240, 148);
- (*_vm->_graphicsManager._vPort)->setupViewPort(NULL, &clipRect);
-
- PictureResource *pic;
- int base = 0;
- switch (_vm->_voy._transitionId) {
- case 0:
- break;
- case 1:
- case 2:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- base = 0xB00;
- break;
- case 3:
- base = 0xC00;
- break;
- default:
- base = 0xD00;
- }
-
- if (base) {
- pic = _vm->_bVoy->boltEntry(base + 3)._picResource;
- sDrawPic(pic, *_vPort, Common::Point(784 - pt.x + 712, 150 - pt.y - 104));
- pic = _vm->_bVoy->boltEntry(base + 4)._picResource;
- sDrawPic(pic, *_vPort, Common::Point(784 - pt.x + 712, 150 - pt.y - 44));
- pic = _vm->_bVoy->boltEntry(base + 5)._picResource;
- sDrawPic(pic, *_vPort, Common::Point(784 - pt.x + 712, 150 - pt.y + 16));
- pic = _vm->_bVoy->boltEntry(base + 6)._picResource;
- sDrawPic(pic, *_vPort, Common::Point(784 - pt.x + 712, 150 - pt.y + 76));
- pic = _vm->_bVoy->boltEntry(base + 7)._picResource;
- sDrawPic(pic, *_vPort, Common::Point(784 - pt.x + 712, 150 - pt.y + 136));
- }
-
- (*_vPort)->setupViewPort();
-}
-
void GraphicsManager::fadeDownICF1(int steps) {
if (steps > 0) {
int stepAmount = _vm->_voy._field4378 / steps;
diff --git a/engines/voyeur/graphics.h b/engines/voyeur/graphics.h
index 1017726a0b..3bfef0ee81 100644
--- a/engines/voyeur/graphics.h
+++ b/engines/voyeur/graphics.h
@@ -112,7 +112,6 @@ public:
void setColor(int idx, byte r, byte g, byte b);
void setOneColor(int idx, byte r, byte g, byte b);
void screenReset();
- void doScroll(const Common::Point &pt);
void fadeDownICF1(int steps);
void fadeUpICF1(int steps);
void fadeDownICF(int steps);
diff --git a/engines/voyeur/voyeur.h b/engines/voyeur/voyeur.h
index a48f9c2784..0da5058992 100644
--- a/engines/voyeur/voyeur.h
+++ b/engines/voyeur/voyeur.h
@@ -165,6 +165,12 @@ public:
* If necessary, flashes the time remaining bar on the video camera screen
*/
void flashTimeBar();
+
+ /**
+ * Handle scrolling of the mansion view in the camera sights
+ */
+ void doScroll(const Common::Point &pt);
+
void checkPhoneCall();
void doEvidDisplay(int v1, int v2);
diff --git a/engines/voyeur/voyeur_game.cpp b/engines/voyeur/voyeur_game.cpp
index b56f2c7551..1a6c2d1673 100644
--- a/engines/voyeur/voyeur_game.cpp
+++ b/engines/voyeur/voyeur_game.cpp
@@ -356,7 +356,7 @@ void VoyeurEngine::initIFace(){
CMapResource *pal = _bVoy->boltEntry(_playStamp1 + 2)._cMapResource;
pal->startFade();
- _graphicsManager.doScroll(_eventsManager.getMousePos());
+ doScroll(_eventsManager.getMousePos());
_voy._field4386 = _bVoy->memberAddr(_playStamp1);
@@ -365,6 +365,47 @@ void VoyeurEngine::initIFace(){
// getting resources as needed will be fast enough.
}
+void VoyeurEngine::doScroll(const Common::Point &pt) {
+ Common::Rect clipRect(72, 47, 72 + 240, 47 + 148);
+ (*_graphicsManager._vPort)->setupViewPort(NULL, &clipRect);
+
+ PictureResource *pic;
+ int base = 0;
+ switch (_voy._transitionId) {
+ case 0:
+ break;
+ case 1:
+ case 2:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ base = 0xB00;
+ break;
+ case 3:
+ base = 0xC00;
+ break;
+ default:
+ base = 0xD00;
+ }
+
+ if (base) {
+ pic = _bVoy->boltEntry(base + 3)._picResource;
+ _graphicsManager.sDrawPic(pic, *_graphicsManager._vPort, Common::Point(784 - pt.x - 712, 150 - pt.y - 104));
+ pic = _bVoy->boltEntry(base + 4)._picResource;
+ _graphicsManager.sDrawPic(pic, *_graphicsManager._vPort, Common::Point(784 - pt.x - 712, 150 - pt.y - 44));
+ pic = _bVoy->boltEntry(base + 5)._picResource;
+ _graphicsManager.sDrawPic(pic, *_graphicsManager._vPort, Common::Point(784 - pt.x - 712, 150 - pt.y + 16));
+ pic = _bVoy->boltEntry(base + 6)._picResource;
+ _graphicsManager.sDrawPic(pic, *_graphicsManager._vPort, Common::Point(784 - pt.x - 712, 150 - pt.y + 76));
+ pic = _bVoy->boltEntry(base + 7)._picResource;
+ _graphicsManager.sDrawPic(pic, *_graphicsManager._vPort, Common::Point(784 - pt.x - 712, 150 - pt.y + 136));
+ }
+
+ (*_graphicsManager._vPort)->setupViewPort();
+}
+
void VoyeurEngine::checkTransition(){
Common::String time, day;