diff --git a/Source/Client/Mode/CGameMode.h b/Source/Client/Mode/CGameMode.h index 506b6205..cb611bfc 100644 --- a/Source/Client/Mode/CGameMode.h +++ b/Source/Client/Mode/CGameMode.h @@ -15,6 +15,7 @@ #include class CView; +class UIBroadcastBalloon; class CMousePointer; class CCorpse; class CMsgEffect; @@ -61,7 +62,9 @@ public: CGameMode(); /* 0058 */ unsigned char unknown_0058[0x10]; /* 0068 */ char mapName[16]; - /* 0078 */ unsigned char unknown_0078[0x54]; + /* 0078 */ unsigned char unknown_0078[0xC]; + /* 0084 */ std::vector unknown_0084; + /* 0090 */ unsigned char unknown_0090[0x3C]; /* 00CC */ CWorld* scene; /* 00D0 */ CView* camera; /* 00D4 */ CMousePointer* mousePointer; @@ -121,11 +124,15 @@ public: /* 05E8 */ std::uint32_t replayPauseTick; /* 05EC */ unsigned char unknown_05EC[0x18]; /* 0604 */ std::list unknown_0604; - /* 060C */ unsigned char unknown_060C[0x1C]; + /* 060C */ unsigned char unknown_060C[0x10]; + /* 061C */ UIBroadcastBalloon* broadcastBalloon; + /* 0620 */ unsigned char unknown_0620[0x8]; /* 0628 */ std::unordered_set unknown_0628; /* 0648 */ unsigned char unknown_0648[0x28]; std::string MapName(); + UIBroadcastBalloon* EnsureBroadcastBalloon(); + std::string GetUnknown0084(unsigned int index); void RequestPlayerAction(int target, int argument); void UpdateLoopSounds(); void AddSceneObject(CRenderObject* object); @@ -421,7 +428,9 @@ static_assert(offsetof(CGameMode, unknown_019C) == 0x19C); static_assert(offsetof(CGameMode, unknown_01A4) == 0x1A4); static_assert(offsetof(CGameMode, unknown_01AC) == 0x1AC); static_assert(offsetof(CGameMode, unknown_0118) == 0x118); +static_assert(offsetof(CGameMode, unknown_0084) == 0x84); static_assert(offsetof(CGameMode, scene) == 0xCC); +static_assert(offsetof(CGameMode, broadcastBalloon) == 0x61C); static_assert(offsetof(CGameMode, camera) == 0xD0); static_assert(offsetof(CGameMode, nameCard) == 0x160); static_assert(offsetof(CGameMode, unknown_01BC) == 0x1BC); diff --git a/Source/Client/Mode/GameMode.cpp b/Source/Client/Mode/GameMode.cpp index d14d1c97..b26540e3 100644 --- a/Source/Client/Mode/GameMode.cpp +++ b/Source/Client/Mode/GameMode.cpp @@ -24,6 +24,7 @@ #include "Render/Renderer.h" #include "Resource/World/TerrainResource.h" #include "Script/LuaScript.h" +#include "UI/UIBroadcastBalloon.h" #include "UI/Chat/ChatSuggestions.h" #include "UI/Window/UIWindow.h" #include "UI/Window/UIWindowMgr.h" @@ -234,6 +235,8 @@ void CGameMode::UpdateUnknown0628(int id, bool add) { } } +// OFFSET: 0x00CEFFC0 + // OFFSET: 0x00CF0070 // FUNCTION: fn_21410 const char* CGameMode::Unknown04DCText() { @@ -259,6 +262,16 @@ MinimapMarker* CGameMode::FindMinimapMarker(std::uint32_t key) { return &it->second; } +// OFFSET: 0x00CF05E0 +// FUNCTION: fn_21415 +std::string CGameMode::GetUnknown0084(unsigned int index) { + if (!this->unknown_0084.empty() && index <= this->unknown_0084.size()) { + return this->unknown_0084[index]; + } + + return ""; +} + // OFFSET: 0x00CF06B0 // FUNCTION: fn_21416 float CGameMode::CameraDesiredYaw() {