diff --git a/CHANGELOG.md b/CHANGELOG.md index ae65cbcc36..9f1b76ccc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -229,6 +229,7 @@ Bug #8299: Crash while smoothing landscape Bug #8364: Crash when clicking scrollbar without handle (divide by zero) Bug #8378: Korean bitmap fonts are unusable + Bug #8439: Creatures without models can crash the game Feature #1415: Infinite fall failsafe Feature #2566: Handle NAM9 records for manual cell references Feature #3501: OpenMW-CS: Instance Editing - Shortcuts for axial locking diff --git a/apps/openmw/mwrender/actoranimation.cpp b/apps/openmw/mwrender/actoranimation.cpp index f4bafdb48b..05c722f486 100644 --- a/apps/openmw/mwrender/actoranimation.cpp +++ b/apps/openmw/mwrender/actoranimation.cpp @@ -161,7 +161,7 @@ namespace MWRender bool ActorAnimation::updateCarriedLeftVisible(const int weaptype) const { - if (Settings::game().mShieldSheathing) + if (Settings::game().mShieldSheathing && mObjectRoot) { const MWWorld::Class& cls = mPtr.getClass(); MWMechanics::CreatureStats& stats = cls.getCreatureStats(mPtr); diff --git a/apps/openmw/mwrender/animation.cpp b/apps/openmw/mwrender/animation.cpp index 0a2ef7bef8..f07a325f7c 100644 --- a/apps/openmw/mwrender/animation.cpp +++ b/apps/openmw/mwrender/animation.cpp @@ -1695,7 +1695,7 @@ namespace MWRender mGlowUpdater->setColor(color); mGlowUpdater->setDuration(glowDuration); } - else + else if (mObjectRoot) mGlowUpdater = SceneUtil::addEnchantedGlow(mObjectRoot, mResourceSystem, color, glowDuration); } } @@ -1869,7 +1869,7 @@ namespace MWRender void Animation::setAlpha(float alpha) { - if (alpha == mAlpha) + if (alpha == mAlpha || !mObjectRoot) return; mAlpha = alpha; diff --git a/apps/openmw/mwrender/creatureanimation.cpp b/apps/openmw/mwrender/creatureanimation.cpp index f84e58e4bc..fb839cfa3a 100644 --- a/apps/openmw/mwrender/creatureanimation.cpp +++ b/apps/openmw/mwrender/creatureanimation.cpp @@ -259,7 +259,8 @@ namespace MWRender void CreatureWeaponAnimation::addControllers() { Animation::addControllers(); - WeaponAnimation::addControllers(mNodeMap, mActiveControllers, mObjectRoot.get()); + if (mObjectRoot) + WeaponAnimation::addControllers(mNodeMap, mActiveControllers, mObjectRoot.get()); } osg::Vec3f CreatureWeaponAnimation::runAnimation(float duration)