From d971cb7a987adc053d93476e3bcbcd5651eb41c4 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Sat, 31 Oct 2026 05:21:19 +0000 Subject: [PATCH] Decompile 2 functions in Source/Contents/ClientTiming.cpp, Source/Client/Replay.cpp, ... Batch #7250 by eAthena: 0 byte-identical, 2 confirmed by peer review. - fn_24203 CSession::BuildReservedReplayRecords: logic confirmed by peer review - fn_06365 ShowPlayerLocation: logic confirmed by peer review Peer-reviewed-by: meitogi, alisonrag, Lumen Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Client/Replay.cpp | 5 ++++ .../Contents/Configuration/ServiceOptions.cpp | 28 +++++++++++++++++++ 2 files changed, 33 insertions(+) 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); + } +}