1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-04-01 05:36:43 +00:00

Use only player's half extents

This commit is contained in:
elsid 2018-04-22 19:22:00 +03:00
parent fafba8ea0c
commit 0c8a7295e6
No known key found for this signature in database
GPG key ID: B845CB9FEE18AB40
2 changed files with 11 additions and 3 deletions

View file

@ -93,7 +93,8 @@ namespace
else if (const auto actor = physics.getActor(ptr))
{
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)
@ -260,12 +261,13 @@ namespace MWWorld
ListAndResetObjectsVisitor visitor;
(*iter)->forEach<ListAndResetObjectsVisitor>(visitor);
const auto playerHalfExtents = mPhysics->getHalfExtents(MWBase::Environment::get().getWorld()->getPlayerPtr());
for (const auto& ptr : visitor.mObjects)
{
if (const auto object = mPhysics->getObject(ptr))
navigator->removeObject(reinterpret_cast<std::size_t>(object));
else if (const auto actor = mPhysics->getActor(ptr))
navigator->removeAgent(actor->getHalfExtents());
navigator->removeAgent(playerHalfExtents);
mPhysics->remove(ptr);
}
@ -676,7 +678,10 @@ namespace MWWorld
if (const auto object = mPhysics->getObject(ptr))
navigator->removeObject(reinterpret_cast<std::size_t>(object));
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);
mRendering.removeObject (ptr);
if (ptr.getClass().isActor())

View file

@ -2313,6 +2313,7 @@ namespace MWWorld
{
// Remove the old CharacterController
MWBase::Environment::get().getMechanicsManager()->remove(getPlayerPtr());
mNavigator->removeAgent(mPhysics->getHalfExtents(getPlayerPtr()));
mPhysics->remove(getPlayerPtr());
mRendering->removePlayer(getPlayerPtr());
@ -2347,6 +2348,8 @@ namespace MWWorld
mPhysics->addActor(getPlayerPtr(), model);
applyLoopingParticles(player);
mNavigator->addAgent(mPhysics->getHalfExtents(getPlayerPtr()));
}
World::RestPermitted World::canRest () const