summaryrefslogtreecommitdiff
path: root/src/net/manaserv/playerhandler.cpp
AgeCommit message (Collapse)AuthorFilesLines
2024-03-06General code cleanupsThorbjørn Lindeijer1-3/+0
* Use final for all message handlers, Client, LocalPlayer, Being::getType, Being::setPosition and Being::setMap. (avoids some warnings about virtual dispatch in constructors) * Use auto in more places * Use emplace_back instead of push_back in some places * Use default member initializers * Less else after return * Removed superfluous .c_str() * Removed type aliases that are only used once * Removed more unused includes
2024-01-26Apply C++11 fixitsThorbjørn Lindeijer1-1/+1
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2013-04-27Always read the attributes.xml fileThorbjørn Lindeijer1-3/+3
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-08-12Fixed special keeping in list after serverside removeErik Schilling1-0/+1
Reviewed-by: Thorbjørn Lindeijer.
2012-05-25Fixed skill display for manaservErik Schilling1-0/+2
- 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-05Removed the shared base classes of MessageIn and MessageOutThorbjørn Lindeijer1-2/+2
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-02-03Simplified and made generic the way the pickup is handled.Yohann Ferreira1-3/+2
I also made the range be taken from the server type as for the pickup and npc talk ranges. Last but no least, I fixed the parameters sent with PGMSG_PICKUP to send the (item) position where to pickup at as described in the manaserv protocol. The pickup is still not 100% functional due certainly to two problems: 1. The client item coordinates might not be the exact same as in the server. 2. The client seems to try to pick up the item a bit too soon, probably for the reason given in 1. I'll investigate this in another patch. Reviewed-by: Thorbjørn Lindeijer, Erik Schilling.
2012-01-26Updated copyrights to 2012Thorbjørn Lindeijer1-1/+1
2012-01-18Found a better way to fix the movement glitches on both servers.Yohann Ferreira1-8/+0
The patch also takes care of not spamming the different servers, when the servers are setting the being speed correctly. The most problems were coming from the keyboard movement functions handling 1 tile paths. To void the issues seen in #405, #439, and #440, I simply prevented to set a new path before reaching the destination of the former one, when using the keyboard. The mouse path system remains unchanged. I also made some functions private (or here protected) to show they shouldn't be called by something else than the localplayer object. And I removed the nextTile() function, since it was obsolete, unused, and replaced by the nextTile(direction) function. That patch was tested on both servers with mouse/keyboard mixed use. Resolves: Mana-Mantis #405, #439, #440. Reviewed-by: bjorn
2012-01-10player_node -> local_playerYohann Ferreira1-7/+7
Reviewed-by: Ablu
2011-09-30Revert "Made the first XP notification don't show anymore."Yohann Ferreira1-7/+1
This reverts commit 06fff57500242c37890459ceffdfff2bdf19f6d6. At least I tried :) I'd like to have a clear discussion about how we could initialize the skill and attributes values, without spamming the user.
2011-09-29Made the first XP notification don't show anymore.Yohann Ferreira1-1/+7
Resolves: Mana-Mantis #158.
2011-08-11Made the delay between to keyboard move calls functional.Yohann Ferreira1-0/+8
It has been fixed and be made adapted to the being movement speed. Now, for instance, the client sends 3x times less move calls to the tA server, and roughly 20x times for the Manaserv's one. Resolves: Mana-Mantis #346.
2011-06-22Applied fixes requested by cody.Yohann Ferreira1-5/+3
- Made the map teleport distance fixed for manaserv. - Small cleanups. The branch is considered reviewed by: Cody. Resolves Mana-Mantis: #74.
2011-06-17First pass on removing tile hard coded values.Yohann Ferreira1-5/+6
Every files has been checked against the hard coded 32 values except the map.cpp file. I also added convenience functions in the Game class, centralized the default item icon size, and removed two unused defines in being.cpp.
2011-04-26Made the client use a unique kind of movement code.Yohann Ferreira1-3/+28
This is fixng many issues and (hopefully) will make the movement rendering much smoother. Merge branch 'master' of gitorious.org:~bertram/mana/mana-movement-code-merge Conflicts: src/being.cpp src/net/manaserv/beinghandler.cpp Resolves: TMW-Mantis #946. Reviewed-by: Thorbjorn.
2011-04-16Post-review fixes.Yohann Ferreira1-3/+0
- Removed unnecessary comments - Removed a useless contains() check in getTileCenter() - Fix the above function documentation - Don't permit FloorItem to be created without a map object. Reviewed-by: Thorbjorn Lindeijer.
2011-04-09Removed the Mana namespaceThorbjørn Lindeijer1-1/+1
It's just an annoyance when it's only applied to a few classes. Either we place everything in this namespace or nothing, and at the moment I don't see any rationale for placing everything in a Mana namespace. Acked-by: Jared Adams
2011-04-09Moved Channels to Mana::Event::ChannelThorbjørn Lindeijer1-1/+1
Acked-by: Jared Adams
2011-04-09Moved Events to Mana::Event::TypeThorbjørn Lindeijer1-1/+1
Acked-by: Jared Adams
2011-03-28Random code cleanups requested righteously by Thorbjorn - part 1.Yohann Ferreira1-8/+9
- Fixed bogus documentation. - Fixed Vector parameters to const Vector& where releavant. - Removed a false comment. - Removed superfluous headers in src/net/tmwa/beinghandler.h. - Optimize a bit the tmwa::beingHandler::getPixelsPerTickMoveSpeed() function.
2011-03-15Basically merged the two movement algorithms into one.Yohann Ferreira1-3/+30
This was made in favour of the manaserv way of doing things. I also added a way to keep the original server speed value so the pixel value can be recomputed at each map change, as this was necessary since the speed is given before the first map is loaded. The code is much more simpler now about movement handling, and we can already see improvements on other characters movements in The Mana World with this. Everything can't be perfect the first time; here are bugs identified so far: - Monsters direction isn't updated on TmwAthena for obscure reasons. - Remote players walking animation is sometimes reset on each steps. - When changing map, the local player sometimes walks randomly until the player reacts. Stay tuned!
2010-12-30Renamed protocol.h to manaserv_protocol.h to follow server's changes.Yohann Ferreira1-1/+1
I'll sync the two files as for the new enums in a separate commit. Trivial fix. Resolves: Mana-mantis #278.
2010-11-11Replace Event names with enums instead of stringsChuck Miller1-1/+1
2010-11-11Have the event system channels use enums instead of stringsChuck Miller1-1/+1
Reviewed-by: Freeyorp
2010-10-19Heavy GUI fixes related to stats for Manaserv.Yohann Ferreira1-9/+15
Also tested to be compatible with tA. Now the Status window is much more nicer when using Manaserv. HP, max hp, ... are now working fine along with corrections made in the attributes.xml file (in next commit.) Reviewed-by: Thorbjorn.
2010-08-26Merged testing branch into master.Yohann Ferreira1-19/+16
2010-08-15Merge branch '1.0'Chuck Miller1-4/+13
Conflicts: mana.cbp mana.files src/CMakeLists.txt src/Makefile.am src/utils/xml.cpp
2010-08-13Add code to change gameservers to manaserv netcodeJared Adams1-4/+13
Reviewed-by: Freeyorp
2010-08-12Simplify working with the event systemJared Adams1-2/+2
EventManager has been merged into Event, with some new convinience methods added. Reviewed-by: Chuck Miller
2010-08-10Remove NpcDialog references from netcodeJared Adams1-4/+2
Reviewed-by: Chuck Miller
2010-08-04Remove some unused headers and fix some chat eventsJared Adams1-1/+0
Reviewed-by: Chuck Miller
2010-07-28Centralized configuration default values using the VariableData system.Yohann Ferreira1-2/+2
Please note that I didn't turned all the getValue() call into new ones, simply because I have to have config object initiated which is not forcefully the case the branding file. Resolves: Manasource Mantis #170.
2010-07-19Merge branch '1.0'Yohann Ferreira1-1/+5
Conflicts: src/gui/itempopup.cpp src/item.cpp src/monster.cpp src/net/manaserv/playerhandler.cpp src/net/tmwa/partyhandler.cpp src/npc.cpp src/player.cpp src/resources/itemdb.cpp src/resources/monsterdb.cpp src/resources/monsterinfo.cpp src/resources/npcdb.cpp src/resources/spritedef.cpp
2010-07-18Move more from LocalPlayer to PlayerInfoJared Adams1-1/+1
Also cleanup PlayerInfo a bit. Reviewed-by: Chuck Miller
2010-07-17Move ManaServ defines into the netcodeChuck Miller1-0/+1
Reviewed-by: Jared Adams
2010-07-17Modify how attributes and stats are handledChuck Miller1-25/+29
Handling moved from LocalPlayer to PlayerInfo class Event system used to update windows Reviewed-by: Jared Adams
2010-07-11Made the different hard-coded paths and files be now taken from theYohann Ferreira1-1/+5
data/paths.xml configuration file. Also added default gui theme path in branding and default wallpaper path and file searched respectively in the branding and paths.xml files. Hard-coded values are still used as fallbacks. Resolves: Manasource Mantis #148. Reviewed-by: jaxad0127.
2010-07-08Fix crash in picking up an item that no longer existsremoitnane1-5/+8
Adds ActorSpriteListener to manage ActorSprite destruction as recommended by Jaxad0127. This likewise includes the changes made by Bertram. Reviewed-by: Jaxad0127, Bertram. Resolves: Manasource Mantis #160
2010-05-21Merge branch '1.0'Thorbjørn Lindeijer1-0/+5
Conflicts: src/beingmanager.cpp src/beingmanager.h src/client.cpp src/localplayer.cpp
2010-05-17Remove Monster, Player, and NPC classesJared Adams1-1/+0
Instead of having these three subclasses with minor differences, this commit merges them back into Being. In the future, we can make Beings that are talkable to some, attackable by others, etc. This also puts back support for monster equipment. Also changes remaining references to Being::Type and the constants to refer to ActorSprite::Type. Reviewed-by: Freeyorp
2010-05-04Clear NPC dialogs when the player diesJared Adams1-0/+5
Reviewed-by: Freeyorp
2010-02-21Made tick counter and framerate limiter work during login sequenceThorbjørn Lindeijer1-3/+1
Much code was moved from main() to the new Client::exec(). This new event loop now integrates with the Game class, so that the tick counter and framerate limiter apply universally. The Client class is also responsible for some things that used to be global variables. Mantis-issue: ...
2010-02-22Modify copyright headersFreeyorp1-1/+2
2010-02-20License header update for The Mana ClientThorbjørn Lindeijer1-4/+3
2010-02-19Fixed a crash when trying to switch serversThorbjørn Lindeijer1-2/+2
Ownership of the charInfo global variable wasn't well defined. It was being locked, unlocked and generally modified from a lot of places, and somewhere in this mess it ended up crashing when switching servers. Now the CharHandler instances, for eAthena and manaserv respectively, own this list of characters. A new class, Net::Character wraps up the slot index in combination with the player dummy. The list is passed on to the CharSelectDialog each time it changes. Both related and unrelated cleanups were made as well. Reviewed-by: Jared Adams
2010-02-13Make NPC dialogs instance instead of globalJared Adams1-43/+0
This change allows players to talk to multiple NPCs at a time (if the server agrees). Manaserv's netcode allows multiple commerce instances too. eAthena's is limited to one commerce instance, due to protocol limitations.
2010-02-09Got successfully rid of tile width/height fallback values as asked by Jaxad.Bertram1-5/+5
But I added some logs when speed and other actions where refused due to game/map uninitialized. This could help.
2010-02-09Separated fallback defaults for tile width and height.Bertram1-2/+2
2010-02-09Made the Beings' logic be able to handle any tile height/width.Bertram1-1/+1
This is the First step to get rid of most hardcoded 32 values.