//
// Asura_FacialAnimation_AnimationHandler_Cutscene.h
//
// Created by Richard Rice 18/11/2008
// 
// Copyright (C) 2008 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __ASURA_FACIALANIMATION_ANIMATIONHANDLER_CUTSCENE_H__
#define __ASURA_FACIALANIMATION_ANIMATIONHANDLER_CUTSCENE_H__
#if defined(ASURA_USE_FACIAL_ANIMATION_SYSTEM)

#include "FacialAnimation/Asura_FacialAnimation_AnimationHandler.h"

class Asura_Cutscene_Actor_Hierarchy;

class Asura_FacialAnimation_AnimationHandler_Cutscene : public Asura_FacialAnimation_AnimationHandler
{
public:
	// Public functions...
	Asura_FacialAnimation_AnimationHandler_Cutscene(Asura_Cutscene_Actor_Hierarchy* pxActor, const Asura_Hash_ID uFaceHash);
//	virtual ~Asura_FacialAnimation_AnimationHandler_Cutscene();

	//fStartTime is the time within the cutscene at which the animation is supposed to start
	void Cutscene_PlayFacialAnimation( Asura_Hash_ID uAnimHash, float fStartTime, bool bLooped);

	// Overridden functions...
	virtual	void	Update(const float fTimeStep);


protected:
	// Protected variables...

	// Protected functions...


private:
	// Private typedefs...
	typedef Asura_FacialAnimation_AnimationHandler PARENT;

	// Private variables...
	Asura_Cutscene_Actor_Hierarchy* m_pxActor;
	float m_fLastCutsceneTime;

	float m_fAnimStartTime;
	Asura_Hash_ID m_uAnimHash;

	// Private functions...
	Asura_FacialAnimation_AnimationHandler_Cutscene(void);
	Asura_FacialAnimation_AnimationHandler_Cutscene(const Asura_FacialAnimation_AnimationHandler_Cutscene& xOther);

	Asura_FacialAnimation_AnimationHandler_Cutscene&	operator=(const Asura_FacialAnimation_AnimationHandler_Cutscene& xOther);

};   // End of class 'Asura_FacialAnimation_AnimationHandler_Cutscene'.



#endif // defined(ASURA_USE_FACIAL_ANIMATION_SYSTEM)
#endif // __ASURA_FACIALANIMATION_ANIMATIONHANDLER_CUTSCENE_H__
