You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.3 KiB
119 lines
3.3 KiB
//========= 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
|
|
|