コード例 #1
0
ファイル: aicombat.cpp プロジェクト: devnexen/openmw
    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);
    }
コード例 #2
0
ファイル: aicombat.cpp プロジェクト: ChairGraveyard/TES3MP
 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);
     }
 }