sin-2015/testweapon.cpp

88 lines
1.5 KiB
C++
Raw Normal View History

1999-04-22 00:00:00 +00:00
// 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.
//
// DESCRIPTION:
// Weapon for testing view models
//
#include "g_local.h"
#include "testweapon.h"
cvar_t *gun_model;
cvar_t *gun_wmodel;
CLASS_DECLARATION( Weapon, TestWeapon, NULL );
ResponseDef TestWeapon::Responses[] =
{
{ &EV_Weapon_Shoot, ( Response )TestWeapon::Shoot },
{ &EV_Weapon_DoneFiring, ( Response )TestWeapon::Done },
{ NULL, NULL }
};
TestWeapon::TestWeapon()
{
char *wmodel;
char *model;
gun_model = gi.cvar ("w_model", "magnum.def", 0 );
gun_wmodel = gi.cvar ("ww_model", "magnum_w.def", 0 );
model = gun_model->string;
wmodel = gun_wmodel->string;
SetModels( wmodel, model );
SetAmmo( "Bullet357", 0, 0 );
SetRank( 0, 0 );
flags |= FL_PRETHINK;
}
void TestWeapon::Prethink
(
void
)
{
char *wmodel;
char *model;
if ( stricmp( gun_model->string, viewmodel.c_str() ) ||
stricmp( gun_wmodel->string, worldmodel.c_str() ) )
{
model = gun_model->string;
wmodel = gun_wmodel->string;
SetModels( wmodel, model );
}
}
void TestWeapon::Shoot
(
Event *ev
)
{
assert( owner );
if ( !owner )
{
return;
}
// Long attack since the animation will control it
NextAttack( 1 );
}
void TestWeapon::Done
(
Event *ev
)
{
NextAttack( 0 );
Weapon::DoneFiring( ev );
}