/*** * * Copyright (c) 1996-2001, Valve LLC. All rights reserved. * * This product contains software technology licensed from Id * Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. * All Rights Reserved. * * Use, distribution, and modification of this source code and/or resulting * object code is restricted to non-commercial enhancements to products from * Valve LLC. All other use, distribution, or modification is prohibited * without written permission from Valve LLC. * ****/ #include "../hud.h" #include "../cl_util.h" #include "event_api.h" extern "C" { // Events void EV_BerettaShoot (struct event_args_s *args); void EV_ColtShoot (struct event_args_s *args); void EV_DeagleShoot (struct event_args_s *args); void EV_RugerShoot (struct event_args_s *args); void EV_HandcannonShoot(struct event_args_s *args); void EV_SawedOffShoot (struct event_args_s *args); void EV_MossbergShoot (struct event_args_s *args); void EV_WinchesterShoot(struct event_args_s *args); void EV_Smg9Shoot (struct event_args_s *args); void EV_FnFalShoot (struct event_args_s *args); void EV_TommyGunShoot (struct event_args_s *args); void EV_JackHammerShoot(struct event_args_s *args); void EV_G11Shoot (struct event_args_s *args); void EV_BoltRifleShoot (struct event_args_s *args); void EV_StenShoot (struct event_args_s *args); void EV_MolotovCocktail(struct event_args_s *args); void EV_FragGrenade (struct event_args_s *args); void EV_Pipebomb (struct event_args_s *args); void EV_CombatKnife (struct event_args_s *args); void EV_BaseballBat (struct event_args_s *args); void EV_SledgeHammer (struct event_args_s *args); void EV_Katana (struct event_args_s *args); void EV_Spear (struct event_args_s *args); void EV_CattleProd (struct event_args_s *args); void EV_AkimboBerettas (struct event_args_s *args); void EV_AkimboColts (struct event_args_s *args); void EV_AkimboDeagles (struct event_args_s *args); void EV_AkimboSawedOffs(struct event_args_s *args); } /* ====================== Game_HookEvents Associate script file name with callback functions. Callback's must be extern "C" so the engine doesn't get confused about name mangling stuff. Note that the format is always the same. Of course, a clever mod team could actually embed parameters, behavior into the actual .sc files and create a .sc file parser and hook their functionality through that.. i.e., a scripting system. That was what we were going to do, but we ran out of time...oh well. ====================== */ void Game_HookEvents( void ) { gEngfuncs.pfnHookEvent( "events/beretta.sc", EV_BerettaShoot ); gEngfuncs.pfnHookEvent( "events/colt.sc", EV_ColtShoot ); gEngfuncs.pfnHookEvent( "events/deagle.sc", EV_DeagleShoot ); gEngfuncs.pfnHookEvent( "events/ruger.sc", EV_RugerShoot ); gEngfuncs.pfnHookEvent( "events/handcannon.sc", EV_HandcannonShoot ); gEngfuncs.pfnHookEvent( "events/sawedoff.sc", EV_SawedOffShoot ); gEngfuncs.pfnHookEvent( "events/mossberg.sc", EV_MossbergShoot ); gEngfuncs.pfnHookEvent( "events/winchester.sc", EV_WinchesterShoot ); gEngfuncs.pfnHookEvent( "events/smg9.sc", EV_Smg9Shoot ); gEngfuncs.pfnHookEvent( "events/fnfal.sc", EV_FnFalShoot ); gEngfuncs.pfnHookEvent( "events/tommygun.sc", EV_TommyGunShoot ); gEngfuncs.pfnHookEvent( "events/jackhammer.sc", EV_JackHammerShoot ); gEngfuncs.pfnHookEvent( "events/g11.sc", EV_G11Shoot ); gEngfuncs.pfnHookEvent( "events/boltrifle.sc", EV_BoltRifleShoot ); gEngfuncs.pfnHookEvent( "events/sten.sc", EV_StenShoot ); gEngfuncs.pfnHookEvent( "events/molotovcocktail.sc", EV_MolotovCocktail ); gEngfuncs.pfnHookEvent( "events/fraggrenade.sc", EV_FragGrenade ); gEngfuncs.pfnHookEvent( "events/pipebomb.sc", EV_Pipebomb ); gEngfuncs.pfnHookEvent( "events/combatknife.sc", EV_CombatKnife ); gEngfuncs.pfnHookEvent( "events/baseballbat.sc", EV_BaseballBat ); gEngfuncs.pfnHookEvent( "events/sledgehammer.sc", EV_SledgeHammer ); gEngfuncs.pfnHookEvent( "events/katana.sc", EV_Katana ); gEngfuncs.pfnHookEvent( "events/spear.sc", EV_Spear ); gEngfuncs.pfnHookEvent( "events/cattleprod.sc", EV_CattleProd ); gEngfuncs.pfnHookEvent( "events/akimboberettas.sc", EV_AkimboBerettas ); gEngfuncs.pfnHookEvent( "events/akimbocolts.sc", EV_AkimboColts ); gEngfuncs.pfnHookEvent( "events/akimbodeagles.sc", EV_AkimboDeagles ); gEngfuncs.pfnHookEvent( "events/akimbosawedoffs.sc", EV_AkimboSawedOffs ); }