summaryrefslogtreecommitdiff
path: root/src/localplayer.h
AgeCommit message (Collapse)AuthorFilesLines
2024-03-12General code cleanupsThorbjørn Lindeijer1-2/+1
* Use default member initializers * Use range-based for loops * Avoid needless pointer references for ShopItem::mDuplicates * Removed type aliases that are only used once or twice * Removed more unused includes * Removed some unused functions * Removed superfluous .c_str() * Rely on default copy and assignment operators for Vector class * Use std::unique_ptr in some places * Removed duplicated mPlayerMoney updating in SellDialog * Removed duplicated Game::handleInput call * Removed unused SDLInput::mMouseInWindow * Removed remnant of manual widget positioning in HelpWindow * Removed superfluous initialization of static pointers
2024-03-06General code cleanupsThorbjørn Lindeijer1-1/+1
* 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-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-13General code cleanupsThorbjørn Lindeijer1-20/+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-01-26Apply C++11 fixitsThorbjørn Lindeijer1-7/+7
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2012-02-07Hopefully fixed two issues in the go and attack playflowYohann Ferreira1-0/+9
- Fixed the player attacking when clicking on a monster, and then walking near using the keyboard. - Fixed the walking glitch seen in tile path mode by letting the character reach its nearest tile path node. Reviewed-by: Thorbjørn Lindeijer
2012-02-03Fixed the go and attack mouse clickYohann Ferreira1-0/+2
I first removed the keep attacking and pickup targetting unset statements in the setdestination() function since it was messing with all the rest of the logic, and put those targetting logic where they belonged more. I also changed the gotoTarget function to properly call the setTarget function which permitted to properly unset the previous target in that case. I also finished the logic built around the mGoingToTarget member (until then actually unused) to make it all work again. At last, I also removed a now false comment in the startWalking() function. Reviewed-by: Erik Schilling
2012-02-03Simplified and made generic the way the pickup is handled.Yohann Ferreira1-3/+3
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-27Random hacking cleanups in the LocalPlayer classYohann Ferreira1-13/+5
- Renamed mLastTarget to mLastTargetTime, and mLastAction to mLastActionTime to clarify their use. - NULL -> 0. - Removed the unused mLocalWalkTime member. + Change requested by bjorn. Reviewed-by: Thorjørn Lindeijer
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-32/+19
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-1/+1
Reviewed-by: Ablu
2011-08-11Made the delay between to keyboard move calls functional.Yohann Ferreira1-0/+9
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-17Made the client officially handle attack ids.Yohann Ferreira1-1/+1
It already was, but now the the api is clear about it. Client part of the mana issue: #363. Reviewed-by: Bjorn.
2011-06-03Replace SDL_types.h with cstdintJared Adams1-1/+1
This required moving to C++0x, so it does that too, and fixes a few errors with that. Reviewed-by: Thorbjørn Lindeijer <thorbjorn@lindeijer.nl>
2011-04-26Made the client use a unique kind of movement code.Yohann Ferreira1-2/+9
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-09Removed a lot of useless "documentation"Thorbjørn Lindeijer1-8/+2
I have to admit I contributed a large part of these. Sorry for that. Less empty space, more attention to the code. Acked-by: Jared Adams
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-03-17Simplified the get/setAttackRange() functions as requested.Yohann Ferreira1-1/+8
The attack range is still hardcoded for Manaserv as long as generic equipment handling hasn't been implemented.
2011-03-16Fixed the attack range handling for both servers.Yohann Ferreira1-1/+1
The attack range is always the default for manaserv, as proper equipment handling is to be added. Anyway, now the proper attack range is handled in tmwAthena and is always set a proper minimum for both protocols.
2011-02-21Merge branch '0.5'Thorbjørn Lindeijer1-1/+17
Translation file updates ignored. Conflicts: src/client.cpp src/commandhandler.cpp src/gui/popupmenu.cpp src/localplayer.cpp
2011-02-17Specific messages for each pickup failure reason.Ben Longbons1-1/+17
Reviewed-by: Jaxad0127
2010-12-28Revert "Remove the AFK response system"Yohann Ferreira1-0/+20
This reverts commit 3d6a2d9c80a969c3613f567dd7029e75ef59b5cb. I've by that readded the AFK system on master. Please, remove it when we've got a proper replacement.
2010-11-13Replace config listeners with the event systemChuck Miller1-5/+0
Reviewed-by: Jared Adams
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-1/+9
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-10-11Implementing show IP for game mastersStefan Dombrowski1-0/+8
As an upcoming feature the TMW-Athena server sends IP addresses or IP hashes to game masters. The current client freezes if it receives such a packet, therefor the game masters need to use a new client before the server can use it. Normal players are not affected, because they do not get this packet. Showing the IP is optional and can be enable with the chat command "/showip 1". The IP is then shown behind the players name. Reviewed-by: Bertram
2010-10-08Remove the following systemStefan Dombrowski1-28/+0
Removed due to unresolved social issues. In master it had been already removed by Kage in commit 89f192b9039f9c000515f0a12f4bb9fb55c4691c.
2010-10-04Remove the AFK response systemChuck Miller1-20/+0
This would be if it was handled by a addon later. Reviewed-By: Freeyorp < Freeyorp101@hotmail.com >
2010-10-04Remove the following systemChuck Miller1-28/+0
The implamentation is poor, and this is something that would be better handled by the addon engine later down the road. Reviewed-By: Freeyorp < Freeyorp101@hotmail.com >
2010-08-16Move more to the event systemJared Adams1-9/+1
Most of Net::InventoryHandler is now done through events. The ActorSpriteManager was also replaced by events. A few odds and ends were taken care of too. Reviewed-by: Bertram
2010-08-05Have Being manage speech creation and add permissions to eventsJared Adams1-2/+1
The Being and Player Chat events now have the precomuted permissions for SPEECH_LOG and SPEECH_FLOAT. The Being class now acts on those events to show speech (if SPEECH_FLOAT is present). ChatWindow now checks for the SPEECH_LOG permission. Reviewed-by: Freeyorp
2010-08-03Move Theme and UserPalette to the resources folderJared Adams1-1/+1
Reviewed-by: Yohann Ferreira
2010-08-02Remove non-GUI references to MiniStatusWindowJared Adams1-4/+0
Reviewed-by: Freeyorp
2010-07-18Add old values to stat and attribute eventsJared Adams1-2/+6
Reviewed-by: Chuck Miller
2010-07-18Move more from LocalPlayer to PlayerInfoJared Adams1-51/+1
Also cleanup PlayerInfo a bit. Reviewed-by: Chuck Miller
2010-07-17Move ManaServ defines into the netcodeChuck Miller1-52/+0
Reviewed-by: Jared Adams
2010-07-17Modify how attributes and stats are handledChuck Miller1-104/+0
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-1/+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-17Remove Monster, Player, and NPC classesJared Adams1-11/+3
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-09Move target cursor management into ActorSpriteJared Adams1-16/+0
This simplifies handling of target cursors, centralizing their logic into a single class, instead of two. Also make them more flexible and move the image files outside of the theme so servers can can control them and give them better names. Reviewed-by: Thorbjørn Lindeijer
2010-04-19Add afk mode for player.Andrei Karas1-0/+24
Add variable cur_time for current time. Add command /away [text] Reviewed by: Bertram
2010-04-16Add race support for eAthenaJared Adams1-1/+1
The job/class field is used to select the race. If the given race isn't defined, it falls back on the first race (so servers can use jobs/classes without races). Also rename job to subtype for Being and subclasses, and begin support for changing monster and NPC subtypes on the fly (particle effects still need to be reset when they change). Reviewed-by: Bertram
2010-04-12Reviewed the LocalPlayer::nextTile() function. The ManaServ movement system ↵Bertram1-0/+6
is functional!! Introduced LocalPlayer::getNextWalkPosition(unsigned char dir) which takes care about the player next position while moving using keyboard. I removed the pixel scaler thing because it couldn't handle all the noticed cases and was rather heavy. There is still a bug in the movement system (nothing's perfect) but it's very rare and this is here in eAthena, too. So, I'll give a try at taking care of it once I'll have polished all of this a bit. Please try and give feedback!!
2010-03-25Eliminate the logic methods from InventoryWindow and StorageWindowJared Adams1-4/+2
2010-03-12Split Palette into Theme and UserPaletteJared Adams1-3/+3
Themes can now control the colors they use. Colors in the Viewport (being names, particles, etc) can still be changed by the user. Also make ProgressBars more easily colored. DyePalette was made more flexible in the process. Also fixes comparing strings of different lengths insensitively. Reviewed-by: Thorbjørn Lindeijer
2010-03-02Remove some unused membersJared Adams1-13/+0
Reviewed-by: Chuck Miller
2010-03-02Revert "Merge WindowContainer into Viewport and remove extra members"Jared Adams1-0/+13
This reverts commit 67e678094b9fddd21fb3c690130e772937ab2746. Conflicts: src/gui/gui.cpp src/gui/viewport.cpp
2010-03-01Merge WindowContainer into Viewport and remove extra membersJared Adams1-13/+0
Reviewed-by: Chuck Miller