mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-04-02 14:36:44 +00:00
Use only player's half extents
This commit is contained in:
parent
fafba8ea0c
commit
0c8a7295e6
2 changed files with 11 additions and 3 deletions
|
@ -93,7 +93,8 @@ namespace
|
||||||
else if (const auto actor = physics.getActor(ptr))
|
else if (const auto actor = physics.getActor(ptr))
|
||||||
{
|
{
|
||||||
const auto navigator = MWBase::Environment::get().getWorld()->getNavigator();
|
const auto navigator = MWBase::Environment::get().getWorld()->getNavigator();
|
||||||
navigator->addAgent(actor->getHalfExtents());
|
const auto playerHalfExtents = physics.getHalfExtents(MWBase::Environment::get().getWorld()->getPlayerPtr());
|
||||||
|
navigator->addAgent(playerHalfExtents);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (useAnim)
|
if (useAnim)
|
||||||
|
@ -260,12 +261,13 @@ namespace MWWorld
|
||||||
ListAndResetObjectsVisitor visitor;
|
ListAndResetObjectsVisitor visitor;
|
||||||
|
|
||||||
(*iter)->forEach<ListAndResetObjectsVisitor>(visitor);
|
(*iter)->forEach<ListAndResetObjectsVisitor>(visitor);
|
||||||
|
const auto playerHalfExtents = mPhysics->getHalfExtents(MWBase::Environment::get().getWorld()->getPlayerPtr());
|
||||||
for (const auto& ptr : visitor.mObjects)
|
for (const auto& ptr : visitor.mObjects)
|
||||||
{
|
{
|
||||||
if (const auto object = mPhysics->getObject(ptr))
|
if (const auto object = mPhysics->getObject(ptr))
|
||||||
navigator->removeObject(reinterpret_cast<std::size_t>(object));
|
navigator->removeObject(reinterpret_cast<std::size_t>(object));
|
||||||
else if (const auto actor = mPhysics->getActor(ptr))
|
else if (const auto actor = mPhysics->getActor(ptr))
|
||||||
navigator->removeAgent(actor->getHalfExtents());
|
navigator->removeAgent(playerHalfExtents);
|
||||||
mPhysics->remove(ptr);
|
mPhysics->remove(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -676,7 +678,10 @@ namespace MWWorld
|
||||||
if (const auto object = mPhysics->getObject(ptr))
|
if (const auto object = mPhysics->getObject(ptr))
|
||||||
navigator->removeObject(reinterpret_cast<std::size_t>(object));
|
navigator->removeObject(reinterpret_cast<std::size_t>(object));
|
||||||
else if (const auto actor = mPhysics->getActor(ptr))
|
else if (const auto actor = mPhysics->getActor(ptr))
|
||||||
navigator->removeAgent(actor->getHalfExtents());
|
{
|
||||||
|
const auto playerHalfExtents = mPhysics->getHalfExtents(MWBase::Environment::get().getWorld()->getPlayerPtr());
|
||||||
|
navigator->removeAgent(playerHalfExtents);
|
||||||
|
}
|
||||||
mPhysics->remove(ptr);
|
mPhysics->remove(ptr);
|
||||||
mRendering.removeObject (ptr);
|
mRendering.removeObject (ptr);
|
||||||
if (ptr.getClass().isActor())
|
if (ptr.getClass().isActor())
|
||||||
|
|
|
@ -2313,6 +2313,7 @@ namespace MWWorld
|
||||||
{
|
{
|
||||||
// Remove the old CharacterController
|
// Remove the old CharacterController
|
||||||
MWBase::Environment::get().getMechanicsManager()->remove(getPlayerPtr());
|
MWBase::Environment::get().getMechanicsManager()->remove(getPlayerPtr());
|
||||||
|
mNavigator->removeAgent(mPhysics->getHalfExtents(getPlayerPtr()));
|
||||||
mPhysics->remove(getPlayerPtr());
|
mPhysics->remove(getPlayerPtr());
|
||||||
mRendering->removePlayer(getPlayerPtr());
|
mRendering->removePlayer(getPlayerPtr());
|
||||||
|
|
||||||
|
@ -2347,6 +2348,8 @@ namespace MWWorld
|
||||||
mPhysics->addActor(getPlayerPtr(), model);
|
mPhysics->addActor(getPlayerPtr(), model);
|
||||||
|
|
||||||
applyLoopingParticles(player);
|
applyLoopingParticles(player);
|
||||||
|
|
||||||
|
mNavigator->addAgent(mPhysics->getHalfExtents(getPlayerPtr()));
|
||||||
}
|
}
|
||||||
|
|
||||||
World::RestPermitted World::canRest () const
|
World::RestPermitted World::canRest () const
|
||||||
|
|
Loading…
Reference in a new issue