summaryrefslogtreecommitdiff
path: root/game/shared/tf/passtime_game_events.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/tf/passtime_game_events.h')
-rw-r--r--game/shared/tf/passtime_game_events.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/game/shared/tf/passtime_game_events.h b/game/shared/tf/passtime_game_events.h
new file mode 100644
index 0000000..d788a57
--- /dev/null
+++ b/game/shared/tf/passtime_game_events.h
@@ -0,0 +1,119 @@
+//========= 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