mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-04 03:40:14 +00:00
Don't allow actors to use sneaking while flying (bug #4618)
This commit is contained in:
parent
2564fcc37e
commit
079b60c1ea
@ -106,6 +106,7 @@
|
||||
Bug #4597: <> operator causes a compile error
|
||||
Bug #4604: Picking up gold from the ground only makes 1 grabbed
|
||||
Bug #4617: First person sneaking offset is not applied while the character is in air
|
||||
Bug #4618: Sneaking is possible while the character is flying
|
||||
Feature #1645: Casting effects from objects
|
||||
Feature #2606: Editor: Implemented (optional) case sensitive global search
|
||||
Feature #3083: Play animation when NPC is casting spell via script
|
||||
|
@ -1825,9 +1825,9 @@ void CharacterController::update(float duration)
|
||||
{
|
||||
bool onground = world->isOnGround(mPtr);
|
||||
bool inwater = world->isSwimming(mPtr);
|
||||
bool sneak = cls.getCreatureStats(mPtr).getStance(MWMechanics::CreatureStats::Stance_Sneak);
|
||||
bool flying = world->isFlying(mPtr);
|
||||
// Can't run while flying (see speed formula in Npc/Creature::getSpeed)
|
||||
// Can't run and sneak while flying (see speed formula in Npc/Creature::getSpeed)
|
||||
bool sneak = cls.getCreatureStats(mPtr).getStance(MWMechanics::CreatureStats::Stance_Sneak) && !flying;
|
||||
bool isrunning = cls.getCreatureStats(mPtr).getStance(MWMechanics::CreatureStats::Stance_Run) && !flying;
|
||||
CreatureStats &stats = cls.getCreatureStats(mPtr);
|
||||
|
||||
|
@ -1707,9 +1707,10 @@ namespace MWWorld
|
||||
// Sink the camera while sneaking
|
||||
bool sneaking = player.getClass().getCreatureStats(getPlayerPtr()).getStance(MWMechanics::CreatureStats::Stance_Sneak);
|
||||
bool swimming = isSwimming(player);
|
||||
bool flying = isFlying(player);
|
||||
|
||||
static const float i1stPersonSneakDelta = getStore().get<ESM::GameSetting>().find("i1stPersonSneakDelta")->getFloat();
|
||||
if (sneaking && !swimming)
|
||||
if (sneaking && !swimming && !flying)
|
||||
mRendering->getCamera()->setSneakOffset(i1stPersonSneakDelta);
|
||||
else
|
||||
mRendering->getCamera()->setSneakOffset(0.f);
|
||||
|
Loading…
x
Reference in New Issue
Block a user