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

📄 gameweapons.h

📁 Blood 2全套源码
💻 H
字号:
//*****************************************************************************//

#ifndef __GAMEWEAPONS_H__
#define __GAMEWEAPONS_H__

//*****************************************************************************//

#include "ViewWeapon.h"

//*****************************************************************************//

class CBeretta : public CViewWeapon
{
	public:
		CBeretta() : CViewWeapon()		{}
};

//*****************************************************************************//

class CShotgun : public CViewWeapon
{
	public:
		CShotgun() : CViewWeapon() 
		{
			m_nOrigFireAnim		= (DDWORD)-1;
			m_bSwitchBarrels	= DFALSE;
			m_bSecondBarrel		= DFALSE;
		}

		void		UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);

	private:
		char*		m_szShotgunShellFilename;
		DDWORD		m_nOrigFireAnim;
		DBOOL		m_bSwitchBarrels;	
		DBOOL		m_bSecondBarrel;
};

//*****************************************************************************//

#ifdef _ADD_ON

class CCombatShotgun : public CViewWeapon
{
	public:
		CCombatShotgun() : CViewWeapon() 	{}

		DBYTE GetAmmoType(DBOOL bAltFire = DFALSE) 
		{ 
			if (!bAltFire)		return m_nAmmoType;
				else			return AMMO_DIEBUGDIE;
		}

	private:
};

#endif

//*****************************************************************************//

class CSniperRifle : public CViewWeapon
{
	public:
		CSniperRifle() : CViewWeapon()		{}
};

//*****************************************************************************//

class CAssaultRifle : public CViewWeapon
{
	public:
		CAssaultRifle() : CViewWeapon()		{}

		DBYTE GetAmmoType(DBOOL bAltFire = DFALSE) 
		{ 
			if (!bAltFire)		return m_nAmmoType;
				else			return AMMO_DIEBUGDIE;
		}
};

//*****************************************************************************//

class CSubMachineGun : public CViewWeapon
{
	public:
		CSubMachineGun() : CViewWeapon()	{}
};

//*****************************************************************************//

class CFlareGun : public CViewWeapon
{
	public:
		CFlareGun() : CViewWeapon()		{}
};

//*****************************************************************************//

class CHowitzer : public CViewWeapon
{
	public:
		CHowitzer() : CViewWeapon()		{}
};

//*****************************************************************************//

class CBugSpray : public CViewWeapon
{
	public:
		CBugSpray() : CViewWeapon()		{}
};

//*****************************************************************************//

class CNapalmCannon : public CViewWeapon
{
	public:
		CNapalmCannon() : CViewWeapon()		{}
};

//*****************************************************************************//

class CMiniGun : public CViewWeapon
{
	public:
		CMiniGun() : CViewWeapon() 
			{ m_bEjectShell = DFALSE; }

	protected:
		// Stub function so minigun doesn't make impact sprites.
		void AddImpact(DVector vPos, DVector vFire, DVector vNormal) {}
};

//*****************************************************************************//

#define		VOODOO_WONKY_DIST		3000.0f
#define		VOODOO_WONKY_FOV		0.65f
#define		VOODOO_PRIMARY_FOV		0.9f

//*****************************************************************************//

class CVoodooDoll : public CViewWeapon
{
	public:
		CVoodooDoll() : CViewWeapon()
		{
			m_nFlags = 0;
			m_nHitType = 0;
			m_nHitFX = 0;
		}

		void	UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);
		DBOOL	FireMsgSpecialData(HMESSAGEWRITE &hWrite, DBYTE &byFlags);

	private:
		int		m_nHitType;
		int		m_nHitFX;
};

//*****************************************************************************//

class COrb : public CViewWeapon
{
	public:
		COrb() : CViewWeapon()	{}

		void UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);
};

//*****************************************************************************//

#define		DEATHRAY_BEAM_DIST		250.0f
#define		DEATHRAY_DAMAGE_DELAY	0.5f
#define		DEATHRAY_BEAM_FOV		0.9f

//*****************************************************************************//

class CDeathRay : public CViewWeapon
{
	public:
		CDeathRay() : CViewWeapon()
			{ m_fLastDamageTime = 0.0f; }

	private:
		DFLOAT	m_fLastDamageTime;
};

//*****************************************************************************//

class CLifeLeech : public CViewWeapon
{
	public:
		CLifeLeech() : CViewWeapon()
			{ m_nFlags = 0; }

		void UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);
};

//*****************************************************************************//

#ifdef _ADD_ON

class CFlayer : public CViewWeapon
{
	public:
		CFlayer() : CViewWeapon()	{}
};

#endif

//*****************************************************************************//

class CTeslaCannon : public CViewWeapon
{
	public:
		CTeslaCannon() : CViewWeapon()
			{ bSprite = DNULL; numAltFires = 0; }

		void	UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);
		DBOOL	FireMsgSpecialData(HMESSAGEWRITE &hWrite, DBYTE &byFlags);

	protected:
		DBOOL		bSprite;
		DDWORD		numAltFires;
};

//*****************************************************************************//

class CSingularity : public CViewWeapon
{
	public:
		CSingularity() : CViewWeapon()	{}

		void		UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);

	protected:
		DBOOL		bSprite;
};

//*****************************************************************************//

class CMelee : public CViewWeapon
{
	public:
		CMelee() : CViewWeapon()
			{ m_nDamageType = DAMAGE_TYPE_MELEE; }

		void	UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);
};



#ifndef _DEMO	// Greg 10/28 - disable bombs for demo


//*****************************************************************************//
// INVENTORY WEAPONS
//*****************************************************************************//

#define		BOMBS_MAX_HOLD_TIME		1.25f
#define		BOMBS_MAX_DIST_TIME		0.75f
#define		BOMBS_MIN_VELOCITY		250.0f
#define		BOMBS_VEL_INCREASE		1500.0f


//*****************************************************************************//

class CWeapProximityBomb : public CViewWeapon
{
	public:
		CWeapProximityBomb() : CViewWeapon()
			{ m_nFlags = 0; }
		void	UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);
		DBOOL	FireMsgSpecialData(HMESSAGEWRITE &hWrite, DBYTE &byFlags);

	private:
		DFLOAT		m_fStartTime;
		DFLOAT		m_fTimeHeld;
};

//*****************************************************************************//

class CWeapRemoteBomb : public CViewWeapon
{
	public:
		CWeapRemoteBomb() : CViewWeapon()
		{
			m_bTriggerBomb = DFALSE;
			m_nFlags = 0;
		}
		void	UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);
		DBOOL	FireMsgSpecialData(HMESSAGEWRITE &hWrite, DBYTE &byFlags);

	private:
		DBOOL		m_bTriggerBomb;
		DFLOAT		m_fStartTime;
		DFLOAT		m_fTimeHeld;
};

//*****************************************************************************//

class CWeapTimeBomb : public CViewWeapon
{
	public:
		CWeapTimeBomb() : CViewWeapon()
			{ m_nFlags = 0; }
		void	UpdateFiringState(DVector *firedPos, DRotation *rotP, DBOOL bFiring, DBOOL bAltFiring);
		DBOOL	FireMsgSpecialData(HMESSAGEWRITE &hWrite, DBYTE &byFlags);

	private:
		DFLOAT		m_fStartTime;
		DFLOAT		m_fTimeHeld;
};

//*****************************************************************************//

#endif		// Greg 10/28 - disable bombs for demo


#endif // __GAMEWEAPONS_H__

⌨️ 快捷键说明

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