This commit is contained in:
mrcheko 2013-12-14 15:07:00 +02:00
parent 8dd930cf97
commit c0d07fbdc9
2 changed files with 35 additions and 29 deletions

View file

@ -180,6 +180,8 @@ namespace MWInput
switch (action)
{
case A_GameMenu:
if(!(MWWorld::Class::get(mPlayer->getPlayer()).getCreatureStats(mPlayer->getPlayer()).isDead()
&& MWBase::Environment::get().getWindowManager()->getMode () == MWGui::GM_MainMenu ) )
toggleMainMenu ();
break;
case A_Screenshot:
@ -300,7 +302,9 @@ namespace MWInput
return;
// Disable movement in Gui mode
if (MWBase::Environment::get().getWindowManager()->isGuiMode()) return;
if (MWBase::Environment::get().getWindowManager()->isGuiMode()
|| MWWorld::Class::get(mPlayer->getPlayer()).getCreatureStats(mPlayer->getPlayer()).isDead() )
return;
// Configure player movement according to keyboard input. Actual movement will
@ -367,8 +371,7 @@ namespace MWInput
}
}
MWWorld::Ptr player = MWBase::Environment::get().getWorld ()->getPlayer().getPlayer();
if ( !player.getClass().getCreatureStats(player).isDead() ) {
if (mControlSwitch["playerviewswitch"]) {
// work around preview mode toggle when pressing Alt+Tab
if (actionIsActive(A_TogglePOV) && !mInputManager->isModifierHeld(SDL_Keymod(KMOD_ALT))) {
@ -389,7 +392,7 @@ namespace MWInput
mPreviewPOVDelay = 0.f;
}
}
}
}
if (actionIsActive(A_MoveForward) ||
actionIsActive(A_MoveBackward) ||

View file

@ -1062,9 +1062,9 @@ bool CharacterController::kill()
{
//player death animation is over: toggle game menu without 'return' option
if( mPtr == MWBase::Environment::get().getWorld()->getPlayer().getPlayer()
&& !isAnimPlaying(mCurrentDeath) )
&& !isAnimPlaying(mCurrentDeath) && MWBase::Environment::get().getWindowManager()->getMode () != MWGui::GM_MainMenu )
{
MWBase::Environment::get().getWindowManager()->setMainMenuNoReturn(true);
MWWorld::Class::get(mPtr).getCreatureStats(mPtr).setHealth(0);
MWBase::Environment::get().getWindowManager()->pushGuiMode (MWGui::GM_MainMenu);
}
return false;
@ -1106,9 +1106,12 @@ bool CharacterController::kill()
if(mAnimation)
{
if (mPtr == MWBase::Environment::get().getWorld()->getPlayer().getPlayer()
&& MWBase::Environment::get().getWorld()->getCamera()->isFirstPerson() )
if (mPtr == MWBase::Environment::get().getWorld()->getPlayer().getPlayer() )
{
MWBase::Environment::get().getWindowManager()->setMainMenuNoReturn(true);
if (MWBase::Environment::get().getWorld()->getCamera()->isFirstPerson() )
MWBase::Environment::get().getWorld()->togglePOV();
}
mAnimation->play(mCurrentDeath, Priority_Death, MWRender::Animation::Group_All,
false, 1.0f, "start", "stop", 0.0f, 0);