//----------------------------------------------------------------------------- // // $Logfile:: /Quake 2 Engine/Sin/code/game/testweapon.cpp $ // $Revision:: 5 $ // $Author:: Jimdose $ // $Date:: 6/19/98 9:30p $ // // 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/testweapon.cpp $ // // 5 6/19/98 9:30p Jimdose // Moved gun orientation code to Weapon // // 4 5/25/98 6:47p Jimdose // Made animateframe, prethink and posthink into functions built into the base // entity class // // 3 5/24/98 1:04a Jimdose // viewmodel and worldmodel are now str objects // // 2 4/14/98 9:58p Jimdose // Created file // // 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 ); }