sin-2015/bullet.h
1999-04-22 00:00:00 +00:00

128 lines
3.3 KiB
C++

//-----------------------------------------------------------------------------
//
// $Logfile:: /Quake 2 Engine/Sin/code/game/bullet.h $
// $Revision:: 22 $
// $Author:: Markd $
// $Date:: 2/26/99 5:54p $
//
// Copyright (C) 1997 by Ritual Entertainment, Inc.
// All rights reserved.
//
// This source is may not be distributed and/or modified without
// expressly written permission by Ritual Entertainment, Inc.
//
// $Log:: /Quake 2 Engine/Sin/code/game/bullet.h $
//
// 22 2/26/99 5:54p Markd
// Re-arranged for better sub-classing
//
// 21 8/06/98 10:53p Aldie
// Added weapon tweaks and kickback. Also modified blast radius damage and
// rocket jumping.
//
// 20 8/01/98 3:24p Aldie
// Added server effects flag for specific weapons
//
// 19 7/22/98 10:41p Aldie
// Fixed tracers
//
// 18 7/21/98 1:10p Aldie
// Added meansofdeath to obituaries
//
// 17 6/10/98 2:10p Aldie
// Updated damage function.
//
// 16 5/05/98 7:38p Markd
// Got rid of RicochetSound from header
//
// 15 5/02/98 8:44p Markd
// Got rid of RicochetSound, modified TraceAttack
//
// 14 4/02/98 4:51p Jimdose
// Changed TraceAttack
//
// 13 3/30/98 2:38p Jimdose
// Moved firing to BulletWeapon to make more general
// Added Ammo
// Added world models
//
// 12 3/26/98 8:10p Jimdose
// Added constructor
//
// 11 3/23/98 1:33p Jimdose
// Revamped event and command system
//
// 10 3/05/98 6:06p Aldie
// Added ricochet sounds.
//
// 9 3/02/98 8:49p Jimdose
// Changed CLASS_PROTOTYPE to only take the classname
//
// 8 2/19/98 2:35p Jimdose
// Updated to work with Q2 based progs
//
// 6 12/11/97 3:31p Markd
// Removed SpawnBlood
//
// 5 11/18/97 5:27p Markd
// Commented out ShotGun
//
// 4 10/31/97 7:18p Markd
// Added bloodspray
//
// 3 10/27/97 2:48p Jimdose
// Removed dependency on quakedef.h
//
// 2 9/26/97 4:44p Jimdose
// Added standard Ritual header
//
// DESCRIPTION:
// Base class for all bullet (hitscan) weapons. Includes definition for shotgun.
//
#ifndef __BULLET_H__
#define __BULLET_H__
#include "g_local.h"
#include "item.h"
#include "weapon.h"
#define MAX_RICOCHETS 10
class EXPORT_FROM_DLL BulletWeapon : public Weapon
{
protected:
qboolean damagedtarget; //###
virtual void TraceAttack( Vector start, Vector end, int damage, trace_t *trace, int numricochets, int kick, int dflags, int meansofdeath, qboolean server_effects );
virtual void FireTracer( void );
public:
CLASS_PROTOTYPE( BulletWeapon );
BulletWeapon();
virtual void FireBullets( int numbullets, Vector spread, int mindamage, int maxdamage, int dflags, int meansofdeath, qboolean server_effects );
//###
virtual void Archive(Archiver &arc);
virtual void Unarchive(Archiver &arc);
//###
};
//###
inline EXPORT_FROM_DLL void BulletWeapon::Archive (Archiver &arc)
{
Weapon::Archive( arc );
arc.WriteBoolean(damagedtarget);
}
inline EXPORT_FROM_DLL void BulletWeapon::Unarchive (Archiver &arc)
{
Weapon::Unarchive( arc );
arc.ReadBoolean(&damagedtarget);
}
//###
#endif /* BULLET.h */