include "TriggerLibs/HeroesLib_h"
include "TriggerLibs/GameLib_h"

//--------------------------------------------------------------------------------------------------
// Library: UI
//--------------------------------------------------------------------------------------------------
// Constants
const int libUIUI_gv_defaultRenderPriority_C = 512;
const fixed libUIUI_gv_deathRecap_DebuffPanelTimeFrame_C = 20.0;
const int libUIUI_gv_deathRecap_DebuffPanelTimelinePixelWidth_C = 640;
const int libUIUI_gv_deathRecap_DebuffPanelBarHeight_C = 17;
const int libUIUI_gv_deathRecap_DebuffPanelBarSpacing_C = 4;
const int libUIUI_gv_deathRecap_DamageTakenPanelTotalBarHeight_C = 195;
const int libUIUI_gv_deathRecap_DamageTakenPanelBarWidth_C = 200;
const int libUIUI_gv_deathRecap_DamageDetailsPanelTotalBarHeight_C = 178;
const int libUIUI_gv_deathRecap_DamageDetailsPanelBarWidth_C = 200;
const fixed libUIUI_gv_deathTimerPanel_AnnouncementVisibleDuration_C = 2.0;
const fixed libUIUI_gv_deathTimerPanel_AnnouncementTransitionOutDuration_C = 0.625;
const int libUIUI_gv_deathAnnouncement_TopFrameRenderPriority_C = 600;
const int libUIUI_gv_deathAnnouncement_RenderPriorityDecrement_C = 10;
const int libUIUI_gv_deathTimerPanel_MaxBarWidth_C = 465;
const int libUIUI_gv_deathTimerPanel_BarHeight_C = 5;
const fixed libUIUI_gv_deathTimerPanel_NearRezTime_C = 2.0;
const fixed libUIUI_gv_deathTimerPanel_GroupTimeDifferential_C = 6.0;
const int libUIUI_gv_deathTimerPanel_PerLayerYOffset_C = 20;
const int libUIUI_gv_encouragement_MaxNumberOfStatCalloutsDisplayed_C = 4;
const int libUIUI_gv_encouragement_MaxNumberOfDeathTipsDisplayed_C = 1;
const fixed libUIUI_gv_floatingCombatTextNormalDuration = 0.5;
const fixed libUIUI_gv_floatingCombatTextMediumDuration = 0.75;
const fixed libUIUI_gv_floatingCombatTextHighDuration = 1.0;
const fixed libUIUI_gv_floatingCombatTextInsaneDuration = 1.25;
const fixed libUIUI_gv_floatingCombatTextFadeDuration = 0.25;
const fixed libUIUI_gv_floatingCombatText_PercentCutoff_C = 0.0;
const fixed libUIUI_gv_floatingCombatText_Damage_NormalThreshold = 0.1;
const fixed libUIUI_gv_floatingCombatText_Damage_HighThreshold = 0.33;
const int libUIUI_gv_uI_HealingFountainsHelpText_ArraySize_C = 31;
const fixed libUIUI_gv_uI_HealingFountainsHelpText_HeightOffset_C = 2.0;
const int libUIUI_gv_helpButtonMaxCount_C = 10;
const string libUIUI_gv_helpButtonDataTableKey_C = "HelpButtonClickedPlayer";
const int libUIUI_gv_heroConsole_MaxAdditionalButtons_C = 7;
const int libUIUI_gv_heroConsole_MaxButtonOffset_C = 266;
const int libUIUI_gv_heroConsole_CommandButtonSize_C = 87;
const int libUIUI_gv_heroConsole_NumberOfAbilitySlots_C = 4;
const int libUIUI_gv_heroConsole_NumberOfAbilityUpgrades_C = 3;
const int libUIUI_gv_uIUnitStatusFramesClassIconDefaultPoints = 3;
const fixed libUIUI_gv_uI_PingCooldownTime_C = 0.75;
const fixed libUIUI_gv_uITargetingHelperPanelRangeSlop = 16.0;
const int libUIUI_gv_tutorialReferenceCount_Max = 5;

// Structures
struct libUIUI_gs_UIDamageFlashUI {
    int lv_mainDialog;
    int lv_lightSplashImage;
    int lv_intenseSplashImage;
    int lv_lowHealthPersistentImage;
};

struct libUIUI_gs_UIDeathActionCamPanel {
    int lv_mainDialog;
    int lv_previousAllyButton;
    int lv_nextAllyButton;
    int lv_deathActionCamCheckbox;
};

struct libUIUI_gs_DeathRecapPanel {
    int lv_mainPanel;
    int lv_closeButton;
    int lv_openButton;
    int lv_debuffsPanel;
    int lv_debuffsTimelineBar;
    int[libGame_gv_deathRecap_DebuffCategoryCount_C + 1] lv_debuffsCategoryLabels;
    int lv_damageTakenPanel;
    int[libGame_gv_deathRecap_MaxDamageTakenBars_C + 1] lv_damageTakenDamageBarImages;
    int[libGame_gv_deathRecap_MaxDamageTakenBars_C + 1] lv_damageTakenDamageBarButtons;
    int[libGame_gv_deathRecap_MaxDamageTakenBars_C + 1] lv_damageTakenDamageBarNameLabels;
    int[libGame_gv_deathRecap_MaxDamageTakenBars_C + 1] lv_damageTakenDamageBarBorderFrames;
    int[libGame_gv_deathRecap_MaxDamageTakenBars_C + 1] lv_damageTakenDamageBarAmountLabels;
    int lv_damageTakenSummaryLabel;
    int lv_blankDetailsPanel;
    int lv_debuffDetailsPanel;
    int lv_debuffDetailsHeaderLabel;
    int lv_debuffDetailsTimelineBar;
    int lv_debuffDetailsEndTimeLabel;
    int[libGame_gv_deathRecap_MaxDebuffDetailsAbilities_C + 1] lv_debuffDetailsAbilityDebuffLabels;
    int lv_debuffDetailsAbilityInfoPanel;
    int lv_debuffDetailsAbilityInfoIcon;
    int lv_debuffDetailsAbilityInfoNameLabel;
    int lv_debuffDetailsAbilityInfoAmountLabel;
    int lv_debuffDetailsAbilityInfoTooltipLabel;
    int lv_debuffDetailsHeroInfoPanel;
    int lv_debuffDetailsHeroInfoPortraitImage;
    int lv_debuffDetailsHeroInfoNameLabel;
    int lv_debuffDetailsHeroInfoPlayerNameLabel;
    int lv_debuffDetailsHeroInfoDescriptionLabel;
    int lv_debuffDetailsClickForMoreInfoLabel;
    int lv_damageDetailsPanel;
    int[libGame_gv_deathRecap_MaxDamageDetailsAbilities_C + 1] lv_damageDetailsDamageBarImages;
    int[libGame_gv_deathRecap_MaxDamageDetailsAbilities_C + 1] lv_damageDetailsDamageBarButtons;
    int[libGame_gv_deathRecap_MaxDamageDetailsAbilities_C + 1] lv_damageDetailsDamageBarNameLabels;
    int[libGame_gv_deathRecap_MaxDamageDetailsAbilities_C + 1] lv_damageDetailsDamageBarBorderFrames;
    int[libGame_gv_deathRecap_MaxDamageDetailsAbilities_C + 1] lv_damageDetailsDamageBarAmountLabels;
    int lv_damageDetailsAbilityInfoPanel;
    int lv_damageDetailsAbilityInfoIcon;
    int lv_damageDetailsAbilityInfoCountLabel;
    int lv_damageDetailsAbilityInfoNameLabel;
    int lv_damageDetailsAbilityInfoAmountLabel;
    int lv_damageDetailsAbilityInfoTooltipLabel;
    int lv_damageDetailsHeroInfoPanel;
    int lv_damageDetailsHeroInfoPortraitImage;
    int lv_damageDetailsHeroInfoNameLabel;
    int lv_damageDetailsHeroInfoPlayerNameLabel;
    int lv_damageDetailsHeroInfoDescriptionLabel;
    int lv_damageDetailsClickForMoreInfoLabel;
};

