1 #include "actorutil.hpp"
2 
3 #include "../mwbase/world.hpp"
4 #include "../mwbase/environment.hpp"
5 
6 #include "../mwworld/class.hpp"
7 #include "../mwworld/player.hpp"
8 
9 namespace MWMechanics
10 {
getPlayer()11     MWWorld::Ptr getPlayer()
12     {
13         return MWBase::Environment::get().getWorld()->getPlayerPtr();
14     }
15 
isPlayerInCombat()16     bool isPlayerInCombat()
17     {
18         return MWBase::Environment::get().getWorld()->getPlayer().isInCombat();
19     }
20 
canActorMoveByZAxis(const MWWorld::Ptr & actor)21     bool canActorMoveByZAxis(const MWWorld::Ptr& actor)
22     {
23         MWBase::World* world = MWBase::Environment::get().getWorld();
24         return (actor.getClass().canSwim(actor) && world->isSwimming(actor)) || world->isFlying(actor);
25     }
26 
hasWaterWalking(const MWWorld::Ptr & actor)27     bool hasWaterWalking(const MWWorld::Ptr& actor)
28     {
29         const MWMechanics::MagicEffects& effects = actor.getClass().getCreatureStats(actor).getMagicEffects();
30         return effects.get(ESM::MagicEffect::WaterWalking).getMagnitude() > 0;
31     }
32 }
33