struct PlayingAnimation
{
const Animation *animation;
+ float speed;
Animation::Iterator iterator;
- PlayingAnimation(const Animation &);
+ PlayingAnimation(const Animation &, float);
};
struct Target: AnimationEventObserver
private:
Target &get_slot(Placeable &);
- Target &play_(Placeable &, const Animation &, bool);
+ Target &play_(Placeable &, const Animation &, bool, float);
public:
/// Plays an animation on an object. Any previous animations are replaced.
- void play(AnimatedObject &, const Animation &);
+ void play(AnimatedObject &, const Animation &, float = 1.0f);
- void play(Placeable &, const Animation &);
+ void play(Placeable &, const Animation &, float = 1.0f);
/** Plays an animation, stacked with other animations. If no animations are
playing yet, the object's current matrix is used as the base. */
- void play_stacked(AnimatedObject &, const Animation &);
+ void play_stacked(AnimatedObject &, const Animation &, float = 1.0f);
- void play_stacked(Placeable &, const Animation &);
+ void play_stacked(Placeable &, const Animation &, float = 1.0f);
/// Returns the number of animations currently affecting an object.
unsigned get_n_active_animations(const AnimatedObject &) const;
void unobserve_events(AnimationEventObserver &);
/// Stops all animations affecting an object.
- void stop(AnimatedObject &);
+ void stop(Placeable &);
/// Stops a single animation affecting an object.
- void stop(AnimatedObject &, const Animation &);
+ void stop(Placeable &, const Animation &);
/** Advances all playing animations. Should be called in a regular manner,
preferably just before rendering. */