From 71350c6dff5aa7b1f6ca2ef07530001e497f9680 Mon Sep 17 00:00:00 2001 From: elsid Date: Sat, 16 May 2020 15:52:33 +0200 Subject: [PATCH 1/3] Remove redundant variable --- apps/openmw/mwmechanics/aiwander.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwmechanics/aiwander.cpp b/apps/openmw/mwmechanics/aiwander.cpp index ff213b219a..f8df955cfb 100644 --- a/apps/openmw/mwmechanics/aiwander.cpp +++ b/apps/openmw/mwmechanics/aiwander.cpp @@ -276,8 +276,7 @@ namespace MWMechanics completeManualWalking(actor, storage); } - AiWanderStorage::WanderState& wanderState = storage.mState; - if ((wanderState == AiWanderStorage::Wander_MoveNow) && storage.mCanWanderAlongPathGrid) + if (storage.mState == AiWanderStorage::Wander_MoveNow && storage.mCanWanderAlongPathGrid) { // Construct a new path if there isn't one if(!mPathFinder.isPathConstructed()) @@ -293,7 +292,7 @@ namespace MWMechanics completeManualWalking(actor, storage); } - if (wanderState == AiWanderStorage::Wander_Walking + if (storage.mState == AiWanderStorage::Wander_Walking && (isDestinationHidden(actor, mPathFinder.getPath().back()) || isAreaOccupiedByOtherActor(actor, mPathFinder.getPath().back()))) completeManualWalking(actor, storage); From e616188265e6e78f8dae74ab87c3e251d34c85a2 Mon Sep 17 00:00:00 2001 From: elsid Date: Sat, 16 May 2020 16:07:17 +0200 Subject: [PATCH 2/3] Do not allow wandering actor to have empty path --- apps/openmw/mwmechanics/aiwander.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwmechanics/aiwander.cpp b/apps/openmw/mwmechanics/aiwander.cpp index f8df955cfb..1e06be6fdd 100644 --- a/apps/openmw/mwmechanics/aiwander.cpp +++ b/apps/openmw/mwmechanics/aiwander.cpp @@ -293,7 +293,8 @@ namespace MWMechanics } if (storage.mState == AiWanderStorage::Wander_Walking - && (isDestinationHidden(actor, mPathFinder.getPath().back()) + && (mPathFinder.getPathSize() == 0 + || isDestinationHidden(actor, mPathFinder.getPath().back()) || isAreaOccupiedByOtherActor(actor, mPathFinder.getPath().back()))) completeManualWalking(actor, storage); From 489a92de9532b1b0ae08de90b7a14a8d86578a92 Mon Sep 17 00:00:00 2001 From: elsid Date: Sat, 16 May 2020 16:26:39 +0200 Subject: [PATCH 3/3] Check for hidden path only for actors wandering manually Actors who doesn't wander over pathgrid. --- apps/openmw/mwmechanics/aiwander.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwmechanics/aiwander.cpp b/apps/openmw/mwmechanics/aiwander.cpp index 1e06be6fdd..53e80f54e6 100644 --- a/apps/openmw/mwmechanics/aiwander.cpp +++ b/apps/openmw/mwmechanics/aiwander.cpp @@ -292,7 +292,8 @@ namespace MWMechanics completeManualWalking(actor, storage); } - if (storage.mState == AiWanderStorage::Wander_Walking + if (storage.mIsWanderingManually + && storage.mState == AiWanderStorage::Wander_Walking && (mPathFinder.getPathSize() == 0 || isDestinationHidden(actor, mPathFinder.getPath().back()) || isAreaOccupiedByOtherActor(actor, mPathFinder.getPath().back())))