/***********************************************************
All the animations associated with the object is stored in this class. 
All animations are stored in a vector.

When the AnimationPack object goes out of scope or when destroy is called on this object's 
pointer it must distroy all the bitmaps and sub-bitmaps associated with this object. 
************************************************************/

#pragma once
#include "Animation.h"

class AnimationPack
{
	std::vector<Animation> animations;
public:
	AnimationPack(int animCount);
	void addAnimation(std::string path, int frameCount, std::chrono::milliseconds interval);
	template<typename dataType>
	Animation* getAnimationPtr(const dataType& animNo);
	~AnimationPack();
};

template<typename dataType>
inline Animation* AnimationPack::getAnimationPtr(const dataType& animNo)
{
	return &animations[animNo];
}
