diff options
author | Alyssa Milburn | 2010-12-05 22:10:20 +0000 |
---|---|---|
committer | Alyssa Milburn | 2010-12-05 22:10:20 +0000 |
commit | 433a10e7736efe69011915ec5ec6dad49d6b933b (patch) | |
tree | d8a80c7f23d43725ab025cccd86d9da990a16bb7 | |
parent | 899f6a9e8896a2ce21bc64327495cbefa57a7cc4 (diff) | |
download | scummvm-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.cpp | 15 | ||||
-rw-r--r-- | engines/mohawk/livingbooks.h | 4 |
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 { |