From 4e19df86d3f690f5cfc3d3893cb0f9be66d14a9d Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Tue, 10 Nov 2026 20:17:14 +0000 Subject: [PATCH] Decompile 24 functions in Source/UI/AdventureGuide/UIAdventureGuide.cpp, Source/UI/Enchant/UIEnchantUI.cpp, ... Batch #16491 by eAthena: 24 byte-identical, 0 confirmed by peer review. - fn_13991 CUIAdventureGuide::Initialize: byte-identical - fn_14272 CUIAdventureGuide::CUIAdventureGuide: byte-identical (already on main) - fn_14752 CUIEnchantUI::Initialize: byte-identical - fn_14808 CreateEnchantUI: byte-identical (already on main) - fn_15033 CUIEquipmentPropertiesWnd::Initialize: byte-identical - fn_15151 CUIEquipmentPropertiesWnd::CUIEquipmentPropertiesWnd: byte-identical (already on main) - fn_15189 CUIExchangeUI::Initialize: byte-identical - fn_15282 CUIExchangeUI::CUIExchangeUI: byte-identical (already on main) - fn_15383 CUIGameSettingsUI::Initialize: byte-identical - fn_15888 CUIGameSettingsUI::CUIGameSettingsUI: byte-identical (already on main) - fn_16052 CUIMacroReport::Initialize: byte-identical - fn_16096 CUIMacroReport::CUIMacroReport: byte-identical (already on main) - fn_16116 CUIProbabilityTable::Initialize: byte-identical - fn_16191 CUIProbabilityTable::CUIProbabilityTable: byte-identical (already on main) - fn_16224 CUIOngoingQuestInfo::Initialize: byte-identical - fn_16290 CUIOngoingQuestInfo::CUIOngoingQuestInfo: byte-identical (already on main) - fn_16321 CUIRecommendedQuestInfo::Initialize: byte-identical - fn_16340 CUIRecommendedQuestInfo::CUIRecommendedQuestInfo: byte-identical (already on main) - fn_16432 CUIRenewQuestUI::Initialize: byte-identical - fn_16599 CUIRenewQuestUI::CUIRenewQuestUI: byte-identical (already on main) - fn_16661 CUISelectPackageItemBox::Initialize: byte-identical - fn_16772 CUISelectPackageItemBox::CUISelectPackageItemBox: byte-identical (already on main) - fn_16807 CUISkillDelayInfo::Initialize: byte-identical - fn_16872 CUISkillDelayInfo::CUISkillDelayInfo: byte-identical (already on main) Merged automatically: every function is byte-identical to the original. --- Source/UI/AdventureGuide/UIAdventureGuide.cpp | 3 ++- Source/UI/Enchant/UIEnchantUI.cpp | 3 ++- Source/UI/Exchange/UIExchangeUI.cpp | 3 ++- Source/UI/FrameSkin.cpp | 4 ++-- Source/UI/FrameSkin.h | 5 +++-- Source/UI/GameSettings/GameSettingsUI.cpp | 3 ++- Source/UI/Item/UIEquipmentPropertiesWnd.cpp | 3 ++- Source/UI/ProbabilityTable/UIProbabilityTable.cpp | 3 ++- Source/UI/Quest/UIOngoingQuestInfo.cpp | 3 ++- Source/UI/Quest/UIRecommendedQuestInfo.cpp | 3 ++- Source/UI/Quest/UIRenewQuestUI.cpp | 3 ++- Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp | 3 ++- Source/UI/SkillDelayInfo/UISkillDelayInfo.cpp | 3 ++- Source/UI/UIMacroReport.cpp | 3 ++- Source/UI/Window/UIControl.cpp | 4 ++-- 15 files changed, 31 insertions(+), 18 deletions(-) diff --git a/Source/UI/AdventureGuide/UIAdventureGuide.cpp b/Source/UI/AdventureGuide/UIAdventureGuide.cpp index b2d088cdf..7c017adff 100644 --- a/Source/UI/AdventureGuide/UIAdventureGuide.cpp +++ b/Source/UI/AdventureGuide/UIAdventureGuide.cpp @@ -516,7 +516,8 @@ void CUIAdventureGuide::OnClose() { // OFFSET: 0x009C14F0 // FUNCTION: fn_13991 void CUIAdventureGuide::Initialize() { - this->ownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->Resize(750, 468); this->Move((g_renderer->viewport.width - this->geometry.width) / 2, (g_renderer->viewport.height - this->geometry.height) / 2); this->OnCreate(this->geometry.width, this->geometry.height); diff --git a/Source/UI/Enchant/UIEnchantUI.cpp b/Source/UI/Enchant/UIEnchantUI.cpp index c55a00523..c3bb97864 100644 --- a/Source/UI/Enchant/UIEnchantUI.cpp +++ b/Source/UI/Enchant/UIEnchantUI.cpp @@ -1528,7 +1528,8 @@ void CUIMainPage::OnInit() { // OFFSET: 0x009F3160 // FUNCTION: fn_14752 void CUIEnchantUI::Initialize() { - this->ownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->m_resolveSkin = true; this->Resize(690, 470); this->Move(0, 0); diff --git a/Source/UI/Exchange/UIExchangeUI.cpp b/Source/UI/Exchange/UIExchangeUI.cpp index 8be8122d6..09c44b2ec 100644 --- a/Source/UI/Exchange/UIExchangeUI.cpp +++ b/Source/UI/Exchange/UIExchangeUI.cpp @@ -108,7 +108,8 @@ void CUIListBoxEx::ClearItems() { // OFFSET: 0x00A10140 // FUNCTION: fn_15189 void CUIExchangeUI::Initialize() { - this->ownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->m_resolveSkin = true; this->Resize(560, 377); this->Move(0, 0); diff --git a/Source/UI/FrameSkin.cpp b/Source/UI/FrameSkin.cpp index 58bffb680..f061f7023 100644 --- a/Source/UI/FrameSkin.cpp +++ b/Source/UI/FrameSkin.cpp @@ -14,7 +14,7 @@ CUIRegisterMgr* Singleton::s_instance = nullptr; // OFFSET: 0x009E69D0 // FUNCTION: fn_14469 CUIFrameWnd::~CUIFrameWnd() { - if (static_cast(this->ownedSkinColors) != 0) { + if (this->m_ownsBackgroundColor) { if (CUIRegisterMgr::s_instance == nullptr) { CUIRegisterMgr::s_instance = new (std::nothrow) CUIRegisterMgr; } @@ -27,7 +27,7 @@ CUIFrameWnd::~CUIFrameWnd() { position->second.second = this->geometry.y; } - if (static_cast(this->ownedSkinColors >> 8) != 0) { + if (this->m_ownsBorderColor) { if (CUIRegisterMgr::s_instance == nullptr) { CUIRegisterMgr::s_instance = new (std::nothrow) CUIRegisterMgr; } diff --git a/Source/UI/FrameSkin.h b/Source/UI/FrameSkin.h index 5a3ab7d04..ecbdc9b14 100644 --- a/Source/UI/FrameSkin.h +++ b/Source/UI/FrameSkin.h @@ -12,7 +12,7 @@ class CUIFrameWnd : public UIFrameWnd { public: // INLINED CUIFrameWnd() - : UIFrameWnd(0), ownedSkinColors(0), m_hasSkinColors(false), + : UIFrameWnd(0), m_ownsBackgroundColor(false), m_ownsBorderColor(false), m_hasSkinColors(false), m_backgroundColor(0xFFFFFF), m_borderColor(0xCECECE), m_backgroundCell{0, 0}, m_borderCell{3, 1}, m_buttonBarStyle(0), m_resolveSkin(true) { } @@ -23,7 +23,8 @@ public: void SetSkinColors(int backgroundColumn, int backgroundRow, int borderColumn, int borderRow); protected: - /* 00B4 */ std::uint16_t ownedSkinColors; + /* 00B4 */ bool m_ownsBackgroundColor; + /* 00B5 */ bool m_ownsBorderColor; /* 00B6 */ bool m_hasSkinColors; /* 00B8 */ std::uint32_t m_backgroundColor; /* 00BC */ std::uint32_t m_borderColor; diff --git a/Source/UI/GameSettings/GameSettingsUI.cpp b/Source/UI/GameSettings/GameSettingsUI.cpp index e62dad9db..0ae244708 100644 --- a/Source/UI/GameSettings/GameSettingsUI.cpp +++ b/Source/UI/GameSettings/GameSettingsUI.cpp @@ -1923,7 +1923,8 @@ CUIGameSettingsUI::CUIGameSettingsUI() // OFFSET: 0x00A1EE20 // FUNCTION: fn_15383 void CUIGameSettingsUI::Initialize() { - this->ownedSkinColors = 1; + this->m_ownsBackgroundColor = true; + this->m_ownsBorderColor = false; this->m_resolveSkin = true; this->Resize(400, 350); this->Move(0, 0); diff --git a/Source/UI/Item/UIEquipmentPropertiesWnd.cpp b/Source/UI/Item/UIEquipmentPropertiesWnd.cpp index 679399668..f92172c80 100644 --- a/Source/UI/Item/UIEquipmentPropertiesWnd.cpp +++ b/Source/UI/Item/UIEquipmentPropertiesWnd.cpp @@ -247,7 +247,8 @@ CUIListBoxExownedSkinColors = 0x101; + this->m_ownsBackgroundColor = true; + this->m_ownsBorderColor = true; this->m_resolveSkin = true; this->Resize(300, 308); this->Move(0, 0); diff --git a/Source/UI/ProbabilityTable/UIProbabilityTable.cpp b/Source/UI/ProbabilityTable/UIProbabilityTable.cpp index ed79faceb..239666d0e 100644 --- a/Source/UI/ProbabilityTable/UIProbabilityTable.cpp +++ b/Source/UI/ProbabilityTable/UIProbabilityTable.cpp @@ -203,7 +203,8 @@ void CUIListBoxEx::Clear // OFFSET: 0x00A487D0 // FUNCTION: fn_16116 void CUIProbabilityTable::Initialize() { - this->ownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->Resize(345, 455); this->Move(0, 0); this->OnCreate(this->geometry.width, this->geometry.height); diff --git a/Source/UI/Quest/UIOngoingQuestInfo.cpp b/Source/UI/Quest/UIOngoingQuestInfo.cpp index 277fbe07e..39ccc3187 100644 --- a/Source/UI/Quest/UIOngoingQuestInfo.cpp +++ b/Source/UI/Quest/UIOngoingQuestInfo.cpp @@ -92,7 +92,8 @@ void CUIListBoxExownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->m_resolveSkin = true; this->Resize(342, 412); this->Move(0, 0); diff --git a/Source/UI/Quest/UIRecommendedQuestInfo.cpp b/Source/UI/Quest/UIRecommendedQuestInfo.cpp index 18a563d3a..5d1bffe77 100644 --- a/Source/UI/Quest/UIRecommendedQuestInfo.cpp +++ b/Source/UI/Quest/UIRecommendedQuestInfo.cpp @@ -17,7 +17,8 @@ // OFFSET: 0x00A568E0 // FUNCTION: fn_16321 void CUIRecommendedQuestInfo::Initialize() { - this->ownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->m_resolveSkin = true; this->Resize(342, 412); this->Move(0, 0); diff --git a/Source/UI/Quest/UIRenewQuestUI.cpp b/Source/UI/Quest/UIRenewQuestUI.cpp index daa040562..72ba175b2 100644 --- a/Source/UI/Quest/UIRenewQuestUI.cpp +++ b/Source/UI/Quest/UIRenewQuestUI.cpp @@ -914,7 +914,8 @@ void RenewQuestUI::CUIQuestList::OnInit() { // OFFSET: 0x00A5C200 // FUNCTION: fn_16432 void CUIRenewQuestUI::Initialize() { - this->ownedSkinColors = 1; + this->m_ownsBackgroundColor = true; + this->m_ownsBorderColor = false; this->m_resolveSkin = true; this->Resize(381, 466); this->Move( diff --git a/Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp b/Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp index ecd97d35c..110a7c1c5 100644 --- a/Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp +++ b/Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp @@ -95,7 +95,8 @@ void CUIListBoxExownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->Resize(387, 283); this->Move(0, 0); this->OnCreate(this->geometry.width, this->geometry.height); diff --git a/Source/UI/SkillDelayInfo/UISkillDelayInfo.cpp b/Source/UI/SkillDelayInfo/UISkillDelayInfo.cpp index d5fbdd74d..c428e9071 100644 --- a/Source/UI/SkillDelayInfo/UISkillDelayInfo.cpp +++ b/Source/UI/SkillDelayInfo/UISkillDelayInfo.cpp @@ -135,7 +135,8 @@ void CUIListBoxEx: // OFFSET: 0x00A719E0 // FUNCTION: fn_16807 void CUISkillDelayInfo::Initialize() { - this->ownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->m_resolveSkin = true; this->Resize(345, 379); this->Move(0, 0); diff --git a/Source/UI/UIMacroReport.cpp b/Source/UI/UIMacroReport.cpp index 8ea3fdbf9..3d8741e3d 100644 --- a/Source/UI/UIMacroReport.cpp +++ b/Source/UI/UIMacroReport.cpp @@ -139,7 +139,8 @@ void CUIMacroReport::OnReportTypeSelect(CUIRadioButton* button) { // OFFSET: 0x00A441F0 // FUNCTION: fn_16052 void CUIMacroReport::Initialize() { - this->ownedSkinColors = 0; + this->m_ownsBackgroundColor = false; + this->m_ownsBorderColor = false; this->m_resolveSkin = false; this->Resize(0xE7, 0xBD); this->Move(0, 0); diff --git a/Source/UI/Window/UIControl.cpp b/Source/UI/Window/UIControl.cpp index 0b2a3134d..8938c54c0 100644 --- a/Source/UI/Window/UIControl.cpp +++ b/Source/UI/Window/UIControl.cpp @@ -3473,7 +3473,7 @@ CUIFrameWnd* CUIRegisterMgr::Create(int key) { window->SetId(key); window->Initialize(); - if (static_cast(window->ownedSkinColors) != 0) { + if (window->m_ownsBackgroundColor) { auto position = this->windowPositions.find(key); if (position != this->windowPositions.end()) { RECT bounds{0, 0, g_renderer->viewport.width - window->geometry.width, g_renderer->viewport.height - window->geometry.height}; @@ -3484,7 +3484,7 @@ CUIFrameWnd* CUIRegisterMgr::Create(int key) { } } - if (static_cast(window->ownedSkinColors >> 8) != 0) { + if (window->m_ownsBorderColor) { auto size = this->windowSizes.find(key); if (size != this->windowSizes.end()) { window->Grow(size->second.first - window->geometry.width, size->second.second - window->geometry.height);