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