summaryrefslogtreecommitdiff
path: root/src/net/tmwa/playerhandler.cpp
AgeCommit message (Collapse)AuthorFilesLines
2024-02-15Fix handling of non-consecutive emote IDsThorbjørn Lindeijer1-1/+1
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 Lindeijer1-4/+2
* 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-01-28Added support for map/layer maskThorbjørn Lindeijer1-0/+10
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 Lindeijer1-4/+4
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2012-05-05Removed the shared base classes of MessageIn and MessageOutThorbjørn Lindeijer1-4/+3
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-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-5/+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-16Renamed some file names for consistency with the class namesThorbjørn Lindeijer1-3/+3
This was already done by ManaPlus. It's a good idea anyway and it makes comparing the code a little easier. Reviewed-by: Yohann Ferreira
2012-01-10player_node -> local_playerYohann Ferreira1-13/+13
Reviewed-by: Ablu
2012-01-09Changed INT and DELETE enum names to fix C::B compilation.Yohann Ferreira1-25/+25
This was introduced since Crush updated his mana lib pack. I simply changed the names to avoid a collision. Reviewed-by: Ablu.
2011-08-11Made the delay between to keyboard move calls functional.Yohann Ferreira1-0/+6
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-1/+1
- Made the map teleport distance fixed for manaserv. - Small cleanups. The branch is considered reviewed by: Cody. Resolves Mana-Mantis: #74.
2011-04-30Merge branch '0.5'Yohann Ferreira1-11/+28
Conflicts: CMakeLists.txt po/fi.po po/fr.po src/gui/skilldialog.cpp src/localplayer.cpp src/net/manaserv/generalhandler.cpp src/net/tmwa/buysellhandler.cpp src/net/tmwa/generalhandler.cpp src/net/tmwa/playerhandler.cpp src/net/tmwa/specialhandler.cpp src/winver.h
2011-04-27Fixing crash when selecting a character that has a Dark Talisman equippedStefan Dombrowski1-0/+2
This resolves http://bugs.manasource.org/view.php?id=330 Reviewed-by: Bertram
2011-04-26Made the client use a unique kind of movement code.Yohann Ferreira1-13/+47
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-12Limit the number of pick-up packets to avoid kick from the serverStefan Dombrowski1-0/+5
Reviewd-by: Thorbjorn
2011-04-11Removing annoying NPC trade messages from chatStefan Dombrowski1-6/+13
The thanks messages got removed, because they are useless and when selling many items they completely trashed the chat. The pick-up information for money now respects the configuration. Reviewed-by: thorbjorn
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-29Added the Map::getTileCenter() convenience function.Yohann Ferreira1-6/+3
and made use of it through the tA code. I also remove the obsolete TODO in the flooritem class.
2011-03-28Random code cleanups requested righteously by Thorbjorn - part 1.Yohann Ferreira1-14/+7
- 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-15Implemented a screen shake effect system in the viewport class.Philipp Sehmisch1-0/+1
The screen can either be "nudged" in a random direction with a specific intensity or you can define an exact x and y intensity, decay factor and duration. On a tmwAthena server an effect is triggered when the player character dies. A method for stopping all shake effects is also implemented, but not used yet. I added a netcode message for Manaserv to trigger an effect server-sided. Because our protocol has currently no way to transport floating point values, the decay is transported as a fixed point value with 4 decimals which is entirely sufficient for this purpose.
2011-03-15Reset destination to position at warp time for TmwAthena.Yohann Ferreira1-2/+5
This fix the following bug: When changing map, the local player sometimes walks randomly until the player reacts.
2011-03-15Simplify the tmwAthena calculation of the pixel/tick speed.Yohann Ferreira1-11/+3
2011-03-15Basically merged the two movement algorithms into one.Yohann Ferreira1-13/+62
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-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-11-01Merge branch '0.5' of gitorious.org:mana/manaYohann Ferreira1-0/+3
Conflicts: src/being.cpp src/client.cpp src/commandhandler.cpp src/gui/setup_video.cpp src/gui/socialwindow.cpp src/gui/viewport.cpp src/gui/widgets/browserbox.cpp src/gui/widgets/itemcontainer.cpp src/imageparticle.cpp src/localplayer.cpp src/localplayer.h src/map.cpp src/net/tmwa/beinghandler.cpp src/particle.cpp src/particle.h src/player.cpp src/player.h
2010-09-29Fixing segfault when switching serverStefan Dombrowski1-0/+3
Reviewed-by: Thorbjorn
2010-09-25Merge branch '1.0'Thorbjørn Lindeijer1-0/+4
Conflicts: src/actorspritemanager.h src/beingmanager.cpp src/game.cpp src/gui/beingpopup.cpp src/gui/chat.cpp src/gui/chat.h src/gui/inventorywindow.h src/gui/itempopup.cpp src/gui/socialwindow.cpp src/gui/statuswindow.cpp src/gui/widgets/chattab.cpp src/gui/widgets/chattab.h src/net/tmwa/inventoryhandler.cpp src/net/tmwa/partyhandler.cpp src/party.cpp src/sound.cpp src/utils/stringutils.cpp src/utils/stringutils.h
2010-09-08Adding missing update for attributes in StatusWindowStefan Dombrowski1-0/+4
Reviewed-by: Thorbjorn
2010-08-13Add missing setAttribute for moneyStefan Dombrowski1-0/+1
Signed-off-by: Jared Adams <jaxad0127@gmail.com>
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-6/+1
Reviewed-by: Chuck Miller
2010-07-18Add event.h to eventmanager.h and listener.h to reduce total number of includesChuck Miller1-1/+0
You'll have to include it anyways 99% of the time
2010-07-18Move the majority of the netcode's server messages to the event systemChuck Miller1-10/+9
There is still a good way to go, but this should get us started Reviewed-by: Jared Adams
2010-07-17Modify how attributes and stats are handledChuck Miller1-125/+78
Handling moved from LocalPlayer to PlayerInfo class Event system used to update windows Reviewed-by: Jared Adams
2010-07-08Fix crash in picking up an item that no longer existsremoitnane1-2/+5
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-06-09Remove hard-coded frame counts from Being classJared Adams1-1/+0
Also removes the Monster/Player difference in tmwAthena's Being::logic and moves the particle code from Being::setAttack to Being::Logic for tmwAthena. Reviewed-by: Chuck Miller
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-04-17Changed eAthena protocol name to TmwAthena and changed the config files ↵Bertram1-0/+652
accordingly. This makes room for the actual eAthena protocol future inclusion.