Compare commits

...

7 Commits

Author SHA1 Message Date
Ilusion9
16ead392eb
Merge 3a68eeba42 into 1819f491b5 2025-11-25 23:21:49 +00:00
dependabot[bot]
1819f491b5
Bump actions/checkout from 5 to 6 (#2378)
Some checks failed
Continuous Integration / ${{ matrix.os_short }}-${{ matrix.compiler_cc }} (clang, clang++, ubuntu-latest, linux) (push) Has been cancelled
Continuous Integration / ${{ matrix.os_short }}-${{ matrix.compiler_cc }} (clang-14, clang++-14, ubuntu-22.04, linux) (push) Has been cancelled
Continuous Integration / ${{ matrix.os_short }}-${{ matrix.compiler_cc }} (msvc, windows-latest, win) (push) Has been cancelled
hl2sdk-mock tests / mock (push) Has been cancelled
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 15:55:07 +00:00
Ilusion9
3a68eeba42
Add function to find a TopMenu Item 2023-03-30 16:57:23 +03:00
Ilusion9
b70243f469
Add function to find a TopMenu Item 2023-03-04 20:21:36 +02:00
Ilusion9
a3411df89b
Add function to find a TopMenu Item 2023-03-04 20:02:56 +02:00
Ilusion9
1121cb6ef0
Add function to find a TopMenu Item 2023-03-04 20:00:15 +02:00
Ilusion9
5333aa07cc
Update smn_topmenus.cpp 2023-03-04 19:59:04 +02:00
9 changed files with 48 additions and 8 deletions

View File

@ -36,7 +36,7 @@ jobs:
MYSQL_VERSION: '5.7'
MMSOURCE_VERSION: '1.12'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: recursive
path: sourcemod

View File

@ -12,20 +12,20 @@ jobs:
mock:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
name: Clone sourcemod
with:
submodules: recursive
path: sourcemod
- uses: actions/checkout@v5
- uses: actions/checkout@v6
name: Clone metamod-source
with:
repository: alliedmodders/metamod-source
submodules: recursive
path: metamod-source
- uses: actions/checkout@v5
- uses: actions/checkout@v6
name: Clone hl2sdk-mock
with:
repository: alliedmodders/hl2sdk-mock

View File

@ -25,7 +25,7 @@ jobs:
env:
ARCH: x86,x86_64
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: recursive

View File

@ -10,7 +10,7 @@ jobs:
update_translations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: recursive

View File

@ -15,7 +15,7 @@ jobs:
check_translations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
name: Setup Python 3.10

View File

@ -1244,6 +1244,18 @@ unsigned int TopMenu::FindCategory(const char *name)
return obj->object_id;
}
unsigned int TopMenu::FindItem(const char *name)
{
topmenu_object_t *obj;
if (!m_ObjLookup.retrieve(name, &obj))
return 0;
if (obj->type != TopMenuObject_Item)
return 0;
return obj->object_id;
}
void TopMenu::OnMaxPlayersChanged( int newvalue )
{
m_max_clients = newvalue;

View File

@ -142,6 +142,7 @@ public: //ITopMenu
TopMenuPosition position);
virtual bool LoadConfiguration(const char *file, char *error, size_t maxlength);
virtual unsigned int FindCategory(const char *name);
virtual unsigned int FindItem(const char *name);
const char *GetObjectInfoString(unsigned int object_id);
const char *GetObjectName(unsigned int object_id);
public: //IMenuHandler

View File

@ -300,6 +300,24 @@ static cell_t FindTopMenuCategory(IPluginContext *pContext, const cell_t *params
return pMenu->FindCategory(name);
}
static cell_t FindTopMenuItem(IPluginContext *pContext, const cell_t *params)
{
HandleError err;
ITopMenu *pMenu;
HandleSecurity sec(pContext->GetIdentity(), myself->GetIdentity());
if ((err = handlesys->ReadHandle(params[1], hTopMenuType, &sec, (void **)&pMenu))
!= HandleError_None)
{
return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
}
char *name;
pContext->LocalToString(params[2], &name);
return pMenu->FindItem(name);
}
static cell_t DisplayTopMenu(IPluginContext *pContext, const cell_t *params)
{
HandleError err;
@ -486,6 +504,7 @@ sp_nativeinfo_t g_TopMenuNatives[] =
{"TopMenu.LoadConfig", LoadTopMenuConfig},
{"TopMenu.Remove", RemoveFromTopMenu},
{"TopMenu.FindCategory", FindTopMenuCategory},
{"TopMenu.FindItem", FindTopMenuItem},
{"TopMenu.GetInfoString", GetTopMenuInfoString},
{"TopMenu.GetObjName", GetTopMenuName},
{"TopMenu.CacheTitles.set", SetTopMenuTitleCaching},

View File

@ -244,7 +244,14 @@ methodmap TopMenu < Handle
// @return TopMenuObject ID on success, or
// INVALID_TOPMENUOBJECT on failure.
public native TopMenuObject FindCategory(const char[] name);
// Finds an item's topobj ID in a TopMenu.
//
// @param name Object's unique name.
// @return TopMenuObject ID on success, or
// INVALID_TOPMENUOBJECT on failure.
public native TopMenuObject FindItem(const char[] name);
// Set the menu title caching behavior of the TopMenu. By default titles
// are cached to reduce overhead. If you need dynamic menu titles which
// change each time the menu is displayed to a user, set this to false.
@ -441,6 +448,7 @@ public void __ext_topmenus_SetNTVOptional()
MarkNativeAsOptional("TopMenu.Display");
MarkNativeAsOptional("TopMenu.DisplayCategory");
MarkNativeAsOptional("TopMenu.FindCategory");
MarkNativeAsOptional("TopMenu.FindItem");
MarkNativeAsOptional("TopMenu.CacheTitles.set");
}
#endif