/*===========================================================================
Class Name:		tdoCopyBuffer
Used for:		Copy/Paste
Author:			Yann Le Tensorer
Date:			may 5, 1997
============================================================================*/
#if !defined ( __COPYPASTE_HPP__ )
#define __COPYPASTE_HPP__

/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif
/******************************************/

class CPA_Modif;

typedef enum tdeCopyBufferType_
{
	E_cbt_None,
	E_cbt_Mechanics,
	E_cbt_Collide,
	E_cbt_Sound
} tdeCopyBufferType;

//=================================================================================
//=================================================================================
class tdoCopyBuffer
{
public:
	tdoCopyBuffer(DNM_tdxHandleToMecMatCharacteristics _hMechanicsMaterial);
	tdoCopyBuffer(GMT_tdxHandleToCollideMaterial _hCollideMaterial);
	tdoCopyBuffer(SND_tdxHandleToSoundMaterial _hSoundMaterial);
	~tdoCopyBuffer(); 

	BOOL m_bDoPaste(GMT_tdxHandleToGameMaterial _hTargetGameMaterial);
	tdeCopyBufferType m_eGetType() { return m_eType; }
//ROMTEAM WorldEditor (Cristi Petrescu 22/12/97)
	GMT_tdxHandleToCollideMaterial m_hGetCollideMaterial (void) {return m_hCollideMaterialToPaste;};
//ENDROMTEAM WorldEditor (Cristi Petrescu)

private:
	void m_vInvalidateAllHandlesAtConstruct();
	tdeCopyBufferType m_eType;
	DNM_tdxHandleToMecMatCharacteristics m_hMechanicsMaterialToPaste;
	GMT_tdxHandleToCollideMaterial m_hCollideMaterialToPaste;
	SND_tdxHandleToSoundMaterial m_hSoundMaterialToPaste;
};

//=================================================================================
//=================================================================================
class tdoPasteSubMaterialModif : public CPA_Modif
{
public:
	tdoPasteSubMaterialModif(tdoCopyBuffer *_p_oCopyBuffer);
	~tdoPasteSubMaterialModif();
	BOOL Do();
	BOOL Undo();

private:
	GMT_tdxHandleToGameMaterial m_hTargetGameMaterial;
	tdoCopyBuffer *m_p_oCopyBufferForDo, *m_p_oCopyBufferForUndo;
};

#endif /* __COPYPASTE_HPP__ */
