diff --git a/apps/openmw/mwclass/npc.cpp b/apps/openmw/mwclass/npc.cpp index 9b34edf77..4678df222 100644 --- a/apps/openmw/mwclass/npc.cpp +++ b/apps/openmw/mwclass/npc.cpp @@ -393,7 +393,8 @@ namespace MWClass { case Run: - throw std::runtime_error ("run stance not manually setable for NPCs"); + stats.mRun = set; + break; case Sneak: @@ -415,7 +416,10 @@ namespace MWClass { case Run: - return ignoreForce ? false : stats.mForceRun; + if (!ignoreForce && stats.mForceRun) + return true; + + return stats.mRun; case Sneak: diff --git a/apps/openmw/mwmechanics/npcstats.hpp b/apps/openmw/mwmechanics/npcstats.hpp index fa0e46b1a..aeb5f56d5 100644 --- a/apps/openmw/mwmechanics/npcstats.hpp +++ b/apps/openmw/mwmechanics/npcstats.hpp @@ -21,10 +21,12 @@ namespace MWMechanics bool mForceRun; bool mForceSneak; + bool mRun; bool mSneak; bool mCombat; - NpcStats() : mForceRun (false), mForceSneak (false), mSneak (false), mCombat (false) {} + NpcStats() : mForceRun (false), mForceSneak (false), mRun (false), mSneak (false), + mCombat (false) {} }; }