struct libUIUI_gs_DeathTimerPanel {
    int[libCore_gv_bALMaxTeams + 1] lv_mainPanel;
    int[libCore_gv_bALMaxTeams + 1] lv_timerBar;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_timerBarHeroFrame;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_timerBarHeroFramePortraitImage;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_timerBarHeroFrameTimeLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_timerBarHeroFrameHeroNameLabel;
    int[libCore_gv_bALMaxTeams + 1] lv_announcementPanel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_announcementHeroFrame;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_announcementHeroFrameNameLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_announcementHeroFrameKillersLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_announcementHeroFramePortraitImage;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_announcementHeroFrameBorderImageFaded;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_announcementHeroFrameBorderImageBright;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_announcementHeroFrameCrossImage;
};

struct libUIUI_gs_DeathTimerGroup {
    int lv_frameCount;
    int[libCore_gv_bALMaxPlayersOnATeam + 1] lv_frames;
    bool[libCore_gv_bALMaxPlayers + 1] lv_slideOut;
};

struct libUIUI_gs_UIDebugPanel {
    int lv_mainDialog;
    int lv_closeButton;
    int lv_refreshCooldownsButton;
    int lv_selectionEnabledCheckbox;
    int lv_startGameButton;
    int lv_spawnCreepCampsButton;
    int lv_forceMinionWaveCompCheckbox;
    int lv_forceMinionWaveCompDropdown;
    int lv_respecHeroButton;
    int lv_playerLabel;
    int lv_playerSlider;
    int lv_levelLabel;
    int lv_levelSlider;
    int lv_useCurrentXPCheckbox;
    int lv_spawnHeroButton;
    int lv_allHeroesCheckbox;
    int lv_allTalentsCheckbox;
    int lv_heroDropdown;
    int lv_skinDropdown;
    int lv_mountDropdown;
    int lv_announcerDropdown;
    int lv_metaXPEditBox;
    int lv_metaXPSendButton;
    int lv_xPLabel;
};

struct libUIUI_gs_EncouragementStatToDisplay {
    int lv_statIndex;
    int lv_thresholdIndex;
    fixed lv_thresholdRatio;
};

struct libUIUI_gs_EncouragementPanel {
    int lv_mainDialog;
    int lv_closeButton;
    int[libUIUI_gv_encouragement_MaxNumberOfStatCalloutsDisplayed_C + 1] lv_statCalloutLabels;
    int[libUIUI_gv_encouragement_MaxNumberOfDeathTipsDisplayed_C + 1] lv_deathTipLabels;
};

struct libUIUI_gs_FullscreenOverlaysPanel {
    int lv_mainDialog;
    int lv_cCSplashImage;
    int lv_flashBangImage;
    int lv_abathurSymbioteOverlay;
    int lv_deathOverlay;
};

struct libUIUI_gs_GameOverSplash {
    int lv_mainPanel;
    int lv_victoryFrame;
    int lv_defeatFrame;
};

struct libUIUI_gs_UIGameUIHandles {
    int lv_fullscreenUpperContainer;
    int lv_consoleUIContainer;
    int lv_consolePanel;
    int lv_talentsButton;
    int lv_gameMenuButton;
    int lv_minimapPanel;
    int lv_gameUIContainer;
};

struct libUIUI_gs_HealingFountainHelperTags {
    int lv_textTag;
    unit lv_healingFountain;
};

struct libUIUI_gs_UIHeroConsole {
    int lv_mainPanel;
    int lv_buffDebuffPanel;
    int lv_heroStatsFrame;
    int lv_heroStatsUnitStatusFrame;
    int lv_heroStatsHealthBar;
    int lv_heroStatsManaBar;
    int lv_gameUIPortrait;
    int lv_gameUICommandPanel;
    int lv_gameUICommandCardPanelFrame;
    int lv_gameUIInventoryPanel;
};

struct libUIUI_gs_HeroConsoleUnitStatusBars {
    int lv_stunDeathBarParentFrame;
    int lv_stunDeathBarLeftBar;
    int lv_stunDeathBarRightBar;
    int lv_stunDeathBarIcon;
    int lv_stunDeathBarDescriptionLabel;
    int lv_stunDeathBarTimeLabel;
    int lv_castChannelBarParentFrame;
    int lv_behaviorChannelBarParentFrame;
    int lv_behaviorChannelBarDurationBar;
    int lv_behaviorChannelBarBehaviorLabel;
};

struct libUIUI_gs_UIHeroSpecificStatusFrame {
    int lv_mainPanel;
    int lv_mechanicIcon;
};

struct libUIUI_gs_UIHeroStatusFrame {
    int lv_playerNameLabel;
    int lv_heroNameLabel;
    int lv_botDifficultyLabel;
    int lv_botStatusLabel;
    int lv_mapMechanicFrame;
    int lv_mapMechanicIcon;
    int lv_mapMechanicCount;
};

struct libUIUI_gs_UIHeroTrackerArrow {
    int lv_mainPanel;
    int lv_arrow;
    int lv_portraitImage;
};

struct libUIUI_gs_UILeaderboardSorting {
    int[libCore_gv_bALMaxPlayers + 1][libCore_gv_bALMaxTeams + 1] lv_playerSortingColumn;
    int[libCore_gv_bALMaxPlayers + 1] lv_leaderboardData;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1][libCore_gv_bALMaxPlayers + 1] lv_leaderboardSort;
};

