Пример #1
0
    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();

    }
Пример #2
0
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()));
}
Пример #3
0
    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();
    }
Пример #4
0
    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);
            }
        }
    }
Пример #5
0
    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);
        }
    }
Пример #6
0
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") {
Пример #7
0
 void WaitDialog::wakeUp ()
 {
     mSleeping = false;
     mTimeAdvancer.stop();
     stopWaiting();
 }
Пример #8
0
 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();
}
Пример #10
0
 void WaitDialog::wakeUp ()
 {
     mSleeping = false;
     mWaiting = false;
     stopWaiting();
 }