diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-06 21:12:22 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-07 10:43:54 +0100 |
commit | c74680473e702bacc009897a258387445d6f3eb5 (patch) | |
tree | 800cfb1f83f0c69ae8fcd0096949e660152a80b8 /src/animationparticle.h | |
parent | f9a522c72db959b5d63061ed255735d0230fc7de (diff) | |
download | mana-c74680473e702bacc009897a258387445d6f3eb5.tar.gz mana-c74680473e702bacc009897a258387445d6f3eb5.tar.bz2 mana-c74680473e702bacc009897a258387445d6f3eb5.tar.xz mana-c74680473e702bacc009897a258387445d6f3eb5.zip |
Use the native TMX tile animation format
Rewrote the tile animation loading code based on XML tags, replacing
the code that loaded tile animations from tile properties.
Also made a number of code simplifications and optimizations:
* Replaced a number of pointer members with value members.
* Pass around Animation and TileAnimation by value, using std::move to
avoid allocating copies.
* push -> emplace
* push_front -> emplace_front
* push_back -> emplace_back
* Use range-based for loops
* Use std::vector instead of std::list for storing affected tiles
(less fragmentation)
* Avoid string copies and allocations while parsing CSV layer data.
* Replaced xmlNodeGetContent with directly accessing 'content'.
Diffstat (limited to 'src/animationparticle.h')
-rw-r--r-- | src/animationparticle.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/animationparticle.h b/src/animationparticle.h index 16cc12a5..230d4e7d 100644 --- a/src/animationparticle.h +++ b/src/animationparticle.h @@ -23,27 +23,28 @@ #define ANIMATION_PARTICLE_H #include "imageparticle.h" +#include "simpleanimation.h" #include <libxml/tree.h> -class Animation; +#include <memory> + class Map; -class SimpleAnimation; class AnimationParticle : public ImageParticle { public: - AnimationParticle(Map *map, Animation *animation); + AnimationParticle(Map *map, Animation animation); AnimationParticle(Map *map, xmlNodePtr animationNode, - const std::string& dyePalettes = std::string()); + const std::string &dyePalettes = std::string()); ~AnimationParticle() override; bool update() override; private: - SimpleAnimation *mAnimation; /**< Used animation for this particle */ + SimpleAnimation mAnimation; /**< Used animation for this particle */ }; #endif |