mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-14 01:19:59 +00:00
Merge branch 'no_time_to_talk' into 'master'
Don't stop and turn to the player while sneaking or jumping Closes #6016 See merge request OpenMW/openmw!838
This commit is contained in:
commit
13fd0e11ff
@ -121,6 +121,7 @@
|
||||
Bug #5975: NIF controllers from sheath meshes are used
|
||||
Bug #5991: Activate should always be allowed for inventory items
|
||||
Bug #5995: NiUVController doesn't calculate the UV offset properly
|
||||
Bug #6016: Greeting interrupts Fargoth's sneak-walk
|
||||
Feature #390: 3rd person look "over the shoulder"
|
||||
Feature #832: OpenMW-CS: Handle deleted references
|
||||
Feature #1536: Show more information about level on menu
|
||||
|
@ -589,7 +589,8 @@ namespace MWMechanics
|
||||
{
|
||||
greetingTimer++;
|
||||
|
||||
if (greetingTimer <= GREETING_SHOULD_END || MWBase::Environment::get().getSoundManager()->sayActive(actor))
|
||||
if (!stats.getMovementFlag(CreatureStats::Flag_ForceJump) && !stats.getMovementFlag(CreatureStats::Flag_ForceSneak)
|
||||
&& (greetingTimer <= GREETING_SHOULD_END || MWBase::Environment::get().getSoundManager()->sayActive(actor)))
|
||||
turnActorToFacePlayer(actor, actorState, dir);
|
||||
|
||||
if (greetingTimer >= GREETING_COOLDOWN)
|
||||
|
@ -52,14 +52,15 @@ namespace MWMechanics
|
||||
bool AiTravel::execute (const MWWorld::Ptr& actor, CharacterController& characterController, AiState& state, float duration)
|
||||
{
|
||||
MWBase::MechanicsManager* mechMgr = MWBase::Environment::get().getMechanicsManager();
|
||||
auto& stats = actor.getClass().getCreatureStats(actor);
|
||||
|
||||
if (mechMgr->isTurningToPlayer(actor) || mechMgr->getGreetingState(actor) == Greet_InProgress)
|
||||
if (!stats.getMovementFlag(CreatureStats::Flag_ForceJump) && !stats.getMovementFlag(CreatureStats::Flag_ForceSneak)
|
||||
&& (mechMgr->isTurningToPlayer(actor) || mechMgr->getGreetingState(actor) == Greet_InProgress))
|
||||
return false;
|
||||
|
||||
const osg::Vec3f actorPos(actor.getRefData().getPosition().asVec3());
|
||||
const osg::Vec3f targetPos(mX, mY, mZ);
|
||||
|
||||
auto& stats = actor.getClass().getCreatureStats(actor);
|
||||
stats.setMovementFlag(CreatureStats::Flag_Run, false);
|
||||
stats.setDrawState(DrawState_Nothing);
|
||||
|
||||
|
@ -209,14 +209,17 @@ namespace MWMechanics
|
||||
storage.setState(AiWanderStorage::Wander_Walking);
|
||||
}
|
||||
|
||||
GreetingState greetingState = MWBase::Environment::get().getMechanicsManager()->getGreetingState(actor);
|
||||
if (greetingState == Greet_InProgress)
|
||||
if(!cStats.getMovementFlag(CreatureStats::Flag_ForceJump) && !cStats.getMovementFlag(CreatureStats::Flag_ForceSneak))
|
||||
{
|
||||
if (storage.mState == AiWanderStorage::Wander_Walking)
|
||||
GreetingState greetingState = MWBase::Environment::get().getMechanicsManager()->getGreetingState(actor);
|
||||
if (greetingState == Greet_InProgress)
|
||||
{
|
||||
stopMovement(actor);
|
||||
mObstacleCheck.clear();
|
||||
storage.setState(AiWanderStorage::Wander_IdleNow);
|
||||
if (storage.mState == AiWanderStorage::Wander_Walking)
|
||||
{
|
||||
stopMovement(actor);
|
||||
mObstacleCheck.clear();
|
||||
storage.setState(AiWanderStorage::Wander_IdleNow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user