struct libUIUI_gs_UILeaderboard {
    int lv_mainPanel;
    int lv_timeLabel;
    int lv_timeLabelHours;
    int lv_timeLabelMinutes;
    int lv_timeLabelSeconds;
    int[libCore_gv_bALMaxTeams + 1] lv_teamXPLabels;
    int[libCore_gv_bALMaxTeams + 1] lv_teamLevelLabels;
    int[libCore_gv_bALMaxTeams + 1] lv_teamMapMechanicLabels;
    int[libCore_gv_bALMaxTeams + 1] lv_xPSortingButton;
    int[libCore_gv_bALMaxTeams + 1] lv_takedownSortingButton;
    int[libCore_gv_bALMaxTeams + 1] lv_deathsSortingButton;
    int[libCore_gv_bALMaxTeams + 1] lv_mapMechanicSortingButton;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_portrait;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_playerName;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_heroName;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_playerOwnerBackground;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_playerXPLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_deathCountdownLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_heroicAbilityLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_heroicAbilityIcon;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_soloKillsLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_takedownsLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_deathsLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_mapMechanicBackground;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_mapMechanicIcon;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] lv_mapMechanicLabel;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1][7] lv_talentsBackground;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1][libCore_gv_talentsBucket_MaxTiers_C + 1] lv_talentsIcon;
    int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1][7] lv_talentsLabel;
};

struct libUIUI_gs_MapMechanicsPanel {
    int lv_mainPanel;
    int lv_ravenCourtPanel;
    int[libCore_gv_bALMaxTeams + 1] lv_ravenCourtTributeFrame;
    int[libCore_gv_bALMaxTeams + 1] lv_ravenCourtTributeCounterLabel;
    int lv_ravenCourtCurseFrame;
    int lv_ravenCourtCurseInfoLabel;
    int lv_ravenCourtCurseTimerLabel;
    int lv_blackheartsBayPanel;
    int lv_blackheartsBayDoubloonModeFrame;
    int[libCore_gv_bALMaxTeams + 1] lv_blackheartsBayDoubloonCounterLabel;
    int lv_blackheartsBayCannonModeFrame;
    int lv_blackheartsBayCannonRemainingCannonballsLabel;
    int[libCore_gv_bALMaxTeams + 1] lv_blackheartsBayCannonCannonballImage;
    int[libCore_gv_bALMaxTeams + 1] lv_blackheartsBayCannonShotCounterLabel;
    int lv_hauntedMinesPanel;
    int lv_hauntedMinesSkullModeFrame;
    int[libCore_gv_bALMaxTeams + 1] lv_hauntedMinesSkullModeSkullCounterLabel;
    int lv_hauntedMinesMineTimerModeFrame;
    int lv_hauntedMinesMineTimerLabel;
    int lv_hauntedMinesGolemModeFrame;
    int lv_hauntedMinesAllyGolemHealthUnitStatus;
    int lv_hauntedMinesEnemyGolemHealthUnitStatus;
    int lv_hauntedMinesAllyGolemModeSkullCounterLabel;
    int lv_hauntedMinesEnemyGolemModeSkullCounterLabel;
    int lv_dragonShirePanel;
    int lv_dragonShireShrineTimerModeFrame;
    int lv_dragonShireShrineTimerLabel;
    int lv_dragonShireShrineModeFrame;
    int[libCore_gv_bALMaxTeams + 1] lv_dragonShireMoonShrineDisabledImage;
    int[libCore_gv_bALMaxTeams + 1] lv_dragonShireMoonShrineEnabledImage;
    int[libCore_gv_bALMaxTeams + 1] lv_dragonShireStarShrineDisabledImage;
    int[libCore_gv_bALMaxTeams + 1] lv_dragonShireStarShrineEnabledImage;
    int lv_dragonShireDragonModeFrame;
    int lv_dragonShireDragonInfoLabel;
    int lv_dragonShireDragonTimerLabel;
    int lv_dragonShireDragonHealthUnitStatus;
    int lv_dragonShireDragonHealthLabel;
};

struct libUIUI_gs_UINotificationDisplay {
    int lv_mainPanel;
    int lv_flashFrame;
};

struct libUIUI_gs_UIObserverUI {
    int lv_mainPanel;
    int[libCore_gv_bALMaxPlayers + 1] lv_heroPanels;
    int[libCore_gv_bALMaxPlayers + 1] lv_heroPortraitImages;
    int[libCore_gv_bALMaxPlayers + 1] lv_heroIconBorders;
    int[libCore_gv_bALMaxPlayers + 1] lv_heroTargetFrames;
    int[libCore_gv_bALMaxPlayers + 1] lv_heroStatusBars;
    int[libCore_gv_bALMaxPlayers + 1] lv_heroDeathTimeLabels;
    int[libCore_gv_bALMaxTeams + 1] lv_teamKillsLabel;
    int[libCore_gv_bALMaxTeams + 1] lv_teamLevelLabel;
    int[libCore_gv_bALMaxTeams + 1] lv_teamTownsLabel;
};

struct libUIUI_gs_TalentsPanel {
    int lv_mainDialog;
    int lv_heroImage;
    int lv_closeButton;
    int lv_heroNameLabel;
    int[libCore_gv_talentsBucket_MaxTiers_C + 1][libCore_gv_talentsBucket_MaxTalentsPerTier_C + 1] lv_talentFrames;
    int[libCore_gv_talentsBucket_MaxTiers_C + 1][libCore_gv_talentsBucket_MaxTalentsPerTier_C + 1] lv_talentButtons;
    int[libCore_gv_talentsBucket_MaxTiers_C + 1][libCore_gv_talentsBucket_MaxTalentsPerTier_C + 1] lv_talentIcons;
    int[libCore_gv_talentsBucket_MaxTiers_C + 1][libCore_gv_talentsBucket_MaxTalentsPerTier_C + 1] lv_talentSelectedImages;
    int[libCore_gv_talentsBucket_MaxTiers_C + 1][libCore_gv_talentsBucket_MaxTalentsPerTier_C + 1] lv_talentGlowImages;
    int[libCore_gv_talentsBucket_MaxTiers_C + 1] lv_tierLevels;
    int[libCore_gv_talents_MaxTalentsPerHero_C + 1][libCore_gv_talentsBucket_MaxTalentsPerTier_C + 1] lv_talentTooltipLabels;
    int lv_heroLevelLabel;
    int lv_attackDamageLabel;
    int lv_attackSpeedLabel;
    int lv_damagePerSecondLabel;
    int lv_healthLabel;
    int lv_healthRegenLabel;
    int lv_shieldLabel;
    int lv_abilityPowerLabel;
    int lv_resourceTitle;
    int lv_resourceLabel;
    int lv_resourceRegenTitle;
    int lv_resourceRegenLabel;
    int lv_cooldownReductionLabel;
    int lv_movementSpeedLabel;
    int lv_committedPointsValueLabel;
};

struct libUIUI_gs_TalentsABChoicePanel {
    int lv_mainDialog;
    int lv_headerLabel;
    int[libCore_gv_talents_MaxABChoiceButtonCount_DEBUG_C + 1] lv_talentFrames;
    int[libCore_gv_talents_MaxABChoiceButtonCount_DEBUG_C + 1] lv_talentButtons;
    int[libCore_gv_talents_MaxABChoiceButtonCount_DEBUG_C + 1] lv_talentIcons;
    int[libCore_gv_talents_MaxABChoiceButtonCount_DEBUG_C + 1] lv_talentDescriptionLabels;
    int[libCore_gv_talents_MaxABChoiceButtonCount_DEBUG_C + 1] lv_tooltipLabel;
};

