diff --git a/apps/openmw/mwgui/levelupdialog.cpp b/apps/openmw/mwgui/levelupdialog.cpp index 272a9b27b..7188ab9df 100644 --- a/apps/openmw/mwgui/levelupdialog.cpp +++ b/apps/openmw/mwgui/levelupdialog.cpp @@ -5,6 +5,7 @@ #include "../mwbase/windowmanager.hpp" #include "../mwbase/environment.hpp" #include "../mwbase/world.hpp" +#include "../mwbase/soundmanager.hpp" #include "../mwworld/class.hpp" #include "../mwworld/fallback.hpp" @@ -191,6 +192,9 @@ namespace MWGui setAttributeValues(); center(); + + // Play LevelUp Music + MWBase::Environment::get().getSoundManager()->streamMusic("Special/MW_Triumph.mp3"); } void LevelupDialog::onOkButtonClicked(MyGUI::Widget* sender) diff --git a/apps/openmw/mwmechanics/actors.cpp b/apps/openmw/mwmechanics/actors.cpp index 36c71adeb..7045a7168 100644 --- a/apps/openmw/mwmechanics/actors.cpp +++ b/apps/openmw/mwmechanics/actors.cpp @@ -275,7 +275,7 @@ namespace MWMechanics void Actors::engageCombat (const MWWorld::Ptr& actor1, const MWWorld::Ptr& actor2, bool againstPlayer) { CreatureStats& creatureStats = actor1.getClass().getCreatureStats(actor1); - + if (actor2.getClass().getCreatureStats(actor2).isDead() || actor1.getClass().getCreatureStats(actor1).isDead()) return; @@ -296,7 +296,7 @@ namespace MWMechanics bool aggressive; - if (againstPlayer) + if (againstPlayer) { // followers with high fight should not engage in combat with the player (e.g. bm_bear_black_summon) const std::list& followers = getActorsFollowing(actor2); @@ -1099,7 +1099,7 @@ namespace MWMechanics void Actors::update (float duration, bool paused) { if(!paused) - { + { static float timerUpdateAITargets = 0; // target lists get updated once every 1.0 sec @@ -1207,12 +1207,13 @@ namespace MWMechanics // check if we still have any player enemies to switch music static bool isBattleMusic = false; - if (isBattleMusic && hostilesCount == 0) + if (isBattleMusic && hostilesCount == 0 && !(player.getClass().getCreatureStats(player).isDead() && + MWBase::Environment::get().getSoundManager()->isMusicPlaying())) { MWBase::Environment::get().getSoundManager()->playPlaylist(std::string("Explore")); isBattleMusic = false; } - else if (!isBattleMusic && hostilesCount > 0) + else if (!isBattleMusic && hostilesCount > 0) { MWBase::Environment::get().getSoundManager()->playPlaylist(std::string("Battle")); isBattleMusic = true; diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index 0e7548379..8f1a8f718 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -1703,6 +1703,10 @@ bool CharacterController::kill() mIdleState = CharState_None; mCurrentIdle.clear(); + // Play Death Music if it was the player dying + if(mPtr.getRefData().getHandle()=="player") + MWBase::Environment::get().getSoundManager()->streamMusic("Special/MW_Death.mp3"); + return true; }