From 1cf0befd07edd692b0df22d347ea298a88e5b604 Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Mon, 26 Dec 2022 21:13:24 +0100 Subject: [PATCH] Don't call getClass on an empty Ptr --- apps/openmw/mwmechanics/actors.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwmechanics/actors.cpp b/apps/openmw/mwmechanics/actors.cpp index 02f7902454..11df481c5e 100644 --- a/apps/openmw/mwmechanics/actors.cpp +++ b/apps/openmw/mwmechanics/actors.cpp @@ -628,7 +628,8 @@ namespace MWMechanics } std::set playerAllies; - getActorsSidingWith(MWMechanics::getPlayer(), playerAllies, cachedAllies); + MWWorld::Ptr player = MWMechanics::getPlayer(); + getActorsSidingWith(player, playerAllies, cachedAllies); bool isPlayerFollowerOrEscorter = playerAllies.find(actor1) != playerAllies.end(); @@ -651,7 +652,8 @@ namespace MWMechanics mechanicsManager->startCombat(actor1, actor2); // Also have actor1's allies start combat for (const MWWorld::Ptr& ally1 : allies1) - mechanicsManager->startCombat(ally1, actor2); + if (ally1 != player) + mechanicsManager->startCombat(ally1, actor2); return; } } @@ -756,6 +758,8 @@ namespace MWMechanics MWWorld::Ptr caster = MWBase::Environment::get().getWorld()->searchPtrViaActorId(spell.getCasterActorId()); + if (caster.isEmpty()) + continue; for (const auto& effect : spell.getEffects()) { static const std::array damageEffects{