File tree 3 files changed +8
-3
lines changed
3 files changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -670,6 +670,7 @@ GenericCAO::~GenericCAO()
670
670
{
671
671
m_env->removePlayerName (m_name.c_str ());
672
672
}
673
+ removeFromScene (true );
673
674
}
674
675
675
676
core::aabbox3d<f32>* GenericCAO::getSelectionBox ()
@@ -735,7 +736,7 @@ ClientActiveObject* GenericCAO::getParent()
735
736
736
737
void GenericCAO::removeFromScene (bool permanent)
737
738
{
738
- if (permanent) // Should be true when removing the object permanently and false when refreshing (eg: updating visuals)
739
+ if ((m_env != 0 ) && ( permanent) ) // Should be true when removing the object permanently and false when refreshing (eg: updating visuals)
739
740
{
740
741
for (std::vector<u16>::iterator ci = m_children.begin ();
741
742
ci != m_children.end (); ci++)
Original file line number Diff line number Diff line change @@ -100,6 +100,7 @@ Player::Player(IGameDef *gamedef):
100
100
101
101
Player::~Player ()
102
102
{
103
+ clearHud ();
103
104
}
104
105
105
106
// Horizontal acceleration (X and Z), Y direction is ignored
Original file line number Diff line number Diff line change @@ -383,13 +383,16 @@ ShaderSource::ShaderSource(IrrlichtDevice *device):
383
383
384
384
ShaderSource::~ShaderSource ()
385
385
{
386
- // m_shader_callback->drop();
387
-
388
386
for (std::vector<IShaderConstantSetter*>::iterator iter = m_global_setters.begin ();
389
387
iter != m_global_setters.end (); iter++) {
390
388
delete *iter;
391
389
}
392
390
m_global_setters.clear ();
391
+
392
+ if (m_shader_callback) {
393
+ m_shader_callback->drop ();
394
+ m_shader_callback = NULL ;
395
+ }
393
396
}
394
397
395
398
u32 ShaderSource::getShader (const std::string &name,
You can’t perform that action at this time.
0 commit comments