sin-sdk/rocketlauncher.h

129 lines
3.1 KiB
C++

//-----------------------------------------------------------------------------
//
// $Logfile:: /Quake 2 Engine/Sin/code/game/rocketlauncher.h $
// $Revision:: 20 $
// $Author:: Markd $
// $Date:: 9/22/98 12:49p $
//
// 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/rocketlauncher.h $
//
// 20 9/22/98 12:49p Markd
// Put in archive and unarchive functions
//
// 19 9/21/98 4:50p Markd
// Fixed projectile owner
//
// 18 8/29/98 5:27p Markd
// added specialfx, replaced misc with specialfx where appropriate
//
// 17 7/23/98 4:39p Markd
// Got rid of smoke trail
//
// 16 4/28/98 5:33p Jimdose
// Got rid of unused vars.
//
// 15 4/04/98 6:12p Jimdose
// Changed Rocket into a projectile
//
// 14 3/30/98 2:36p Jimdose
// Changed from subclass of Magnum to subclass of BulletWeapon
//
// 13 3/28/98 8:55p Jimdose
// Testing smoke trail
//
// 12 3/23/98 1:33p Jimdose
// Revamped event and command system
//
// 11 3/18/98 7:20p Jimdose
// Made work with new animation system
// added model
//
// 10 3/02/98 8:49p Jimdose
// Changed CLASS_PROTOTYPE to only take the classname
//
// 9 2/19/98 2:35p Jimdose
// Updated to work with Q2 based progs
//
// 7 12/15/97 12:48p Markd
// added flydir
//
// 6 12/14/97 5:34p Markd
// Tweaked Rocket
//
// 5 12/13/97 5:42p Markd
// Added acceleration to RocketLauncher
//
// 4 12/12/97 2:11p Markd
// Changed Rocket Launcher to new type
//
// 3 10/27/97 2:59p Jimdose
// Removed dependency on quakedef.h
//
// 2 9/26/97 4:46p Jimdose
// Added standard Ritual header
//
// DESCRIPTION:
// Standard rocketlauncher, similar to the Quake and Doom rocketlaunchers.
//
#ifndef __ROCKETLAUNCHER_H__
#define __ROCKETLAUNCHER_H__
#include "g_local.h"
#include "item.h"
#include "weapon.h"
#include "specialfx.h"
class EXPORT_FROM_DLL Rocket : public Projectile
{
private:
float speed;
public:
CLASS_PROTOTYPE( Rocket );
void Explode( Event *ev );
void Setup( Entity *owner, Vector pos, Vector dir );
virtual void Archive( Archiver &arc );
virtual void Unarchive( Archiver &arc );
};
inline EXPORT_FROM_DLL void Rocket::Archive
(
Archiver &arc
)
{
Projectile::Archive( arc );
arc.WriteFloat( speed );
}
inline EXPORT_FROM_DLL void Rocket::Unarchive
(
Archiver &arc
)
{
Projectile::Unarchive( arc );
arc.ReadFloat( &speed );
}
class EXPORT_FROM_DLL RocketLauncher : public Weapon
{
public:
CLASS_PROTOTYPE( RocketLauncher );
RocketLauncher();
virtual void Shoot( Event *ev );
};
#endif /* rocketlauncher.h */