diff options
-rw-r--r-- | src/guiEngine.cpp | 7 | ||||
-rw-r--r-- | src/guiFormSpecMenu.cpp | 5 | ||||
-rw-r--r-- | src/guiTable.cpp | 2 |
3 files changed, 10 insertions, 4 deletions
diff --git a/src/guiEngine.cpp b/src/guiEngine.cpp index 671f0c574..34bdaffad 100644 --- a/src/guiEngine.cpp +++ b/src/guiEngine.cpp @@ -205,8 +205,9 @@ GUIEngine::GUIEngine( irr::IrrlichtDevice* dev, } m_menu->quitMenu(); - m_menu->drop(); - m_menu = 0; + m_menu->remove(); + delete m_menu; + m_menu = NULL; } /******************************************************************************/ @@ -279,8 +280,6 @@ GUIEngine::~GUIEngine() m_sound_manager = NULL; } - //TODO: clean up m_menu here - infostream<<"GUIEngine: Deinitializing scripting"<<std::endl; delete m_script; diff --git a/src/guiFormSpecMenu.cpp b/src/guiFormSpecMenu.cpp index f69f1b9a5..6073ed7cc 100644 --- a/src/guiFormSpecMenu.cpp +++ b/src/guiFormSpecMenu.cpp @@ -102,6 +102,11 @@ GUIFormSpecMenu::GUIFormSpecMenu(irr::IrrlichtDevice* dev, GUIFormSpecMenu::~GUIFormSpecMenu() { removeChildren(); + + for (u32 i = 0; i < m_tables.size(); ++i) { + GUITable *table = m_tables[i].second; + table->drop(); + } delete m_selected_item; diff --git a/src/guiTable.cpp b/src/guiTable.cpp index 5febb8370..4d6fc1950 100644 --- a/src/guiTable.cpp +++ b/src/guiTable.cpp @@ -98,6 +98,8 @@ GUITable::~GUITable() if (m_font) m_font->drop(); + + m_scrollbar->remove(); } GUITable::Option GUITable::splitOption(const std::string &str) |