mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-13 07:14:31 +00:00
Use the actual sneak state to determine visibility of indicator (Fixes #2915)
This commit is contained in:
parent
4d94f38f4b
commit
84747fbdd7
@ -1094,7 +1094,7 @@ namespace MWMechanics
|
|||||||
static float sneakTimer = 0.f; // times update of sneak icon
|
static float sneakTimer = 0.f; // times update of sneak icon
|
||||||
|
|
||||||
// if player is in sneak state see if anyone detects him
|
// if player is in sneak state see if anyone detects him
|
||||||
if (player.getClass().getCreatureStats(player).getMovementFlag(MWMechanics::CreatureStats::Flag_Sneak))
|
if (playerCharacter && playerCharacter->isSneaking())
|
||||||
{
|
{
|
||||||
static float sneakSkillTimer = 0.f; // times sneak skill progress from "avoid notice"
|
static float sneakSkillTimer = 0.f; // times sneak skill progress from "avoid notice"
|
||||||
|
|
||||||
|
@ -1768,7 +1768,7 @@ void CharacterController::update(float duration)
|
|||||||
|
|
||||||
if(mAnimQueue.empty() || inwater || sneak)
|
if(mAnimQueue.empty() || inwater || sneak)
|
||||||
{
|
{
|
||||||
idlestate = (inwater ? CharState_IdleSwim : (sneak ? CharState_IdleSneak : CharState_Idle));
|
idlestate = (inwater ? CharState_IdleSwim : (sneak && !inJump ? CharState_IdleSneak : CharState_Idle));
|
||||||
}
|
}
|
||||||
else if(mAnimQueue.size() > 1)
|
else if(mAnimQueue.size() > 1)
|
||||||
{
|
{
|
||||||
@ -2048,6 +2048,15 @@ bool CharacterController::isKnockedOut() const
|
|||||||
return mHitState == CharState_KnockOut;
|
return mHitState == CharState_KnockOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CharacterController::isSneaking() const
|
||||||
|
{
|
||||||
|
return mIdleState == CharState_IdleSneak ||
|
||||||
|
mMovementState == CharState_SneakForward ||
|
||||||
|
mMovementState == CharState_SneakBack ||
|
||||||
|
mMovementState == CharState_SneakLeft ||
|
||||||
|
mMovementState == CharState_SneakRight;
|
||||||
|
}
|
||||||
|
|
||||||
void CharacterController::setAttackingOrSpell(bool attackingOrSpell)
|
void CharacterController::setAttackingOrSpell(bool attackingOrSpell)
|
||||||
{
|
{
|
||||||
mAttackingOrSpell = attackingOrSpell;
|
mAttackingOrSpell = attackingOrSpell;
|
||||||
|
@ -241,6 +241,7 @@ public:
|
|||||||
|
|
||||||
bool isReadyToBlock() const;
|
bool isReadyToBlock() const;
|
||||||
bool isKnockedOut() const;
|
bool isKnockedOut() const;
|
||||||
|
bool isSneaking() const;
|
||||||
|
|
||||||
void setAttackingOrSpell(bool attackingOrSpell);
|
void setAttackingOrSpell(bool attackingOrSpell);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user