mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-28 19:21:04 +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
@ -102,6 +102,7 @@ Programmers
|
|||||||
Jacob Turnbull (Tankinfrank)
|
Jacob Turnbull (Tankinfrank)
|
||||||
Jake Westrip (16bitint)
|
Jake Westrip (16bitint)
|
||||||
James Carty (MrTopCat)
|
James Carty (MrTopCat)
|
||||||
|
James Deciutiis (JamesDeciutiis)
|
||||||
James Moore (moore.work)
|
James Moore (moore.work)
|
||||||
James Stephens (james-h-stephens)
|
James Stephens (james-h-stephens)
|
||||||
Jan-Peter Nilsson (peppe)
|
Jan-Peter Nilsson (peppe)
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
Bug #7054: Quests aren't sorted by name
|
Bug #7054: Quests aren't sorted by name
|
||||||
Bug #7084: Resurrecting an actor doesn't take into account base record changes
|
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 #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
|
Bug #7172: Current music playlist continues playing indefinitely if next playlist is empty
|
||||||
Feature #5492: Let rain and snow collide with statics
|
Feature #5492: Let rain and snow collide with statics
|
||||||
Feature #6447: Add LOD support to Object Paging
|
Feature #6447: Add LOD support to Object Paging
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
#include "actionteleport.hpp"
|
#include "actionteleport.hpp"
|
||||||
|
|
||||||
#include <components/esm3/loadcell.hpp>
|
#include <components/esm3/loadcell.hpp>
|
||||||
|
#include <components/esm3/loadmgef.hpp>
|
||||||
|
|
||||||
#include "../mwbase/environment.hpp"
|
#include "../mwbase/environment.hpp"
|
||||||
#include "../mwbase/mechanicsmanager.hpp"
|
#include "../mwbase/mechanicsmanager.hpp"
|
||||||
#include "../mwbase/world.hpp"
|
#include "../mwbase/world.hpp"
|
||||||
|
|
||||||
|
#include "../mwmechanics/actorutil.hpp"
|
||||||
#include "../mwmechanics/creaturestats.hpp"
|
#include "../mwmechanics/creaturestats.hpp"
|
||||||
|
|
||||||
#include "../mwworld/cellstore.hpp"
|
#include "../mwworld/cellstore.hpp"
|
||||||
@ -45,6 +47,7 @@ namespace MWWorld
|
|||||||
MWBase::World* world = MWBase::Environment::get().getWorld();
|
MWBase::World* world = MWBase::Environment::get().getWorld();
|
||||||
MWWorld::WorldModel* worldModel = MWBase::Environment::get().getWorldModel();
|
MWWorld::WorldModel* worldModel = MWBase::Environment::get().getWorldModel();
|
||||||
actor.getClass().getCreatureStats(actor).land(actor == world->getPlayerPtr());
|
actor.getClass().getCreatureStats(actor).land(actor == world->getPlayerPtr());
|
||||||
|
|
||||||
if (actor == world->getPlayerPtr())
|
if (actor == world->getPlayerPtr())
|
||||||
{
|
{
|
||||||
world->getPlayer().setTeleported(true);
|
world->getPlayer().setTeleported(true);
|
||||||
@ -65,6 +68,10 @@ namespace MWWorld
|
|||||||
else
|
else
|
||||||
world->moveObject(actor, worldModel->getInterior(mCellName), mPosition.asVec3(), true, true);
|
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(
|
void ActionTeleport::getFollowers(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user