From 2bd9f525a3c25b89c7829f598440d447f16751fe Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Wed, 28 Oct 2026 11:44:06 +0000 Subject: [PATCH] Decompile 2 functions in Source/UI/Window/UIWindow.cpp, Source/UI/Navigation/UINavigationV4Wnd.h Batch #1369 by Yommy: 0 byte-identical, 2 confirmed by peer review. - fn_03555 UINavigationV4Wnd::ClearRouteTexts: logic confirmed by peer review - fn_03604 UINavigationV4Wnd::Slot19: logic confirmed by peer review Reviewed-by: ragnarok-clanker --- Source/UI/Navigation/UINavigationV4Wnd.h | 16 +++++++++++++++- Source/UI/Window/UIWindow.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/Source/UI/Navigation/UINavigationV4Wnd.h b/Source/UI/Navigation/UINavigationV4Wnd.h index 084b5c1..73d7351 100644 --- a/Source/UI/Navigation/UINavigationV4Wnd.h +++ b/Source/UI/Navigation/UINavigationV4Wnd.h @@ -3,6 +3,9 @@ #include "UI/Window/UIFrameWnd.h" +#include +#include + struct NavigationWindowInfo { /* 0000 */ int x; /* 0004 */ int y; @@ -14,6 +17,8 @@ struct NavigationWindowInfo { class UINavigationV4Wnd : public UIFrameWnd { public: void Slot11() override; + void Slot19() override; + bool ClearRouteTexts(); void LayoutWithoutDetails(); void LayoutWithDetails(); @@ -37,8 +42,17 @@ public: /* 00F8 */ UIWindow* unknown_00F8; /* 00FC */ UIWindow* unknown_00FC; /* 0100 */ UIWindow* unknown_0100; - /* 0104 */ unsigned char unknown_0104[12]; + /* 0104 */ std::vector unknown_0104; /* 0110 */ NavigationWindowInfo* info; }; +class UINavigationroadiconWnd : public UIFrameWnd { +public: + void Slot31(int x, int y) override; + + /* 00B4 */ UIWindow* icon; +}; + +extern int g_navigationTab; + #endif diff --git a/Source/UI/Window/UIWindow.cpp b/Source/UI/Window/UIWindow.cpp index 1213e5b..5a65d15 100644 --- a/Source/UI/Window/UIWindow.cpp +++ b/Source/UI/Window/UIWindow.cpp @@ -65,6 +65,9 @@ inline std::uint32_t WindowGeometry::Color() { // GLOBAL: gl_24364 std::uint32_t g_windowUid = 0xFFFFFFFFu; +// GLOBAL: gl_24611 +int g_navigationTab; + // INLINED void UIWindowContext::DestroyDeferredChildren() { for (UIWindow* window : this->deferredDeletion) { @@ -1167,6 +1170,17 @@ void UIListBox_NaviSearch::Resize(int width, int height) { this->Refresh(); } +// OFFSET: 0x005C3360 +// FUNCTION: fn_03555 +bool UINavigationV4Wnd::ClearRouteTexts() { + for (std::string& text : this->unknown_0104) { + text.clear(); + } + + this->unknown_0104.clear(); + return true; +} + // OFFSET: 0x005C4690 // FUNCTION: fn_03575 void UINavigationV4Wnd::LayoutWithoutDetails() { @@ -1252,6 +1266,16 @@ void UINavigationV4Wnd::Slot11() { this->info->y = this->geometry.y; } +// OFFSET: 0x005C7140 + +// OFFSET: 0x005C72A0 +// FUNCTION: fn_03604 +void UINavigationV4Wnd::Slot19() { + if (g_navigationTab == 2) { + this->Invalidate(); + } +} + // OFFSET: 0x005C72C0 // FUNCTION: fn_03605 void UIPrivateAirplaneWnd::Slot19() {