//
// Tools_DialogueSpeaker_Object.h
//
// Created by Richard Rice - 21/11/2006
// 
// Copyright (C) 2006 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __TOOLS_DIALOGUESPEAKER_OBJECT_H__
#define __TOOLS_DIALOGUESPEAKER_OBJECT_H__

#ifdef ASURA_USE_DIALOGUE_SYSTEM

#include "Objects/Tools_SpecialGuid_Object.h"


//Used as a special target for message blocks in dialogue events.
class Tools_DialogueSpeaker_Object : public Tools_SpecialGuid_Object
{
public :
	Tools_DialogueSpeaker_Object();
	~Tools_DialogueSpeaker_Object();

	virtual bool HandlesThisMessage(int iMessageID);

	static void AddMessageOverlayControls(struct Asura_StaticMessage* pxMessage,class Asura_Overlay* pxOverlay,class Asura_Vector_2& xOffset);

protected :
	void FindTargetObject();
	void ReferencedObjectIsBeingDeleted(Tools_Object* pxObject);

private :
	class Tools_Entity_Object* m_pxTargetObject;
	u_int m_uFindTargetFrameStamp;
};


#endif //ASURA_USE_DIALOGUE_SYSTEM

#endif //__TOOLS_SPECIALGUID_OBJECT_H__
