From ca9d96ebee7fa7c5bbd6460cfe1fb2caa1f65338 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Sat, 31 Oct 2026 21:27:58 +0000 Subject: [PATCH] Decompile fn_09473 (UICashEmotionPack_Unpurchase::Slot53) Batch #8806 by kyoshi: 0 byte-identical, 1 confirmed by peer review. - fn_09473 UICashEmotionPack_Unpurchase::Slot53: logic confirmed by peer review Peer-reviewed-by: eAthena, gordaoprogramas, dori Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Contents/CashEmotionMgr.cpp | 20 ++++++++++++++++++++ Source/UI/CashEmotion/UICashEmotionPack.h | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Source/Contents/CashEmotionMgr.cpp b/Source/Contents/CashEmotionMgr.cpp index f112a05a..cd526482 100644 --- a/Source/Contents/CashEmotionMgr.cpp +++ b/Source/Contents/CashEmotionMgr.cpp @@ -122,6 +122,8 @@ public: explicit UICashEmotionPack_Search(UIWindowContext& windows) : UICashEmotionPack(windows) { } void Paint() override; + + int SetResults(const char* title, const std::vector>& results); }; class UICashEmotionPack_Search_Normal : public UICashEmotionPack_Search { @@ -153,6 +155,8 @@ public: void Slot26(int x, int y) override; int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override; + int Slot53(int packId, bool showTooltip, bool hoverable) override; + void SetPressed(bool pressed, bool force); protected: @@ -232,6 +236,8 @@ public: int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override; const char* Filter() override; + void AddResults(char type, const std::vector>& results, int& y); + protected: /* 00B0 */ std::vector m_items; /* 00BC */ ICashEmotionAction* m_action; @@ -1782,6 +1788,8 @@ const char* UICashEmotionListChildWnd_Search::Filter() { return this->m_filter.c_str(); } +// OFFSET: 0x007C59A0 + // OFFSET: 0x007C5D80 // FUNCTION: fn_09383 void UICashEmotionListChildWnd_Search::Slot15(int, int) { @@ -2586,6 +2594,8 @@ std::string UICashEmotionPack::GetPriceText(int packId) { return std::vformat(format, std::make_format_args(price)); } +// OFFSET: 0x007CA2C0 + // OFFSET: 0x007CA550 // FUNCTION: fn_09445 void UICashEmotionPack::Slot15(int, int) { @@ -2790,6 +2800,8 @@ int UICashEmotionPack_Purchase::SendMsg( } } +// OFFSET: 0x007CAF60 + // OFFSET: 0x007CB160 // FUNCTION: fn_09465 void UICashEmotionPack_Search::Paint() { @@ -2868,6 +2880,14 @@ UICashEmotionPack_Unpurchase::UICashEmotionPack_Unpurchase(UIWindowContext& wind this->Invalidate(); } +// OFFSET: 0x007CB790 +// FUNCTION: fn_09473 +int UICashEmotionPack_Unpurchase::Slot53(int packId, bool showTooltip, bool hoverable) { + const int height = UICashEmotionPack::Slot53(packId, showTooltip, hoverable); + this->unknown_00E4 = this->GetPriceText(packId); + return height; +} + // OFFSET: 0x007CB850 // FUNCTION: fn_09474 void UICashEmotionPack_Unpurchase::Paint() { diff --git a/Source/UI/CashEmotion/UICashEmotionPack.h b/Source/UI/CashEmotion/UICashEmotionPack.h index 367fb785..042c6527 100644 --- a/Source/UI/CashEmotion/UICashEmotionPack.h +++ b/Source/UI/CashEmotion/UICashEmotionPack.h @@ -26,7 +26,7 @@ public: void Slot27(int x, int y) override; void Slot35(int argument) override; int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override; - virtual int Slot53(int packId, bool showTooltip, bool hoverable) = 0; + virtual int Slot53(int packId, bool showTooltip, bool hoverable); virtual void UpdateExpiry(Timestamp* expiry); virtual void ShowExpiry(__time32_t expiry); @@ -36,7 +36,7 @@ public: protected: /* 007C */ std::vector m_pieces; - /* 0088 */ UIWindow* unknown_0088; + /* 0088 */ UIStaticText* unknown_0088; /* 008C */ UIStaticText* m_titleText; /* 0090 */ std::string m_background; /* 00A8 */ int unknown_00A8;