
///////////////////////////////////////////////////////////////////////////////
//
// File   : AVP_Predalien_MovesJump.h
// Author : Anthony Gregson
// Date   : 08/10/07
//
// Copyright (C) 2007 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

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

#ifndef __AVP_PREDALIEN_MOVESJUMP_H__
#define __AVP_PREDALIEN_MOVESJUMP_H__

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

#include "Entity/PhysicalObject/Moves/Asura_MoveData_Animation.h"
#include "Entity/PhysicalObject/Moves/Asura_MoveData_OrientationInterpolation.h"
#include "Entity/PhysicalObject/Moves/Asura_MoveData_PositionInterpolation.h"

#include "Moves/AVP_Moves.h"


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


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

////////////////////////////////////////////////////////////////////////////////
// Class        : AVP_Move_Predalien_PreJumpTarget
////////////////////////////////////////////////////////////////////////////////

class AVP_Move_Predalien_PreJumpTarget : public AVP_Move
{
public:
	// Public functions...
	AVP_Move_Predalien_PreJumpTarget(Asura_Movement_System& xParentSystem);

	// Accessor functions...
	virtual const char*		GetName(void) const	{ return("AVP_Move_Predalien_PreJumpTarget"); }
	static Asura_Hash_ID	GetStaticHash(void)	{ return(0x8de4cf5f); }	// Asura_GetHashID("AVP_Move_Predalien_PreJumpTarget")); }

protected:
	// Protected variables...
	Asura_MoveData_PositionInterpolation	m_xPositionInterpolationData;
	Asura_MoveData_OrientationInterpolation	m_xOrientationInterpolationData;

	// Overridden functions...
	virtual bool Start(const Asura_Msg_Move* pxStartMsg);

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

	// Private variables...

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

	AVP_Move_Predalien_PreJumpTarget& operator=(const AVP_Move_Predalien_PreJumpTarget& xOther);

};   // End of class 'AVP_Move_Alien_JumpSurface'.

////////////////////////////////////////////////////////////////////////////////
// Class        : AVP_Move_Predalien_PreJumpTarget
////////////////////////////////////////////////////////////////////////////////
class AVP_Move_Predalien_JumpTarget : public AVP_Move
{
public:
	// Public functions...
	AVP_Move_Predalien_JumpTarget(Asura_Movement_System& xParentSystem);
//	virtual ~AVP_Move_Predalien_JumpTarget();

	// Accessor functions...
	virtual const char*		GetName(void) const	{ return("AVP_Move_Predalien_JumpTarget"); }
	static Asura_Hash_ID	GetStaticHash(void)	{ return(0xa96d1b22); }	// Asura_GetHashID("AVP_Move_Predalien_JumpTarget")); }

	void SetFromMessage(const Asura_Msg_Move* pxStartMsg);

protected:
	// Protected variables...
	Asura_MoveData_PositionInterpolation	m_xPositionInterpolationData;
	Asura_MoveData_OrientationInterpolation	m_xOrientationInterpolationData;

	// Overridden functions...
	virtual bool Start(const Asura_Msg_Move* pxStartMsg);
	virtual Asura_Move* Update();

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

	// Private variables...

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

	AVP_Move_Predalien_JumpTarget& operator=(const AVP_Move_Predalien_JumpTarget& xOther);

};   // End of class 'AVP_Move_Alien_JumpSurface'.

#endif   // ifndef __AVP_PREDALIEN_MOVESJUMP_H__


/// End of file. ///
