From 06e683d37841190d55232c00e6a3c90f8ae14905 Mon Sep 17 00:00:00 2001 From: Ragora Date: Sun, 14 Sep 2014 16:29:06 -0400 Subject: [PATCH] Added code to play music on level up and on death --- apps/openmw/mwgui/levelupdialog.cpp | 4 ++++ apps/openmw/mwmechanics/actors.cpp | 11 ++++++----- apps/openmw/mwmechanics/character.cpp | 4 ++++ 3 files changed, 14 insertions(+), 5 deletions(-) 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 31a085660..ee54e48eb 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); @@ -1096,7 +1096,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 9d1e5e52f..c7c171982 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -1634,6 +1634,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; }