forked from mirror/openmw-tes3mp
Fix forced switch to third person on death not always working
For instance, when dying from fall damage
This commit is contained in:
parent
b6e52ae8ab
commit
d2e98c4de1
5 changed files with 12 additions and 5 deletions
|
@ -409,6 +409,13 @@ MWWorld::ContainerStoreIterator getActiveWeapon(CreatureStats &stats, MWWorld::I
|
|||
|
||||
void CharacterController::playDeath(float startpoint, CharacterState death)
|
||||
{
|
||||
if (mPtr == MWBase::Environment::get().getWorld()->getPlayerPtr())
|
||||
{
|
||||
// The first-person animations do not include death, so we need to
|
||||
// force-switch to third person before playing the death animation.
|
||||
MWBase::Environment::get().getWorld()->useDeathCamera();
|
||||
}
|
||||
|
||||
switch (death)
|
||||
{
|
||||
case CharState_SwimDeath:
|
||||
|
|
|
@ -140,11 +140,11 @@ namespace MWRender
|
|||
}
|
||||
}
|
||||
|
||||
void Camera::toggleViewMode()
|
||||
void Camera::toggleViewMode(bool force)
|
||||
{
|
||||
// Changing the view will stop all playing animations, so if we are playing
|
||||
// anything important, queue the view change for later
|
||||
if (!mAnimation->allowSwitchViewMode())
|
||||
if (!mAnimation->allowSwitchViewMode() && !force)
|
||||
{
|
||||
mViewModeToggleQueued = true;
|
||||
return;
|
||||
|
|
|
@ -75,7 +75,8 @@ namespace MWRender
|
|||
/// Attach camera to object
|
||||
void attachTo(const MWWorld::Ptr &);
|
||||
|
||||
void toggleViewMode();
|
||||
/// @param Force view mode switch, even if currently not allowed by the animation.
|
||||
void toggleViewMode(bool force=false);
|
||||
|
||||
bool toggleVanityMode(bool enable);
|
||||
void allowVanityMode(bool allow);
|
||||
|
|
|
@ -144,7 +144,6 @@ void MWState::StateManager::newGame (bool bypass)
|
|||
void MWState::StateManager::endGame()
|
||||
{
|
||||
mState = State_Ended;
|
||||
MWBase::Environment::get().getWorld()->useDeathCamera();
|
||||
}
|
||||
|
||||
void MWState::StateManager::saveGame (const std::string& description, const Slot *slot)
|
||||
|
|
|
@ -432,7 +432,7 @@ namespace MWWorld
|
|||
mRendering->getCamera()->toggleVanityMode(false);
|
||||
}
|
||||
if(mRendering->getCamera()->isFirstPerson())
|
||||
togglePOV();
|
||||
mRendering->getCamera()->toggleViewMode(true);
|
||||
}
|
||||
|
||||
MWWorld::Player& World::getPlayer()
|
||||
|
|
Loading…
Reference in a new issue