#pragma once

class CFrameController
{
	public:
		CFrameController();
		virtual ~CFrameController();

		void Clear();

		void Update(float fElapsedTime);

		void SetCurrentFrame(DWORD dwFrame);
		BYTE GetCurrentFrame();

		void SetMaxFrame(DWORD dwMaxFrame);
		void SetFrameTime(float fTime);
		void SetStartFrame(DWORD dwStartFrame);
		void SetLoopFlag(BOOL bFlag);
		void SetLoopCount(int iLoopCount);

		void SetActive(BOOL bFlag);
		BOOL isActive(DWORD dwMainFrame = 0);

	protected:
		// Dynamic
		BOOL m_isActive;
		DWORD m_dwcurFrame;
		float m_fLastFrameTime;

		int m_iLoopCount;

		// Static
		BOOL m_isLoop;
		DWORD m_dwMaxFrame;
		float m_fFrameTime;
		DWORD m_dwStartFrame;
};
