void CTrueTalkManager::triggerNPC(CTrueTalkNPC *npc) { CTrueTalkSelfQueueAnimSetMsg queueSetMsg; if (queueSetMsg.execute(npc)) { if (_speechDuration > 300) { CTrueTalkQueueUpAnimSetMsg upMsg(_speechDuration); upMsg.execute(npc); } } else { CTrueTalkGetAnimSetMsg getAnimMsg; while (_speechDuration > 300) { getAnimMsg.execute(npc); if (!getAnimMsg._endFrame) break; npc->playMovie(getAnimMsg._startFrame, getAnimMsg._endFrame, 0); getAnimMsg._endFrame = 0; uint numFrames = getAnimMsg._endFrame - getAnimMsg._startFrame; int diff = (numFrames * 1000) / 15 - 500; _speechDuration += diff; getAnimMsg._index++; } } }
void CInputHandler::decLockCount() { if (--_lockCount == 0 && _inputTranslator) { if (_dragging && !_inputTranslator->isMousePressed()) { CMouseButtonUpMsg upMsg(_mousePos, MK_LBUTTON); handleMessage(upMsg); } _buttonDown = _inputTranslator->isMousePressed(); _singleton = true; } }