From 54cce129f36cdc1264bd351ff2b68d0ee86c6a5b Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Sun, 1 Nov 2026 00:34:51 +0000 Subject: [PATCH] Decompile fn_22142 (sub_D73A10) Batch #9071 by dori: 0 byte-identical, 1 confirmed by peer review. - fn_22142 sub_D73A10: logic confirmed by peer review Peer-reviewed-by: Lumen, pedrao, doczeira Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Client/Mode/GameModeNotices.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Source/Client/Mode/GameModeNotices.cpp b/Source/Client/Mode/GameModeNotices.cpp index c2dc3c2d..d8e65047 100644 --- a/Source/Client/Mode/GameModeNotices.cpp +++ b/Source/Client/Mode/GameModeNotices.cpp @@ -30,6 +30,7 @@ #include "Contents/MapPropertyMgr.h" #include "Contents/MessageTable.h" #include "Contents/Messenger/ClientMessenger.h" +#include "Contents/NavigationManager.h" #include "Contents/PlayerNameDictionary.h" #include "Contents/RenewQuestMgr.h" #include "Contents/RodexMailStore.h" @@ -3588,6 +3589,24 @@ void CGameMode::ReceiveLongParChange(const unsigned char* data) { static_cast(reinterpret_cast(g_windowMgr.unknown_01DC)->jobExpBar)->SetValues(jobExp, nextJobExp); } +// OFFSET: 0x00D73A10 +// FUNCTION: fn_22142 +void sub_D73A10(const unsigned char* packet) { + int group = packet[3] >= 100 ? 1 : 0; + int code = packet[3] >= 100 ? packet[3] - 100 : packet[3]; + if (code >= 10) { + group += 2; + code -= 10; + } + + const unsigned char mode = static_cast(group + (code < 1 ? 0 : 4)); + const int x = *reinterpret_cast(packet + 0x15); + const int y = *reinterpret_cast(packet + 0x17); + const int id = *reinterpret_cast(packet + 0x19); + const std::string name(reinterpret_cast(packet + 5)); + g_navigationManager.sub_B99030(name, packet[2], mode, packet[4] != 0, x, y, id); +} + // OFFSET: 0x00D73AF0 // FUNCTION: fn_22143 void CGameMode::ReceiveNotifyEffect(const unsigned char* packet) {