diff options
Diffstat (limited to 'engines/mohawk/cstime.cpp')
-rw-r--r-- | engines/mohawk/cstime.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/engines/mohawk/cstime.cpp b/engines/mohawk/cstime.cpp index 6d4b370a30..44c61176be 100644 --- a/engines/mohawk/cstime.cpp +++ b/engines/mohawk/cstime.cpp @@ -310,6 +310,24 @@ void MohawkEngine_CSTime::eventIdle() { } break; + case kCSTimeEventCharSomeNIS55: + // This is like kCSTimeEventCharPlayNIS, only using a different flag variable. + if (_processingNIS55) { + CSTimeChar *chr = _case->getCurrScene()->getChar(event.param1); + if (chr->NISIsDone()) { + chr->removeNIS(); + _processingNIS55 = false; + chr->setupAmbientAnims(true); + _events.pop_front(); + processEvent = false; + } else { + done = true; + } + } else { + advanceQueue = false; + } + break; + default: break; } @@ -350,6 +368,7 @@ bool MohawkEngine_CSTime::NISIsRunning() { void MohawkEngine_CSTime::reset() { _NISRunning = false; + _processingNIS55 = false; _lastTimeout = 0xffffffff; _processingEvent = false; } @@ -531,6 +550,11 @@ void MohawkEngine_CSTime::triggerEvent(CSTimeEvent &event) { // FIXME break; + case kCSTimeEventCharSomeNIS55: + _processingNIS55 = true; + _case->getCurrScene()->getChar(event.param1)->playNIS(event.param2); + break; + case kCSTimeEventUpdateBubble: switch (event.param2) { case 0: |