From e91b95cb6faffe774a0a33f4aa180109181a69c1 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Sat, 31 Oct 2026 15:00:58 +0000 Subject: [PATCH] Decompile 3 functions in Source/UI/Window/UINewSelectCharWnd.cpp, Source/Client/Mode/CLoginMode.h, ... Batch #8188 by eAthena: 0 byte-identical, 3 confirmed by peer review. - fn_09597 UINewSelectCharWnd::sub_7D9260: logic confirmed by peer review (already on main) - fn_09598 UINewSelectCharWnd::sub_7D9310: logic confirmed by peer review (already on main) - fn_17173 UIWindowMgr::RestoreHiddenWindows: logic confirmed by peer review Peer-reviewed-by: ragnarok-clanker, Yommy, gordaoprogramas Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/UI/Window/UIWindowMgr.h | 1 + Source/UI/Window/WindowMgrState.cpp | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/Source/UI/Window/UIWindowMgr.h b/Source/UI/Window/UIWindowMgr.h index 4f152924..7e9d9ec3 100644 --- a/Source/UI/Window/UIWindowMgr.h +++ b/Source/UI/Window/UIWindowMgr.h @@ -539,6 +539,7 @@ public: void RefreshWindow01C8Edits(); void SetSurface0478(CBitmapRes* bitmap); void SendFlagEffect(int message); + void RestoreHiddenWindows(); std::vector SaveReplaySettings(); std::vector SaveReplayReserved(); void ApplyReplayOptions(const ReplayOptions& options); diff --git a/Source/UI/Window/WindowMgrState.cpp b/Source/UI/Window/WindowMgrState.cpp index ecc8d25a..04c4f107 100644 --- a/Source/UI/Window/WindowMgrState.cpp +++ b/Source/UI/Window/WindowMgrState.cpp @@ -11,6 +11,9 @@ #include "UI/Window/MiniPartyWndAreaMgr.h" #include "Render/Renderer.h" #include "Client/Mode/ModeMgr.h" +#include "Client/Mode/CGameMode.h" +#include "Contents/World/World.h" +#include "Contents/Actors/Pc.h" #include "Render/DeviceContext/DCSurface.h" #include "Render/Textures/Surface.h" #include "Resource/Bitmap/BitmapResource.h" @@ -19,6 +22,7 @@ #include "Client/ReplayPacketRecorder.h" #include "Client/Mode/ModeDragState.h" #include "Contents/UserData/NormalItemSlots.h" +#include #include #include #include @@ -1100,3 +1104,25 @@ void UIWindowMgr::FocusWindow01C8Edit() { // FUNCTION: fn_17152 void __stdcall Nullsub369(int, int, int, int) { } + +// OFFSET: 0x00A91DB0 +// FUNCTION: fn_17173 +void UIWindowMgr::RestoreHiddenWindows() { + for (UIWindow* window : this->rendered) { + if (std::find(this->hiddenWindows.begin(), this->hiddenWindows.end(), window) != this->hiddenWindows.end()) { + window->Show(1); + } + } + + CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); + if (mode && mode->unknown_0254 == 1) { + this->EnsureWindow(14); + } + + static_cast(g_modeMgr.GetGameMode())->scene->player->RefreshEffect164(); + this->unknown_0508 = 1; + + for (std::map::iterator it = this->overlays.begin(); it != this->overlays.end(); ++it) { + this->CloseWindow(it->first + 216); + } +}