From ee7c9c97bffa14ed7ca0200c2b7f916ff22fe480 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Fri, 30 Oct 2026 13:46:32 +0000 Subject: [PATCH] Decompile fn_13756 (UIParaItemShopWnd::Slot32) Batch #5575 by SapitoSucio: 0 byte-identical, 1 confirmed by peer review. - fn_13756 UIParaItemShopWnd::Slot32: logic confirmed by peer review Peer-reviewed-by: willerthal, Lumen, Millenium Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/UI/Item/UIParaItemShopWnd.cpp | 17 +++++++++++++++++ Source/UI/Item/UIParaItemShopWnd.h | 1 + 2 files changed, 18 insertions(+) diff --git a/Source/UI/Item/UIParaItemShopWnd.cpp b/Source/UI/Item/UIParaItemShopWnd.cpp index d9b941e66..1a4179958 100644 --- a/Source/UI/Item/UIParaItemShopWnd.cpp +++ b/Source/UI/Item/UIParaItemShopWnd.cpp @@ -103,6 +103,23 @@ void UIParaItemPurchaseWnd::Slot25(int x, int y) { } } +// OFFSET: 0x009A99C0 +// FUNCTION: fn_13756 +void UIParaItemShopWnd::Slot32(int x, int y) { + const int previousHovered = this->unknown_00F8; + this->unknown_00F8 = this->GetItemIndexAt(x, y); + if (previousHovered != this->unknown_00F8) { + this->Invalidate(); + } + + ITEM_INFO item = this->GetItemByIndex(this->unknown_00F8); + if (item.unknown_0000[1] != 0) { + g_modeMgr.GetGameMode(); + UIWindow* window = g_windowMgr.EnsureWindow(0xC); + window->SendMsg(nullptr, 0x18, reinterpret_cast(&item), 0, 0, 0); + } +} + // OFFSET: 0x009A96B0 // FUNCTION: fn_13753 void __stdcall Nullsub344(int, int) { diff --git a/Source/UI/Item/UIParaItemShopWnd.h b/Source/UI/Item/UIParaItemShopWnd.h index a762e3284..979c7d74d 100644 --- a/Source/UI/Item/UIParaItemShopWnd.h +++ b/Source/UI/Item/UIParaItemShopWnd.h @@ -17,6 +17,7 @@ public: class UIParaItemShopWnd : public UIItemShopWnd { public: void Slot10(int x, int y, std::intptr_t value) override; + void Slot32(int x, int y) override; }; class UIParaResultWnd : public UIItemBaseWnd {