summaryrefslogtreecommitdiff
path: root/src/net
AgeCommit message (Collapse)AuthorFilesLines
2024-02-15Fix handling of non-consecutive emote IDsThorbjørn Lindeijer2-2/+2
Previous code was assuming there would be no gaps in the emote IDs. Also cleaned up some confusion where the "emote ID" being passed around in the code was often offset by 1. Now it is only offset in communication with tmwAthena and when saving the shortcuts.
2024-02-14Avoid crash when receiving SMSG_MAP_MASK without Game instanceThorbjørn Lindeijer1-2/+3
It happened to me a few times. Needs checking whether we could instead make sure we always have a Game instance when receiving this message, because this way a map mask might get ignored. Or maybe the map mask just needs to be stored elsewhere.
2024-02-13Updated tmwAthena network protocolThorbjørn Lindeijer20-492/+465
* The code defining the message IDs and sizes are now generated by the tools/protocol.py script in the tmwAthena repository. * Reduced client version from 20 to 6, because that is currently the minimum supported version, and any adjustments needed for later likely still need to be made. * Removed use of no longer handled messages: - CMSG_SKILL_USE_BEING - CMSG_SKILL_USE_POSITION - CMSG_SKILL_USE_MAP - SMSG_PARTY_MOVE - CMSG_WHO_REQUEST - SMSG_WHO_ANSWER - SMSG_MVP - SMSG_BEING_MOVE2 - SMSG_BEING_CHANGE_LOOKS * Some messages were renamed to match the server side - CMSG_PLAYER_ATTACK -> CMSG_PLAYER_CHANGE_ACT - CMSG_PLAYER_RESTART -> CMSG_PLAYER_REBOOT - SMSG_ADMIN_IP -> SMSG_BEING_IP_RESPONSE Part of addressing issues #55 and #47, which we now know are about handling SMSG_PLAYER_HP and SMSG_NPC_COMMAND respectively. The client will now ignore them (with a warning) instead of crash.
2024-02-13Removed guild handling remnants for tmwAthenaThorbjørn Lindeijer1-373/+1
This stuff was removed from tmwAthena, so it will never be supported.
2024-02-13Removed no longer supported admin messagesThorbjørn Lindeijer5-130/+2
* Removed /announce command * Changed "Kick player" in player pop-up to kick by name Other messages, like CMSG_ADMIN_HIDE, CMSG_ADMIN_MUTE and CMSG_ADMIN_LOCAL_ANNOUNCE were already not used by the client. Also, none of this was implemented for Manaserv.
2024-02-13General code cleanupsThorbjørn Lindeijer7-33/+17
* Removing unused includes * Use member initialization * Use range-based for loops * Use nullptr * Removed no longer used aliases * Use override * Don't use else after return * Use '= delete' to remove implicit members * Use std::string::empty instead of comparing to ""
2024-02-09C++11: Use default member initializersThorbjørn Lindeijer4-36/+16
This patch is not exhaustive.
2024-02-02Fixed use of deprecated CURLOPT_PROGRESSFUNCTION optionThorbjørn Lindeijer2-10/+13
Closes #51
2024-01-29Fixed logic error in ManaServ::BeingHandlerThorbjørn Lindeijer1-5/+6
2024-01-29Removed unused includes in various filesThorbjørn Lindeijer4-11/+2
2024-01-29Apply C++11 fixitsThorbjørn Lindeijer4-26/+22
modernize-loop-convert modernize-deprecated-headers
2024-01-28Added support for map/layer maskThorbjørn Lindeijer4-3/+19
A custom "Mask" property on a layer or a "foregroundXmask" property on a map can now be used in combination with the SMSG_MAP_MASK to dynamically disable certain map layers from the server. Feature previously seen on ManaPlus and implemented for Mana client for compatibility. Also added a ResourceRef class for automating the Resource reference counting. Closes #44
2024-01-26Apply C++11 fixitsThorbjørn Lindeijer73-497/+495
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2024-01-26Added support for the "persistentIp" server info settingThorbjørn Lindeijer5-36/+27
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.
2024-01-25Ported to SDL2Thorbjørn Lindeijer2-2/+2
2024-01-24Increased client version to 20Thorbjørn Lindeijer1-1/+1
It is unclear whether there are any protocol differences that should be dealt with at this point, but without this the login fails with "Client too old." error.
2024-01-24Add error for non tradable items.Andrei Karas1-0/+5
2024-01-24Fixed compilation issues and use of deprecated C++ featuresThorbjørn Lindeijer2-2/+2
* Fixed compiler errors due to dynamic exception specifications * Replace std::auto_ptr with std::unique_ptr * Replace std::mem_fun with std::mem_fn * Prefix for_each with std:: (apparently not needed before) * Just use lambda instead of std::bind2nd * Removed usages of std::unary_function
2013-09-08Fixing packet length of CMSG_NPC_STR_RESPONSEStefan Dombrowski1-1/+1
The CMSG_NPC_STR_RESPONSE packet transmits a string of variable length.
2013-06-08Fixed MessageIn::getUnreadLengthThorbjørn Lindeijer2-2/+8
It should not return large numbers after reading past the end of a message. This can cause infinite loops in several places in the client when a message happened to be shorter than expected.
2013-05-04Client-side settings are now available from settings.xmlPrzemysław Grzywacz2-23/+1
2013-05-02Fixed network layer doing delayed actor deletionThorbjørn Lindeijer4-4/+4
The delayed actor deletion was meant to be used during the logic calls, to avoid modifying the container while it is being iterated. The deletions happening from the network layer are not done while iterating the set of actors, so it can delete immediately. This fixes an issue where an NPC would disappear when changing appearance on tmwAthena, because this was implemented as a remove + add, which broke due to the delayed deletion. Mantis-issue: 507 Reviewed-by: Jared Adams
2013-04-30Bumped protocol version to 3Thorbjørn Lindeijer1-1/+1
This is so that master and lpc2012 use the same protocol again, where starting attributes are sent on character creation.
2013-04-27Added support for charcreation.xml settingsThorbjørn Lindeijer2-13/+26
This file was introduced by ManaPlus as a way of configuring the character creation process. It defines the number of hair styles and colors, how stat points should be divided and what the starting equipment of the player is. The minimum and maximum hair color/style IDs are not supported at the moment. This is mostly a backport of ManaPlus commits 10cf52b5 and dcc18eba, with some style changes. Mantis-issue: 501 Reviewed-by: Ablu
2013-04-27Always read the attributes.xml fileThorbjørn Lindeijer7-489/+29
This way it can also be used when connecting to a tmwAthena server for customizing the min/max of attributes and the amount of starting points. Mantis-issue: 501 Reviewed-by: Ablu
2012-12-05Ignore unsupported messages in public chatAndrei Karas1-0/+5
Reviewed-by: Erik Schilling.
2012-10-11Client side patch for change of sending order of genderErik Schilling2-8/+13
Reviewed-by: Stefan Beller.
2012-10-11Give feedback when guild invite failedErik Schilling1-0/+4
Server was already sending a error message. But the client ignored it. Reviewed-by: Stefan Beller.
2012-08-12Fixed special keeping in list after serverside removeErik Schilling1-0/+1
Reviewed-by: Thorbjørn Lindeijer.
2012-07-25Added handler to display text particles sent by serverErik Schilling3-0/+14
Change is tested. Reviewed-by: bjorn.
2012-05-25Fixed skill display for manaservErik Schilling2-1/+3
- shows manaserv skills at all - shows the progress bar for manaserv skills again - shows the level for this skills (server side patch needed) TODO: URGENT: Fix attributes and skills getting stored in same list. Reviewed-by: Bertram.
2012-05-06Small protocol fix for NPC messagesThorbjørn Lindeijer1-1/+1
They are no longer sent as fixed-length string since this doesn't work when the new protocol debugging mode is used. Reviewed-by: Ben Longbons
2012-05-05Merge branch '0.6'Thorbjørn Lindeijer1-0/+1
2012-05-05Added debugging mode to the protocolThorbjørn Lindeijer5-21/+119
This makes the client able to send and receive messages sent in debugging mode, where the contents of the messages are annotated. For messages sent from the client the debugging mode is currently always enabled. Later on this could be an internal option or controlled from the server side. Reviewed-by: Erik Schilling
2012-05-05Removed the shared base classes of MessageIn and MessageOutThorbjørn Lindeijer81-654/+612
There wasn't a whole lot gained by sharing a common base class, and it makes extending the manaserv Message{In,Out} classes with a debugging mode unnecessarily complicated. Reviewed-by: Yohann Ferreira
2012-05-05Fixed compilation errors and warnings with GCC 4.7Thorbjørn Lindeijer1-0/+1
Also, since GCC 4.7 there is a binary compatibility issue when linking with a Guichan that was not compiled in C++11 mode. This commit also allows compiling with GCC 4.7 with C++11 mode turned off. Reviewed-by: Erik Schilling
2012-04-19Client side fix for manaserv guild systemErik Schilling2-6/+36
- kick code untested because no kick button exists yet Reviewed-by: bjorn.
2012-04-04Synced specials to latest manaserv changesErik Schilling2-4/+13
Reviewed-by: bjorn.
2012-04-02Merge branch '0.6'Thorbjørn Lindeijer3-6/+8
2012-04-02Fixed problems with using the last emotev0.6.1Thorbjørn Lindeijer1-3/+2
The tmwa/BeingHandler was adjusting the effect id rather than the emote id, causing it to not find the last emote (and the rest of the emotes only worked correctly because the effect ids were consecutive in the same order as the emote ids). Furthermore, the EmoteShortcutContainer refused to draw the icon for the last emote due to an off-by-one error in dealing with the 1-adjusted emote ids used by the EmoteShortcut class. Also cleaned up some old remains of a player ignore strategy that used to use the two balloon emotes (this had been their original purpose). Reviewed-by: Erik Schilling
2012-04-02Potentially fixed problems with user agent in Windows buildsThorbjørn Lindeijer1-3/+5
The Windows releases have not been properly identifying themselves, and it seems to be due to a compiler issue, as discovered by Stefan Dombrowski (@cody). He did a similar change but didn't push it anywhere so I've redone it. The line that is now split up was very preprocessor-heavy, which may have been part of the problem, but we'll probably never know what it was exactly.
2012-04-01Made changes to compile on Mac OSX 10.6 and laterDavid Athay1-0/+1
Also added Xcode project for others to compile for Mac OSX. Reviewed-by: Thorbjørn Lindeijer
2012-03-21Added default ports when connecting to a custom server.jurkan1-0/+12
When creating a custom server entry, the default port is used if no other port is specified. Reviewed-by: Thorbjørn Lindeijer Mantis-issue: 464
2012-02-18Fixed manaserv-enabled buildsThorbjørn Lindeijer1-1/+1
Wrong define was used in the code.
2012-02-15Deswapped the ring2 and necklace equip slots for tA.Yohann Ferreira1-2/+2
I tested it with the Towel and the Wedding Ring on the testing server. Spotted-by: Jenalya, cody. Reviewed-by: Erik Schilling
2012-02-14Omit equipping of non-existing itemsStefan Dombrowski1-7/+16
Reviewed-by: Ablu and Bjorn
2012-02-14Removing NPC trade messages from chatStefan Dombrowski1-8/+2
The thanks messages got removed, because they are useless and when selling many items they completely trashed the chat. In Mana 0.5 this was already fixed, see commit 13c4a1131854887ac9ec83f80c7964f6b2949c87. Reviewed-by: Ablu
2012-02-12Restored manaserv-less buildsYohann Ferreira2-1/+2
I made sure the manaserv based custom server don't get deleted when running a manaserv-less client session. Reviewed-by: Thorbjørn Lindeijer
2012-02-12Ignore ManaPlus shop commandsThorbjørn Lindeijer1-0/+13
This shopping mechanism is not supported by this client at the moment, and it's annoying to have these turn up in whispers. Reviewed-by: Stefan Beller Reviewed-by: Erik Schilling
2012-02-10Corrected two spelling mistakesjurkan2-2/+2
Reviewed-by: Erik Schilling