aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Milburn2010-12-05 22:10:20 +0000
committerAlyssa Milburn2010-12-05 22:10:20 +0000
commit433a10e7736efe69011915ec5ec6dad49d6b933b (patch)
treed8a80c7f23d43725ab025cccd86d9da990a16bb7
parent899f6a9e8896a2ce21bc64327495cbefa57a7cc4 (diff)
downloadscummvm-rg350-433a10e7736efe69011915ec5ec6dad49d6b933b.tar.gz
scummvm-rg350-433a10e7736efe69011915ec5ec6dad49d6b933b.tar.bz2
scummvm-rg350-433a10e7736efe69011915ec5ec6dad49d6b933b.zip
MOHAWK: handle -1 phase for LB 2/3 items
svn-id: r54791
-rw-r--r--engines/mohawk/livingbooks.cpp15
-rw-r--r--engines/mohawk/livingbooks.h4
2 files changed, 18 insertions, 1 deletions
diff --git a/engines/mohawk/livingbooks.cpp b/engines/mohawk/livingbooks.cpp
index bfec10e9a0..0f9e302d0c 100644
--- a/engines/mohawk/livingbooks.cpp
+++ b/engines/mohawk/livingbooks.cpp
@@ -335,6 +335,9 @@ void MohawkEngine_LivingBooks::updatePage() {
switch (_phase) {
case 0:
for (uint32 i = 0; i < _items.size(); i++)
+ _items[i]->startPhase(0xFFFF);
+
+ for (uint32 i = 0; i < _items.size(); i++)
_items[i]->startPhase(_phase);
if (_curMode == kLBControlMode) {
@@ -1730,6 +1733,7 @@ void LBItem::readData(uint16 type, uint16 size, Common::SeekableSubReadStreamEnd
if (size != 2)
error("SetPlayPhase had wrong size (%d)", size);
_phase = stream->readUint16();
+ debug(2, "kLBSetPlayPhase: %d", _phase);
break;
case kLBUnknown6F:
@@ -1964,8 +1968,19 @@ void LBItem::startPhase(uint phase) {
setEnabled(true);
switch (phase) {
+ case 0xFFFF:
+ runScript(kLBActionPrePhase);
+ if (_timingMode == 6) {
+ debug(2, "Phase -1 time startup");
+ setNextTime(_periodMin, _periodMax);
+ }
+ break;
case 0:
runScript(kLBActionPhase0);
+ if (_timingMode == 5) {
+ debug(2, "Phase 0 time startup");
+ setNextTime(_periodMin, _periodMax);
+ }
break;
case 1:
runScript(kLBActionPhase1);
diff --git a/engines/mohawk/livingbooks.h b/engines/mohawk/livingbooks.h
index 8a06e8bc2b..94cc7f423f 100644
--- a/engines/mohawk/livingbooks.h
+++ b/engines/mohawk/livingbooks.h
@@ -91,7 +91,9 @@ enum {
kLBActionStarted = 3,
kLBActionDone = 4,
kLBActionMouseUp = 5,
- kLBActionPhase2 = 6
+ kLBActionPhase2 = 6,
+ kLBActionNotified = 7,
+ kLBActionPrePhase = 0xff
};
enum {