
///////////////////////////////////////////////////////////////////////////////
//
// File   : AVP_Predator_JumpHandler.h
// Author : Andy Tate
// Date   : 26-Sep-2007
//
// Copyright (C) 2007 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
	#pragma once
#endif   // ifdef ASURA_USE_PRAGMA_ONCE

#ifndef __AVP_PREDATOR_JUMPHANDLER_H__
#define __AVP_PREDATOR_JUMPHANDLER_H__

////////////////////////////////////////////////////////////////////////////////
// Include files...
////////////////////////////////////////////////////////////////////////////////

#include "Actor/Vertebrates/AVP_Vertebrate_JumpHandler.h"
#include "Entity/PhysicalObject/Actor/Vertebrates/AVP_ClientActor_Vertebrate.h"

////////////////////////////////////////////////////////////////////////////////
// Forward class declarations...
////////////////////////////////////////////////////////////////////////////////

class Asura_Attractor_Compiled;
class AVP_ClientActor_Predator;

////////////////////////////////////////////////////////////////////////////////
// Class declaration...
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Class        : AVP_Predator_JumpHandler
// Author       : Andy Tate
// Date         : 26-Sep-2007
//
// Description  : Class to handle the Predator's jumping.
////////////////////////////////////////////////////////////////////////////////
enum AVP_PREDATOR_JUMPTYPE
{
	AVP_PREDATOR_JUMPTYPE_NORMAL,
	AVP_PREDATOR_JUMPTYPE_TARGETED,

	NUM_AVP_PREDATOR_JUMPTYPES,
};

class AVP_Predator_JumpHandler : public AVP_Vertebrate_JumpHandler
{
public:
	// Public functions...
	AVP_Predator_JumpHandler(AVP_ClientActor_Vertebrate& xOwner);
	virtual ~AVP_Predator_JumpHandler();

	// Virtual manipulation functions...
	virtual bool HandleJump(const float fJumpValue);

	static Asura_Hash_ID SendJumpMoveStartMessage( const Asura_Guid uOwnerGuid, const AVP_PREDATOR_JUMPTYPE eJumpType, const Asura_Vector_3& xTargetPosition, const AVP_ClientActor_Vertebrate::JumpLandType eJumpLandType, const int iTargetedJumpVariation = 0 );

protected:
	// Protected functions...
	// Protected variables...

private:
	// Private functions...

	// Private variables...

	// Private typedefs..
	typedef AVP_Vertebrate_JumpHandler PARENT;
};   // End of class 'AVP_Predator_JumpHandler'.


#endif   // ifndef __AVP_PREDATOR_JUMPHANDLER_H__


/// End of file. ///
