X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fclient%2Fcontent_cao.cpp;h=c3ac613a5777c92227f3ee755222ac8cb4860a76;hb=a049e8267fabd101cb5c6528b3270214cb0647f0;hp=2e58e19cfb83e0c5bd646f8a805a7fb979ec1d62;hpb=f30dcdb504adb02724e3a5faa30a951eb907b33f;p=dragonfireclient.git diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 2e58e19cf..c3ac613a5 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -20,10 +20,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "content_cao.h" #include #include -#include #include #include #include "client/client.h" +#include "client/renderingengine.h" #include "client/sound.h" #include "client/tile.h" #include "util/basic_macros.h" @@ -555,6 +555,9 @@ void GenericCAO::removeFromScene(bool permanent) clearParentAttachment(); } + if (auto shadow = RenderingEngine::get_shadow_renderer()) + shadow->removeNodeFromShadowList(getSceneNode()); + if (m_meshnode) { m_meshnode->remove(); m_meshnode->drop(); @@ -803,10 +806,13 @@ void GenericCAO::addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr) if (m_reset_textures_timer < 0) updateTextures(m_current_texture_modifier); - scene::ISceneNode *node = getSceneNode(); + if (scene::ISceneNode *node = getSceneNode()) { + if (m_matrixnode) + node->setParent(m_matrixnode); - if (node && m_matrixnode) - node->setParent(m_matrixnode); + if (auto shadow = RenderingEngine::get_shadow_renderer()) + shadow->addNodeToShadowList(node); + } updateNametag(); updateMarker();