Newmenus: Add MENU_TIMEOUT status code and pass it where necessary

This commit is contained in:
Valentin Grünbacher
2014-05-21 18:45:40 +02:00
parent cd7cb8c1a8
commit 2e8ce87c23
4 changed files with 42 additions and 8 deletions

View File

@ -1298,10 +1298,15 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */
if (menu >= 0 && menu < (int)g_NewMenus.size() && g_NewMenus[menu])
{
Menu *pMenu = g_NewMenus[menu];
int status;
if (gpGlobals->time > pPlayer->menuexpire)
status = MENU_TIMEOUT;
else
status = MENU_EXIT;
pPlayer->newmenu = -1;
executeForwards(pMenu->func, static_cast<cell>(pPlayer->index), static_cast<cell>(menu), static_cast<cell>(MENU_EXIT));
executeForwards(pMenu->func, static_cast<cell>(pPlayer->index), static_cast<cell>(menu), static_cast<cell>(status));
}
UTIL_FakeClientCommand(pPlayer->pEdict, "menuselect", "10", 0);
@ -1340,10 +1345,15 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */
if (menu >= 0 && menu < (int)g_NewMenus.size() && g_NewMenus[menu])
{
Menu *pMenu = g_NewMenus[menu];
int status;
if (gpGlobals->time > pPlayer->menuexpire)
status = MENU_TIMEOUT;
else
status = MENU_EXIT;
pPlayer->newmenu = -1;
executeForwards(pMenu->func, static_cast<cell>(pPlayer->index), static_cast<cell>(menu), static_cast<cell>(MENU_EXIT));
executeForwards(pMenu->func, static_cast<cell>(pPlayer->index), static_cast<cell>(menu), static_cast<cell>(status));
}
UTIL_FakeClientCommand(pPlayer->pEdict, "menuselect", "10", 0);