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

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

#ifndef __AVP_DAMAGEABLEOBJECT_MESSAGES_H__
#define __AVP_DAMAGEABLEOBJECT_MESSAGES_H__

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

#include "Entity/PhysicalObject/PhysicsObject/AVP_PhysicsObject_Messages.h"
#include "Entity/PhysicalObject/PhysicsObject/DamageableObject/AVP_ServerEntity_DamageableObject.h"


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

class AVP_ServerEntity_DamageableObject;


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

////////////////////////////////////////////////////////////////////////////////
// Class        : AVP_Message_DamageableObject_ClientUpdate
// Author       : Andy Tate
// Date         : 13-Sep-2007
//
// Description  : Class to handle the message-data for a damageable-object.
////////////////////////////////////////////////////////////////////////////////

class AVP_Message_DamageableObject_ClientUpdate : public AVP_Message_PhysicsObject_ClientUpdate
{
public:
	// Public functions...
	void	FillDamageable(const AVP_ServerEntity_DamageableObject* pxDamageableObj);

#ifdef ASURA_SUPPORT_NETMSG_SYSTEM
	static void RegisterFields(u_short usMsgID, u_short usEntityClassification);
	static void RegisterFields(class Asura_NetMsg* pxNetMsg);
	static u_char GetNumFields() { return 0 + PARENT::GetNumFields(); }
#endif//#ifdef ASURA_SUPPORT_NETMSG_SYSTEM

protected:
	~AVP_Message_DamageableObject_ClientUpdate ();
	// Protected variables...

	// Protected functions...


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

	// Private variables...

	// Private functions...
	AVP_Message_DamageableObject_ClientUpdate  (void);
	AVP_Message_DamageableObject_ClientUpdate  (const AVP_Message_DamageableObject_ClientUpdate& xOther);
	AVP_Message_DamageableObject_ClientUpdate&	operator=	(const AVP_Message_DamageableObject_ClientUpdate& xOther);

};   // End of class 'AVP_Message_DamageableObject_ClientUpdate'.


class AVP_Message_DamageableObject_ClientCreate : public AVP_Message_PhysicsObject_ClientCreate
{
public:
	// Public functions...
	void	FillDamageable(const AVP_ServerEntity_DamageableObject* pxDamageableObj) { FillPhysics( pxDamageableObj ); }

protected:
	~AVP_Message_DamageableObject_ClientCreate ();
	// Protected variables...

	// Protected functions...


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

	// Private variables...

	// Private functions...
	AVP_Message_DamageableObject_ClientCreate  (void);
	AVP_Message_DamageableObject_ClientCreate  (const AVP_Message_DamageableObject_ClientCreate& xOther);
	AVP_Message_DamageableObject_ClientCreate&	operator=	(const AVP_Message_DamageableObject_ClientCreate& xOther);

};   // End of class 'AVP_Message_DamageableObject_ClientUpdate'.

#endif   // ifndef __AVP_DAMAGEABLEOBJECT_MESSAGES_H__


/// End of file. ///
