aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur
diff options
context:
space:
mode:
authorPaul Gilbert2014-01-05 16:47:03 -0500
committerPaul Gilbert2014-01-05 16:47:03 -0500
commitc884d5bf1488db9d05b0afb0088768a97f6b1b52 (patch)
treef7bab8fca8cb20ed1206720927feda68696c6a5e /engines/voyeur
parent9c2b761b310fecc098c721676163fa34b96b6666 (diff)
downloadscummvm-rg350-c884d5bf1488db9d05b0afb0088768a97f6b1b52.tar.gz
scummvm-rg350-c884d5bf1488db9d05b0afb0088768a97f6b1b52.tar.bz2
scummvm-rg350-c884d5bf1488db9d05b0afb0088768a97f6b1b52.zip
VOYEUR: Added a state field for current game area
Diffstat (limited to 'engines/voyeur')
-rw-r--r--engines/voyeur/files.cpp4
-rw-r--r--engines/voyeur/files_threads.cpp3
-rw-r--r--engines/voyeur/voyeur.cpp2
-rw-r--r--engines/voyeur/voyeur.h3
-rw-r--r--engines/voyeur/voyeur_game.cpp3
5 files changed, 11 insertions, 4 deletions
diff --git a/engines/voyeur/files.cpp b/engines/voyeur/files.cpp
index 1e08acb489..2403898e6f 100644
--- a/engines/voyeur/files.cpp
+++ b/engines/voyeur/files.cpp
@@ -286,8 +286,8 @@ void BoltFile::freeBoltGroup(uint16 id, bool freeEntries) {
}
void BoltFile::freeBoltMember(uint32 id) {
- // TODO: Determine whether this is needed
- warning("TODO: BoltFile::freeBoltMember");
+ // TODO: Determine whether this is needed, given all group entries are automatically loaded
+// warning("TODO: BoltFile::freeBoltMember");
}
BoltEntry &BoltFile::getBoltEntryFromLong(uint32 id) {
diff --git a/engines/voyeur/files_threads.cpp b/engines/voyeur/files_threads.cpp
index d412e11566..20d781457d 100644
--- a/engines/voyeur/files_threads.cpp
+++ b/engines/voyeur/files_threads.cpp
@@ -1061,6 +1061,7 @@ int ThreadResource::doApt() {
Common::Point pt;
PictureResource *pic;
do {
+ _vm->_voyeurArea = AREA_APARTMENT;
_vm->_eventsManager.getMouseInfo();
if (!_vm->_soundManager.getVOCStatus()) {
// Previous sound ended, so start up a new one
@@ -1173,6 +1174,7 @@ void ThreadResource::doRoom() {
bool breakFlag = false;
while (!vm.shouldQuit() && !breakFlag) {
+ _vm->_voyeurArea = AREA_ROOM;
vm._graphicsManager.setColor(128, 0, 255, 0);
vm._eventsManager._intPtr.field38 = 1;
vm._eventsManager._intPtr._hasPalette = true;
@@ -1402,6 +1404,7 @@ int ThreadResource::doInterface() {
MANSION_VIEW_X + MANSION_VIEW_WIDTH, MANSION_VIEW_Y + MANSION_VIEW_HEIGHT);
do {
+ _vm->_voyeurArea = AREA_INTERFACE;
_vm->doTimeBar(true);
_vm->_eventsManager.getMouseInfo();
diff --git a/engines/voyeur/voyeur.cpp b/engines/voyeur/voyeur.cpp
index 37ed0be6be..a6ad25f618 100644
--- a/engines/voyeur/voyeur.cpp
+++ b/engines/voyeur/voyeur.cpp
@@ -53,7 +53,7 @@ VoyeurEngine::VoyeurEngine(OSystem *syst, const VoyeurGameDescription *gameDesc)
_flashTimeFlag = false;
_timeBarVal = -1;
_checkPhoneVal = 0;
- _mansionScrollCountdown = 0;
+ _voyeurArea = AREA_NONE;
initialiseManagers();
}
diff --git a/engines/voyeur/voyeur.h b/engines/voyeur/voyeur.h
index 69055498be..53f170819f 100644
--- a/engines/voyeur/voyeur.h
+++ b/engines/voyeur/voyeur.h
@@ -69,6 +69,7 @@ enum VoyeurDebugChannels {
kDebugScripts = 1 << 1
};
+enum VoyeurArea { AREA_NONE, AREA_APARTMENT, AREA_INTERFACE, AREA_ROOM, AREA_EVIDENCE };
struct VoyeurGameDescription;
@@ -171,7 +172,7 @@ public:
int _timeBarVal;
int _checkPhoneVal;
Common::Point _mansionViewPos;
- int _mansionScrollCountdown;
+ VoyeurArea _voyeurArea;
public:
VoyeurEngine(OSystem *syst, const VoyeurGameDescription *gameDesc);
virtual ~VoyeurEngine();
diff --git a/engines/voyeur/voyeur_game.cpp b/engines/voyeur/voyeur_game.cpp
index 9f70d7418a..e6f8d612f3 100644
--- a/engines/voyeur/voyeur_game.cpp
+++ b/engines/voyeur/voyeur_game.cpp
@@ -47,6 +47,7 @@ void VoyeurEngine::playStamp() {
int buttonId;
bool breakFlag = false;
while (!breakFlag && !shouldQuit()) {
+ _voyeurArea = AREA_NONE;
_eventsManager.getMouseInfo();
_playStampGroupId = _currentVocId = -1;
_videoId = -1;
@@ -1334,6 +1335,8 @@ void VoyeurEngine::doEvidDisplay(int evidId, int eventId) {
int evidIdx = evidId;
while (!shouldQuit() && !_eventsManager._rightClick) {
+ _voyeurArea = AREA_EVIDENCE;
+
if (_currentVocId != -1 && !_soundManager.getVOCStatus()) {
if (_voy._vocSecondsOffset > 60)
_voy._vocSecondsOffset = 0;