diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2006-08-13 11:36:36 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2006-08-13 11:36:36 +0000 |
commit | afc770043be553998555e9ac1cffca68dc482d48 (patch) | |
tree | 60e99ade9464b0a1de2ec246724a7bfe0957eec4 /src/animation.h | |
parent | cfcc1bc3a756185bd39dd858ebbe69b5916ac11b (diff) | |
download | mana-afc770043be553998555e9ac1cffca68dc482d48.tar.gz mana-afc770043be553998555e9ac1cffca68dc482d48.tar.bz2 mana-afc770043be553998555e9ac1cffca68dc482d48.tar.xz mana-afc770043be553998555e9ac1cffca68dc482d48.zip |
Merged cleanups and content changes from the trunk. Also fixed compiling with
OpenGL enabled.
Diffstat (limited to 'src/animation.h')
-rw-r--r-- | src/animation.h | 135 |
1 files changed, 25 insertions, 110 deletions
diff --git a/src/animation.h b/src/animation.h index c5adb873..c5b277b7 100644 --- a/src/animation.h +++ b/src/animation.h @@ -26,12 +26,9 @@ #include <list> #include <map> -#include <string> #include <libxml/tree.h> -#include "graphics.h" - class Image; class Spriteset; @@ -58,16 +55,32 @@ class Animation */ Animation(); - void addPhase(int image, unsigned int delay, int offsetX, int offsetY); + void + addPhase(int image, unsigned int delay, int offsetX, int offsetY); + + void + update(unsigned int time); - void update(unsigned int time); + int + getCurrentPhase() const; - int getCurrentPhase() const; + /** + * Returns the x offset of the current frame. + */ + int + getOffsetX() const { return (*iCurrentPhase).offsetX; }; - int getOffsetX() const { return (*iCurrentPhase).offsetX; }; - int getOffsetY() const { return (*iCurrentPhase).offsetY; }; + /** + * Returns the y offset of the current frame. + */ + int + getOffsetY() const { return (*iCurrentPhase).offsetY; }; - int getLength(); + /** + * Returns the length of this animation. + */ + int + getLength(); protected: std::list<AnimationPhase> mAnimationPhases; @@ -104,114 +117,16 @@ class Action getSpriteset() const { return mSpriteset; } void - setAnimation(const std::string& direction, Animation *animation); + setAnimation(int direction, Animation *animation); Animation* - getAnimation(const std::string& direction) const; + getAnimation(int direction) const; protected: Spriteset *mSpriteset; - typedef std::map<std::string, Animation*> Animations; + typedef std::map<int, Animation*> Animations; typedef Animations::iterator AnimationIterator; Animations mAnimations; }; -/** - * Defines a class to load an animation. - */ -class AnimatedSprite -{ - public: - /** - * Constructor. - */ - AnimatedSprite(const std::string& animationFile, int variant); - - /** - * Destructor. - */ - ~AnimatedSprite(); - - /** - * Sets a new action using the current direction. - */ - void - play(const std::string& action); - - /** - * Plays an action in a specified time. - */ - void - play(const std::string& action, int time); - - /** - * Inform the animation of the passed time so that it can output the - * correct animation phase. - */ - void update(int time); - - /** - * Draw the current animation phase at the coordinates given in screen - * pixels. - */ - bool - draw(Graphics* graphics, Sint32 posX, Sint32 posY) const; - - /** - * gets the width in pixels of the current animation phase. - */ - int - getWidth() const; - - /** - * gets the height in pixels of the current animation phase. - */ - int - getHeight() const; - - /** - * Sets the direction. - */ - void - setDirection(const std::string& direction) - { - mDirection = direction; - } - - protected: - /** - * When there are no animations defined for the action "complete", its - * animations become a copy of those of the action "with". - */ - void - substituteAction(const std::string& complete, - const std::string& with); - - typedef std::map<std::string, Spriteset*> Spritesets; - typedef Spritesets::iterator SpritesetIterator; - Spritesets mSpritesets; - typedef std::map<std::string, Action*> Actions; - Actions mActions; - Action *mAction; - std::string mDirection; - int mLastTime; - float mSpeed; - - private: - /** - * Gets an integer property from an xmlNodePtr. - * - * TODO: Same function is present in MapReader. Should probably be - * TODO: shared in a static utility class. - */ - static int - getProperty(xmlNodePtr node, const char* name, int def); - - /** - * Gets a string property from an xmlNodePtr. - */ - static std::string - getProperty(xmlNodePtr node, const char* name, const std::string& def); -}; - #endif |