aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur/data.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/voyeur/data.cpp')
-rw-r--r--engines/voyeur/data.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/engines/voyeur/data.cpp b/engines/voyeur/data.cpp
index ef072e8737..ed308f4c2a 100644
--- a/engines/voyeur/data.cpp
+++ b/engines/voyeur/data.cpp
@@ -41,6 +41,12 @@ void VoyeurEvent::synchronize(Common::Serializer &s) {
SVoy::SVoy() {
// Initialise all the data fields of SVoy to empty values
Common::fill((byte *)this, (byte *)this + sizeof(SVoy), 0);
+
+ _eventFlags = EVTFLAG_TIME_DISABLED;
+ _field4376 = _field4378 = 127;
+ _murderThreshold = 9999;
+ _aptLoadMode = -1;
+ _eventFlags |= EVTFLAG_100;
}
void SVoy::setVm(VoyeurEngine *vm) {
@@ -90,8 +96,8 @@ void SVoy::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_computerTextId);
s.syncAsSint16LE(_computerTimeMin);
s.syncAsSint16LE(_computerTimeMax);
- s.syncAsSint16LE(_field4F0);
- s.syncAsSint16LE(_field4F2);
+ s.syncAsSint16LE(_victimMurdered);
+ s.syncAsSint16LE(_murderThreshold);
// Events
s.syncAsUint16LE(_eventCount);
@@ -103,7 +109,7 @@ void SVoy::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_field437A);
s.syncAsSint16LE(_field437C);
s.syncAsSint16LE(_field437E);
- s.syncAsSint16LE(_field4380);
+ s.syncAsSint16LE(_victimNumber);
s.syncAsSint16LE(_field4382);
s.syncAsSint16LE(_videoEventId);
@@ -232,7 +238,7 @@ void SVoy::reviewComputerEvent(int eventIndex) {
bool SVoy::checkForKey() {
WRITE_LE_UINT32(_vm->_controlPtr->_ptr + 8, 0);
- if (_vm->_voy._field4F0)
+ if (_vm->_voy._victimMurdered)
return false;
for (int eventIdx = 0; eventIdx < _eventCount; ++eventIdx) {
@@ -243,12 +249,12 @@ bool SVoy::checkForKey() {
case EVTYPE_VIDEO:
switch (READ_LE_UINT32(_vm->_controlPtr->_ptr + 4)) {
case 1:
- if (e._audioVideoId == 33 && e._computerOn < 1 && e._computerOff > 40)
+ if (e._audioVideoId == 33 && e._computerOn < 2 && e._computerOff >= 38)
WRITE_LE_UINT32(_vm->_controlPtr->_ptr + 8, 1);
break;
case 2:
- if (e._audioVideoId == 47 && e._computerOn < 1 && e._computerOff > 11)
+ if (e._audioVideoId == 47 && e._computerOn < 2 && e._computerOff >= 9)
WRITE_LE_UINT32(_vm->_controlPtr->_ptr + 8, 2);
break;
@@ -258,7 +264,7 @@ bool SVoy::checkForKey() {
break;
case 4:
- if (e._audioVideoId == 40 && e._computerOn < 2 && e._computerOff > 7)
+ if (e._audioVideoId == 40 && e._computerOn < 2 && e._computerOff > 6)
WRITE_LE_UINT32(_vm->_controlPtr->_ptr + 8, 4);
break;
@@ -270,14 +276,14 @@ bool SVoy::checkForKey() {
case EVTYPE_AUDIO:
switch (READ_LE_UINT32(_vm->_controlPtr->_ptr + 4)) {
case 1:
- if (e._audioVideoId == 8 && e._computerOn < 2 && e._computerOff > 28)
+ if (e._audioVideoId == 8 && e._computerOn < 2 && e._computerOff > 26)
WRITE_LE_UINT32(_vm->_controlPtr->_ptr + 8, 1);
break;
case 3:
- if (e._audioVideoId == 20 && e._computerOn < 2 && e._computerOff > 30)
+ if (e._audioVideoId == 20 && e._computerOn < 2 && e._computerOff > 28)
WRITE_LE_UINT32(_vm->_controlPtr->_ptr + 8, 3);
- if (e._audioVideoId == 35 && e._computerOn < 2 && e._computerOff > 20)
+ if (e._audioVideoId == 35 && e._computerOn < 2 && e._computerOff > 18)
WRITE_LE_UINT32(_vm->_controlPtr->_ptr + 8, 3);
break;