//////////////////////////////////////////////////////////////////////////////
//
// AVP_Behaviour_Movement_Test.h
//
// Copyright (C) 2009 Rebellion. All Rights Reserved.
//
//////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __AVP_BEHAVIOUR_MOVEMENT_TEST_H__
#define __AVP_BEHAVIOUR_MOVEMENT_TEST_H__ 1

// I N C L U D E S ///////////////////////////////////////////////////////////

#include "Behaviour/BehaviourTypes/AVP_Behaviour_Movement.h"

// F O R W A R D   D E C L A R A T I O N S ///////////////////////////////////

class AVP_Brain_Actor;
class AVP_Brain_Actor_Alien;

//////////////////////////////////////////////////////////////////////////////
//
// AVP_Behaviour_Movement_Test
//
//////////////////////////////////////////////////////////////////////////////

class AVP_Behaviour_Movement_Test : public Axon_Behaviour_Movement
{
	typedef Axon_Behaviour_Movement PARENT;

public:
	AVP_Behaviour_Movement_Test( AVP_Brain_Actor* pxActorBrain );

	virtual bool StartPathTraversal();
	virtual void SetSpeed( const float fSpeed );
	virtual PathTraversalState GetPathTraversalState();
	virtual bool StopPathTraversal();

	virtual void SetOwnerOrientation( const Asura_Matrix_3x3& xOrientation );

protected:
	enum State
	{
		WAIT,
		WALK_ROUTE
	};

	virtual void PerFrameUpdate( const float fTimeslice );

	AVP_Brain_Actor_Alien* GetAlienBrain() const;

private:
	int m_iState;
	float m_fSpeed;
};

//////////////////////////////////////////////////////////////////////////////
//
// 
//
//////////////////////////////////////////////////////////////////////////////

#endif //__AVP_BEHAVIOUR_MOVEMENT_TEST_H__
