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
This commit is contained in:
ragnarok-clanker 2026-10-28 11:44:06 +00:00
commit 2bd9f525a3
2 changed files with 39 additions and 1 deletions

View file

@ -3,6 +3,9 @@
#include "UI/Window/UIFrameWnd.h"
#include <string>
#include <vector>
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<std::string> 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

View file

@ -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() {