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

📄 clientexplosionsfx.h

📁 Blood 2全套源码
💻 H
字号:
// ----------------------------------------------------------------------- //
//
// MODULE  : ClientExplosionSFX.h
//
// PURPOSE : CClientExplosionSFX - Definition
//
// CREATED : 7-1-98
//
// ----------------------------------------------------------------------- //

#ifndef __CLIENT_EXPLOSION_SFX_H__
#define __CLIENT_EXPLOSION_SFX_H__

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

#include "ClientSFX.h"

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

#define CEXP_FADE_NONE				0
#define CEXP_FADE_ALPHA2CLEAR		1
#define CEXP_FADE_SOLID2ALPHA		2
#define CEXP_FADE_CLEAR2ALPHA		3
#define CEXP_FADE_ALPHA2SOLID		4

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

#define CEXP_WAVETYPE_NONE		0
#define CEXP_WAVETYPE_INC		1
#define	CEXP_WAVETYPE_DEC		2

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

class CClientExplosionSFX : public CClientSFX
{
	public :
		CClientExplosionSFX()
		{	
			VEC_INIT(m_vPos); 
			VEC_INIT(m_vNormal); 
			m_fOffset = 0.0f; 
			m_nType = 0; 
			m_bTriggered = 0;	
			m_hstrSound = DNULL;
		}

		~CClientExplosionSFX()
		{
			if (!g_pServerDE) return;
			if (m_hstrSound)
				g_pServerDE->FreeString(m_hstrSound);
		}

		void Setup(DVector *vPos, DVector *vNormal, DFLOAT fOffset);

		void SetupModel(DVector *vScale1, DVector *vScale2, DFLOAT fDuration, DFLOAT fInitAlpha,
					DBYTE bWaveForm, DBYTE bFade, DBOOL bRandRot, char *szModel, char *szSkin);

		void SetupSprite(DVector *vScale1, DVector *vScale2, DFLOAT fDuration, DFLOAT fInitAlpha,
					DBYTE bWaveForm, DBYTE bFade, DBOOL bAlign, char *szSprite);

		void SetupRing(DVector *vColor, DFLOAT fRadius, DFLOAT fPosRadius, DFLOAT fVelocity,
					DFLOAT fGravity, DDWORD nParticles, DFLOAT fDuration, DFLOAT fInitAlpha,
					DFLOAT fDelay, DBYTE bFade, DBOOL bAlign, char *szParticle);

		void SetupWave(DVector *vScale1, DVector *vScale2, DFLOAT fDuration, DFLOAT fInitAlpha,
					DFLOAT fDelay, DBYTE bWaveForm, DBYTE bFade, DBOOL bAlign, char *szWave);

		void SetupLight(DVector *vColor1, DVector *vColor2, DFLOAT fDuration, DFLOAT fDelay,
					DFLOAT fRadius1, DFLOAT fRadius2);

		void SetupFrag(DVector *vScale, DVector *vRotateMax, DFLOAT fSpread, DFLOAT fDuration,
					DFLOAT fVelocity, DFLOAT fBounceMod, DFLOAT fGravity, DFLOAT fFadeTime,
					DBOOL bRandDir, char *szModel, char *szSkin);

		void SetupFX(DVector *vPos, DVector *vNormal, DDWORD nType);
		void SetupFX();

	protected :

		DDWORD	EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData);
		DDWORD	ObjectMessageFn(HOBJECT hSender, DDWORD messageID, HMESSAGEREAD hRead);
		void	HandleTrigger(HOBJECT hSender, HMESSAGEREAD hRead);
		void	Save(HMESSAGEWRITE hWrite, DDWORD dwSaveFlags);
		void	Load(HMESSAGEREAD hWrite, DDWORD dwLoadFlags);

	private :

		void	ReadProp(ObjectCreateStruct *pStruct);

		//*****	GENERAL VARIABLES *****
		DVector		m_vPos;
		DVector		m_vNormal;
		DFLOAT		m_fOffset;
		DFLOAT		m_fDamage;
		DFLOAT		m_fDamageRadius;
		DDWORD		m_nType;
		HSTRING		m_hstrSound;
//		char		m_szSound[MAX_CS_FILENAME_LEN];
		DBOOL		m_bTriggered;
};

#endif // __CLIENT_EXPLOSION_SFX_H__

⌨️ 快捷键说明

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