summaryrefslogtreecommitdiff
path: root/game/server/tf2/order_events.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/server/tf2/order_events.h')
-rw-r--r--game/server/tf2/order_events.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/game/server/tf2/order_events.h b/game/server/tf2/order_events.h
new file mode 100644
index 0000000..20d0864
--- /dev/null
+++ b/game/server/tf2/order_events.h
@@ -0,0 +1,110 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef TF_ORDER_EVENTS_H
+#define TF_ORDER_EVENTS_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "tf_player.h"
+
+
+//-----------------------------------------------------------------------------
+// ORDER EVENTS
+//-----------------------------------------------------------------------------
+
+typedef enum
+{
+ ORDER_EVENT_PLAYER_DISCONNECTED, // COrderEvent_PlayerDisconnected
+ ORDER_EVENT_PLAYER_KILLED, // CorderEvent_PlayerKilled
+ ORDER_EVENT_PLAYER_RESPAWNED, // COrderEvent_PlayerRespawned
+ ORDER_EVENT_OBJECT_DESTROYED, // COrderEvent_ObjectDestroyed
+ ORDER_EVENT_PLAYER_DAMAGED // COrderEvent_PlayerDamaged
+} OrderEventType;
+
+
+abstract_class COrderEvent_Base
+{
+public:
+ virtual OrderEventType GetType() = 0;
+};
+
+
+// Fire a global order event. It goes to all orders so they can determine if
+// they want to react.
+void GlobalOrderEvent( COrderEvent_Base *pOrder );
+
+
+class COrderEvent_PlayerDisconnected : public COrderEvent_Base
+{
+public:
+ COrderEvent_PlayerDisconnected( CBaseEntity *pPlayer )
+ {
+ m_pPlayer = pPlayer;
+ }
+
+ virtual OrderEventType GetType() { return ORDER_EVENT_PLAYER_DISCONNECTED; }
+
+ CBaseEntity *m_pPlayer;
+};
+
+
+class COrderEvent_PlayerKilled : public COrderEvent_Base
+{
+public:
+ COrderEvent_PlayerKilled( CBaseEntity *pPlayer )
+ {
+ m_pPlayer = pPlayer;
+ }
+
+ virtual OrderEventType GetType() { return ORDER_EVENT_PLAYER_KILLED; }
+
+ CBaseEntity *m_pPlayer;
+};
+
+
+class COrderEvent_PlayerRespawned : public COrderEvent_Base
+{
+public:
+ COrderEvent_PlayerRespawned( CBaseEntity *pPlayer )
+ {
+ m_pPlayer = pPlayer;
+ }
+
+ virtual OrderEventType GetType() { return ORDER_EVENT_PLAYER_RESPAWNED; }
+
+ CBaseEntity *m_pPlayer;
+};
+
+
+class COrderEvent_ObjectDestroyed : public COrderEvent_Base
+{
+public:
+ COrderEvent_ObjectDestroyed( CBaseEntity *pObj )
+ {
+ m_pObject = pObj;
+ }
+
+ virtual OrderEventType GetType() { return ORDER_EVENT_OBJECT_DESTROYED; }
+
+ CBaseEntity *m_pObject;
+};
+
+
+class COrderEvent_PlayerDamaged : public COrderEvent_Base
+{
+public:
+ virtual OrderEventType GetType() { return ORDER_EVENT_PLAYER_DAMAGED; }
+
+ CBaseEntity *m_pPlayerDamaged;
+ CTakeDamageInfo m_TakeDamageInfo;
+};
+
+
+#endif // TF_ORDER_EVENTS_H