⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pathlistdata.cpp

📁 Blood 2全套源码
💻 CPP
字号:
// ----------------------------------------------------------------------- //
//
// MODULE  : PathListData.cpp
//
// PURPOSE : PathListData definition for PathList Dynamic Array class
//
// CREATED : 2/9/98
//
// ----------------------------------------------------------------------- //

#include "PathPoint.h"
#include "PathListData.h"
#include "cpp_engineobjects_de.h"

// ----------------------------------------------------------------------- //
//
//	ROUTINE:	PathListData::PathListData()
//
//	PURPOSE:	Initialize object
//
// ----------------------------------------------------------------------- //

PathListData::PathListData()
{
	VEC_INIT(m_vPos);
	m_hstrName			= DNULL;
	m_hstrActionTarget	= DNULL;
	m_hstrActionMessage	= DNULL;
}

PathListData::~PathListData()
{
	g_pServerDE->FreeString( m_hstrName );
	g_pServerDE->FreeString( m_hstrActionTarget	);
	g_pServerDE->FreeString( m_hstrActionMessage );
}

// ----------------------------------------------------------------------- //
//
//	ROUTINE:	PathListData::Copy()
//
//	PURPOSE:	Copy the PathPoint object's data
//
// ----------------------------------------------------------------------- //

DBOOL PathListData::Copy(HOBJECT hPathPoint)
{
	CServerDE* pServerDE = BaseClass::GetServerDE();
	if (!hPathPoint || !pServerDE) return DFALSE;

    // Get the Object Position
	pServerDE->GetObjectPos(hPathPoint, &m_vPos);
	char* pName = pServerDE->GetObjectName(hPathPoint);
	if (pName)
	{
		m_hstrName = pServerDE->CreateString(pName);
	}
    
    // Get the Objects action
    PathPoint *pPathPoint = (PathPoint*)pServerDE->HandleToObject(hPathPoint);

    HSTRING hstrAction = pPathPoint->GetActionTarget();
	if (hstrAction)
	{
		m_hstrActionTarget = pServerDE->CopyString(hstrAction);
	}

    hstrAction = pPathPoint->GetActionMessage();
	if (hstrAction)
	{
		m_hstrActionMessage = pServerDE->CopyString(hstrAction);
	}

	return DTRUE;
}

// ----------------------------------------------------------------------- //
//
//	ROUTINE:	PathListData::Save()
//
//	PURPOSE:	Save the PathPoint's data
//
// ----------------------------------------------------------------------- //

void PathListData::Save(HMESSAGEWRITE hWrite)
{
	CServerDE* pServerDE = BaseClass::GetServerDE();
	if (!pServerDE || !hWrite) return;

	pServerDE->WriteToMessageVector(hWrite, &m_vPos);
	pServerDE->WriteToMessageHString(hWrite, m_hstrName);
	pServerDE->WriteToMessageHString(hWrite, m_hstrActionTarget);
	pServerDE->WriteToMessageHString(hWrite, m_hstrActionMessage);
}


// ----------------------------------------------------------------------- //
//
//	ROUTINE:	PathListData::Load()
//
//	PURPOSE:	Load the PathPoint's data
//
// ----------------------------------------------------------------------- //

void PathListData::Load(HMESSAGEREAD hRead)
{
	CServerDE* pServerDE = BaseClass::GetServerDE();
	if (!pServerDE || !hRead) return;

	pServerDE->ReadFromMessageVector(hRead, &m_vPos);
	m_hstrName			= pServerDE->ReadFromMessageHString(hRead);
	m_hstrActionTarget	= pServerDE->ReadFromMessageHString(hRead);
	m_hstrActionMessage = pServerDE->ReadFromMessageHString(hRead);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -