• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Panorama

  • Автор темы Автор темы siihino
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
27 Авг 2021
Сообщения
39
Реакции
1
как можно реализовать функцию, которая будет возвращать булеану в зависимости от наличия определенной панельки на экране?
 
C++:
Expand Collapse Copy
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)
 
Последнее редактирование:
cgfcb,j
C++:
Expand Collapse Copy
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)
спасибо!
 
Назад
Сверху Снизу