diff --git a/Source/UI/Window/UIChatRoomWnd.h b/Source/UI/Window/UIChatRoomWnd.h index b843694e..fb0d645e 100644 --- a/Source/UI/Window/UIChatRoomWnd.h +++ b/Source/UI/Window/UIChatRoomWnd.h @@ -10,27 +10,41 @@ #include 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 unknown_010C; /* 0114 */ std::vector> unknown_0114; /* 0120 */ ChatRoomWndInfo* saved; protected: UIButtonContext* m_controls; + UIEditContext* m_editContext; + UIListBoxContext* m_listContext; }; #endif diff --git a/Source/UI/Window/UIMakeCharWnd.h b/Source/UI/Window/UIMakeCharWnd.h index d25929db..526c3a98 100644 --- a/Source/UI/Window/UIMakeCharWnd.h +++ b/Source/UI/Window/UIMakeCharWnd.h @@ -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 diff --git a/Source/UI/Window/UIMessageBox.cpp b/Source/UI/Window/UIMessageBox.cpp index cefb08bb..2263abb0 100644 --- a/Source/UI/Window/UIMessageBox.cpp +++ b/Source/UI/Window/UIMessageBox.cpp @@ -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(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) {