//////////////////////////////////////////////////////////////////////////////
//
// AVP_ClientEntity_Lift.h
//
// Copyright (c) 2006 Rebellion. All rights reserved.
//
// Description:
//
//     Project override of asura lift class
//
//////////////////////////////////////////////////////////////////////////////

// B E G I N   F I L E   W R A P P E R ///////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef ___AVP_CLIENTENTITY_LIFT_H___
#define ___AVP_CLIENTENTITY_LIFT_H___ 1

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

// Engine independent.
#include "Entity/PhysicalObject/Asura_ClientEntity_Lift.h"

// Project independent.
#include "Entity/PhysicalObject/AVP_ClientEntity_PhysicalObject.h"

// C L A S S E S /////////////////////////////////////////////////////////////

class AVP_ClientEntity_Lift : public AVP_ClientEntity_PhysicalObject, public virtual Asura_ClientEntity_Lift
{

public:

	static void Create( const Asura_Message* pxMsg );
	static AVP_ClientEntity_Lift* FindEntity( Asura_Guid uGUID ) { return s_xList.FindEntity( uGUID ); }
    static const Asura_Hashed_List<AVP_ClientEntity_Lift>* GetList( void ) { return &s_xList; }

	virtual bool HandleMessage( const Asura_Message* pxMsg );
	virtual void Update(void);
	virtual void Render() { PARENT_ASURA::Render(); }

protected:

	AVP_ClientEntity_Lift();
	virtual ~AVP_ClientEntity_Lift();

	void SetupDynamicObject( u_int uPhysicalObjectFlags );

private:

	typedef AVP_ClientEntity_PhysicalObject PARENT;
	typedef Asura_ClientEntity_Lift PARENT_ASURA;

	static Asura_Hashed_List<AVP_ClientEntity_Lift> s_xList;

};

// E N D   F I L E   W R A P P E R ///////////////////////////////////////////

#endif // #ifndef ___AVP_CLIENTENTITY_LIFT_H___
