From 62e7c8fb0e1ba452886697e47a17cc41bec60647 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Sat, 31 Oct 2026 01:10:13 +0000 Subject: [PATCH] Decompile fn_16203 (CUIProbabilityTable::Slot16) Batch #6520 by System4z: 0 byte-identical, 1 confirmed by peer review. - fn_16203 CUIProbabilityTable::Slot16: logic confirmed by peer review Peer-reviewed-by: ragnarok-clanker, gordaoprogramas, willerthal Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- .../ProbabilityTable/UIProbabilityTable.cpp | 24 +++++++++++++++++++ .../UI/ProbabilityTable/UIProbabilityTable.h | 8 ++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/Source/UI/ProbabilityTable/UIProbabilityTable.cpp b/Source/UI/ProbabilityTable/UIProbabilityTable.cpp index 59f67242..618385dd 100644 --- a/Source/UI/ProbabilityTable/UIProbabilityTable.cpp +++ b/Source/UI/ProbabilityTable/UIProbabilityTable.cpp @@ -1,12 +1,18 @@ #include "UI/ProbabilityTable/UIProbabilityTable.h" #include "UI/Lists/UIVScrollBar.h" +#include "UI/Window/UIControl.h" #include "UI/Window/WindowBorder.h" +#include "UI/Window/UIWindowMgr.h" +#include "UI/Text/UIStaticTextControl.h" +#include "Contents/MessageTable.h" +#include "Render/Renderer.h" #include "Utility/Cipher/XorBytes.h" #include "Utility/Text/FormatString.h" #include #include +#include #include namespace { @@ -267,6 +273,24 @@ void CUIListBoxEx::Selec void CUIProbabilityTable::OnButtonClick() { } +// OFFSET: 0x00A4E280 +// FUNCTION: fn_16203 +void CUIProbabilityTable::Slot16() { + UIWindow* anchor = g_windowMgr.LookupWindow(12); + if (anchor) { + this->Move(anchor->geometry.x + anchor->geometry.width, anchor->geometry.y); + } else { + this->Move(g_renderer->viewport.centerX, (g_renderer->viewport.height - this->geometry.height) / 2); + } + + const char* title = LookupMessage(0x1017); + this->m_titleBar->SetTitle(title, std::strlen(title)); + const char* name = LookupMessage(0x1018); + this->m_nameHeader->SetText(name, std::strlen(name)); + const char* probability = LookupMessage(0x1019); + this->m_probabilityHeader->SetText(probability, std::strlen(probability)); +} + // OFFSET: 0x00A4E030 // FUNCTION: fn_16198 void CUIProbabilityTable::OnPrepareItem(ProbabilityTable::CUIItem*, const ProbabilityTable::CItemData&) { diff --git a/Source/UI/ProbabilityTable/UIProbabilityTable.h b/Source/UI/ProbabilityTable/UIProbabilityTable.h index b06b24e0..c7cfa773 100644 --- a/Source/UI/ProbabilityTable/UIProbabilityTable.h +++ b/Source/UI/ProbabilityTable/UIProbabilityTable.h @@ -33,16 +33,22 @@ public: } class CUIEditBoxEx; +class CUITitleBar; +class CUIStaticText; class CUIProbabilityTable : public CUIFrameWnd { public: + void Slot16() override; void Paint() override; virtual void Slot53(); int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override; void OnButtonClick(); void OnPrepareItem(ProbabilityTable::CUIItem* item, const ProbabilityTable::CItemData& data); - /* 00D8 */ unsigned char unknown_00D8[0x08]; + /* 00D8 */ CUITitleBar* m_titleBar; + /* 00DC */ CUIStaticText* m_nameHeader; /* 00E0 */ CUIEditBoxEx* m_searchEdit; + /* 00E4 */ unsigned char unknown_00E4[0x08]; + /* 00EC */ CUIStaticText* m_probabilityHeader; }; #if defined(_WIN32) && !defined(_WIN64)