File tree Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change 22
33#include " ../player/PlayerManager.h"
44
5+ std::map<std::string, bool > scheduledForDelete;
6+
57MenuManager::MenuManager ()
68{
79}
@@ -23,7 +25,10 @@ void MenuManager::UnregisterMenu(std::string id)
2325{
2426 if (this ->menu_ids .find (id) == this ->menu_ids .end ())
2527 return ;
28+ if (scheduledForDelete.find (id) != scheduledForDelete.end ())
29+ return ;
2630
31+ scheduledForDelete.insert ({id, true });
2732 for (uint16_t i = 0 ; i < g_playerManager->GetPlayerCap (); i++)
2833 {
2934 Player *player = g_playerManager->GetPlayer (i);
@@ -34,14 +39,14 @@ void MenuManager::UnregisterMenu(std::string id)
3439 if (!player->HasMenuShown ())
3540 continue ;
3641
37- if (player->GetMenu ())
38- if (player->GetMenu ()->GetID () == id)
39- player->HideMenu ();
42+ if (player->GetMenu ()->GetID () == id)
43+ player->HideMenu ();
4044 }
4145
4246 Menu *menu = this ->menu_ids .at (id);
4347 delete menu;
4448 this ->menu_ids .erase (id);
49+ scheduledForDelete.erase (id);
4550}
4651
4752Menu *MenuManager::FetchMenu (std::string menu_id)
You can’t perform that action at this time.
0 commit comments