summaryrefslogtreecommitdiff
path: root/src/resources/spritedef.cpp
AgeCommit message (Collapse)AuthorFilesLines
2025-07-04Added logging priorities and use SDLs logging facilitiesThorbjørn Lindeijer1-16/+16
By using SDL logging, we can rely on SDL to filter the log messages by their priority before they get sent to our custom output function. For example, we now no longer get entries for created and destroyed Window instances by default, since these have only "debug" priority whereas the default priority for the "app" category is "info". We can also get log messages raised by SDL itself in our log now. Log levels can be controlled per category through the "SDL_LOGGING" environment variable. Many existing log messages have been assigned a category based on their existing prefix.
2025-02-26Use ResourceRef for all resource typesThorbjørn Lindeijer1-8/+1
All ResourceManager functions that load resources now return respective ResourceRef values, which helps to make sure resources are properly cleaned up. The Sound class was cleaned up and now also allows SoundEffect resources to be unloaded. The Animation class now keeps its ImageSet loaded only as long as necessary. Previously, SimpleAnimation and ParticleEmitter would keep the ImageSet loaded indefinitely by never decreasing its reference count. Reduced duplicated animation loading code between SimpleAnimation and ParticleEmitter.
2025-01-20Wrapped xmlNodePtr access with a Node classThorbjørn Lindeijer1-37/+37
Slightly more ergonomic and this eliminates direct libxml2 usage from many places.
2024-09-27Replaced for_each_xml_child_node macro with helper classThorbjørn Lindeijer1-3/+3
The new XML::Children class enables using a C++11 range-based for loop to iterate over the children of an xmlNodePtr.
2024-03-06General code cleanupsThorbjørn Lindeijer1-11/+9
* 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-29Apply C++11 fixitsThorbjørn Lindeijer1-10/+7
modernize-loop-convert modernize-deprecated-headers
2024-01-26Apply C++11 fixitsThorbjørn Lindeijer1-10/+10
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2012-06-08Made error on imageset loading a bit more informativeErik Schilling1-1/+2
Reviewed-by: bjorn.
2012-01-30Add default offsets in imageset tag for all animations.Andrei Karas1-2/+6
Reviewed-by: Bjorn.
2012-01-26Updated copyrights to 2012Thorbjørn Lindeijer1-1/+1
2012-01-24Fixed the crash in setupSpriteDisplayThorbjørn Lindeijer1-2/+0
This happened when an NPC, monster or item couldn't be found and it had to fall back on Being::Unknown. This instance was bugged since it had a 0 pointer in its sprites list, because when the Being::Unknown was created, the SpriteDef::Empty was not initialized yet (since both were global static variables, the initialization order was not well defined). Fixed it by removing SpriteDef::Empty and instead creating it in the BeingInfo constructor. I've also changed the SpriteReference instances to be inline values rather than instances on the heap, since they're quite small. That also fixed a leak since those instances were never getting deleted. Reviewed-by: Yohann Ferreira
2011-11-25Prevented circular include in sprite definitionsErik Schilling1-4/+15
When including a file that already is included the client won't try to load it again and end in an endless loop but stops parsing and logs and warning. Reviewed-by: bjorn.
2011-06-23Made the being death sequence better handled.Yohann Ferreira1-1/+3
Now the death animation is set to the minimum of 1.5 seconds just as in the older versions, but permit longer sequences as well. I didn't put a maximum hard cap on it as it may be a burden for the maintainers whatever the hard cap would be, and as it isn't vital to set one anyway. Resolves: Mana-Mantis #364. Reviewed-by: bjorn, Jaxad0127.
2011-05-17Fix sprite buffering size issuesJared Adams1-2/+0
Reviewed-by: Yohann Ferreira
2011-04-30Merge branch '0.5'Yohann Ferreira1-1/+1
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-28Fixing endless loop if the xml promises too many imagesStefan Dombrowski1-1/+1
Reviewed-by: Bertram
2010-08-12Avoid string copy for SpriteDef::getActionThorbjørn Lindeijer1-1/+1
Pass std::string as const & when it makes sense.
2010-07-29Changed the items loading to handle a new 'attack-action' parameter.Yohann Ferreira1-90/+27
The old behaviour was to load the weapon-type value and do many unnecessary checks and transformation on it: The weapon-type was transformed using hard-coded values into an integer enum value. The exact same thing was done on the opposite side in the animation files before comparing the two. As both data were string values, I simplified all of it by using the value taken in items.xml to call the corresponding action. This now also permit to set up new attack animation in items.xml and in the playerset.xml without having the need to modify the client code. Last but not least, the weapon-type value was used by both the skills and the actions and avoided the possibility to set up a definite action for a weapon-type. Note: The weapon-type parameter will become deprecated for the server in favor of a 'skill' parameter to reflect more it's actual use. This patch is the first step to fix Manasource issue: #157.
2010-07-28Centralized configuration default values using the VariableData system.Yohann Ferreira1-7/+4
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-5/+12
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-11Made the different hard-coded paths and files be now taken from theYohann Ferreira1-3/+9
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-05-17Remove Monster, Player, and NPC classesJared Adams1-0/+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-02-22Modify copyright headersFreeyorp1-1/+2
2010-02-20License header update for The Mana ClientThorbjørn Lindeijer1-4/+3
2010-02-07Updated Copyright year to 2010!Bertram1-1/+1
Also added the update copyright tool from the Wormux Team. ( And not forgetting credit's due. :P )
2010-01-12Standardize header orderJared Adams1-2/+2
Also remove some extra new lines and fix eAthena's PartyTab define guards.
2010-01-10Change code styleAndrei Karas1-67/+40
2009-03-27Fixed include structure in resource/ directoryBjørn Lindeijer1-10/+12
There is also a new rule that trivial constructors and destructors should no longer be trivially "documented", since this just takes up space with no gain.
2009-03-25A host of code style fixesBjørn Lindeijer1-1/+1
Mostly putting & and * in the right place and making some getters const.
2009-03-24Remove some unneeded #ifdefs in SpriteDefJared Adams1-2/+0
2009-03-22Merged the tmwserv client with the eAthena clientBjørn Lindeijer1-0/+32
This merge involved major changes on both sides, and as such took several weeks. Lots of things are expected to be broken now, however, we now have a single code base to improve and extend, which can be compiled to support either eAthena or tmwserv. In the coming months, the plan is to work towards a client that supports both eAthena and tmwserv, without needing to be recompiled. Conflicts: Everywhere!
2009-02-15Removed unnecessary parenthesis at constructorsBjørn Lindeijer1-2/+2
When not passing any parameters to constructors, there is no reason for using parenthesis.
2009-02-10Use string::empty() instead of comparing to ""Bjørn Lindeijer1-2/+2
2009-02-09Merged with Aethyra master as of 2009-01-27Bjørn Lindeijer1-2/+1
Conflicts: Almost everywhere.
2009-01-23Removed unnecessary references to The Mana World in code headersBjørn Lindeijer1-4/+4
This dates back to the old days of TMW, but the usage instructions of GPLv2 don't mention this being necessary. Since it doesn't add anything, avoid the branding in these sections.
2009-01-23Removed unnecessary references to The Mana World in code headersBjørn Lindeijer1-4/+4
This dates back to the old days of TMW, but the usage instructions of GPLv2 don't mention this being necessary. Since it doesn't add anything, avoid the branding in these sections.
2009-01-15Style cleanups throughout most of the code. Splitting function type fromIra Rice1-16/+9
the function names should no longer be around. Signed-off-by: Ira Rice <irarice@gmail.com>
2009-01-04Code reformattingBjørn Lindeijer1-17/+11
Mainly making sure 'const std::string &' is used everywhere instead of 'std::string const &'. The former has always been the preferred order in this project. (cherry picked from mainline)
2008-12-17Code reformattingBjørn Lindeijer1-19/+12
Mainly making sure 'const std::string &' is used everywhere instead of 'std::string const &'. The former has always been the preferred order in this project.
2008-12-07Some code reformattingBjørn Lindeijer1-2/+1
2008-11-18Pedantic fixes to the client, where I alphabetized all of the include Ira Rice1-4/+1
statements, as well as removing the new skill dialog, which we do not, nor will we use (if we do, it'd be a new one that we'd make). WARNING!!! This, and all other previous builds have a linker error for the Gnome libraries version 4.3.2 on my setup. It's assumed that this is also the case for other users of this library as well. I'm currently assuming that there's a bug in the compiler itself, and will look into reporting this, but in the mean time, it doesn't build for these users, unfortunately. Sorry about this.
2008-11-16Got rid of CVS/Subversion $Id$ markersBjørn Lindeijer1-2/+0
I don't know why we dealt with these things for so long. Did we ever get anything out of it?
2008-11-16Got rid of CVS/Subversion $Id$ markersBjørn Lindeijer1-2/+0
I don't know why we dealt with these things for so long. Did we ever get anything out of it?
2008-10-10Did a little bit of code cleanup (mostly from TMW changes) as well as Ira Rice1-3/+2
properly implemented line wrapping. Now, there are no more visual artifacts for speech boxes, and it always chooses the most optimal box size (which required that npc_text use it also. Do any other gui classes use the textbox class?).
2008-10-09Merged the movement branch into trunkBjørn Lindeijer1-3/+2
I consider this the only way forward. In my tests this code isn't actually doing worse than what was there before. Of course some cases are a bit broken, and I'm open to any kind of feedback so that we can fix those issues.
2008-10-07Fixed some compiler warnings. This probably also fixed the logging of severalBjørn Lindeijer1-3/+2
error messages.
2008-09-25Merged the Tametomo branch into trunk.Ira Rice1-39/+61
2008-07-18Import of client treeLloyd Bryant1-1/+1
2008-07-01Merged revisions 4044-4067 via svnmerge from Bjørn Lindeijer1-38/+60
https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/trunk ........ r4044 | b_lindeijer | 2008-04-07 11:02:38 +0200 (Mon, 07 Apr 2008) | 2 lines Added support for basing one sprite definition on another by including it. ........ r4057 | b_lindeijer | 2008-04-08 20:43:44 +0200 (Tue, 08 Apr 2008) | 4 lines Implemented support for an arbitrary number of map layers. The only layer requirement for map layers are now that the fringe layer is called "Fringe" and that the collision layer is called "Collision". ........ r4067 | b_lindeijer | 2008-04-11 00:03:57 +0200 (Fri, 11 Apr 2008) | 3 lines Fixed some compiler warnings and don't try to load particle effects when no file is set. ........
2008-06-05Added command line argument to specify the update host (-H). Also, to avoidBjørn Lindeijer1-2/+0
problems when files with the same name are served by different update hosts, the updates are now stored in an update host specific directory. Based on a patch by Sanga.