#include "stdafx.h"
#include "3ObjPictArrow.h"	// This header.

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif

#define SUPER_CLASS MC3ObjGroup

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	MC3ObjPictArrow::MC3ObjPictArrow
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_iDfCiDjDiDfIiDgHiDiJiDeOiDfOiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.04.08 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
MC3ObjPictArrow::MC3ObjPictArrow ()
{
	// memcmp_xZkqqHx_iCmFiDeJiDhFiDfHiDeGiDeOiDgHjEoEiKhCiCpAiClHiCoJiClNiCnPiBeBiNfMjBkCjBmMiDeNiDiDiDgCiDhGiCoAjBfDiCmEiCePiCmFjGiEiCnPiCoJiBeC_xHqqkZx_
	ASSERT(ALIGNMENT8(sizeof(SUPER_CLASS)) == offsetof(MC3ObjPictArrow, m_mmrtArrowFrame));
	memset(&m_mmrtArrowFrame, 0, sizeof(MC3ObjPictArrow) - offsetof(MC3ObjPictArrow, m_mmrtArrowFrame));
	m_mmrtArrowFrame.SetRect(0,0,0,0);	// _xZkqqHx_iDhDiDeOiDgAiDiDjGoOiIpDiDhEiDiMiBfLiDiAiBeC_xHqqkZx_
	m_mmMinArrowPenWeight = 0.0;		// _xZkqqHx_iDhDiDeOiDgAiDiDjGoOiIpDiCmMiDhJiDjDjBlOiClDiNmFjCoBjCgMiBeC_xHqqkZx_
// 05.06.03 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	m_dwObjUserUlong = DWORD(-1);		// _xZkqqHx_jFjEjFgJiDiGiBfLiDfF_xHqqkZx_ID_xZkqqHx_iBeC_xHqqkZx_
	m_nArrowDutyIndex = -1;				// // _xZkqqHx_jGoOiIpDjGpAiKiEiDeDiDjDiDgGiDgCiDeOiDfIiBeC_xHqqkZx_
	m_nArrowDutySz = 0;					// _xZkqqHx_jFgAiJoGiPoOjFpBiCmMjGhLjBmMiCkJiCoHiCmMiMhAiPlDiPoOjFpBiBeC_xHqqkZx_
	m_bypArrowDuty = NULL;				// _xZkqqHx_jFgAiJoGiPoOjFpBiCmMjGhLjBmMiCkJiCoHiCmMiMhAiPlDiPoOjFpBiBeC_xHqqkZx_
} // MC3ObjPictArrow::MC3ObjPictArrow.

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	MC3ObjPictArrow::~MC3ObjPictArrow
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_iDgGiDfIiDgHiDiJiDeOiDfOiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.07.11 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
MC3ObjPictArrow::~MC3ObjPictArrow ()
{
	// _xZkqqHx_iKpJjBlGiCmMiDiKiDfIiDgHiCpAiPmBiLiOiBeC_xHqqkZx_
	if (m_bypArrowDuty != NULL)
	{
		delete[] m_bypArrowDuty;
		m_bypArrowDuty = NULL;
	}
	m_nArrowDutySz = 0;
} // MC3ObjPictArrow::~MC3ObjPictArrow.

//----- 05.06.13 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
///*************************************************************************
// * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	MC3ObjPictArrow::IsKindOf
// *
// * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_jFjEjFgJiCkKiClBiCmMiMfOiBeBiIlNiCkCiCmNiClBiCmMiMfOiCmMiDfEiDhFiDeOiDiJiDfIiCmMiMfOiCkJiCmHiCkEiCkJiCpAjClCiCnHiCoJiBeC_xHqqkZx_
// *
// * <_xZkqqHx_iIpIjAjE_xHqqkZx_>	nType	:_xZkqqHx_jClCiCnHiCoJiMfOiCpAiOhHjCoIiBeC_xHqqkZx_
// *
// * <_xZkqqHx_jFnEjCgM_xHqqkZx_>	TRUE	:nType_xZkqqHx_iMfOiBeBiIlNiCkCiCmNiClLiCmMiDfEiDhFiDeOiDiJiDfIiCmMiPoKiNiH_xHqqkZx_
// *			FALSE	:_xZkqqHx_iClLiCkEiCmFiCmIiCkCiPoKiNiH_xHqqkZx_
// *
// * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.04.08 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
// *************************************************************************/
//BOOL MC3ObjPictArrow::IsKindOf (FTObjectType nType) const
//{
//	if (nType == FDOJ_PICT_ARROW) return TRUE;
//	return SUPER_CLASS::IsKindOf(nType);
//} // MC3ObjPictArrow::IsKindOf.
//----- 05.06.13 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	MC3ObjPictArrow::Type
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_iClBiCmMiDeOiDiJiDfIiCmMiMfOiCpAjFnEiClH_xHqqkZx_.
 *
 * <_xZkqqHx_jFnEjCgM_xHqqkZx_>	_xZkqqHx_iDeOiDiJiDfIiCmMiMfO_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.04.08 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
