From c8e9fcb60abe632f588ac9efd53f75ab133ed53d Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Fri, 30 Oct 2026 14:29:56 +0000 Subject: [PATCH] Decompile fn_13818 (UINewSkillListWnd::Slot31) Batch #5661 by Snow: 0 byte-identical, 1 confirmed by peer review. - fn_13818 UINewSkillListWnd::Slot31: logic confirmed by peer review Peer-reviewed-by: Yommy, willerthal, Lumen Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/UI/Window/UINewSkillListWnd.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Source/UI/Window/UINewSkillListWnd.cpp b/Source/UI/Window/UINewSkillListWnd.cpp index 4abbb715..9cdae989 100644 --- a/Source/UI/Window/UINewSkillListWnd.cpp +++ b/Source/UI/Window/UINewSkillListWnd.cpp @@ -265,6 +265,27 @@ void UINewSkillListWnd::Slot25(int x, int y) { } // OFFSET: 0x009B2810 +// FUNCTION: fn_13818 +void UINewSkillListWnd::Slot31(int x, int y) { + if (y < this->m_topMargin) { + UIFrameWnd::Slot31(x, y); + this->Slot11(); + return; + } + + const int gate = *reinterpret_cast(reinterpret_cast(&g_session) + 0xB4); + if (gate == 0 && this->IsSkillArea(x, y)) { + CSkillInfo skill = this->SkillAt(this->m_selectedSkill, false); + if (skill.unknown_002C != 0 && skill.available != 0) { + if (this->sub_9B3EB0(skill.id)) { + this->m_needsRedraw = 1; + this->m_locked = 1; + this->LayoutButtons(); + this->Invalidate(); + } + } + } +} // OFFSET: 0x009B28F0