Improved sneak.

This commit is contained in:
Jeffrey Haines 2014-04-30 08:06:36 -04:00
parent 14ebd8b110
commit 5c9c467b26

View file

@ -135,7 +135,7 @@ namespace MWWorld
ptr.getClass().getCreatureStats(ptr).setMovementFlag(MWMechanics::CreatureStats::Flag_Sneak, sneak); ptr.getClass().getCreatureStats(ptr).setMovementFlag(MWMechanics::CreatureStats::Flag_Sneak, sneak);
if (sneak == true) if (sneak)
{ {
const MWWorld::ESMStore& esmStore = MWBase::Environment::get().getWorld()->getStore(); const MWWorld::ESMStore& esmStore = MWBase::Environment::get().getWorld()->getStore();
@ -145,15 +145,20 @@ namespace MWWorld
esmStore.get<ESM::GameSetting>().find("fSneakUseDist")->getInt(), neighbors); esmStore.get<ESM::GameSetting>().find("fSneakUseDist")->getInt(), neighbors);
for (std::vector<MWWorld::Ptr>::iterator it = neighbors.begin(); it != neighbors.end(); ++it) for (std::vector<MWWorld::Ptr>::iterator it = neighbors.begin(); it != neighbors.end(); ++it)
{ {
if (*it == ptr) // not the player
continue;
if ( MWBase::Environment::get().getMechanicsManager()->awarenessCheck(ptr, *it) ) if ( MWBase::Environment::get().getMechanicsManager()->awarenessCheck(ptr, *it) )
{ {
MWBase::Environment::get().getWindowManager()->setSneakVisibility(false); MWBase::Environment::get().getWindowManager()->setSneakVisibility(false);
break; break;
} }
} }
if (neighbors.size() == 0) if (neighbors.empty())
MWBase::Environment::get().getWindowManager()->setSneakVisibility(true); MWBase::Environment::get().getWindowManager()->setSneakVisibility(true);
} }
else
MWBase::Environment::get().getWindowManager()->setSneakVisibility(false);
} }
void Player::yaw(float yaw) void Player::yaw(float yaw)