206 lines
5.1 KiB
C++
206 lines
5.1 KiB
C++
//-----------------------------------------------------------------------------
|
|
//
|
|
// $Logfile:: /Quake 2 Engine/Sin/code/game/magnum.cpp $
|
|
// $Revision:: 46 $
|
|
// $Author:: Markd $
|
|
// $Date:: 11/13/98 3:30p $
|
|
//
|
|
// 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/magnum.cpp $
|
|
//
|
|
// 46 11/13/98 3:30p Markd
|
|
// put in more precaching on weapons
|
|
//
|
|
// 45 10/19/98 12:06a Jimdose
|
|
// made all code use fast checks for inheritance (no text lookups when
|
|
// possible)
|
|
// isSubclassOf no longer requires ::_classinfo()
|
|
// Added Drop
|
|
//
|
|
// 44 10/05/98 10:38p Aldie
|
|
// Fixed rank
|
|
//
|
|
// 43 10/05/98 10:18p Aldie
|
|
// Covnverted over to new silencer methods
|
|
//
|
|
// 42 8/06/98 10:53p Aldie
|
|
// Added weapon tweaks and kickback. Also modified blast radius damage and
|
|
// rocket jumping.
|
|
//
|
|
// 41 8/01/98 3:24p Aldie
|
|
// Added server effects flag for specific weapons
|
|
//
|
|
// 40 8/01/98 3:03p Aldie
|
|
// Client side muzzle flash (dynamic light)
|
|
//
|
|
// 39 7/22/98 9:57p Markd
|
|
// Defined weapon type
|
|
//
|
|
// 38 7/21/98 1:10p Aldie
|
|
// Added meansofdeath to obituaries
|
|
//
|
|
// 37 7/20/98 3:53p Aldie
|
|
// Fixed the icon
|
|
//
|
|
// 36 7/14/98 5:50p Aldie
|
|
// Tweaked the magnum
|
|
//
|
|
// 35 6/25/98 7:31p Aldie
|
|
// Changed the icon
|
|
//
|
|
// 34 6/24/98 1:36p Aldie
|
|
// Implementation of inventory system and picking stuff up
|
|
//
|
|
// 33 6/19/98 9:30p Jimdose
|
|
// Moved gun orientation code to Weapon
|
|
//
|
|
// 32 6/17/98 10:54a Aldie
|
|
// Updated silenced stuff
|
|
//
|
|
// 31 6/15/98 9:09p Aldie
|
|
// Added SilencedBullet class for silencers
|
|
//
|
|
// 30 6/10/98 7:53p Markd
|
|
// reduced time till next attack
|
|
//
|
|
// 29 6/10/98 2:10p Aldie
|
|
// Updated damage function.
|
|
//
|
|
// 28 6/10/98 1:19p Markd
|
|
// Made magnum use 10mm bullets instead of 357
|
|
//
|
|
// 27 6/08/98 8:18p Markd
|
|
// set ammo_clip_size
|
|
//
|
|
// 26 5/08/98 2:56p Markd
|
|
// took out dbshotgn sound
|
|
//
|
|
// 25 4/20/98 1:56p Markd
|
|
// SINED decelration is now in def file
|
|
//
|
|
// 24 4/18/98 3:07p Markd
|
|
// Changed view weapon naming convention
|
|
//
|
|
// 23 4/16/98 7:46p Aldie
|
|
// Updated magnum to 100 bullets temporarily
|
|
//
|
|
// 22 4/09/98 3:28p Jimdose
|
|
// Removed sound from shoot since anim plays it
|
|
//
|
|
// 21 4/07/98 6:43p Jimdose
|
|
// Rewrote weapon code.
|
|
// Added order to rank
|
|
//
|
|
// 20 4/02/98 4:48p Jimdose
|
|
// Balanced for DM
|
|
//
|
|
// 19 3/30/98 9:55p Jimdose
|
|
// Changed location of .def files
|
|
//
|
|
// 18 3/30/98 2:33p Jimdose
|
|
// Moved firing to BulletWeapon to make more general
|
|
// Added Ammo
|
|
// Added world models
|
|
//
|
|
// 17 3/29/98 9:41p Jimdose
|
|
// Reduced the amount of damage bullets do
|
|
//
|
|
// 16 3/27/98 11:03p Jimdose
|
|
// Added muzzle flash
|
|
//
|
|
// 15 3/26/98 8:17p Jimdose
|
|
// Precached sounds
|
|
//
|
|
// 14 3/23/98 1:31p Jimdose
|
|
// Revamped event and command system
|
|
//
|
|
// 13 3/18/98 2:39p Jimdose
|
|
// Added the new model and made work with the new animation system
|
|
//
|
|
// 12 3/05/98 5:44p Aldie
|
|
// Removed gunshot temporarily.
|
|
//
|
|
// 11 3/02/98 8:49p Jimdose
|
|
// Changed the classid parameter of CLASS_DECLARATION to a quoted string so
|
|
// that you could have a NULL classid.
|
|
//
|
|
// 10 2/19/98 2:35p Jimdose
|
|
// Updated to work with Q2 based progs
|
|
//
|
|
// 8 12/11/97 7:41p Markd
|
|
// moved note processing into setmodel
|
|
//
|
|
// 7 12/09/97 7:47p Markd
|
|
// Moved some of the init stuff above the initial init call
|
|
//
|
|
// 6 11/18/97 5:31p Markd
|
|
// Changed Fire to Shoot
|
|
// Got rid of some thinking funciotns
|
|
//
|
|
// 5 10/31/97 4:28p Jimdose
|
|
// Removed redefinition of owner in base class Weapon, so any reference to
|
|
// gunoffset through owner had to use type overriding.
|
|
//
|
|
// 4 10/30/97 6:55p Jimdose
|
|
// Increased the damage for testing
|
|
//
|
|
// 3 10/28/97 8:36p Jimdose
|
|
// Moved model
|
|
//
|
|
// 2 10/24/97 8:13p Jimdose
|
|
// Created file.
|
|
//
|
|
// DESCRIPTION:
|
|
// Magnum.
|
|
//
|
|
|
|
#include "g_local.h"
|
|
#include "magnum.h"
|
|
|
|
CLASS_DECLARATION( BulletWeapon, Magnum, "weapon_magnum" );
|
|
|
|
ResponseDef Magnum::Responses[] =
|
|
{
|
|
{ &EV_Weapon_Shoot, ( Response )Magnum::Shoot },
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
Magnum::Magnum()
|
|
{
|
|
SetModels( "magnum.def", "view_magnum.def" );
|
|
SetAmmo( "Bullet10mm", 1, 100 );
|
|
SetRank( 20, 20 );
|
|
SetType( WEAPON_1HANDED );
|
|
modelIndex( "10mm.def" );
|
|
silenced = true;
|
|
}
|
|
|
|
void Magnum::Shoot
|
|
(
|
|
Event *ev
|
|
)
|
|
|
|
{
|
|
NextAttack( 0.20 );
|
|
FireBullets( 1, "10 10 10", 12, 24, DAMAGE_BULLET, MOD_MAGNUM, false );
|
|
}
|
|
|
|
qboolean Magnum::Drop
|
|
(
|
|
void
|
|
)
|
|
|
|
{
|
|
// Don't leave magnums around
|
|
if ( owner && owner->deadflag && deathmatch->value )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return BulletWeapon::Drop();
|
|
}
|