From 145cf03e5d0532d86a2cf17d56679ff3931d4529 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Sun, 1 Nov 2026 01:42:38 +0000 Subject: [PATCH] Decompile fn_19612 (CNavigationManager::sub_B995D0) Batch #9090 by pedrao: 0 byte-identical, 1 confirmed by peer review. - fn_19612 CNavigationManager::sub_B995D0: logic confirmed by peer review Peer-reviewed-by: Lumen, KWDev, Bielhp Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Contents/NavigationRoute.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Source/Contents/NavigationRoute.cpp b/Source/Contents/NavigationRoute.cpp index 13f57802..cc94cfbd 100644 --- a/Source/Contents/NavigationRoute.cpp +++ b/Source/Contents/NavigationRoute.cpp @@ -17,6 +17,7 @@ #include "UI/Navigation/UINavigationV4Wnd.h" #include "UI/Window/UINavigationWnd.h" #include "UI/Window/UIWindowMgr.h" +#include "UI/Window/WindowOrdering.h" #include "UI/Window/UIPayConfirmWnd.h" #include "UI/Window/WindowDialogs.h" #include "Utility/RegistryKey.h" @@ -733,6 +734,34 @@ bool CNavigationManager::sub_B99030(std::string name, int type, unsigned char mo return true; } +// OFFSET: 0x00B995D0 +// FUNCTION: fn_19612 +bool CNavigationManager::sub_B995D0(std::string name, int type, bool flag) { + if (static_cast(type) > 4) { + return false; + } + + this->unknown_1264 = name; + this->unknown_1248 = flag; + this->unknown_1260 = type; + g_navigationManager.UpdateSearchResults(); + + if (!this->unknown_1248) { + if (g_navigationWindow == nullptr) { + g_windowMgr.EnsureWindow(203); + } else { + g_navigationWindow->SendMsg(nullptr, 6, 200, 0, 0, 0); + if (g_windowMgr.modal != nullptr) { + static_cast(g_windowMgr.modal)->RefreshWorldMapLevels(); + } + } + + reinterpret_cast(g_windowMgr).Promote(g_navigationWindow); + } + + return true; +} + // OFFSET: 0x00B996D0 // FUNCTION: fn_19613 void CNavigationManager::LoadSettings() {