Esempio n. 1
0
    void Camera::update(float duration, bool paused)
    {
        if (mAnimation->upperBodyReady())
        {
            // Now process the view changes we queued earlier
            if (mVanityToggleQueued)
            {
                toggleVanityMode(!mVanity.enabled);
                mVanityToggleQueued = false;
            }
            if (mViewModeToggleQueued)
            {

                togglePreviewMode(false);
                toggleViewMode();
                mViewModeToggleQueued = false;
            }
        }

        if (paused)
            return;

        // only show the crosshair in game mode and in first person mode.
        MWBase::WindowManager *wm = MWBase::Environment::get().getWindowManager();
        wm->showCrosshair(!wm->isGuiMode() && (mFirstPersonView && !mVanity.enabled && !mPreviewMode));

        if(mVanity.enabled)
        {
            rotateCamera(0.f, osg::DegreesToRadians(3.f * duration), true);
        }
    }
Esempio n. 2
0
 void Camera::reset()
 {
     togglePreviewMode(false);
     toggleVanityMode(false);
     if (!mFirstPersonView)
         toggleViewMode();
 }
Esempio n. 3
0
    void Camera::update(float duration, bool paused)
    {
        if (mAnimation->allowSwitchViewMode())
        {
            // Now process the view changes we queued earlier
            if (mVanityToggleQueued)
            {
                toggleVanityMode(!mVanity.enabled);
                mVanityToggleQueued = false;
            }
            if (mViewModeToggleQueued)
            {

                togglePreviewMode(false);
                toggleViewMode();
                mViewModeToggleQueued = false;
            }
        }

        updateListener();
        if (paused)
            return;

        // only show the crosshair in game mode and in first person mode.
        MWBase::WindowManager *wm = MWBase::Environment::get().getWindowManager();
        wm->showCrosshair(!wm->isGuiMode() && (mFirstPersonView && !mVanity.enabled && !mPreviewMode));

        if(mVanity.enabled)
        {
            Ogre::Vector3 rot(0.f, 0.f, 0.f);
            rot.z = Ogre::Degree(3.f * duration).valueRadians();
            rotateCamera(rot, true);
        }
    }
Esempio n. 4
0
    bool Player::rotate(const Ogre::Vector3 &rot, bool adjust)
    {
        if (mVanity.enabled) {
            toggleVanityMode(false);
        }

        Ogre::Vector3 trueRot = rot;

        /// \note rotate player on forced vanity
        if (mVanity.forced) {
            if (mFreeLook) {
                float diff = (adjust) ? rot.z : mMainCam.yaw - rot.z;

                mVanity.enabled = false;
                rotateCamera(rot, adjust);
                mVanity.enabled = true;

                compensateYaw(diff);
            }
            trueRot.z = 0.f;
        }

        if (mFreeLook || mVanity.enabled || mPreviewMode) {
            rotateCamera(trueRot, adjust);
        }

        /// \note if vanity mode is forced by TVM then rotate player
        return (!mVanity.enabled && !mPreviewMode) || mVanity.forced;
    }
Esempio n. 5
0
 void Player::allowVanityMode(bool allow)
 {
     if (!allow && mVanity.enabled && !mVanity.forced) {
         toggleVanityMode(false);
     }
     mVanity.allowed = allow;
 }
Esempio n. 6
0
 void Camera::allowVanityMode(bool allow)
 {
     if (!allow && mVanity.enabled)
         toggleVanityMode(false);
     mVanity.allowed = allow;
 }