AiCombat use evadeObstacles() from AiPackage.

This commit is contained in:
dteviot 2015-09-14 19:57:22 +12:00
parent ceada145ab
commit 0feae19140
4 changed files with 7 additions and 7 deletions

View file

@ -200,7 +200,7 @@ namespace MWMechanics
//Update every frame //Update every frame
storage.updateCombatMove(duration); storage.updateCombatMove(duration);
updateActorsMovement(actor, storage.mMovement); updateActorsMovement(actor, duration, storage.mMovement);
storage.updateAttack(characterController); storage.updateAttack(characterController);
storage.mActionCooldown -= duration; storage.mActionCooldown -= duration;
@ -494,7 +494,7 @@ namespace MWMechanics
return false; return false;
} }
void AiCombat::updateActorsMovement(const MWWorld::Ptr& actor, MWMechanics::Movement& desiredMovement) void AiCombat::updateActorsMovement(const MWWorld::Ptr& actor, float duration, MWMechanics::Movement& desiredMovement)
{ {
MWMechanics::Movement& actorMovementSettings = actor.getClass().getMovementSettings(actor); MWMechanics::Movement& actorMovementSettings = actor.getClass().getMovementSettings(actor);
if (mPathFinder.isPathConstructed()) if (mPathFinder.isPathConstructed())
@ -506,8 +506,7 @@ namespace MWMechanics
} }
else else
{ {
zTurn(actor, mPathFinder.getZAngleToNext(pos.pos[0], pos.pos[1])); evadeObstacles(actor, duration, pos);
actorMovementSettings.mPosition[1] = 1;
} }
} }
else else

View file

@ -65,7 +65,7 @@ namespace MWMechanics
AiCombatStorage& storage, MWWorld::Ptr target); AiCombatStorage& storage, MWWorld::Ptr target);
/// Transfer desired movement (from AiCombatStorage) to Actor /// Transfer desired movement (from AiCombatStorage) to Actor
void updateActorsMovement(const MWWorld::Ptr& actor, MWMechanics::Movement& movement); void updateActorsMovement(const MWWorld::Ptr& actor, float duration, MWMechanics::Movement& movement);
void rotateActorOnAxis(const MWWorld::Ptr& actor, int axis, void rotateActorOnAxis(const MWWorld::Ptr& actor, int axis,
MWMechanics::Movement& actorMovementSettings, MWMechanics::Movement& desiredMovement); MWMechanics::Movement& actorMovementSettings, MWMechanics::Movement& desiredMovement);
}; };

View file

@ -77,7 +77,7 @@ bool MWMechanics::AiPackage::pathTo(const MWWorld::Ptr& actor, ESM::Pathgrid::Po
return false; return false;
} }
void MWMechanics::AiPackage::evadeObstacles(const MWWorld::Ptr& actor, float duration, ESM::Position& pos) void MWMechanics::AiPackage::evadeObstacles(const MWWorld::Ptr& actor, float duration, const ESM::Position& pos)
{ {
zTurn(actor, mPathFinder.getZAngleToNext(pos.pos[0], pos.pos[1])); zTurn(actor, mPathFinder.getZAngleToNext(pos.pos[0], pos.pos[1]));

View file

@ -78,6 +78,8 @@ namespace MWMechanics
virtual bool doesPathNeedRecalc(ESM::Pathgrid::Point dest, const ESM::Cell *cell); virtual bool doesPathNeedRecalc(ESM::Pathgrid::Point dest, const ESM::Cell *cell);
void evadeObstacles(const MWWorld::Ptr& actor, float duration, const ESM::Position& pos);
// TODO: all this does not belong here, move into temporary storage // TODO: all this does not belong here, move into temporary storage
PathFinder mPathFinder; PathFinder mPathFinder;
ObstacleCheck mObstacleCheck; ObstacleCheck mObstacleCheck;
@ -87,7 +89,6 @@ namespace MWMechanics
ESM::Pathgrid::Point mPrevDest; ESM::Pathgrid::Point mPrevDest;
private: private:
void evadeObstacles(const MWWorld::Ptr& actor, float duration, ESM::Position& pos);
bool isNearInactiveCell(const ESM::Position& actorPos); bool isNearInactiveCell(const ESM::Position& actorPos);
}; };