sin-sdk/pulserifle.h

111 lines
2.8 KiB
C++

//-----------------------------------------------------------------------------
//
// $Logfile:: /Quake 2 Engine/Sin/code/game/pulserifle.h $
// $Revision:: 14 $
// $Author:: Markd $
// $Date:: 10/09/98 11:56p $
//
// Copyright (C) 1998 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/pulserifle.h $
//
// 14 10/09/98 11:56p Markd
// Added GenericPulseRifle
//
// 13 9/29/98 11:46p Aldie
// New effects
//
// 12 9/22/98 12:49p Markd
// Put in archive and unarchive functions
//
// 11 8/29/98 5:27p Markd
// added specialfx, replaced misc with specialfx where appropriate
//
// 10 8/18/98 8:13p Aldie
// Added dual mode weapons to base class
//
// 9 6/17/98 5:42p Aldie
// Made beam do a trace attack
//
// 8 6/15/98 10:40a Aldie
// New version of pulserifle
//
// 7 5/13/98 6:22p Markd
// Added Beam pointer
//
// 6 3/30/98 2:36p Jimdose
// Changed from subclass of Magnum to subclass of BulletWeapon
//
// 5 3/28/98 8:55p Jimdose
// Created file
//
// DESCRIPTION:
// Pulse rifle
//
#ifndef __PULSERIFLE_H__
#define __PULSERIFLE_H__
#include "g_local.h"
#include "item.h"
#include "weapon.h"
#include "bullet.h"
#include "specialfx.h"
class EXPORT_FROM_DLL PulseRifle : public BulletWeapon
{
int beam_modelindex;
public:
CLASS_PROTOTYPE( PulseRifle );
PulseRifle();
virtual void Shoot( Event *ev );
void TraceAttack( Vector start,
Vector end,
int damage,
trace_t *trace,
int numricochets,
int kick,
int dflags );
void PulseExplosion(trace_t *trace);
virtual void Archive( Archiver &arc );
virtual void Unarchive( Archiver &arc );
};
inline EXPORT_FROM_DLL void PulseRifle::Archive
(
Archiver &arc
)
{
BulletWeapon::Archive( arc );
arc.WriteInteger( beam_modelindex );
}
inline EXPORT_FROM_DLL void PulseRifle::Unarchive
(
Archiver &arc
)
{
BulletWeapon::Unarchive( arc );
arc.ReadInteger( &beam_modelindex );
}
class EXPORT_FROM_DLL GenericPulseRifle : public PulseRifle
{
public:
CLASS_PROTOTYPE( GenericPulseRifle );
GenericPulseRifle();
};
#endif /* pulserifle.h */