//========= Copyright Valve Corporation, All rights reserved. ============//
#ifndef HEADLESS_HATMAN_BODY_H
#define HEADLESS_HATMAN_BODY_H

#include "animation.h"
#include "NextBotBodyInterface.h"

class INextBot;


//----------------------------------------------------------------------------------------------------------------
/**
 * The interface for control and information about the bot's body state (posture, animation state, etc)
 */
class CHeadlessHatmanBody : public IBody
{
public:
	CHeadlessHatmanBody( INextBot *bot );
	virtual ~CHeadlessHatmanBody() { }

	virtual void Update( void );

	virtual bool StartActivity( Activity act, unsigned int flags = 0 );
	virtual Activity GetActivity( void ) const;							// return currently animating activity
	virtual bool IsActivity( Activity act ) const;						// return true if currently animating activity matches the given one

	virtual unsigned int GetSolidMask( void ) const;					// return the bot's collision mask (hack until we get a general hull trace abstraction here or in the locomotion interface)

private:
	int m_currentActivity;
	int m_moveXPoseParameter;	
	int m_moveYPoseParameter;	
};


inline Activity CHeadlessHatmanBody::GetActivity( void ) const
{
	return (Activity)m_currentActivity;
}

inline bool CHeadlessHatmanBody::IsActivity( Activity act ) const
{
	return act == m_currentActivity ? true : false;
}


#endif // HEADLESS_HATMAN_BODY_H