hl2_src-leak-2017/src/game/shared/tf/passtime_game_events.h

120 lines
3.3 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef PASSTIME_GAME_EVENTS_H
#define PASSTIME_GAME_EVENTS_H
#ifdef _WIN32
#pragma once
#endif
class IGameEvent;
namespace PasstimeGameEvents
{
// TODO: this was done following valve's style of having different events
// for everything, but these particular events have a lot of overlap and
// might be better implemented as a single "ball event" that has an enum
// specifying what kind it is. It would cut down on the number of strcmp
// calls in the event handling functions. Or maybe we could just not use
// 1000s of strcmps for each event dispatch and use a lookup table of some kind.
//-----------------------------------------------------------------------------
struct BallGet
{
BallGet( IGameEvent *pEvent );
BallGet( int ownerIndex );
void Fire();
static const char *const s_eventName;
static const char *const s_keyOwnerIndex;
int ownerIndex;
};
//-----------------------------------------------------------------------------
struct Score
{
Score( IGameEvent *pEvent );
Score( int scorerIndex, int assisterIndex, int numPoints );
Score( int scorerIndex_, int numPoints_ );
void Fire();
static const char *const s_eventName;
static const char *const s_keyScorerIndex;
static const char *const s_keyAssisterIndex;
static const char *const s_keyNumPoints;
int scorerIndex;
int assisterIndex;
int numPoints;
};
//-----------------------------------------------------------------------------
struct BallFree
{
BallFree( IGameEvent *pEvent );
BallFree();
BallFree( int ownerIndex );
BallFree( int ownerIndex, int attackerIndex );
void Fire();
static const char *const s_eventName;
static const char *const s_keyOwnerIndex;
static const char *const s_keyAttackerIndex;
int ownerIndex;
int attackerIndex;
};
//-----------------------------------------------------------------------------
struct PassCaught
{
PassCaught( IGameEvent *pEvent );
PassCaught();
PassCaught( int passerIndex, int catcherIndex, float dist, float duration );
void Fire();
static const char *const s_eventName;
static const char *const s_keyPasserIndex;
static const char *const s_keyCatcherIndex;
static const char *const s_keyDist;
static const char *const s_keyDuration;
int passerIndex;
int catcherIndex;
float dist;
float duration;
};
//-----------------------------------------------------------------------------
struct BallStolen
{
BallStolen( IGameEvent *pEvent );
BallStolen();
BallStolen( int victimIndex, int attackerIndex );
void Fire();
static const char *const s_eventName;
static const char *const s_keyVictimIndex;
static const char *const s_keyAttackerIndex;
int victimIndex;
int attackerIndex;
};
//-----------------------------------------------------------------------------
struct BallBlocked
{
BallBlocked( IGameEvent *pEvent );
BallBlocked();
BallBlocked( int ownerIndex, int blockerIndex );
void Fire();
static const char *const s_eventName;
static const char *const s_keyOwnerIndex;
static const char *const s_keyBlockerIndex;
int ownerIndex;
int blockerIndex;
};
}
#endif // PASSTIME_GAME_EVENTS_H