mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-26 18:35:20 +00:00
41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
#include "actorutil.hpp"
|
|
|
|
#include "../mwbase/world.hpp"
|
|
#include "../mwbase/environment.hpp"
|
|
|
|
#include "../mwworld/class.hpp"
|
|
#include "../mwworld/player.hpp"
|
|
|
|
namespace MWMechanics
|
|
{
|
|
MWWorld::Ptr getPlayer()
|
|
{
|
|
return MWBase::Environment::get().getWorld()->getPlayerPtr();
|
|
}
|
|
|
|
bool isPlayerInCombat()
|
|
{
|
|
return MWBase::Environment::get().getWorld()->getPlayer().isInCombat();
|
|
}
|
|
|
|
bool canActorMoveByZAxis(const MWWorld::Ptr& actor)
|
|
{
|
|
MWBase::World* world = MWBase::Environment::get().getWorld();
|
|
return (actor.getClass().canSwim(actor) && world->isSwimming(actor)) || world->isFlying(actor);
|
|
}
|
|
|
|
bool hasWaterWalking(const MWWorld::Ptr& actor)
|
|
{
|
|
const MWMechanics::MagicEffects& effects = actor.getClass().getCreatureStats(actor).getMagicEffects();
|
|
return effects.get(ESM::MagicEffect::WaterWalking).getMagnitude() > 0;
|
|
}
|
|
|
|
CreatureCustomDataResetter::CreatureCustomDataResetter(const MWWorld::Ptr& ptr) : mPtr(ptr) {}
|
|
|
|
CreatureCustomDataResetter::~CreatureCustomDataResetter()
|
|
{
|
|
if(!mPtr.isEmpty())
|
|
mPtr.getRefData().setCustomData({});
|
|
}
|
|
}
|