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

📄 clientweaponsfx.cpp

📁 Blood 2全套源码
💻 CPP
字号:
// ----------------------------------------------------------------------- //
//
// MODULE  : CClientWeaponSFX.cpp
//
// PURPOSE : CClientWeaponSFX - Implementation
//
// CREATED : 1/17/98
//
// ----------------------------------------------------------------------- //

#include "ClientWeaponSFX.h"
#include "cpp_server_de.h"
#include "SFXMsgIds.h"
#include "SharedDefs.h"

BEGIN_CLASS(CClientWeaponSFX)
END_CLASS_DEFAULT_FLAGS(CClientWeaponSFX, CClientSFX, NULL, NULL, CF_HIDDEN)

// ----------------------------------------------------------------------- //
//
//	ROUTINE:	CClientWeaponSFX::Setup
//
//	PURPOSE:	Send message to client with data
//
// ----------------------------------------------------------------------- //

void CClientWeaponSFX::Setup(DVector *source, DVector *dest, DVector *forward, DVector *normal, DDWORD nFX, DDWORD nExtras, WeaponFXExtras *ext)
{
	CServerDE* pServerDE = GetServerDE();
	if(!pServerDE || !source || !dest || !forward || !normal) return;

	HMESSAGEWRITE hMessage = pServerDE->StartSpecialEffectMessage(this);
	pServerDE->WriteToMessageByte(hMessage, SFX_WEAPON_ID);

	pServerDE->WriteToMessageVector(hMessage, source);
	pServerDE->WriteToMessageVector(hMessage, dest);
	pServerDE->WriteToMessageVector(hMessage, forward);
	pServerDE->WriteToMessageVector(hMessage, normal);
	pServerDE->WriteToMessageDWord(hMessage, nFX);
	pServerDE->WriteToMessageDWord(hMessage, nExtras);

	if(nExtras & WFX_EXTRA_AMMOTYPE)
		pServerDE->WriteToMessageByte(hMessage, ext->nAmmo);
	if(nExtras & WFX_EXTRA_SURFACETYPE)
		pServerDE->WriteToMessageByte(hMessage, ext->nSurface);
	if(nExtras & WFX_EXTRA_EXPTYPE)
		pServerDE->WriteToMessageByte(hMessage, ext->nExp);
	if(nExtras & WFX_EXTRA_DAMAGE)
		pServerDE->WriteToMessageFloat(hMessage, ext->fDamage);
	if(nExtras & WFX_EXTRA_DENSITY)
		pServerDE->WriteToMessageFloat(hMessage, ext->fDensity);

	if(nExtras & WFX_EXTRA_COLOR1)
		pServerDE->WriteToMessageVector(hMessage, &(ext->vColor1));
	if(nExtras & WFX_EXTRA_COLOR2)
		pServerDE->WriteToMessageVector(hMessage, &(ext->vColor2));
	if(nExtras & WFX_EXTRA_LIGHTCOLOR1)
		pServerDE->WriteToMessageVector(hMessage, &(ext->vLightColor1));
	if(nExtras & WFX_EXTRA_LIGHTCOLOR2)
		pServerDE->WriteToMessageVector(hMessage, &(ext->vLightColor2));

	pServerDE->EndMessage(hMessage);
}

// ----------------------------------------------------------------------- //

DDWORD CClientWeaponSFX::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT lData)
{
	CServerDE* pServerDE = GetServerDE();
	if (!pServerDE) return 0;

	switch(messageID)
	{
		case MID_INITIALUPDATE:
		{
			pServerDE->SetNextUpdate(m_hObject, .0001f);
			break;
		}

		case MID_UPDATE:
		{
			pServerDE->RemoveObject(m_hObject);
			break;
		}

		default : break;
	}

	return CClientSFX::EngineMessageFn(messageID, pData, lData);
}

⌨️ 快捷键说明

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