From c683b68ec16190bb6c017c9ba845dcb074921e0f Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Wed, 28 Oct 2026 23:53:13 +0000 Subject: [PATCH] Decompile 4 functions in Source/UI/Acceptance/UIChooseSellBuyWnd.cpp, Source/UI/Items/UIItemCollectionWnd.h, ... Batch #1913 by ragnarok-clanker: 0 byte-identical, 4 confirmed by peer review. - fn_12271 UIItemCollectionWnd::Slot25: logic confirmed by peer review - fn_12280 UICombinedCardItemCollectionWnd::Slot31: logic confirmed by peer review - fn_12283 UIItemCollectionWnd::Slot31: logic confirmed by peer review - fn_12299 UIProhibitListWnd::Slot19: logic confirmed by peer review Peer-reviewed-by: eAthena, Yommy Reviewed-by: ragnarok-clanker --- Source/UI/Acceptance/UIChooseSellBuyWnd.cpp | 57 +++++++++++++++++++++ Source/UI/Dialogs/UIProhibitListWnd.h | 13 +++++ Source/UI/Items/UIItemCollectionWnd.h | 9 ++++ Source/UI/Window/UIWindowMgr.h | 4 +- 4 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 Source/UI/Dialogs/UIProhibitListWnd.h diff --git a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp index ab650c1..8b67c6a 100644 --- a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp +++ b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp @@ -28,6 +28,7 @@ #include "UI/Dialogs/UINotifyLevelUpWnd.h" #include "UI/Dialogs/UINotifyQuestWnd.h" #include "UI/Dialogs/UIPetTamingDeceiveWnd.h" +#include "UI/Dialogs/UIProhibitListWnd.h" #include "UI/Dialogs/UIQuitWnd.h" #include "UI/Dialogs/UIRestartWnd.h" #include "UI/Dialogs/UISayDialogWnd.h" @@ -536,6 +537,32 @@ void UISelectCartWnd::Slot25(int x, int y) { } } +// OFFSET: 0x008F3860 +// FUNCTION: fn_12271 +void UIItemCollectionWnd::Slot25(int x, int y) { + if (x <= 60 || y >= 17) { + return; + } + + this->UIFrameWnd::Slot25(x, y); + if (this->m_kind == 12) { + UIWindow* comparison = g_windowMgr.unknown_0220; + if (!comparison) { + return; + } + comparison->geometry.targetAlpha = this->geometry.targetAlpha; + comparison->geometry.alphaStart = this->geometry.alphaStart; + } + + if (this->m_kind == 82) { + UIWindow* comparison = g_windowMgr.unknown_0224; + if (comparison) { + comparison->geometry.targetAlpha = this->geometry.targetAlpha; + comparison->geometry.alphaStart = this->geometry.alphaStart; + } + } +} + // OFFSET: 0x008F3A60 // FUNCTION: fn_12278 void UIStatusWnd::Slot25(int x, int y) { @@ -549,6 +576,16 @@ void UIStatusWnd::Slot25(int x, int y) { void UICombinedCardItemCollection_ComparisonWnd::Slot31(int, int) { } +// OFFSET: 0x008F3B70 +// FUNCTION: fn_12280 +void UICombinedCardItemCollectionWnd::Slot31(int x, int y) { + this->UIFrameWnd::Slot31(x, y); + if (UIWindow* comparison = g_windowMgr.unknown_0224) { + comparison->geometry.targetAlpha = this->geometry.targetAlpha; + comparison->geometry.alphaStart = this->geometry.alphaStart; + } +} + // OFFSET: 0x008F3BB0 // FUNCTION: fn_12282 void UIEquipWnd::Slot31(int x, int y) { @@ -570,6 +607,16 @@ void UIEquipWnd::Slot31(int x, int y) { } } +// OFFSET: 0x008F3C20 +// FUNCTION: fn_12283 +void UIItemCollectionWnd::Slot31(int x, int y) { + this->UIFrameWnd::Slot31(x, y); + if (UIWindow* comparison = g_windowMgr.unknown_0220) { + comparison->geometry.targetAlpha = this->geometry.targetAlpha; + comparison->geometry.alphaStart = this->geometry.alphaStart; + } +} + // OFFSET: 0x008F3C50 // FUNCTION: fn_12284 void UIItemCollection_ComparisonWnd::Slot31(int, int) { @@ -648,6 +695,16 @@ void UIPetTamingDeceiveWnd::Slot19() { } } +// OFFSET: 0x008F5070 +// FUNCTION: fn_12299 +void UIProhibitListWnd::Slot19() { + const int count = static_cast(g_session.m_prohibitionLog.size()); + if (this->m_count != count) { + this->m_count = count; + this->Invalidate(); + } +} + // OFFSET: 0x008F50B0 // FUNCTION: fn_12300 void UISayDialogWnd::Slot19() { diff --git a/Source/UI/Dialogs/UIProhibitListWnd.h b/Source/UI/Dialogs/UIProhibitListWnd.h new file mode 100644 index 0000000..f38d690 --- /dev/null +++ b/Source/UI/Dialogs/UIProhibitListWnd.h @@ -0,0 +1,13 @@ +#ifndef RAGNAROK_SOURCE_UI_DIALOGS_UIPROHIBITLISTWND_H +#define RAGNAROK_SOURCE_UI_DIALOGS_UIPROHIBITLISTWND_H + +#include "UI/Window/UIFrameWnd.h" + +class UIProhibitListWnd : public UIFrameWnd { +public: + /* 00B4 */ int m_count; + + void Slot19() override; +}; + +#endif diff --git a/Source/UI/Items/UIItemCollectionWnd.h b/Source/UI/Items/UIItemCollectionWnd.h index c8f98ba..97a0614 100644 --- a/Source/UI/Items/UIItemCollectionWnd.h +++ b/Source/UI/Items/UIItemCollectionWnd.h @@ -8,8 +8,17 @@ public: /* 00B4 */ unsigned char unknown_00B4[0x108]; /* 01BC */ UIWindow* m_preview; /* 01C0 */ std::uint32_t m_previewTick; + /* 01C4 */ unsigned char unknown_01C4[0x34]; + /* 01F8 */ int m_kind; void Slot19() override; + void Slot25(int x, int y) override; + void Slot31(int x, int y) override; +}; + +class UICombinedCardItemCollectionWnd : public UIItemCollectionWnd { +public: + void Slot31(int x, int y) override; }; class UIItemCollection_ComparisonWnd : public UIItemCollectionWnd { diff --git a/Source/UI/Window/UIWindowMgr.h b/Source/UI/Window/UIWindowMgr.h index 5f39e58..338a0b5 100644 --- a/Source/UI/Window/UIWindowMgr.h +++ b/Source/UI/Window/UIWindowMgr.h @@ -169,8 +169,8 @@ public: /* 0214 */ std::uint32_t unknown_0214; /* 0218 */ std::uint32_t unknown_0218; /* 021C */ std::uint32_t unknown_021C; - /* 0220 */ std::uint32_t unknown_0220; - /* 0224 */ std::uint32_t unknown_0224; + /* 0220 */ UIWindow* unknown_0220; + /* 0224 */ UIWindow* unknown_0224; /* 0228 */ std::uint32_t unknown_0228; /* 022C */ std::uint32_t unknown_022C; /* 0230 */ UIWindow* window_0230;