diff options
-rw-r--r-- | src/content_cao.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/content_cao.cpp b/src/content_cao.cpp index fe11d33da..02622f5b4 100644 --- a/src/content_cao.cpp +++ b/src/content_cao.cpp @@ -736,7 +736,8 @@ ClientActiveObject* GenericCAO::getParent() void GenericCAO::removeFromScene(bool permanent) { - if((m_env != 0) && (permanent)) // Should be true when removing the object permanently and false when refreshing (eg: updating visuals) + // Should be true when removing the object permanently and false when refreshing (eg: updating visuals) + if((m_env != NULL) && (permanent)) { for(std::vector<u16>::iterator ci = m_children.begin(); ci != m_children.end(); ci++) @@ -747,6 +748,12 @@ void GenericCAO::removeFromScene(bool permanent) } m_env->m_attachements[getId()] = 0; + + LocalPlayer* player = m_env->getLocalPlayer(); + if (this == player->parent) { + player->parent = NULL; + player->isAttached = false; + } } if(m_meshnode) |