From a7b2db521478407180e6da63bd5271fe161c2bc7 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Sun, 1 Nov 2026 00:19:48 +0000 Subject: [PATCH] Decompile fn_22184 (CGameMode::ReceiveZoneServerChange) Batch #8952 by ragnarok-clanker: 0 byte-identical, 1 confirmed by peer review. - fn_22184 CGameMode::ReceiveZoneServerChange: logic confirmed by peer review Peer-reviewed-by: KWDev, System4z, doczeira Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Client/Mode/CGameMode.h | 2 ++ Source/Client/Mode/GameModePackets.cpp | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/Source/Client/Mode/CGameMode.h b/Source/Client/Mode/CGameMode.h index 41865b33..517516f8 100644 --- a/Source/Client/Mode/CGameMode.h +++ b/Source/Client/Mode/CGameMode.h @@ -211,6 +211,7 @@ public: void SendMousePointerState(int value); void ReceiveNpcAckMapmove(const unsigned char* packet); void ReceiveZoneServerChange(const unsigned char* packet); + void ReceiveZoneServerChange(const char* mapName, std::int16_t x, std::int16_t y, int ip, std::int16_t port); void RequestLocalMapMove(const char* mapName, std::uint16_t x, std::uint16_t y); bool CanFindPath(int sx, int sy, int cellX, int cellY, int dx, int dy); bool IsAllowedPair(int kind, int value); @@ -792,6 +793,7 @@ extern char g_pendingWhisperCount; extern int g_whisperRecord; extern UIWindow* g_saleOpenWindow; void sub_CCFF10(); +extern int g_localMapMove; extern unsigned char g_gameModePacketBuffer[0x10000]; extern int g_unknown173A5BC; extern int g_unknown_01738268; diff --git a/Source/Client/Mode/GameModePackets.cpp b/Source/Client/Mode/GameModePackets.cpp index dce8c234..b3bb8dab 100644 --- a/Source/Client/Mode/GameModePackets.cpp +++ b/Source/Client/Mode/GameModePackets.cpp @@ -1559,6 +1559,13 @@ void CGameMode::ReceiveZoneServerChange(const unsigned char* packet) { this->ChangeZoneServer(mapName.c_str(), change->x, change->y, static_cast(change->ip), change->port, std::string()); } +// OFFSET: 0x00D79F00 +// FUNCTION: fn_22184 +void CGameMode::ReceiveZoneServerChange(const char* mapName, std::int16_t x, std::int16_t y, int ip, std::int16_t port) { + g_localMapMove = 1; + this->ChangeZoneServer(mapName, x, y, ip, port, std::string()); +} + // OFFSET: 0x00D3A1E0 // OFFSET: 0x00D272A0