mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 20:19:57 +00:00
Make sure the actor is actually crouching/running before tweaking movement speed
This commit is contained in:
parent
778dfa0350
commit
6ab42919cf
2 changed files with 5 additions and 4 deletions
|
@ -115,6 +115,7 @@
|
|||
Bug #4618: Sneaking is possible while the character is flying
|
||||
Bug #4622: Recharging enchanted items with Soul Gems does not award experience if it fails
|
||||
Bug #4628: NPC record reputation, disposition and faction rank should have unsigned char type
|
||||
Bug #4633: Sneaking stance affects speed even if the actor is not able to crouch
|
||||
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
|
||||
|
|
|
@ -938,8 +938,8 @@ namespace MWClass
|
|||
|
||||
const float normalizedEncumbrance = getNormalizedEncumbrance(ptr);
|
||||
|
||||
bool sneaking = stats.getStance(MWMechanics::CreatureStats::Stance_Sneak);
|
||||
bool running = stats.getStance(MWMechanics::CreatureStats::Stance_Run);
|
||||
bool sneaking = MWBase::Environment::get().getMechanicsManager()->isSneaking(ptr) && stats.getStance(MWMechanics::CreatureStats::Stance_Sneak);
|
||||
bool running = MWBase::Environment::get().getMechanicsManager()->isRunning(ptr) && stats.getStance(MWMechanics::CreatureStats::Stance_Run);
|
||||
|
||||
float walkSpeed = gmst.fMinWalkSpeed->mValue.getFloat() + 0.01f*npcdata->mNpcStats.getAttribute(ESM::Attribute::Speed).getModified()*
|
||||
(gmst.fMaxWalkSpeed->mValue.getFloat() - gmst.fMinWalkSpeed->mValue.getFloat());
|
||||
|
@ -964,7 +964,7 @@ namespace MWClass
|
|||
flySpeed = std::max(0.0f, flySpeed);
|
||||
moveSpeed = flySpeed;
|
||||
}
|
||||
else if(world->isSwimming(ptr))
|
||||
else if (world->isSwimming(ptr))
|
||||
{
|
||||
float swimSpeed = walkSpeed;
|
||||
if(running)
|
||||
|
@ -974,7 +974,7 @@ namespace MWClass
|
|||
gmst.fSwimRunAthleticsMult->mValue.getFloat();
|
||||
moveSpeed = swimSpeed;
|
||||
}
|
||||
else if(running && !sneaking)
|
||||
else if (running)
|
||||
moveSpeed = runSpeed;
|
||||
else
|
||||
moveSpeed = walkSpeed;
|
||||
|
|
Loading…
Reference in a new issue