From 5c9c467b2694580627dc0ead360e18f2a5d34c0b Mon Sep 17 00:00:00 2001 From: Jeffrey Haines Date: Wed, 30 Apr 2014 08:06:36 -0400 Subject: [PATCH] Improved sneak. --- apps/openmw/mwworld/player.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwworld/player.cpp b/apps/openmw/mwworld/player.cpp index 5e4211faa..d023d4388 100644 --- a/apps/openmw/mwworld/player.cpp +++ b/apps/openmw/mwworld/player.cpp @@ -135,7 +135,7 @@ namespace MWWorld ptr.getClass().getCreatureStats(ptr).setMovementFlag(MWMechanics::CreatureStats::Flag_Sneak, sneak); - if (sneak == true) + if (sneak) { const MWWorld::ESMStore& esmStore = MWBase::Environment::get().getWorld()->getStore(); @@ -145,15 +145,20 @@ namespace MWWorld esmStore.get().find("fSneakUseDist")->getInt(), neighbors); for (std::vector::iterator it = neighbors.begin(); it != neighbors.end(); ++it) { + if (*it == ptr) // not the player + continue; + if ( MWBase::Environment::get().getMechanicsManager()->awarenessCheck(ptr, *it) ) { MWBase::Environment::get().getWindowManager()->setSneakVisibility(false); break; } } - if (neighbors.size() == 0) + if (neighbors.empty()) MWBase::Environment::get().getWindowManager()->setSneakVisibility(true); } + else + MWBase::Environment::get().getWindowManager()->setSneakVisibility(false); } void Player::yaw(float yaw)