From 73ba2a95f5bd4a0dd09af52d5864800be2b0a4c6 Mon Sep 17 00:00:00 2001 From: Thorbjørn Lindeijer Date: Fri, 26 Jan 2024 15:43:00 +0100 Subject: Added support for the "persistentIp" server info setting This option was added in ManaPlus and support for it is required to connect to The Mana World as it is currently set up, since the server sends 127.0.0.1 for the character server and map server IP. Can't play yet, because of an unknown packet 0x226 being received once connecting to the map server. --- src/net/tmwa/charserverhandler.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/net/tmwa/charserverhandler.cpp') diff --git a/src/net/tmwa/charserverhandler.cpp b/src/net/tmwa/charserverhandler.cpp index 7c5f5c88..a8e87622 100644 --- a/src/net/tmwa/charserverhandler.cpp +++ b/src/net/tmwa/charserverhandler.cpp @@ -158,7 +158,14 @@ void CharServerHandler::handleMessage(MessageIn &msg) msg.skip(4); // CharID, must be the same as local_player->charID GameHandler *gh = static_cast(Net::getGameHandler()); gh->setMap(msg.readString(16)); - mapServer.hostname = ipToString(msg.readInt32()); + + const auto ip = msg.readInt32(); + + if (charServer.persistentIp) + mapServer.hostname = charServer.hostname; + else + mapServer.hostname = ipToString(ip); + mapServer.port = msg.readInt16(); local_player = mSelectedCharacter->dummy; -- cgit v1.2.3-60-g2f50