core/MenuStyle_Base.cpp
changeset 1474 a3b73df84d88
parent 1347 b1e02bc27316
child 1476 24da5fadf93f
     1.1 --- a/core/MenuStyle_Base.cpp	Wed Sep 26 01:03:20 2007 +0000
     1.2 +++ b/core/MenuStyle_Base.cpp	Wed Sep 26 01:04:22 2007 +0000
     1.3 @@ -288,6 +288,8 @@
     1.4  	IMenuHandler *mh = states.mh;
     1.5  	IBaseMenu *menu = states.menu;
     1.6  
     1.7 +	unsigned int item_on_page = states.firstItem;
     1.8 +
     1.9  	assert(mh != NULL);
    1.10  
    1.11  	if (menu == NULL)
    1.12 @@ -380,6 +382,10 @@
    1.13  		mh->OnMenuCancel(menu, client, reason);
    1.14  	} else {
    1.15  		mh->OnMenuSelect(menu, client, item);
    1.16 +		if (mh->GetMenuAPIVersion2() >= 13)
    1.17 +		{
    1.18 +			mh->OnMenuSelect2(menu, client, item, item_on_page);
    1.19 +		}
    1.20  	}
    1.21  
    1.22  	/* Only fire end for valid menus */
    1.23 @@ -448,7 +454,11 @@
    1.24  	return true;
    1.25  }
    1.26  
    1.27 -bool BaseMenuStyle::DoClientMenu(int client, CBaseMenu *menu, IMenuHandler *mh, unsigned int time)
    1.28 +bool BaseMenuStyle::DoClientMenu(int client,
    1.29 +								 CBaseMenu *menu,
    1.30 +								 unsigned int first_item,
    1.31 +								 IMenuHandler *mh,
    1.32 +								 unsigned int time)
    1.33  {
    1.34  #if defined MENU_DEBUG
    1.35  	g_Logger.LogMessage("[SM_MENU] DoClientMenu() (client %d) (menu %p) (mh %p) (time %d)",
    1.36 @@ -498,7 +508,7 @@
    1.37  		_CancelClientMenu(client, MenuCancel_Interrupted, true);
    1.38  	}
    1.39  
    1.40 -	states.firstItem = 0;
    1.41 +	states.firstItem = first_item;
    1.42  	states.lastItem = 0;
    1.43  	states.menu = menu;
    1.44  	states.mh = mh;