Decompile 2 functions in Source/UI/Window/UIMessageBox.cpp, Source/UI/Window/UIChatRoomWnd.h, ...

Batch #8807 by eAthena: 0 byte-identical, 2 confirmed by peer review.

- fn_11738 UIChatRoomWnd::Slot15: logic confirmed by peer review
- fn_11743 UIMakeCharWnd::Slot15: logic confirmed by peer review

Peer-reviewed-by: Lumen, superintelligence, kyoshi, pedrao, aDw, System4z, dori
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
ragnarok-clanker 2026-10-31 21:28:34 +00:00
commit a2b3e9a4e1
3 changed files with 95 additions and 6 deletions

View file

@ -10,27 +10,41 @@
#include <vector>
struct UIButtonContext;
struct UIEditContext;
struct UIListBoxContext;
class UIBitmapButton;
class UIChatEditCtrl;
class UIChatHisBox;
class UIMemberListBox;
class UIResizer;
class UIStaticText;
class UIChatRoomWnd : public UIFrameWnd {
public:
UIChatRoomWnd(UIWindowContext& windows, UIFrameContext& frames, UIButtonContext& controls);
void Move(int x, int y) override;
void Slot11() override;
void Slot15(int width, int height) override;
void Paint() override;
void SaveChatLog();
/* 00B4 */ std::string title;
/* 00CC */ std::string unknown_00CC;
/* 00E4 */ unsigned char unknown_00E4[0x18];
/* 00E4 */ unsigned char unknown_00E4[0x10];
/* 00F4 */ UIResizer* resizer;
/* 00F8 */ UIChatEditCtrl* edit;
/* 00FC */ UIChatHisBox* history;
/* 0100 */ unsigned char unknown_0100[0xC];
/* 0100 */ UIMemberListBox* memberList;
/* 0104 */ UIBitmapButton* closeButton;
/* 0108 */ UIStaticText* titleText;
/* 010C */ std::map<std::string, int> unknown_010C;
/* 0114 */ std::vector<std::pair<std::string, int>> unknown_0114;
/* 0120 */ ChatRoomWndInfo* saved;
protected:
UIButtonContext* m_controls;
UIEditContext* m_editContext;
UIListBoxContext* m_listContext;
};
#endif

View file

@ -5,26 +5,34 @@
#include "UI/Window/UIFrameWnd.h"
#include "UI/Window/UINewSelectCharWnd.h"
class UIBitmapButton;
class UIBitmapEditCtrl;
class UIScrollBar;
struct UIButtonContext;
class UIMakeCharWnd : public UIFrameWnd {
public:
UIMakeCharWnd(UIWindowContext& windows, UIFrameContext& frames);
void Slot15(int width, int height) override;
void Slot18() override;
void Slot19() override;
void Paint() override;
void InitHairControls();
/* 00B4 */ UIBitmapEditCtrl* m_nameEdit;
/* 00B8 */ CharacterInfo m_info;
/* 0167 */ unsigned char unknown_0167;
/* 0168 */ CharSlotInfo m_view;
/* 02C4 */ int unknown_02C4;
/* 02C8 */ int unknown_02C8;
/* 02CC */ int unknown_02CC;
/* 02D0 */ int unknown_02D0;
/* 02C4 */ UIBitmapButton* unknown_02C4;
/* 02C8 */ UIBitmapButton* unknown_02C8;
/* 02CC */ UIScrollBar* unknown_02CC;
/* 02D0 */ UIScrollBar* unknown_02D0;
/* 02D4 */ int unknown_02D4;
/* 02D8 */ int unknown_02D8;
protected:
UIButtonContext* m_controls;
};
#endif

View file

@ -49,6 +49,8 @@
#include "Client/Replay.h"
#include "Client/Application/Launcher.h"
#include "UI/Lists/UIChatHisBox.h"
#include "UI/Lists/UIMemberListBox.h"
#include "UI/Window/UIResizer.h"
#include "Client/Application/ApplicationWindow.h"
#include "UI/Text/UIStaticText.h"
#include "UI/UIBarGraph.h"
@ -1529,6 +1531,25 @@ void UILoginWnd::Slot27(int, int) {
void UIMakeCharWnd::Slot19() {
}
// OFFSET: 0x008AC490
// OFFSET: 0x008B0B60
// FUNCTION: fn_11743
void UIMakeCharWnd::Slot15(int, int) {
static_cast<CMode*>(g_charViewMode)->SendMsg(10014, 0, 0, 0, 0);
this->m_nameEdit = new UIBitmapEditCtrl();
this->m_nameEdit->SetBitmapName("유저인터페이스\\login_interface\\name-edit.bmp");
this->m_nameEdit->SetSize(this->m_nameEdit->geometry.width, this->m_nameEdit->geometry.height);
this->m_nameEdit->Move(40, 142);
this->m_nameEdit->maximum = 24;
this->m_nameEdit->SetId(184);
this->AddChild(this->m_nameEdit);
this->InitHairControls();
InputFocus focus{g_windowMgr.hoverWindow};
focus.Set(this->m_nameEdit);
this->m_message0 = 184;
}
// OFFSET: 0x008AD130
// FUNCTION: fn_11734
void UIChatRoomWnd::Move(int x, int y) {
@ -1536,6 +1557,52 @@ void UIChatRoomWnd::Move(int x, int y) {
this->Slot36();
}
// OFFSET: 0x008AD3C0
// FUNCTION: fn_11738
void UIChatRoomWnd::Slot15(int, int) {
this->m_message0 = 184;
this->resizer = new UIResizer(*this->m_context);
this->resizer->SetSize(16, 16);
this->resizer->SetDirection(7);
this->resizer->SetBitmapName("유저인터페이스\\btn_resize.bmp");
this->resizer->Move(this->geometry.width - 15, this->geometry.height - 15);
this->resizer->SetColors(0xFFFF00FF, 0xFFFF00FF);
this->AddChild(this->resizer);
this->edit = new UIChatEditCtrl(*this->m_context, *this->m_editContext);
this->edit->SetSize(this->geometry.width - 30, 16);
this->edit->Move(3, this->geometry.height - 18);
this->edit->maximum = 70;
this->edit->Background(242, 242, 242);
this->AddChild(this->edit);
InputFocus focus{g_windowMgr.hoverWindow};
focus.Set(this->edit);
this->edit->SetId(494);
UIChatHisBox2* history = new UIChatHisBox2(*this->m_context, *this->m_listContext);
this->history = history;
history->Configure(0, 0, this->geometry.width - this->geometry.width * 56 / 280 - 3, this->geometry.height - 38, 0);
this->history->Move(1, 17);
this->history->SetId(184);
this->AddChild(this->history);
this->memberList = new UIMemberListBox(*this->m_context, *this->m_listContext);
this->memberList->Configure(0, 0, this->geometry.width * 56 / 280, this->geometry.height - 38, 0);
this->memberList->Move(this->geometry.width - this->geometry.width * 56 / 280 - 1, 17);
this->memberList->SetId(184);
this->AddChild(this->memberList);
this->closeButton = this->AddCloseButton(*this->m_controls, "/q", 0);
this->titleText = new UIStaticText(*this->m_context, *this->m_controls);
this->titleText->SetSize(this->geometry.width - 30, 15);
this->titleText->Move(9, 2);
this->titleText->SetTextFitted("");
this->titleText->SetFont(0, 12, 0, 0);
this->AddChild(this->titleText);
}
// OFFSET: 0x008B1760
// FUNCTION: fn_11746
void UINoticeWnd::Slot15(int, int) {