diff options
-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 { |