void WaitDialog::onFrame(float dt) { if (!mWaiting) return; mRemainingTime -= dt; while (mRemainingTime < 0) { mRemainingTime += 0.05; ++mCurHour; mProgressBar.setProgress (mCurHour, mHours); if (mCurHour <= mHours) { MWBase::Environment::get().getWorld ()->advanceTime (1); if (mSleeping) MWBase::Environment::get().getMechanicsManager ()->restoreDynamicStats (); } } if (mCurHour > mHours) stopWaiting(); }
void Executer::executeWait(TreeNode* node) { // //qDebug() << "called"; if (!checkParameterQuantity(node, 1, 20000+Token::Wait*100+90)) return; if (!checkParameterType(node, Value::Number, 20000+Token::Wait*100+91) ) return; waiting = true; QTimer::singleShot((int)(1000*node->child(0)->value()->number()), this, SLOT(stopWaiting())); }
void WaitDialog::onWaitingProgressChanged(int cur, int total) { mProgressBar.setProgress(cur, total); MWBase::Environment::get().getMechanicsManager()->rest(mSleeping); MWBase::Environment::get().getWorld()->advanceTime(1); MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr(); if (player.getClass().getCreatureStats(player).isDead()) stopWaiting(); }
void WaitDialog::onFrame(float dt) { if (!mWaiting) return; if (mCurHour == mInterruptAt) { MWBase::Environment::get().getWindowManager()->messageBox("#{sSleepInterrupt}"); MWBase::Environment::get().getWorld()->spawnRandomCreature(mInterruptCreatureList); stopWaiting(); } mRemainingTime -= dt; while (mRemainingTime < 0) { mRemainingTime += 0.05; ++mCurHour; mProgressBar.setProgress (mCurHour, mHours); if (mCurHour <= mHours) { MWBase::Environment::get().getWorld ()->advanceTime (1); MWBase::Environment::get().getMechanicsManager ()->rest (mSleeping); } } if (mCurHour > mHours) { stopWaiting(); MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr(); const MWMechanics::NpcStats &pcstats = player.getClass().getNpcStats(player); // trigger levelup if possible const MWWorld::Store<ESM::GameSetting> &gmst = MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>(); if (mSleeping && pcstats.getLevelProgress () >= gmst.find("iLevelUpTotal")->getInt()) { MWBase::Environment::get().getWindowManager()->pushGuiMode (GM_Levelup); } } }
void WaitDialog::onWaitingFinished() { stopWaiting(); MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr(); const MWMechanics::NpcStats &pcstats = player.getClass().getNpcStats(player); // trigger levelup if possible const MWWorld::Store<ESM::GameSetting> &gmst = MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>(); if (mSleeping && pcstats.getLevelProgress () >= gmst.find("iLevelUpTotal")->getInt()) { MWBase::Environment::get().getWindowManager()->pushGuiMode (GM_Levelup); } }
void QV4DebugServiceImpl::messageReceived(const QByteArray &message) { QMutexLocker lock(&m_configMutex); QQmlDebugPacket ms(message); QByteArray header; ms >> header; TRACE_PROTOCOL(qDebug() << "received message with header" << header); if (header == "V8DEBUG") { QByteArray type; QByteArray payload; ms >> type >> payload; TRACE_PROTOCOL(qDebug() << "... type:" << type); if (type == V4_CONNECT) { QJsonObject parameters = QJsonDocument::fromJson(payload).object(); namesAsObjects = true; redundantRefs = true; if (parameters.contains("namesAsObjects")) namesAsObjects = parameters.value("namesAsObjects").toBool(); if (parameters.contains("redundantRefs")) redundantRefs = parameters.value("redundantRefs").toBool(); emit messageToClient(name(), packMessage(type)); stopWaiting(); } else if (type == V4_PAUSE) { debuggerAgent.pauseAll(); sendSomethingToSomebody(type); } else if (type == V4_BREAK_ON_SIGNAL) { QByteArray signal; bool enabled; ms >> signal >> enabled; //Normalize to lower case. QString signalName(QString::fromUtf8(signal).toLower()); if (enabled) breakOnSignals.append(signalName); else breakOnSignals.removeOne(signalName); } else if (type == "v8request") {
void WaitDialog::wakeUp () { mSleeping = false; mTimeAdvancer.stop(); stopWaiting(); }
void WaitDialog::onWaitingInterrupted() { MWBase::Environment::get().getWindowManager()->messageBox("#{sSleepInterrupt}"); MWBase::Environment::get().getWorld()->spawnRandomCreature(mInterruptCreatureList); stopWaiting(); }
void QQmlConfigurableDebugService::stateChanged(QQmlDebugService::State newState) { if (newState != Enabled) stopWaiting(); }
void WaitDialog::wakeUp () { mSleeping = false; mWaiting = false; stopWaiting(); }