void AiCombat::updateActorsMovement(const MWWorld::Ptr& actor, float duration, AiCombatStorage& storage) { // apply combat movement MWMechanics::Movement& actorMovementSettings = actor.getClass().getMovementSettings(actor); actorMovementSettings.mPosition[0] = storage.mMovement.mPosition[0]; actorMovementSettings.mPosition[1] = storage.mMovement.mPosition[1]; actorMovementSettings.mPosition[2] = storage.mMovement.mPosition[2]; rotateActorOnAxis(actor, 2, actorMovementSettings, storage); rotateActorOnAxis(actor, 0, actorMovementSettings, storage); }
void AiCombat::updateActorsMovement(const MWWorld::Ptr& actor, float duration, MWMechanics::Movement& desiredMovement) { MWMechanics::Movement& actorMovementSettings = actor.getClass().getMovementSettings(actor); if (mPathFinder.isPathConstructed()) { const ESM::Position& pos = actor.getRefData().getPosition(); if (mPathFinder.checkPathCompleted(pos.pos[0], pos.pos[1])) { actorMovementSettings.mPosition[1] = 0; } else { evadeObstacles(actor, duration, pos); } } else { actorMovementSettings = desiredMovement; rotateActorOnAxis(actor, 2, actorMovementSettings, desiredMovement); rotateActorOnAxis(actor, 0, actorMovementSettings, desiredMovement); } }