struct libUIUI_gs_UITargetInfoPanel {
    int lv_mainPanel;
    int lv_unitName;
    int lv_playerName;
    int lv_level;
    int lv_portraitImage;
    int lv_unitTargetFrame;
    int lv_mapMechanicIcon;
    int lv_mapMechanicLabel;
    int lv_descriptionLabel;
    int lv_cursedBuildingIcon;
    int lv_healthAndManaUnitStatusStatusFrame;
    int lv_healthOnlyUnitStatusStatusFrame;
    int lv_towerWithAmmoUnitStatusStatusFrame;
};

struct libUIUI_gs_UITargetingHelperPanel {
    int lv_mainPanel;
    int[libCore_gv_bALMaxPlayersOnATeam + 1] lv_heroFrames;
    int[libCore_gv_bALMaxPlayersOnATeam + 1] lv_heroIcons;
    int[libCore_gv_bALMaxPlayersOnATeam + 1] lv_heroBorderImages;
    int[libCore_gv_bALMaxPlayersOnATeam + 1] lv_heroTargetFrames;
    int[libCore_gv_bALMaxPlayersOnATeam + 1] lv_heroStatusFrames;
};

struct libUIUI_gs_TopBarPanel {
    int lv_mainPanel;
    int lv_gameTimerLabel;
    int[libCore_gv_bALMaxTeams + 1] lv_xPBackgroundBlue;
    int[libCore_gv_bALMaxTeams + 1] lv_xPBackgroundRed;
    int[libCore_gv_bALMaxTeams + 1] lv_xPUnitStatusFrame;
    int[libCore_gv_bALMaxTeams + 1] lv_xPVeterancyBar;
    int[libCore_gv_bALMaxTeams + 1] lv_levelLabel;
    int[libCore_gv_bALMaxTeams + 1] lv_levelUpLabel;
    int[libCore_gv_bALMaxTeams + 1] lv_coreHealthUnitStatusFrames;
    int lv_coreHealthLabel;
};

struct libUIUI_gs_TryMeModePanel {
    int lv_mainPanel;
    int lv_toggleMinionsButton;
    int lv_refreshFortsButton;
    int lv_levelUpButton;
    int lv_resetLevelButton;
    int lv_clearCooldownsButton;
};

// Variable Declarations
timer libUIUI_gv_uITimeLabelUpdateTimer;
libUIUI_gs_UIDamageFlashUI libUIUI_gv_uIDamageFlashUI;
fixed libUIUI_gv_uIDamageFlashLowHPThreshold;
libUIUI_gs_UIDeathActionCamPanel libUIUI_gv_uIDeathActionCamPanel;
color libUIUI_gv_deathRecap_DebuffPanelBarColor1_C;
color libUIUI_gv_deathRecap_DebuffPanelBarColor2_C;
libUIUI_gs_DeathRecapPanel libUIUI_gv_deathRecap_Panel;
int[libCore_gv_bALMaxPlayers + 1][libGame_gv_deathRecap_MaxDebuffBars_C + 1] libUIUI_gv_deathRecap_DebuffBars;
int[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_deathRecap_DebuffBarCount;
int[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_deathRecap_CurrentDeathIndex;
int[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_deathRecap_CurrentDamageTakenBarIndex;
libUIUI_gs_DeathTimerPanel libUIUI_gv_deathTimerPanel;
timer[libCore_gv_bALMaxTeams + 1] libUIUI_gv_deathAnnouncement_AnnouncementVisibleTimers;
int[libCore_gv_bALMaxTeams + 1] libUIUI_gv_deathAnnouncement_TopMostHeroFrame;
int[libCore_gv_bALMaxTeams + 1] libUIUI_gv_deathAnnouncement_NextHeroFrameToUse;
bool[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayers + 1] libUIUI_gv_deathAnnouncement_HeroFrameInUse;
int[libCore_gv_bALMaxTeams + 1] libUIUI_gv_deathAnnouncement_VisibleHeroFrameCount;
int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] libUIUI_gv_deathAnnouncement_PlayerAssignedToFrame;
int[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] libUIUI_gv_deathTimerPanel_PlayerAssignedToFrame;
libUIUI_gs_DeathTimerGroup[libCore_gv_bALMaxTeams + 1][libCore_gv_bALMaxPlayersOnATeam + 1] libUIUI_gv_deathTimerPanel_TimerGroups;
bool[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_uIDebugPanelDisableRangeCheck;
bool libUIUI_gv_uIDebugPanelForceMinionWaveComp;
int libUIUI_gv_uIDebugPanelForcedMinionWaveCompIndex;
int[libCore_gv_bALMaxPlayers + 1][libCore_gv_dataHeroesMaxHeroCount + 1] libUIUI_gv_uIDebugPanelHeroIndexFromDropdownIndex;
int[libCore_gv_bALMaxPlayers + 1][libCore_gv_dataSkinsMaxSkinCount + 1] libUIUI_gv_uIDebugPanelSkinIndexFromDropdownIndex;
int[libCore_gv_bALMaxPlayers + 1][libCore_gv_dataMountsMaxMountCount + 1] libUIUI_gv_uIDebugPanelMountIndexFromDropdownIndex;
int libUIUI_gv_uIDebugPanelDebugMetaXPValue;
libUIUI_gs_UIDebugPanel libUIUI_gv_uIDebugPanel;
libUIUI_gs_EncouragementPanel libUIUI_gv_encouragement_Panel;
libUIUI_gs_FullscreenOverlaysPanel libUIUI_gv_fullscreenOverlaysPanel;
libUIUI_gs_GameOverSplash libUIUI_gv_gameOverSplash;
libUIUI_gs_UIGameUIHandles libUIUI_gv_uIGameUIHandles;
libUIUI_gs_HealingFountainHelperTags[libCore_gv_bALMaxTeams + 1][libUIUI_gv_uI_HealingFountainsHelpText_ArraySize_C + 1] libUIUI_gv_uIHealingFountainsHelpText;
bool[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_uIHealingFountainsHelpTextHasFountainBeenUsed;
bool[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_uIHealingFountainsHelpTextTextShowing;
int[libUIUI_gv_helpButtonMaxCount_C + 1] libUIUI_gv_helpButtonFrames;
int[libUIUI_gv_helpButtonMaxCount_C + 1] libUIUI_gv_helpButtonLabels;
trigger[libUIUI_gv_helpButtonMaxCount_C + 1] libUIUI_gv_helpButtonCallbacks;
unit[libUIUI_gv_helpButtonMaxCount_C + 1] libUIUI_gv_helpButtonUnits;
int libUIUI_gv_helpButtonCount;
libUIUI_gs_UIHeroConsole libUIUI_gv_uIHeroConsole;
libUIUI_gs_HeroConsoleUnitStatusBars libUIUI_gv_heroConsoleUnitStatusBars;
bool[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_heroConsoleUnitStatusBars_PlayerIsCasting;
unit[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_heroConsoleUnitStatusBars_CurrentUnitForPlayer;
string[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_heroConsoleUnitStatusBars_StunDeathBarCurrentBehaviorForPlayer;
string[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_heroConsoleUnitStatusBars_BehaviorChannelBarCurrentBehaviorForPlayer;
libUIUI_gs_UIHeroSpecificStatusFrame libUIUI_gv_uIHeroSpecificStatusFrame;
libUIUI_gs_UIHeroStatusFrame[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_uIHeroStatusFrames;
libUIUI_gs_UIHeroTrackerArrow libUIUI_gv_uIHeroTrackerArrow;
libUIUI_gs_UILeaderboardSorting libUIUI_gv_uILeaderboardSorting;
libUIUI_gs_UILeaderboard libUIUI_gv_uILeaderboard;
libUIUI_gs_MapMechanicsPanel libUIUI_gv_mapMechanicsPanel;
libUIUI_gs_UINotificationDisplay libUIUI_gv_uINotificationDisplay;
libUIUI_gs_UIObserverUI libUIUI_gv_uIObserverUI;
color libUIUI_gv_talents_ButtonInactive_C;
color libUIUI_gv_talents_ButtonLitUp_C;
color libUIUI_gv_talents_ProfileColor_C;
libUIUI_gs_TalentsPanel libUIUI_gv_talents_Panel;
int libUIUI_gv_talents_ABChoicePanelBaseHeight_C;
int libUIUI_gv_talents_ABChoicePanelButtonHeight_C;
libUIUI_gs_TalentsABChoicePanel libUIUI_gv_talents_ABChoicePanel;
int[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_talents_ActiveABChoiceForPlayer;
bool[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_talents_ABChoiceVisibleForPlayer;
libUIUI_gs_UITargetInfoPanel libUIUI_gv_uITargetInfoPanel;
unit[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_uITargetInfoPanelCurrentTargetForPlayer;
int[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_uITargetInfoPanelCurretTargetStatusBarType;
bool libUIUI_gv_uITargetInfoPanelEnabled;
int libUIUI_gv_uITargetingHelperPanelNumberOfPlayersUsingPanel;
bool[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_uITargetingHelperPanelPlayerIsTargetingOffensiveAbility;
int[libCore_gv_bALMaxPlayers + 1] libUIUI_gv_uITargetingHelperPanelNumberOfTargetUnitsForPlayer;
unit[libCore_gv_bALMaxPlayers + 1][libCore_gv_bALMaxPlayersOnATeam + 1] libUIUI_gv_uITargetingHelperPanelTargetUnitsForPlayer;
libUIUI_gs_UITargetingHelperPanel libUIUI_gv_uITargetingHelperPanel;
libUIUI_gs_TopBarPanel libUIUI_gv_topBarPanel;
libUIUI_gs_TryMeModePanel libUIUI_gv_tryMeModePanel;
int libUIUI_gv_tutorialReferencePanel;
int[libUIUI_gv_tutorialReferenceCount_Max + 1] libUIUI_gv_tutorialReferenceLabels;
int libUIUI_gv_tutorialReferenceCount;

// Function Declarations
void libUIUI_gf_UISetDialogItemToSelectedOrObserved (int lp_dialogItem);
void libUIUI_gf_UIUpdateEventPlayerStatsChange (int lp_player);
void libUIUI_gf_UIUpdateTimeLabels ();
void libUIUI_gf_UIDamageFlashStartLowHPSoundAndScreenEffects (int lp_player);
void libUIUI_gf_UIDamageFlashStopLowHPSoundAndScreenEffects (int lp_player);
void libUIUI_gf_UILowHPSetSoundChannelsForLowHealth (int lp_player);
void libUIUI_gf_UILowHPSetSoundChannelsForSilence (int lp_player);
void libUIUI_gf_UILowHPSetSoundChannelsForNormal (int lp_player);
void libUIUI_gf_UIDeathActionCamPanelShowHidePanelForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_UIDeathActionCamPanelToggleDeathActionCamForPlayer (int lp_player);
void libUIUI_gf_DeathRecapShowHideForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_DeathRecapShowHideButtonForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_DeathRecapCreateDebuffBarForPlayer (int lp_line, fixed lp_startTime, fixed lp_duration, int lp_player);
void libUIUI_gf_DeathRecapClearDebuffBarsForPlayer (int lp_player);
void libUIUI_gf_DeathRecapPopulateMainPanelsForPlayer (int lp_deadPlayer, int lp_deathIndex);
void libUIUI_gf_DeathRecapPopulateDamageDetailsPanelForPlayer (int lp_deadPlayer, int lp_damageBarIndex);
void libUIUI_gf_DeathRecapPopulateDamageDetailsAbilityInfoForPlayer (int lp_deadPlayer, int lp_abilityBarIndex);
void libUIUI_gf_DeathTimerPanelShowHideTeamsPanelForPlayer (bool lp_showHide, int lp_team, int lp_player);
void libUIUI_gf_DeathAnnouncementPanelRegisterPlayer (int lp_player, int lp_killingPlayer);
void libUIUI_gf_DeathAnnouncementPanelTransitionFrameOut (int lp_team);
int libUIUI_gf_DeathTimerPanelGetFreeFrameIndexForTeam (int lp_team);
int libUIUI_gf_DeathTimerPanelGetFreeGroupForTeam (int lp_team);
int libUIUI_gf_DeathTimerPanelFindAppropriateGroupForFrame (int lp_team, int lp_frameIndex);
int libUIUI_gf_DeathTimerPanelGetGroupOfFrame (int lp_team, int lp_frameIndex);
int libUIUI_gf_DeathTimerPanelGetLayerOfFrameInGroup (int lp_team, int lp_group, int lp_frameIndex);
void libUIUI_gf_DeathTimerPanelShowDeathTimeLabelForGroup (int lp_team, int lp_group);
void libUIUI_gf_DeathTimerPanelSetRenderPrioritiesForGroups (int lp_team);
void libUIUI_gf_DeathTimerPanelAddFrameToGroup (int lp_team, int lp_group, int lp_frameIndex);
void libUIUI_gf_DeathTimerPanelRemoveFrameFromGroup (int lp_team, int lp_group, int lp_frameIndex);
void libUIUI_gf_DeathTimerPanelRegisterPlayer (int lp_player);
void libUIUI_gf_DeathTimerPanelUnregisterPlayer (int lp_team, int lp_frameIndex);
void libUIUI_gf_DeathTimerPanelPlayerDeathTimerChanges (int lp_player);
void libUIUI_gf_DeathTimerPanelSlideGroupOutForPlayer (int lp_team, int lp_group, int lp_player);
void libUIUI_gf_DeathTimerPanelCollapseGroupForPlayer (int lp_team, int lp_group, int lp_player);
void libUIUI_gf_DeathTimerPanelUpdatePlayerPortraitsForTeam (int lp_team);
void libUIUI_gf_DeathTimerPanelUpdateTeamDeathTimeIndicatorForTeam (int lp_team);
void libUIUI_gf_DeathTimerPanelPauseTimerAnimations ();
void libUIUI_gf_UIDebugPanelShowHideDebugPanelForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_UIDebugPanelSetUpMinionCompDropdown ();
void libUIUI_gf_UIDebugPanelRefreshCooldowns (int lp_player);
void libUIUI_gf_UIDebugPanelPopulateHeroDropdownForPlayer (int lp_player, bool lp_allHeroes);
void libUIUI_gf_UIDebugPanelPopulateSkinDropdownForPlayer (int lp_player, int lp_heroIndex);
void libUIUI_gf_UIDebugPanelPopulateMountDropdownForPlayer (int lp_player, int lp_heroIndex);
void libUIUI_gf_UIDebugPanelPopulateAnnouncerDropdownForPlayer (int lp_player);
void libUIUI_gf_UIDebugPanelSpawnOrSwapHeroForPlayer (int lp_heroIndex, int lp_skinIndex, int lp_mountIndex, fixed lp_xP, int lp_player);
void libUIUI_gf_EncouragementUpdateEncouragementPanelForPlayer (int lp_player);
void libUIUI_gf_EncouragementShowHidePanelForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_UIFloatingCombatTextCreateTextTag (int lp_displayPlayer, fixed lp_duration, text lp_text, unit lp_targetUnit, fixed lp_heightOffset, fixed lp_horizontalOffset, int lp_numberType);
void libUIUI_gf_UIFloatingCombatTextXP (int lp_displayPlayer, unit lp_target, text lp_amount, int lp_textTagType);
void libUIUI_gf_UIFloatingCombatTextHeal (int lp_impactPlayer, unit lp_impactUnit, int lp_launchPlayer, unit lp_launchUnit, unit lp_casterUnit, unit lp_targetUnit, fixed lp_amount, string lp_triggeringEffect);
void libUIUI_gf_FullscreenOverlaysShowHideDeathOverlay (bool lp_showHide, int lp_player);
void libUIUI_gf_FullscreenOverlaysCreateCCEffectFlashForPlayer (int lp_player, fixed lp_cCDuration);
void libUIUI_gf_GameOverSplashDisplayForAllPlayers ();
void libUIUI_gf_UIGameUIToggleMinimapCommandsForPlayer (int lp_player);
void libUIUI_gf_UIGameUIChangeModeMinimapCommandsForPlayer (int lp_player);
void libUIUI_gf_UIGameUIShowHideConsolePanelForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_UIHealingFountainsHelpTextCreateTextTagsForTeam (int lp_team);
void libUIUI_gf_UIHealingFountainsHelpTextShowHideForPlayer (int lp_player, bool lp_showHide);
void libUIUI_gf_AttachHelpButtonToUnit (unit lp_attachedUnit, trigger lp_callback, text lp_helpText, int lp_xOffset, int lp_yOffset);
void libUIUI_gf_ShowHideHelpButtonOnUnitForPlayer (int lp_player, bool lp_showHide, unit lp_unit);
int libUIUI_gf_HelpButtonClickedPlayer ();
void libUIUI_gf_SetHelpButtonText (unit lp_unit, text lp_text, playergroup lp_players);
int libUIUI_gf_HelpButtonFromUnit (unit lp_unit);
void libUIUI_gf_UIHeroConsoleShowHideForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_UIHeroConsoleShowHideUnitStatusFrameForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_UIHeroConsoleSetUpForPlayer (unit lp_unit, int lp_player);
void libUIUI_gf_HeroConsoleUnitStatusBarsUpdateStunDeathBar (string lp_newBehavior, unit lp_heroUnit);
void libUIUI_gf_HeroConsoleUnitStatusBarsSetUnitForBars (unit lp_unit, int lp_player);
void libUIUI_gf_HeroConsoleUnitStatusBarsUpdateForPlayer (int lp_player);
void libUIUI_gf_UIUnitStatusFramesShowUnitNameLabelForUnit (unit lp_unit);
void libUIUI_gf_UIUnitStatusFramesHookupUnitStatusFramesForPlayer (int lp_player);
void libUIUI_gf_UIUnitStatusFramesShowHideBotLabel (int lp_player, bool lp_showHide);
void libUIUI_gf_UIHeroTrackerArrowShowHideForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_DisplayCameraLockNotificationText (bool lp_lockUnlock, int lp_player);
void libUIUI_gf_UILeaderboardSortingData (int lp_player, int lp_teamtoSort, int lp_sortingColumn, int lp_mechanic);
void libUIUI_gf_UILeaderboardSortbyPlayerSlotDefault (int lp_player, int lp_teamtoSort, int lp_mechanic);
void libUIUI_gf_UILeaderboardSortbyColumnType (int lp_player, int lp_teamtoSort, int lp_mechanic);
void libUIUI_gf_UILeaderboardShowHideForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_UILeaderboardUpdatePlayersXPTakedownsDeaths (int lp_player);
void libUIUI_gf_UILeaderboardUpdatePlayersMapMechanicsCount (int lp_player, int lp_mechanic);
void libUIUI_gf_UILeaderboardUpdateTeamLevel (int lp_player);
void libUIUI_gf_UILeaderboardUpdatePlayersHeroicAbilityChoice (int lp_player, int lp_buttonIndex);
void libUIUI_gf_UILeaderboardSetUpPlayerOnLeaderboard (int lp_player);
void libUIUI_gf_UILeaderboardUpdateMapMechanicLabels (int lp_mapMechanics);
void libUIUI_gf_MapMechanicsRavenCourtShowHidePanel (bool lp_showHide);
void libUIUI_gf_MapMechanicsRavenCourtSetModeForTeam (int lp_mode, int lp_teamThatWonTheCurse);
void libUIUI_gf_MapMechanicsRavenCourtSetTributeCountForTeam (int lp_count, int lp_team);
void libUIUI_gf_MapMechanicsRavenCourtSetRemainingCurseTimeForTeam (int lp_remainingSeconds, int lp_team);
void libUIUI_gf_MapMechanicsBlackheartsBayShowHidePanel (bool lp_showHide);
void libUIUI_gf_MapMechanicsBlackheartsBaySetMode (int lp_mode);
void libUIUI_gf_MapMechanicsBlackheartsBayShowCannonballForTeam (int lp_team);
void libUIUI_gf_MapMechanicsBlackheartsBaySetDoubloonCountForTeam (int lp_count, int lp_maxCount, int lp_team);
void libUIUI_gf_MapMechanicsBlackheartsBaySetShotCountForTeam (int lp_count, int lp_team);
void libUIUI_gf_MapMechanicsHauntedMinesShowHidePanel (bool lp_showHide);
void libUIUI_gf_MapMechanicsHauntedMinesSetMode (int lp_mode);
void libUIUI_gf_MapMechanicsHauntedMinesSetRemainingMinesWarningTime (int lp_remainingSeconds);
void libUIUI_gf_MapMechanicsHauntedMinesSetSkullCountForTeam (int lp_count, int lp_team);
void libUIUI_gf_MapMechanicsHauntedMinesSetUpGolemForTeam (unit lp_golemUnit, int lp_skullCount, int lp_team);
void libUIUI_gf_MapMechanicsDragonShireShowHidePanel (bool lp_showHide);
void libUIUI_gf_MapMechanicsDragonShireSetMode (int lp_mode);
void libUIUI_gf_MapMechanicsDragonShireSetRemainingShrineWarningTime (int lp_remainingSeconds);
void libUIUI_gf_MapMechanicsDragonShireSetStarShrineOwner (int lp_team);
void libUIUI_gf_MapMechanicsDragonShireSetMoonShrineOwner (int lp_team);
void libUIUI_gf_MapMechanicsDragonShireSetRemainingDragonTime (int lp_remainingSeconds);
void libUIUI_gf_MapMechanicsDragonShireSetUpDragonForTeam (unit lp_dragonUnit, int lp_team);
void libUIUI_gf_UIObserverUIAddPlayerToObserverUI (int lp_player);
void libUIUI_gf_UIObserverUIUpdateForPlayer (int lp_player);
int libUIUI_gf_UIPingDeterminePingTargetType (unit lp_unit);
unit libUIUI_gf_UIPingGetSpecialPingTargetInRangeOfPoint (point lp_point, bool lp_pingFromMinimap, int lp_pingingPlayer);
void libUIUI_gf_UIPingPlayerPingsUnit (int lp_pingingPlayer, unit lp_targetUnit, playergroup lp_pingPlayerGroup);
void libUIUI_gf_UIPingPlayerUsesAssistMePing (int lp_player, point lp_location);
void libUIUI_gf_UIPingPlayerUsesDangerPing (int lp_player, point lp_location, unit lp_targetUnit);
void libUIUI_gf_UIPingPlayerUsesOnMyWayPing (int lp_player, point lp_location);
void libUIUI_gf_UIPingPlayerUsesDefendPing (int lp_player, point lp_location);
void libUIUI_gf_UIPingPlayerUsesRetreatPing (int lp_player, point lp_location);
bool libUIUI_gf_TalentsTalentProfileIsAvailableForPlayer (int lp_talentProfileIndex, int lp_player);
bool libUIUI_gf_TalentsBucketTalentCanBeAddedToCurrentProfileForPlayer (int lp_talentIndex, int lp_player);
bool libUIUI_gf_TalentsBucketTalentCanBeRemovedFromCurrentProfileForPlayer (int lp_talentIndex, int lp_player);
void libUIUI_gf_TalentsBucketSetUpTalentsPanelForPlayer (int lp_player);
void libUIUI_gf_TalentsBucketClearTalentsPanelForPlayer (int lp_player);
void libUIUI_gf_TalentsBucketUpdateHeroInfoTalentsForPlayer (int lp_player);
void libUIUI_gf_TalentsBucketUpdateHeroInfoStatsForPlayer (int lp_player);
void libUIUI_gf_TalentsBucketAddTalentToCurrentProfileForPlayer (int lp_talentIndex, int lp_player);
void libUIUI_gf_TalentsBucketRemoveTalentFromCurrentProfileForPlayer (int lp_talentIndex, int lp_player);
void libUIUI_gf_TalentsBucketRespecHeroForPlayer (int lp_player);
void libUIUI_gf_TalentsBucketSetTalentProfileForPlayerByIndex (int lp_talentProfileIndex, int lp_player);
void libUIUI_gf_TalentsShowHideTalentsPanelForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_TalentsShowHideTalentABChoicePanelForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_TalentsBucketUpdateABChoicePanelForPlayer (int lp_player);
void libUIUI_gf_TalentsBucketChooseABChoiceForPlayerOLD (int lp_choiceIndex, int lp_buttonIndex, int lp_player);
void libUIUI_gf_TalentsBucketChooseABChoiceForPlayerNEW (int lp_choiceIndex, int lp_buttonIndex, int lp_player);
void libUIUI_gf_UITargetInfoPanelSetUpMapMechanicInfo (string lp_icon, text lp_tooltip);
void libUIUI_gf_UITargetInfoPanelUpdateMapMechanicTextForPlayer (text lp_text, int lp_player);
void libUIUI_gf_UITargetInfoPanelSetTargetForPlayer (unit lp_target, int lp_player);
void libUIUI_gf_UITargetInfoPanelClearTargetForPlayer (int lp_player);
void libUIUI_gf_UITargetInfoPanelUpdateForPlayer (int lp_player);
void libUIUI_gf_UITargetInfoPanelEnableDisable (bool lp_enableDisable);
void libUIUI_gf_UITargetingHelperPanelHandleAbilityTargetModeChange (int lp_player, int lp_targetModeState, string lp_ability, bool lp_abilityIsOffensive);
void libUIUI_gf_UITargetingHelperPanelUpdateForPlayer (int lp_player, fixed lp_abilityRange, bool lp_abilityIsOffensive);
void libUIUI_gf_UITargetingHelperPanelShowHideForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_TopBarPanelShowHideForPlayer (bool lp_showHide, int lp_player);
void libUIUI_gf_TopBarTeamLevelHookUpXPBarUnitForTeamAndShowTeamLevelLabel (int lp_team, unit lp_unit);
void libUIUI_gf_TopBarTeamLevelUpdateTeamsLevelLabel (int lp_team, int lp_level);
void libUIUI_gf_TryMeModePanelShowHide (bool lp_showHide, int lp_player);
void libUIUI_gf_AddTutorialReferenceItem (text lp_item);
void libUIUI_gf_AddTutorialReferenceItemPreset (int lp_item);
void libUIUI_gf_SetTutorialReferenceItemText (int lp_index, text lp_text);

// Trigger Declarations
trigger libUIUI_gt_IncludeUI;
trigger libUIUI_gt_InitializeUI;
trigger libUIUI_gt_UIUpdateEventBehaviorChangeThatAffectsStats;
trigger libUIUI_gt_UIUpdateTimeLabelsTimerExpires;
trigger libUIUI_gt_UIInitializeDamageFlashUI;
trigger libUIUI_gt_UIDamageFlashTriggerDamageFlash;
trigger libUIUI_gt_UIDamageFlashLowHPSoundsLooper;
trigger libUIUI_gt_UIInitializeDeathActionCamPanel;
trigger libUIUI_gt_UIDeathActionCamPanelPreviousAllyButtonClicked;
trigger libUIUI_gt_UIDeathActionCamPanelNextAllyButtonClicked;
trigger libUIUI_gt_UIDeathActionCamPanelCheckboxClicked;
trigger libUIUI_gt_DeathRecapPanelInitialize;
trigger libUIUI_gt_DeathRecapOpenButtonClicked;
trigger libUIUI_gt_DeathRecapCloseButtonClicked;
trigger libUIUI_gt_DeathRecapDamageTakenBarMouseEnter;
trigger libUIUI_gt_DeathRecapDamageTakenBarMouseExit;
trigger libUIUI_gt_DeathRecapDamageTakenBarClicked;
trigger libUIUI_gt_DeathRecapDamageDetailsBarMouseEnter;
trigger libUIUI_gt_DeathRecapDamageDetailsBarMouseExit;
trigger libUIUI_gt_DeathRecapDamageDetailsBarClicked;
trigger libUIUI_gt_DeathTimerPanelInitialize;
trigger libUIUI_gt_DeathAnnouncementPanelVisibleTimerExpires;
trigger libUIUI_gt_DeathTimerPanelDeathTimerFrameMouseEnter;
trigger libUIUI_gt_DeathTimerPanelDeathTimerFrameMouseExit;
trigger libUIUI_gt_DeathTimerPanelUpdate;
trigger libUIUI_gt_UIInitializeDebugPanel;
trigger libUIUI_gt_UIDebugPanelCloseButtonClicked;
trigger libUIUI_gt_UIDebugPanelRefreshCooldownsButtonClicked;
trigger libUIUI_gt_UIDebugPanelSelectionEnabledCheckboxClicked;
trigger libUIUI_gt_UIDebugPanelStartGameButtonClicked;
trigger libUIUI_gt_UIDebugPanelSpawnCreepCampsButtonClicked;
trigger libUIUI_gt_UIDebugPanelForceMinionWaveCompCheckboxClicked;
trigger libUIUI_gt_UIDebugPanelMinionWaveCompDropdownClicked;
trigger libUIUI_gt_UIDebugPanelRespecButtonClicked;
trigger libUIUI_gt_UIDebugPanelPlayerSliderValueChange;
trigger libUIUI_gt_UIDebugPanelLevelSliderValueChange;
trigger libUIUI_gt_UIDebugPanelUseCurrentXPCheckboxClicked;
trigger libUIUI_gt_UIDebugPanelAllHeroesCheckboxClicked;
trigger libUIUI_gt_UIDebugPanelAllTalentsCheckboxClicked;
trigger libUIUI_gt_UIDebugPanelHeroDropdownSelectionChange;
trigger libUIUI_gt_UIDebugPanelAnnouncerDropdownSelectionChange;
trigger libUIUI_gt_UIDebugPanelSpawnHeroButtonClicked;
trigger libUIUI_gt_UIDebugPanelMetaXPEditBoxClicked;
trigger libUIUI_gt_UIDebugPanelSendMetaXPButtonClicked;
trigger libUIUI_gt_UIDebugPanelUpdate;
trigger libUIUI_gt_EncouragementPanelInitialize;
trigger libUIUI_gt_EncouragementPanelCloseButtonClicked;
trigger libUIUI_gt_FloatingCombatTextDamageDealtAttackMove;
trigger libUIUI_gt_FloatingCombatTextDamageDealtAttackMove2;
trigger libUIUI_gt_UIFloatingCombatTextHeal;
trigger libUIUI_gt_UIFloatingCombatTextRegenGlobePickup;
trigger libUIUI_gt_UIFloatingCombatTextCloaked;
trigger libUIUI_gt_UIFloatingCombatTextInvulnerable;
trigger libUIUI_gt_UIFloatingCombatTextCleansed;
trigger libUIUI_gt_UIFloatingCombatTextMissed;
trigger libUIUI_gt_FullscreenOverlaysInitialize;
trigger libUIUI_gt_GameOverSplashInitialize;
trigger libUIUI_gt_UIInitializeGameUIHandles;
trigger libUIUI_gt_UIGameUITalentsButtonClicked;
trigger libUIUI_gt_UIGodRayCreate;
trigger libUIUI_gt_UIGodRayDestroy;
trigger libUIUI_gt_UIGodRayDestroyOnDC;
trigger libUIUI_gt_UIInitializeHealingFountainsHelpText;
trigger libUIUI_gt_UIHealingFountainsHelpTextPlayerUsesHealingFountain;
trigger libUIUI_gt_UIHealingFountainsHelpTextTextDisplayController;
trigger libUIUI_gt_UIHealingFountainsHelpTextHealingFountainDies;
trigger libUIUI_gt_HelpButtonDebugPosition;
trigger libUIUI_gt_UIInitializeHeroConsole;
trigger libUIUI_gt_HeroConsoleUnitStatusBarsInitialize;
trigger libUIUI_gt_HeroConsoleUnitStatusBarsChannelBehaviorAdded;
trigger libUIUI_gt_HeroConsoleUnitStatusBarsUpdate;
trigger libUIUI_gt_UIInitializeHeroSpecificStatusFrame;
trigger libUIUI_gt_UIInitializeHeroTrackerArrow;
trigger libUIUI_gt_InputPlayerClicksUnit;
trigger libUIUI_gt_InputDialogDismissKeyDown;
trigger libUIUI_gt_InputBackslashKeyDown;
trigger libUIUI_gt_InputTABKeyDown;
trigger libUIUI_gt_InputTABKeyUp;
trigger libUIUI_gt_InputCtrlNKeyDown;
trigger libUIUI_gt_UIInitializeLeaderboard;
trigger libUIUI_gt_MapMechanicsPanelInitialize;
trigger libUIUI_gt_MapMechanicsPanelUpdate;
trigger libUIUI_gt_UIInitializeNotificationDisplay;
trigger libUIUI_gt_UIInitializeObserverUI;
trigger libUIUI_gt_UIObserverUIHeroDies;
trigger libUIUI_gt_UIObserverUIHeroRespawn;
trigger libUIUI_gt_UIObserverUIUpdate;
trigger libUIUI_gt_UIPingListenForPlayerPing;
trigger libUIUI_gt_TalentsBucketInitialize;
trigger libUIUI_gt_TalentsCloseButtonClicked;
trigger libUIUI_gt_TalentsABChoicesPanelInitializeOLD;
trigger libUIUI_gt_TalentsABChoicesPanelInitializeNEW;
trigger libUIUI_gt_TalentsABChoiceButtonClicked;
trigger libUIUI_gt_TalentsABChoiceSelectedNEW;
trigger libUIUI_gt_UIInitializeTargetInfoPanel;
trigger libUIUI_gt_UITargetInfoPanelUpdate;
trigger libUIUI_gt_UIInitializeTargetingHelperPanel;
trigger libUIUI_gt_UITargetingHelperPanelUnitFrameMouseEnter;
trigger libUIUI_gt_UITargetingHelperPanelUnitFrameMouseExit;
trigger libUIUI_gt_UITargetingHelperPanelUpdateVisibilityForOffensiveAbilities;
trigger libUIUI_gt_TopBarPanelInitialize;
trigger libUIUI_gt_TryMeModePanelInitialize;

// Library Initialization
void libUIUI_InitVariables ();

