From 703f192ae19613c191e72faf63036bbad057d44e Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Mon, 2 Nov 2026 10:13:55 +0000 Subject: [PATCH] Decompile fn_12262 (UITipboxWnd::PaintAnimations) Batch #9913 by ragnarok-clanker: 0 byte-identical, 1 confirmed by peer review. - fn_12262 UITipboxWnd::PaintAnimations: logic confirmed by peer review Peer-reviewed-by: Yommy, KWDev, Toshiro, cremane, codeplay Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/UI/Acceptance/UIChooseSellBuyWnd.cpp | 24 +++++++++++++++++++++ Source/UI/Dialogs/UITipboxWnd.h | 1 + Source/UI/Items/UIItemIdentifyWnd.h | 1 + 3 files changed, 26 insertions(+) diff --git a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp index ae19244d..7a7d0078 100644 --- a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp +++ b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp @@ -7961,6 +7961,30 @@ int ParseItemIdTag(const char* text, const char* end, int& length, int& itemId); // OFFSET: 0x008F8ED0 +// OFFSET: 0x008F2DF0 +// FUNCTION: fn_12262 +void UITipboxWnd::PaintAnimations() { + std::string path; + for (unsigned int i = 0; i < this->m_animations.size(); ++i) { + path = "유저인터페이스\\tipbox\\ico_effect" + IntToString(this->m_animations[i].kind, 0) + ".bmp"; + if (this->m_animations[i].visible) { + const auto* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(path.c_str()))); + this->DrawBitmap( + static_cast(this->m_animations[i].x), static_cast(this->m_animations[i].y), bitmap ? &bitmap->image : nullptr, true + ); + } + } + + for (unsigned int i = 0; i < this->m_dots.size(); ++i) { + if (this->m_dots[i].visible) { + const auto* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\tipbox\\ico_effect6.bmp"))); + this->DrawBitmap(static_cast(this->m_dots[i].x), static_cast(this->m_dots[i].y), bitmap ? &bitmap->image : nullptr, true); + } + } +} + +// OFFSET: 0x008FD640 + // OFFSET: 0x008F8640 // FUNCTION: fn_12331 int UIChoose3Wnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) { diff --git a/Source/UI/Dialogs/UITipboxWnd.h b/Source/UI/Dialogs/UITipboxWnd.h index 0731c599..f5742160 100644 --- a/Source/UI/Dialogs/UITipboxWnd.h +++ b/Source/UI/Dialogs/UITipboxWnd.h @@ -38,6 +38,7 @@ public: void UpdateAnimations(); void UpdatePageText(); bool BuildAnimations(); + void PaintAnimations(); /* 00B4 */ int unknown_00B4; /* 00B8 */ int unknown_00B8; diff --git a/Source/UI/Items/UIItemIdentifyWnd.h b/Source/UI/Items/UIItemIdentifyWnd.h index 3bc35b65..8fd22182 100644 --- a/Source/UI/Items/UIItemIdentifyWnd.h +++ b/Source/UI/Items/UIItemIdentifyWnd.h @@ -56,6 +56,7 @@ public: void Slot11() override; void Slot15(int width, int height) override; std::vector Slot44() override; + int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override; /* 00F0 */ WindowPlacement* m_compositionPlacement; /* 00F4 */ int m_compositionState;