projects
/
oweals
/
minetest.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add sqlite3 backend hack for android
[oweals/minetest.git]
/
src
/
content_cao.cpp
diff --git
a/src/content_cao.cpp
b/src/content_cao.cpp
index a05936d2c63bdf76bf8323d8d795a2192130c323..02622f5b48b113754be2bb9225fe12bb934c3968 100644
(file)
--- a/
src/content_cao.cpp
+++ b/
src/content_cao.cpp
@@
-670,6
+670,7
@@
GenericCAO::~GenericCAO()
{
m_env->removePlayerName(m_name.c_str());
}
{
m_env->removePlayerName(m_name.c_str());
}
+ removeFromScene(true);
}
core::aabbox3d<f32>* GenericCAO::getSelectionBox()
}
core::aabbox3d<f32>* GenericCAO::getSelectionBox()
@@
-735,7
+736,8
@@
ClientActiveObject* GenericCAO::getParent()
void GenericCAO::removeFromScene(bool permanent)
{
void GenericCAO::removeFromScene(bool permanent)
{
- if(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++)
{
for(std::vector<u16>::iterator ci = m_children.begin();
ci != m_children.end(); ci++)
@@
-746,6
+748,12
@@
void GenericCAO::removeFromScene(bool permanent)
}
m_env->m_attachements[getId()] = 0;
}
m_env->m_attachements[getId()] = 0;
+
+ LocalPlayer* player = m_env->getLocalPlayer();
+ if (this == player->parent) {
+ player->parent = NULL;
+ player->isAttached = false;
+ }
}
if(m_meshnode)
}
if(m_meshnode)