Вопрос Panorama

Начинающий
Статус
Оффлайн
Регистрация
27 Авг 2021
Сообщения
31
Реакции[?]
1
Поинты[?]
0
как можно реализовать функцию, которая будет возвращать булеану в зависимости от наличия определенной панельки на экране?
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
C++:
CPanoramaUIEngine /* PanoramaUIEngine001 */
    @ 0x28: panorama::CUIEngineSource2* UIEngine;

panorama::CUIEngineSource2
    @ 0xA0: CUtlVector<panorama::CTopLevelWindowSource2*> TopLevelWindows;

panorama::CTopLevelWindowSource2
    @ 0x88: CUtlLinkedList<panorama::CUIPanel*, unsigned short> TopLevelVisiblePanels;
    @ 0x160: const char* name;

panorama::CUIPanel
    @ 0x10: const char* name;
    @ 0x28: CUtlVector<panorama::CUIPanel*> children;
    FindInTree(panelname):
        if name == panelname return this
        foreach child in children:
            result = child.FindInTree(panelname)
            if result return result
        return null

does_panel_exist(windowname, panelname) = CPanoramaUIEngine::UIEngine?
    .TopLevelWindows.find(windowname, &panorama::CTopLevelWindowSource2::name)? /* or foreach window */
    .TopLevelVisiblePanels.any_of(e -> e.FindInTree(panelname) != nullptr)
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
27 Авг 2021
Сообщения
31
Реакции[?]
1
Поинты[?]
0
cgfcb,j
C++:
CPanoramaUIEngine /* PanoramaUIEngine001 */
    @ 0x28: panorama::CUIEngineSource2* UIEngine;

panorama::CUIEngineSource2
    @ 0xA0: CUtlVector<panorama::CTopLevelWindowSource2*> TopLevelWindows;

panorama::CTopLevelWindowSource2
    @ 0x88: CUtlLinkedList<panorama::CUIPanel*, unsigned short> TopLevelVisiblePanels;
    @ 0x160: const char* name;

panorama::CUIPanel
    @ 0x10: const char* name;
    @ 0x28: CUtlVector<panorama::CUIPanel*> children;
    FindInTree(panelname):
        if name == panelname return this
        foreach child in children:
            result = child.FindInTree(panelname)
            if result return result
        return null

does_panel_exist(windowname, panelname) = CPanoramaUIEngine::UIEngine?
    .TopLevelWindows.find(windowname, &panorama::CTopLevelWindowSource2::name)? /* or foreach window */
    .TopLevelVisiblePanels.any_of(e -> e.FindInTree(panelname) != nullptr)
спасибо!
 
Сверху Снизу