📄 clientsplashsfx.cpp
字号:
// ----------------------------------------------------------------------- //
//
// MODULE : ClientSplashSFX.cpp
//
// PURPOSE : CClientSplashSFX - Implementation
//
// CREATED : 1/17/98
//
// ----------------------------------------------------------------------- //
#include "ClientSplashSFX.h"
#include "cpp_server_de.h"
#include "SFXMsgIds.h"
BEGIN_CLASS(CClientSplashSFX)
END_CLASS_DEFAULT_FLAGS(CClientSplashSFX, CClientSFX, NULL, NULL, CF_HIDDEN)
// ----------------------------------------------------------------------- //
//
// ROUTINE: CClientSplashSFX::Setup
//
// PURPOSE: Send message to client with data
//
// ----------------------------------------------------------------------- //
void CClientSplashSFX::Setup(DVector *vPos, DVector *vDir, DFLOAT fRadius, DFLOAT fPosRadius, DFLOAT fHeight,
DFLOAT fDensity, DFLOAT fSpread, DVector *vColor1, DVector *vColor2, DVector *vRippleScale,
DBOOL bRipple, DFLOAT fSprayTime, DFLOAT fDuration, DFLOAT fGravity, char *pFile)
{
CServerDE* pServerDE = GetServerDE();
if (!pServerDE || !vDir || !pFile) return;
HSTRING hstrTexture = pServerDE->CreateString(pFile);
// Tell the clients about the Splash...
HMESSAGEWRITE hMessage = pServerDE->StartInstantSpecialEffectMessage( vPos );
pServerDE->WriteToMessageByte(hMessage, SFX_SPLASH_ID);
//pServerDE->WriteToMessageByte(hMessage, DFALSE);
pServerDE->WriteToMessageVector(hMessage, vPos);
pServerDE->WriteToMessageVector(hMessage, vDir);
pServerDE->WriteToMessageFloat(hMessage, fRadius);
pServerDE->WriteToMessageFloat(hMessage, fPosRadius);
pServerDE->WriteToMessageFloat(hMessage, fHeight);
pServerDE->WriteToMessageFloat(hMessage, fDensity);
pServerDE->WriteToMessageFloat(hMessage, fSpread);
pServerDE->WriteToMessageVector(hMessage, vColor1);
pServerDE->WriteToMessageVector(hMessage, vColor2);
pServerDE->WriteToMessageVector(hMessage, vRippleScale);
pServerDE->WriteToMessageByte(hMessage, bRipple);
pServerDE->WriteToMessageFloat(hMessage, fSprayTime);
pServerDE->WriteToMessageFloat(hMessage, fDuration);
pServerDE->WriteToMessageFloat(hMessage, fGravity);
pServerDE->WriteToMessageHString(hMessage, hstrTexture);
pServerDE->EndMessage(hMessage);
pServerDE->FreeString(hstrTexture);
}
// ----------------------------------------------------------------------- //
//
// ROUTINE: CClientSplashSFX::EngineMessageFn
//
// PURPOSE: Handle engine messages
//
// ----------------------------------------------------------------------- //
DDWORD CClientSplashSFX::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
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, fData);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -