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

📄 bloodtrailfx.cpp

📁 Blood 2全套源码
💻 CPP
字号:

 /****************************************************************************
 ;
 ;	MODULE:		BloodTrailFX.cpp
 ;
 ;	PURPOSE:	Blood trail effects
 ;
 ;	HISTORY:	Created by SCHLEGZ on 5/21/98 1:31:39 PM
 ;
 ;	COMMENT:	Copyright (c) 1997, Monolith Productions Inc.
 ;
 ****************************************************************************/

#include "BloodTrailFX.h"
#include "cpp_client_de.h"
#include "ClientUtilities.h"
#include "BloodTrailSegmentFX.h"
#include "BloodClientShell.h"
#include "SFXMsgIds.h"

// ----------------------------------------------------------------------- //
// ROUTINE		: CBloodTrailFX::Init
// DESCRIPTION	: 
// RETURN TYPE	: DBOOL 
// PARAMS		: SFXCREATESTRUCT* psfxCreateStruct
// ----------------------------------------------------------------------- //

DBOOL CBloodTrailFX::Init(SFXCREATESTRUCT* psfxCreateStruct)
{
	if (!CSpecialFX::Init(psfxCreateStruct)) return DFALSE;

	BTCREATESTRUCT* pBT = (BTCREATESTRUCT*)psfxCreateStruct;
	VEC_COPY(m_vVel, pBT->vVel);
	VEC_COPY(m_vColor,pBT->vColor);

	m_nNumPerPuff	= 4;

	m_fLifeTime		= 0.75f;

	m_fSegmentTime  = 0.2f;

	return DTRUE;
}


// ----------------------------------------------------------------------- //
// ROUTINE		: CBloodTrailFX::Update
// DESCRIPTION	: 
// RETURN TYPE	: DBOOL 
// ----------------------------------------------------------------------- //

DBOOL CBloodTrailFX::Update()
{
	CBloodClientShell *pShell = (CBloodClientShell*)g_pClientDE->GetClientShell();
	CSFXMgr* psfxMgr = pShell->GetSFXMgr();
	if (!psfxMgr || !m_pClientDE || !m_hServerObject) return DFALSE;

	DFLOAT fTime = m_pClientDE->GetTime();

	// Check to see if we should go away...

	if (m_bWantRemove || (m_hServerObject == DNULL))
	{
		return DFALSE;
	}


	// See if it is time to create a new trail segment...

	if ((m_fStartTime < 0) || (fTime > m_fStartTime + m_fSegmentTime))
	{
		BTSCREATESTRUCT bts;

		bts.hServerObj = m_hObject;
		VEC_COPY(bts.vColor1, m_vColor);
		bts.fLifeTime		= m_fLifeTime;
		bts.fOffsetTime		= m_fOffsetTime;
		bts.fRadius			= 200.0f;
		bts.nNumPerPuff		= m_nNumPerPuff;

 		CSpecialFX* pFX = psfxMgr->CreateSFX(SFX_BLOODTRAILSEG_ID, &bts, DFALSE, this);
		if (pFX) pFX->Update();
 
		m_fStartTime = fTime;
	}

	return DTRUE;
}

⌨️ 快捷键说明

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