From 3d8cd8b87f833de75b9365bc3c5abb9e3767a22b Mon Sep 17 00:00:00 2001 From: VDm Date: Thu, 14 Aug 2025 01:20:39 +0400 Subject: [PATCH] feat(gameui): update CGTooltip member variables --- src/gameui/CGTooltip.cpp | 15 +++++++++++++++ src/gameui/CGTooltip.hpp | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/src/gameui/CGTooltip.cpp b/src/gameui/CGTooltip.cpp index 37ab488..503aec0 100644 --- a/src/gameui/CGTooltip.cpp +++ b/src/gameui/CGTooltip.cpp @@ -1,5 +1,6 @@ #include "gameui/CGTooltip.hpp" #include "gameui/CGTooltipScript.hpp" +#include "ui/CSimpleFontString.hpp" #include "util/Lua.hpp" #include @@ -76,7 +77,21 @@ void CGTooltip::AddLine( const CImVector& leftColor, const CImVector& rightColor, int32_t wrapped) { + if ((!leftText || !*leftText) && (!rightText || !*rightText)) { + return; + } + if (!this->m_linesMax) { + return; + } + + if (this->m_lines == this->m_linesMax - 1) { + char name[256]; + SStrPrintf(name, sizeof(name), "%sTextLeft%d", this->GetDisplayName(), this->m_linesMax + 1); + // TODO: CDataAllocator + auto leftFontString = NEW(CSimpleFontString, this, 2, 1); + leftFontString->SetName(name); + } } bool CGTooltip::IsA(int32_t type) { diff --git a/src/gameui/CGTooltip.hpp b/src/gameui/CGTooltip.hpp index 04edbaa..ac0c549 100644 --- a/src/gameui/CGTooltip.hpp +++ b/src/gameui/CGTooltip.hpp @@ -56,6 +56,11 @@ class CGTooltip : public CSimpleFrame { // Member variables CSimpleFrame* m_owner = nullptr; TOOLTIP_ANCHORPOINT m_anchorPoint = ANCHOR_NONE; + uint32_t m_lines = 0; + uint32_t m_linesMax = 0; + TSFixedArray m_leftStrings; + TSFixedArray m_rightStrings; + TSFixedArray m_wrapLine; float m_padding = 0.0f; float m_minWidth = 0.0f; uint32_t m_minWidthForced = 0;