FTObjectType MC3ObjPictArrow::Type () const
{
	return FDOJ_PICT_ARROW;
} // MC3ObjPictArrow::Type.

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	MC3ObjPictArrow::OutStream
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_jFjEjFgJiCmMiPpDjBnEiCpAiDfIiDgHiDiKiBfLiDiAiCmJiPjBiCkLiPgPiClHiBeC_xHqqkZx_
 *
 * <_xZkqqHx_iIpIjAjE_xHqqkZx_>	ar	:_xZkqqHx_iPjBiCkLiPgPiClFjHhAiCmM_xHqqkZx_MCARCHIVE
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.04.08 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
void MC3ObjPictArrow::OutStream (MCARCHIVE& ar)
{
	// Superclass_xZkqqHx_iKnGjAjEiBeC_xHqqkZx_
	SUPER_CLASS::OutStream(ar);
	ar << m_mmrtArrowFrame;			// _xZkqqHx_iDhDiDeOiDgAiDiDjGoOiIpDiDhEiDiMiBfLiDiAiBeC_xHqqkZx_
	ar << m_mmMinArrowPenWeight;	// _xZkqqHx_iDhDiDeOiDgAiDiDjGoOiIpDiDhJiDjDjBlOiClDiNmFjCoBjCgMiBeC_xHqqkZx_
	if (g_nVersion == 3)
	//----- Version3.x_xZkqqHx_iCmMiPoKiNiH_xHqqkZx_ -----
	{
		ar << m_dwObjUserUlong;			// _xZkqqHx_jFjEjFgJiDiGiBfLiDfF_xHqqkZx_ID_xZkqqHx_iBeC_xHqqkZx_
	}
	ar << m_nArrowDutyIndex;		// _xZkqqHx_jGoOiIpDjGpAiKiEiDeDiDjDiDgGiDgCiDeOiDfIiBeC_xHqqkZx_
	//----- _xZkqqHx_jGoOiIpDjFgAiJoGiMhAiPlDiPoOjFpBiDiKiDfIiDgHiCpAiPgPjHmN_xHqqkZx_ -----
	long lC;
	//----- _xZkqqHx_iDiKiDjDiDeOjGpAiKiEjFjEjFgJiDiKiDfIiDgHiCpAiPgPjHmN_xHqqkZx_ -----
	ar << (short)m_nArrowDutySz;
	for (lC = 0; lC < m_nArrowDutySz; lC++)
		ar << m_bypArrowDuty[lC];
} // MC3ObjPictArrow::OutStream.

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	MC3ObjPictArrow::InStream
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_jFjEjFgJiCmMiPpDjBnEiCpAiDfIiDgHiDiKiBfLiDiAiCkJiCoHjDmHiCnNiNjOiCnOiBeC_xHqqkZx_
 *
 * <_xZkqqHx_iIpIjAjE_xHqqkZx_>	ar	:_xZkqqHx_jDmHiCnNiNjOiCnNjHhAiCmM_xHqqkZx_MCARCHIVE
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.04.08 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
void MC3ObjPictArrow::InStream (MCARCHIVE& ar)
{
	// Superclass_xZkqqHx_iKnGjAjEiBeC_xHqqkZx_
	SUPER_CLASS::InStream(ar);
	ar >> m_mmrtArrowFrame;			// _xZkqqHx_iDhDiDeOiDgAiDiDjGoOiIpDiDhEiDiMiBfLiDiAiBeC_xHqqkZx_
	ar >> m_mmMinArrowPenWeight;	// _xZkqqHx_iDhDiDeOiDgAiDiDjGoOiIpDiDhJiDjDjBlOiClDiNmFjCoBjCgMiBeC_xHqqkZx_
	if (g_nVersion == 3)
	//----- Version3.x_xZkqqHx_iCmMiPoKiNiH_xHqqkZx_ -----
	{
		ar >> m_dwObjUserUlong;			// _xZkqqHx_jFjEjFgJiDiGiBfLiDfF_xHqqkZx_ID_xZkqqHx_iBeC_xHqqkZx_
	}
	ar >> m_nArrowDutyIndex;		// _xZkqqHx_jGoOiIpDjGpAiKiEiDeDiDjDiDgGiDgCiDeOiDfIiBeC_xHqqkZx_
	//----- _xZkqqHx_jGoOiIpDjFgAiJoGiMhAiPlDiPoOjFpBiDiKiDfIiDgHiCpAjDpMjHmN_xHqqkZx_ -----
	short nSize;
	//----- _xZkqqHx_iDiKiDjDiDeOjGpAiKiEjFjEjFgJiDiKiDfIiDgHiCpAjDpMjHmN_xHqqkZx_ -----
	// _xZkqqHx_iKpJjBlGiCmMiDiKiDfIiDgHiCpAiPmBiLiOiBeC_xHqqkZx_
	if (m_bypArrowDuty != NULL)
	{
		delete[] m_bypArrowDuty;
		m_bypArrowDuty = NULL;
	}
	ar >> nSize;
	m_nArrowDutySz = nSize;
	if (0 < nSize)
	{
		m_bypArrowDuty = new BYTE[nSize];
		for (long lC = 0; lC < nSize; lC++)
			ar >> m_bypArrowDuty[lC];
	}
} // MC3ObjPictArrow::InStream.

