From 8531fd0c014e94f2803d96ea1d4e6c610dc764b7 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Fri, 30 Oct 2026 16:27:24 +0000 Subject: [PATCH] Decompile 7 functions in Source/UI/Window/UIFrameWnd.cpp Batch #5823 by SapitoSucio: 0 byte-identical, 7 confirmed by peer review. - fn_12074 UIFrameWnd::AddBaseButton: logic confirmed by peer review - fn_12075 UIFrameWnd::AddBigCloseButton: logic confirmed by peer review - fn_12077 UIFrameWnd::AddMinimizeButton: logic confirmed by peer review - fn_12078 UIFrameWnd::AddBitmapButton: logic confirmed by peer review - fn_12079 UIFrameWnd::AddNumberedButton: logic confirmed by peer review - fn_12080 UIFrameWnd::AddStyledCheckBox: logic confirmed by peer review - fn_12081 UIFrameWnd::AddCheckBox: logic confirmed by peer review Peer-reviewed-by: ragnarok-clanker, Yommy, willerthal Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/UI/Window/UIFrameWnd.cpp | 124 ++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/Source/UI/Window/UIFrameWnd.cpp b/Source/UI/Window/UIFrameWnd.cpp index 5d89da48..233755bd 100644 --- a/Source/UI/Window/UIFrameWnd.cpp +++ b/Source/UI/Window/UIFrameWnd.cpp @@ -198,8 +198,38 @@ int UIFrameWnd::Slot46() { } // OFFSET: 0x008CEF10 +// FUNCTION: fn_12074 +UIBitmapButton* UIFrameWnd::AddBaseButton(UIButtonContext& controls) { + UIBitmapButton* button = new UIBitmapButton(*this->m_context, controls); + button->SetBitmap("유저인터페이스\\basic_interface\\sys_base_off.bmp", 0, 0); + button->SetBitmap("유저인터페이스\\basic_interface\\sys_base_on.bmp", 1, 0); + button->SetBitmap("유저인터페이스\\basic_interface\\sys_base_on.bmp", 2, 0); + button->SetSize(button->BitmapWidth(), button->BitmapHeight()); + button->Move(3, 3); + this->AddChild(button); + + return button; +} // OFFSET: 0x008CEFD0 +// FUNCTION: fn_12075 +UIBitmapButton* UIFrameWnd::AddBigCloseButton(UIButtonContext& controls, const char* tooltip, int width) { + if (width == 0) { + width = this->geometry.width; + } + + UIBitmapButton* button = new UIBitmapButton(*this->m_context, controls); + button->SetBitmap("유저인터페이스\\basic_interface\\big_sys_close_off.bmp", 0, 0); + button->SetBitmap("유저인터페이스\\basic_interface\\big_sys_close_on.bmp", 1, 0); + button->SetBitmap("유저인터페이스\\basic_interface\\big_sys_close_on.bmp", 2, 0); + button->SetSize(button->BitmapWidth(), button->BitmapHeight()); + button->Move(width - button->BitmapWidth(), 0); + button->SetId(201); + button->SetTooltip(tooltip); + this->AddChild(button); + + return button; +} // OFFSET: 0x008CF0C0 // FUNCTION: fn_12076 @@ -222,14 +252,108 @@ UIBitmapButton* UIFrameWnd::AddCloseButton(UIButtonContext& controls, const char } // OFFSET: 0x008CF2A0 +// FUNCTION: fn_12077 +UIBitmapButton* UIFrameWnd::AddMinimizeButton(UIButtonContext& controls, const char* tooltip, int width) { + if (width == 0) { + width = this->geometry.width; + } + + UIBitmapButton* button = new UIBitmapButton(*this->m_context, controls); + button->SetBitmap("유저인터페이스\\basic_interface\\sys_mini_off.bmp", 0, 0); + button->SetBitmap("유저인터페이스\\basic_interface\\sys_mini_on.bmp", 1, 0); + button->SetBitmap("유저인터페이스\\basic_interface\\sys_mini_on.bmp", 2, 0); + button->SetSize(button->BitmapWidth(), button->BitmapHeight()); + button->Move(width - 28, 3); + button->SetId(202); + button->SetTooltip(tooltip); + this->AddChild(button); + + return button; +} // OFFSET: 0x008CF390 +// FUNCTION: fn_12078 +UIBitmapButton* UIFrameWnd::AddBitmapButton(UIButtonContext& controls, int id, int x, int y, const char* name, const char* tooltip) { + if (!name) { + return nullptr; + } + + UIBitmapButton* button = new UIBitmapButton(*this->m_context, controls); + std::string path = "유저인터페이스\\"; + path += name; + button->SetBitmap((path + "_out" + ".bmp").c_str(), 0, 0); + button->SetBitmap((path + "_over" + ".bmp").c_str(), 1, 0); + button->SetBitmap((path + "_press" + ".bmp").c_str(), 2, 0); + button->SetSize(button->BitmapWidth(), button->BitmapHeight()); + button->Move(x, y); + button->SetId(id); + button->SetTooltip(tooltip); + this->AddChild(button); + + return button; +} // OFFSET: 0x008CF870 +// FUNCTION: fn_12079 +UIBitmapButton* UIFrameWnd::AddNumberedButton(UIButtonContext& controls, int id, int x, int y, const char* name, const char* tooltip, bool prefix) { + if (!name) { + return nullptr; + } + + UIBitmapButton* button = new UIBitmapButton(*this->m_context, controls); + std::string path; + if (prefix) { + path += "유저인터페이스\\"; + } + path += name; + button->SetBitmap((path + "_1" + ".bmp").c_str(), 0, 0); + button->SetBitmap((path + "_2" + ".bmp").c_str(), 1, 0); + button->SetBitmap((path + "_3" + ".bmp").c_str(), 2, 0); + button->SetSize(button->BitmapWidth(), button->BitmapHeight()); + button->Move(x, y); + button->SetId(id); + button->SetTooltip(tooltip); + this->AddChild(button); + + return button; +} // OFFSET: 0x008CFE50 +// FUNCTION: fn_12080 +UICheckBox* UIFrameWnd::AddStyledCheckBox( + UIButtonContext& controls, int id, int width, int height, const char* text, int x, int y, bool checked, const char* tooltip, int fontHeight, + std::uint32_t color, const char* checkedImage, const char* uncheckedImage +) { + UICheckBox* checkBox = new UICheckBox(*this->m_context, controls); + checkBox->SetSize(width, height); + checkBox->SetImages( + checkedImage ? checkedImage : "유저인터페이스\\checkbox_1.bmp", uncheckedImage ? uncheckedImage : "유저인터페이스\\checkbox_0.bmp", text + ); + checkBox->Move(x, y); + checkBox->SetId(id); + checkBox->SetChecked(checked); + checkBox->SetTooltip(tooltip); + checkBox->m_fontHeight = fontHeight; + checkBox->m_color = color; + this->AddChild(checkBox); + + return checkBox; +} // OFFSET: 0x008CFF40 +// FUNCTION: fn_12081 +UICheckBox* UIFrameWnd::AddCheckBox(UIButtonContext& controls, int id, int width, int height, const char* text, int x, int y, int checked, const char* tooltip) { + UICheckBox* checkBox = new UICheckBox(*this->m_context, controls); + checkBox->SetSize(width, height); + checkBox->SetImages("유저인터페이스\\checkbox_1.bmp", "유저인터페이스\\checkbox_0.bmp", text); + checkBox->Move(x, y); + checkBox->SetId(id); + checkBox->SetChecked(checked); + checkBox->SetTooltip(tooltip); + this->AddChild(checkBox); + + return checkBox; +} // OFFSET: 0x008BA280 // FUNCTION: fn_11780