mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-28 12:09:53 +00:00
Merge branch 'remove-water-walking-teleport-underwater' into 'master'
teleporting to an underwater marked location will remove water walking spell effects from actor Closes #7122 See merge request OpenMW/openmw!2656
This commit is contained in:
commit
8b0e55dd5f
3 changed files with 9 additions and 0 deletions
|
@ -102,6 +102,7 @@ Programmers
|
|||
Jacob Turnbull (Tankinfrank)
|
||||
Jake Westrip (16bitint)
|
||||
James Carty (MrTopCat)
|
||||
James Deciutiis (JamesDeciutiis)
|
||||
James Moore (moore.work)
|
||||
James Stephens (james-h-stephens)
|
||||
Jan-Peter Nilsson (peppe)
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
Bug #7054: Quests aren't sorted by name
|
||||
Bug #7084: Resurrecting an actor doesn't take into account base record changes
|
||||
Bug #7088: Deleting last save game of last character doesn't clear character name/details
|
||||
Bug #7122: Teleportation to underwater should cancel active water walking effect
|
||||
Bug #7172: Current music playlist continues playing indefinitely if next playlist is empty
|
||||
Feature #5492: Let rain and snow collide with statics
|
||||
Feature #6447: Add LOD support to Object Paging
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#include "actionteleport.hpp"
|
||||
|
||||
#include <components/esm3/loadcell.hpp>
|
||||
#include <components/esm3/loadmgef.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/mechanicsmanager.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
||||
#include "../mwmechanics/actorutil.hpp"
|
||||
#include "../mwmechanics/creaturestats.hpp"
|
||||
|
||||
#include "../mwworld/cellstore.hpp"
|
||||
|
@ -45,6 +47,7 @@ namespace MWWorld
|
|||
MWBase::World* world = MWBase::Environment::get().getWorld();
|
||||
MWWorld::WorldModel* worldModel = MWBase::Environment::get().getWorldModel();
|
||||
actor.getClass().getCreatureStats(actor).land(actor == world->getPlayerPtr());
|
||||
|
||||
if (actor == world->getPlayerPtr())
|
||||
{
|
||||
world->getPlayer().setTeleported(true);
|
||||
|
@ -65,6 +68,10 @@ namespace MWWorld
|
|||
else
|
||||
world->moveObject(actor, worldModel->getInterior(mCellName), mPosition.asVec3(), true, true);
|
||||
}
|
||||
|
||||
if (!world->isWaterWalkingCastableOnTarget(actor) && MWMechanics::hasWaterWalking(actor))
|
||||
actor.getClass().getCreatureStats(actor).getActiveSpells().purgeEffect(
|
||||
actor, ESM::MagicEffect::WaterWalking);
|
||||
}
|
||||
|
||||
void ActionTeleport::getFollowers(
|
||||
|
|
Loading…
Reference in a new issue