|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "passtime_game_events.h"
#include "igameevents.h"
#include "tier0/memdbgon.h"
//-----------------------------------------------------------------------------
using namespace PasstimeGameEvents;
//-----------------------------------------------------------------------------
namespace { //-----------------------------------------------------------------------------
template<class T> IGameEvent* CreateEvent() { IGameEvent *pEvent = gameeventmanager->CreateEvent( T::s_eventName ); Assert( pEvent ); return pEvent; }
//-----------------------------------------------------------------------------
template<class T> bool IsType( IGameEvent *pEvent ) { return FStrEq( pEvent->GetName(), T::s_eventName ); } }
//-----------------------------------------------------------------------------
const char *const BallGet::s_eventName = "pass_get"; const char *const BallGet::s_keyOwnerIndex = "owner";
BallGet::BallGet( IGameEvent *pEvent ) : ownerIndex( pEvent->GetInt( s_keyOwnerIndex ) ) { Assert( IsType<BallGet>( pEvent ) ); }
BallGet::BallGet( int ownerIndex_ ) : ownerIndex( ownerIndex_ ) { }
void BallGet::Fire() { if ( IGameEvent *pEvent = CreateEvent<BallGet>() ) { pEvent->SetInt( s_keyOwnerIndex, ownerIndex ); gameeventmanager->FireEvent(pEvent); } }
//-----------------------------------------------------------------------------
const char *const Score::s_eventName = "pass_score"; const char *const Score::s_keyScorerIndex = "scorer"; const char *const Score::s_keyAssisterIndex = "assister"; const char *const Score::s_keyNumPoints = "points";
Score::Score( IGameEvent *pEvent ) : scorerIndex( pEvent->GetInt( s_keyScorerIndex ) ) , assisterIndex( pEvent->GetInt( s_keyAssisterIndex ) ) , numPoints( pEvent->GetInt( s_keyNumPoints ) ) { Assert( IsType<Score>( pEvent ) ); }
Score::Score( int scorerIndex_, int assisterIndex_, int numPoints_ ) : scorerIndex( scorerIndex_ ) , assisterIndex( assisterIndex_ ) , numPoints( numPoints_ ) { }
Score::Score( int scorerIndex_, int numPoints_ ) : scorerIndex( scorerIndex_ ) , assisterIndex( -1 ) , numPoints( numPoints_ ) { }
void Score::Fire() { if ( IGameEvent *pEvent = CreateEvent<Score>() ) { pEvent->SetInt( s_keyScorerIndex, scorerIndex ); pEvent->SetInt( s_keyAssisterIndex, assisterIndex ); pEvent->SetInt( s_keyNumPoints, numPoints ); gameeventmanager->FireEvent( pEvent ); } }
//-----------------------------------------------------------------------------
const char *const BallFree::s_eventName = "pass_free"; const char *const BallFree::s_keyOwnerIndex = "owner"; const char *const BallFree::s_keyAttackerIndex = "attacker";
BallFree::BallFree( IGameEvent *pEvent ) : ownerIndex( pEvent->GetInt( s_keyOwnerIndex ) ) , attackerIndex( pEvent->GetInt( s_keyAttackerIndex ) ) { Assert( IsType<BallFree>( pEvent ) ); }
BallFree::BallFree() : ownerIndex( -1 ) , attackerIndex( -1 ) { }
BallFree::BallFree( int ownerIndex_ ) : ownerIndex( ownerIndex_ ) , attackerIndex( -1 ) { }
BallFree::BallFree( int ownerIndex_, int attackerIndex_ ) : ownerIndex( ownerIndex_ ) , attackerIndex( attackerIndex_ ) { }
void BallFree::Fire() { if ( IGameEvent *pEvent = CreateEvent<BallFree>() ) { pEvent->SetInt( s_keyOwnerIndex, ownerIndex ); pEvent->SetInt( s_keyAttackerIndex, attackerIndex ); gameeventmanager->FireEvent( pEvent ); } }
//-----------------------------------------------------------------------------
const char *const PassCaught::s_eventName = "pass_pass_caught"; const char *const PassCaught::s_keyPasserIndex = "passer"; const char *const PassCaught::s_keyCatcherIndex = "catcher"; const char *const PassCaught::s_keyDist = "dist"; const char *const PassCaught::s_keyDuration = "duration";
PassCaught::PassCaught( IGameEvent *pEvent ) : passerIndex( pEvent->GetInt( s_keyPasserIndex ) ) , catcherIndex( pEvent->GetInt( s_keyCatcherIndex ) ) , dist( pEvent->GetFloat( s_keyDist ) ) , duration( pEvent->GetFloat( s_keyDuration ) ) { Assert( IsType<PassCaught>( pEvent ) ); }
PassCaught::PassCaught() : passerIndex( -1 ) , catcherIndex( -1 ) , dist( 0 ) , duration( 0 ) { }
PassCaught::PassCaught( int passerIndex_, int catcherIndex_, float dist_, float duration_ ) : passerIndex( passerIndex_ ) , catcherIndex( catcherIndex_ ) , dist( dist_ ) , duration( duration_ ) { }
void PassCaught::Fire() { if ( IGameEvent *pEvent = CreateEvent<PassCaught>() ) { pEvent->SetInt( s_keyPasserIndex, passerIndex ); pEvent->SetInt( s_keyCatcherIndex, catcherIndex ); pEvent->SetFloat( s_keyDist, dist ); pEvent->SetFloat( s_keyDuration, duration ); gameeventmanager->FireEvent( pEvent ); } }
//-----------------------------------------------------------------------------
const char *const BallStolen::s_eventName = "pass_ball_stolen"; const char *const BallStolen::s_keyVictimIndex = "victim"; const char *const BallStolen::s_keyAttackerIndex = "attacker";
BallStolen::BallStolen( IGameEvent *pEvent ) : victimIndex( pEvent->GetInt( s_keyVictimIndex ) ) , attackerIndex( pEvent->GetInt( s_keyAttackerIndex ) ) { Assert( IsType<BallStolen>( pEvent ) ); }
BallStolen::BallStolen() : victimIndex( -1 ) , attackerIndex( -1 ) { }
BallStolen::BallStolen( int victimIndex_, int attackerIndex_ ) : victimIndex( victimIndex_ ) , attackerIndex( attackerIndex_ ) { }
void BallStolen::Fire() { if ( IGameEvent *pEvent = CreateEvent<BallStolen>() ) { pEvent->SetInt( s_keyVictimIndex, victimIndex ); pEvent->SetInt( s_keyAttackerIndex, attackerIndex ); gameeventmanager->FireEvent( pEvent ); } }
//-----------------------------------------------------------------------------
const char *const BallBlocked::s_eventName = "pass_ball_blocked"; const char *const BallBlocked::s_keyOwnerIndex = "owner"; const char *const BallBlocked::s_keyBlockerIndex = "blocker";
BallBlocked::BallBlocked( IGameEvent *pEvent ) : ownerIndex( pEvent->GetInt( s_keyOwnerIndex ) ) , blockerIndex( pEvent->GetInt( s_keyBlockerIndex ) ) { Assert( IsType<BallBlocked>( pEvent ) ); }
BallBlocked::BallBlocked() : ownerIndex( -1 ) , blockerIndex( -1 ) { }
BallBlocked::BallBlocked( int ownerIndex_, int blockerIndex_ ) : ownerIndex( ownerIndex_ ) , blockerIndex( blockerIndex_ ) { }
void BallBlocked::Fire() { if ( IGameEvent *pEvent = CreateEvent<BallBlocked>() ) { pEvent->SetInt( s_keyOwnerIndex, ownerIndex ); pEvent->SetInt( s_keyBlockerIndex, blockerIndex ); gameeventmanager->FireEvent( pEvent ); } }
|