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;