1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-03-31 13:06:40 +00:00

fix 1st/preview/1st change; 1st invisible model

This commit is contained in:
greye 2012-08-14 22:39:42 +04:00
parent 392e6efcb5
commit 783e81afc3
2 changed files with 14 additions and 2 deletions

View file

@ -31,6 +31,8 @@ namespace MWRender
mCameraNode->attachObject(mCamera); mCameraNode->attachObject(mCamera);
mCameraNode->setPosition(0.f, 0.f, mHeight); mCameraNode->setPosition(0.f, 0.f, mHeight);
mPlayerNode->setVisible(false);
mPreviewCam.yaw = 0.f; mPreviewCam.yaw = 0.f;
mPreviewCam.offset = 600.f; mPreviewCam.offset = 600.f;
} }
@ -140,9 +142,11 @@ namespace MWRender
if (mFirstPersonView) { if (mFirstPersonView) {
mCamera->setPosition(0.f, 0.f, 0.f); mCamera->setPosition(0.f, 0.f, 0.f);
mCameraNode->setPosition(0.f, 0.f, 128.f); mCameraNode->setPosition(0.f, 0.f, 128.f);
mPlayerNode->setVisible(false);
} else { } else {
mCamera->setPosition(0.f, 0.f, mCameraDistance); mCamera->setPosition(0.f, 0.f, mCameraDistance);
mCameraNode->setPosition(0.f, 0.f, 104.f); mCameraNode->setPosition(0.f, 0.f, 104.f);
mPlayerNode->setVisible(true);
} }
} }
@ -169,6 +173,7 @@ namespace MWRender
float offset = 300.f; float offset = 300.f;
Ogre::Vector3 rot(0.f, 0.f, 0.f); Ogre::Vector3 rot(0.f, 0.f, 0.f);
if (mVanity.enabled) { if (mVanity.enabled) {
mPlayerNode->setVisible(true);
rot.x = Ogre::Degree(-30.f).valueRadians(); rot.x = Ogre::Degree(-30.f).valueRadians();
mMainCam.offset = mCamera->getPosition().z; mMainCam.offset = mCamera->getPosition().z;
@ -179,6 +184,9 @@ namespace MWRender
moveCameraNode(mPlayerNode); moveCameraNode(mPlayerNode);
} }
if (offset == 0.f) {
mPlayerNode->setVisible(false);
}
rot.z = getYaw(); rot.z = getYaw();
mCamera->setPosition(0.f, 0.f, offset); mCamera->setPosition(0.f, 0.f, offset);
rotateCamera(rot, false); rotateCamera(rot, false);
@ -194,6 +202,7 @@ namespace MWRender
mPreviewMode = enable; mPreviewMode = enable;
float offset = mCamera->getPosition().z; float offset = mCamera->getPosition().z;
if (mPreviewMode) { if (mPreviewMode) {
mPlayerNode->setVisible(true);
mMainCam.offset = offset; mMainCam.offset = offset;
offset = mPreviewCam.offset; offset = mPreviewCam.offset;
@ -204,7 +213,10 @@ namespace MWRender
moveCameraNode(mPlayerNode); moveCameraNode(mPlayerNode);
} }
mCamera->setPosition(0.f, 0.f, mPreviewCam.offset); if (offset == 0.f) {
mPlayerNode->setVisible(false);
}
mCamera->setPosition(0.f, 0.f, offset);
rotateCamera(Ogre::Vector3(getPitch(), 0.f, getYaw()), false); rotateCamera(Ogre::Vector3(getPitch(), 0.f, getYaw()), false);
} }

View file

@ -131,10 +131,10 @@ RenderingManager::RenderingManager (OEngine::Render::OgreRenderer& _rend, const
SceneNode *rt = mRendering.getScene()->getRootSceneNode(); SceneNode *rt = mRendering.getScene()->getRootSceneNode();
mMwRoot = rt->createChildSceneNode(); mMwRoot = rt->createChildSceneNode();
mMwRoot->pitch(Degree(-90)); mMwRoot->pitch(Degree(-90));
mObjects.setMwRoot(mMwRoot); mObjects.setMwRoot(mMwRoot);
mActors.setMwRoot(mMwRoot); mActors.setMwRoot(mMwRoot);
Ogre::SceneNode *playerNode = mMwRoot->createChildSceneNode ("player"); Ogre::SceneNode *playerNode = mMwRoot->createChildSceneNode ("player");
mPlayer = new MWRender::Player (mRendering.getCamera(), playerNode); mPlayer = new MWRender::Player (mRendering.getCamera(), playerNode);