diff --git a/Source/Client/Replay.cpp b/Source/Client/Replay.cpp index 432d18181..ed65b54e9 100644 --- a/Source/Client/Replay.cpp +++ b/Source/Client/Replay.cpp @@ -1073,3 +1073,8 @@ void Replay::CachePacket(std::uint16_t id, std::uint16_t size, const unsigned ch } // OFFSET: 0x00E42EB0 +// FUNCTION: fn_24203 +std::vector CSession::BuildReservedReplayRecords() { + std::vector records; + return records; +} diff --git a/Source/Contents/Configuration/ServiceOptions.cpp b/Source/Contents/Configuration/ServiceOptions.cpp index dbaaa0482..7fcd6c667 100644 --- a/Source/Contents/Configuration/ServiceOptions.cpp +++ b/Source/Contents/Configuration/ServiceOptions.cpp @@ -990,3 +990,31 @@ void RequestPlayerAction31() { } // OFFSET: 0x006C5B40 +// FUNCTION: fn_06365 +void ShowPlayerLocation() { + CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); + if (!mode) { + return; + } + + const auto* player = reinterpret_cast(mode->scene->player); + if (!player) { + return; + } + + int column = 0; + int row = 0; + mode->WorldCell(player->render.position.x, player->render.position.z, column, row); + + std::string name = mode->MapName(); + if (name.size() > 4) { + name.resize(name.size() - 4); + } + + const std::string text = std::format("{}({}) : {}, {}", g_session.GetMapDisplayName(mode->MapName().c_str()), name.c_str(), column, row); + g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0); + g_windowMgr.SendNotice(1, reinterpret_cast(text.c_str()), 0x64FFFF, 0, 0, 0); + if (g_serviceType != 10) { + g_windowMgr.SendNotice(19, reinterpret_cast(text.c_str()), 0x64FFFF, 0, 0, 0); + } +}