From 1e499d82db19b2ef5610de2803bc54fc4cac5b62 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Wed, 28 Oct 2026 22:19:03 +0000 Subject: [PATCH] Decompile 2 functions in Source/UI/Edit/UIEditCtrl.cpp, Source/UI/Shop/UINoticeMessageBox_LockSellItem.h, ... Batch #1779 by Yommy: 0 byte-identical, 2 confirmed by peer review. - fn_13325 UINoticeMessageBox_LockSellItem::Slot15: logic confirmed by peer review - fn_13340 UIMerchantItemPurchaseMSGWnd::Paint: logic confirmed by peer review Reviewed-by: ragnarok-clanker --- Source/UI/Edit/UIEditCtrl.cpp | 23 +++++++++++++++++++ Source/UI/Shop/UIMerchantItemPurchaseMSGWnd.h | 16 +++++++++++++ .../UI/Shop/UINoticeMessageBox_LockSellItem.h | 6 +++++ 3 files changed, 45 insertions(+) create mode 100644 Source/UI/Shop/UIMerchantItemPurchaseMSGWnd.h diff --git a/Source/UI/Edit/UIEditCtrl.cpp b/Source/UI/Edit/UIEditCtrl.cpp index 1b9b1a4..7303284 100644 --- a/Source/UI/Edit/UIEditCtrl.cpp +++ b/Source/UI/Edit/UIEditCtrl.cpp @@ -28,6 +28,8 @@ #include "UI/Shop/UIMerchantItemShopWnd.h" #include "UI/Shop/UINoticeMessageBox_LockSellItem.h" #include "UI/Skill/UISkillListWnd.h" +#include "UI/Buttons/UIBitmapButton.h" +#include "UI/Shop/UIMerchantItemPurchaseMSGWnd.h" #include #include @@ -681,11 +683,32 @@ int UISpriteButton::FrameWidth(int action, int frame) { return sprite->images[0][actions->Frame(action, frame).cells[0].image]->width; } +// OFFSET: 0x0097D220 +// FUNCTION: fn_13325 +void UINoticeMessageBox_LockSellItem::Slot15(int, int) { + auto* button = new UIBitmapButton(*this->m_context, *this->m_controls); + button->SetBitmap("유저인터페이스\\inventory\\bt_close.bmp", 0, 0); + button->SetBitmap("유저인터페이스\\inventory\\bt_close.bmp", 1, 0); + button->SetBitmap("유저인터페이스\\inventory\\bt_close.bmp", 2, 0); + button->SetSize(button->BitmapWidth(), button->BitmapHeight()); + button->Move(229, 4); + button->SetId(201); + this->AddChild(button); +} + // OFFSET: 0x0097E3E0 // FUNCTION: fn_13327 void UIItemWnd::Slot18() { } +// OFFSET: 0x00981990 +// FUNCTION: fn_13340 +void UIMerchantItemPurchaseMSGWnd::Paint() { + this->ClearSurface(0xFFFFFFFF); + this->DrawTitleBar(this->m_controls->fonts, this->m_controls->locale, false, "", 0); + this->DrawButtonBar(2, 0, 1); +} + // OFFSET: 0x00984130 // FUNCTION: fn_13351 void UIItemStoreFindWnd::Slot26(int, int) { diff --git a/Source/UI/Shop/UIMerchantItemPurchaseMSGWnd.h b/Source/UI/Shop/UIMerchantItemPurchaseMSGWnd.h new file mode 100644 index 0000000..41865ba --- /dev/null +++ b/Source/UI/Shop/UIMerchantItemPurchaseMSGWnd.h @@ -0,0 +1,16 @@ +#ifndef RAGNAROK_SOURCE_UI_SHOP_UIMERCHANTITEMPURCHASEMSGWND_H +#define RAGNAROK_SOURCE_UI_SHOP_UIMERCHANTITEMPURCHASEMSGWND_H + +#include "UI/Window/UIFrameWnd.h" + +struct UIButtonContext; + +class UIMerchantItemPurchaseMSGWnd : public UIFrameWnd { +public: + void Paint() override; + +protected: + UIButtonContext* m_controls; +}; + +#endif diff --git a/Source/UI/Shop/UINoticeMessageBox_LockSellItem.h b/Source/UI/Shop/UINoticeMessageBox_LockSellItem.h index 94be2bf..e19e5cb 100644 --- a/Source/UI/Shop/UINoticeMessageBox_LockSellItem.h +++ b/Source/UI/Shop/UINoticeMessageBox_LockSellItem.h @@ -5,12 +5,18 @@ #include +struct UIButtonContext; + class UINoticeMessageBox_LockSellItem : public UIFrameWnd { public: + void Slot15(int width, int height) override; void Slot19() override; /* 00B4 */ std::uint32_t startTick; /* 00B8 */ std::uint32_t duration; + +protected: + UIButtonContext* m_controls; }; #endif