fixed bug where exit wasn't guaranteed

fixed menu destroy bug at25132
This commit is contained in:
David Anderson 2006-02-09 11:19:57 +00:00
parent 5a0b3b0f9f
commit c602308acb

View File

@ -96,6 +96,8 @@ Menu::~Menu()
{
for (size_t i = 0; i < m_Items.size(); i++)
delete m_Items[i];
unregisterSPForward(this->func);
m_Items.clear();
}
@ -728,8 +730,15 @@ static cell AMX_NATIVE_CALL menu_destroy(AMX *amx, cell *params)
for (int i=1; i<=gpGlobals->maxClients; i++)
{
player = GET_PLAYER_POINTER_I(i);
if (player->newmenu == pMenu->menuId)
if (player->newmenu == pMenu->thisId)
{
executeForwards(pMenu->func,
static_cast<cell>(i),
static_cast<cell>(pMenu->thisId),
static_cast<cell>(MENU_EXIT));
player->newmenu = -1;
player->menu = 0;
}
}
delete pMenu;