summaryrefslogtreecommitdiff
path: root/src/animation.h
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2006-08-13 11:36:36 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2006-08-13 11:36:36 +0000
commitafc770043be553998555e9ac1cffca68dc482d48 (patch)
tree60e99ade9464b0a1de2ec246724a7bfe0957eec4 /src/animation.h
parentcfcc1bc3a756185bd39dd858ebbe69b5916ac11b (diff)
downloadmana-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.h135
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