📄 gameweapons.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 + -