96 lines
2.4 KiB
C++
96 lines
2.4 KiB
C++
|
//-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// $Logfile:: /Quake 2 Engine/Sin/code/game/silencer.cpp $
|
||
|
// $Revision:: 10 $
|
||
|
// $Author:: Jimdose $
|
||
|
// $Date:: 10/19/98 12:07a $
|
||
|
//
|
||
|
// 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/silencer.cpp $
|
||
|
//
|
||
|
// 10 10/19/98 12:07a Jimdose
|
||
|
// made all code use fast checks for inheritance (no text lookups when
|
||
|
// possible)
|
||
|
// isSubclassOf no longer requires ::_classinfo()
|
||
|
//
|
||
|
// 9 10/07/98 9:06p Aldie
|
||
|
// Changed silencer model
|
||
|
//
|
||
|
// 8 10/05/98 10:19p Aldie
|
||
|
// Covnverted over to new silencer methods
|
||
|
//
|
||
|
// 7 9/21/98 5:01p Markd
|
||
|
// Took out unused variable
|
||
|
//
|
||
|
// 6 6/25/98 8:47p Markd
|
||
|
// Added keyed items for Triggers, Rewrote Item class, rewrote every pickup
|
||
|
// method
|
||
|
//
|
||
|
// 5 6/24/98 1:37p Aldie
|
||
|
// Implementation of inventory system and picking stuff up
|
||
|
//
|
||
|
// 4 6/19/98 6:37p Aldie
|
||
|
// Using silencer for inventory test
|
||
|
//
|
||
|
// 3 6/18/98 9:26p Aldie
|
||
|
// Made silencer a test for inventory.
|
||
|
//
|
||
|
// 2 6/15/98 9:10p Aldie
|
||
|
// First version of silenced weapons
|
||
|
//
|
||
|
// DESCRIPTION:
|
||
|
// Silencer Powerup
|
||
|
|
||
|
#include "silencer.h"
|
||
|
#include "sentient.h"
|
||
|
|
||
|
CLASS_DECLARATION( InventoryItem, Silencer, "powerups_silencer" )
|
||
|
|
||
|
ResponseDef Silencer::Responses[] =
|
||
|
{
|
||
|
{ &EV_Trigger_Effect, ( Response )Silencer::PickupSilencer },
|
||
|
{ NULL, NULL }
|
||
|
};
|
||
|
|
||
|
Silencer::Silencer
|
||
|
(
|
||
|
)
|
||
|
|
||
|
{
|
||
|
setModel( "silencer.def" );
|
||
|
icon_name = "i_silencer";
|
||
|
icon_index = gi.imageindex( icon_name.c_str() );
|
||
|
Set( 1 );
|
||
|
}
|
||
|
|
||
|
Silencer::~Silencer()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void Silencer::PickupSilencer
|
||
|
(
|
||
|
Event *ev
|
||
|
)
|
||
|
|
||
|
{
|
||
|
Sentient *sen;
|
||
|
Entity *other;
|
||
|
|
||
|
other = ev->GetEntity( 1 );
|
||
|
if ( ItemPickup( other ) )
|
||
|
{
|
||
|
if ( other->isSubclassOf( Sentient ) )
|
||
|
{
|
||
|
sen = ( Sentient * )other;
|
||
|
// Make the user lower and raise the weapon so that the silencer will attach
|
||
|
sen->UpdateSilencedWeapons();
|
||
|
|
||
|
sen->flags |= FL_SILENCER;
|
||
|
}
|
||
|
}
|
||
|
}
|