diff --git a/Source/Client/Mode/CGameMode.h b/Source/Client/Mode/CGameMode.h index ddbc098..d9334f1 100644 --- a/Source/Client/Mode/CGameMode.h +++ b/Source/Client/Mode/CGameMode.h @@ -6,13 +6,16 @@ #include "Contents/ActorNameCard.h" #include +#include class CView; struct WorldScene; class CGameMode : public CMode { public: - /* 0058 */ unsigned char unknown_0058[0x74]; + /* 0058 */ unsigned char unknown_0058[0x10]; + /* 0068 */ char mapName[16]; + /* 0078 */ unsigned char unknown_0078[0x54]; /* 00CC */ WorldScene* scene; /* 00D0 */ CView* camera; /* 00D4 */ unsigned char unknown_00D4[0x8C]; @@ -20,9 +23,12 @@ public: /* 0194 */ unsigned char unknown_0194[0x174]; /* 0308 */ ModeDragState drag; /* 03C8 */ unsigned char unknown_03C8[0x2A8]; + + std::string MapName(); }; #if defined(_WIN32) && !defined(_WIN64) +static_assert(offsetof(CGameMode, mapName) == 0x68); static_assert(offsetof(CGameMode, scene) == 0xCC); static_assert(offsetof(CGameMode, camera) == 0xD0); static_assert(offsetof(CGameMode, nameCard) == 0x160); diff --git a/Source/UI/Navigation/UINavigationV4Wnd.h b/Source/UI/Navigation/UINavigationV4Wnd.h index 73d7351..17e9a4a 100644 --- a/Source/UI/Navigation/UINavigationV4Wnd.h +++ b/Source/UI/Navigation/UINavigationV4Wnd.h @@ -21,6 +21,7 @@ public: bool ClearRouteTexts(); void LayoutWithoutDetails(); void LayoutWithDetails(); + bool IsListShown() const; /* 00B4 */ UIWindow* unknown_00B4; /* 00B8 */ UIWindow* unknown_00B8; diff --git a/Source/UI/Window/UIWindow.cpp b/Source/UI/Window/UIWindow.cpp index 7c6ac27..e379e8c 100644 --- a/Source/UI/Window/UIWindow.cpp +++ b/Source/UI/Window/UIWindow.cpp @@ -1,3 +1,4 @@ +#include "Client/Mode/CGameMode.h" #include "Client/Mode/ModeCursor.h" #include "Client/Mode/ModeEvents.h" #include "Network/TextEncoding.h" @@ -424,7 +425,8 @@ void UIWindow::Slot43() { // OFFSET: 0x005C4480 // FUNCTION: fn_03560 std::vector UIWindow::Slot44() { - return {}; + std::vector result; + return result; } // OFFSET: 0x005C8F60 @@ -1181,6 +1183,18 @@ bool UINavigationV4Wnd::ClearRouteTexts() { return true; } +// OFFSET: 0x005C4520 +// FUNCTION: fn_03565 +std::string CGameMode::MapName() { + return this->mapName; +} + +// OFFSET: 0x005C45D0 +// FUNCTION: fn_03568 +bool UINavigationV4Wnd::IsListShown() const { + return this->unknown_00D4->geometry.unknown_0030 != 0; +} + // OFFSET: 0x005C4690 // FUNCTION: fn_03575 void UINavigationV4Wnd::LayoutWithoutDetails() {